From 040f9480ecfe95e689ed704cc5f316c54475c80a Mon Sep 17 00:00:00 2001 From: robert <6708314@qq.com> Date: Thu, 25 Aug 2022 21:36:30 +0800 Subject: [PATCH] add --- src/hoj-springboot/.gitignore | 36 + src/hoj-springboot/DataBackup/pom.xml | 208 + .../druid/pool/DruidAbstractDataSource.java | 2118 ++ .../top/hcode/hoj/DataBackupApplication.java | 26 + .../hoj/advice/GlobalExceptionAdvice.java | 299 + .../top/hcode/hoj/annotation/HOJAccess.java | 16 + .../hcode/hoj/annotation/HOJAccessEnum.java | 42 + .../StatusAccessDeniedException.java | 28 + .../common/exception/StatusFailException.java | 27 + .../exception/StatusForbiddenException.java | 28 + .../exception/StatusNotFoundException.java | 28 + .../exception/StatusSystemErrorException.java | 28 + .../hcode/hoj/common/result/CommonResult.java | 73 + .../hcode/hoj/common/result/ResultStatus.java | 31 + .../top/hcode/hoj/config/AsyncTaskConfig.java | 62 + .../hcode/hoj/config/DataSourceConfigure.java | 27 + .../top/hcode/hoj/config/DruidConfigure.java | 130 + .../hcode/hoj/config/JedisPoolConfigure.java | 22 + .../hoj/config/JudgeAsyncTaskConfig.java | 39 + .../hcode/hoj/config/MyMetaObjectConfig.java | 26 + .../hcode/hoj/config/MybatisPlusConfig.java | 31 + .../top/hcode/hoj/config/RedisAutoConfig.java | 72 + .../top/hcode/hoj/config/RedisConfig.java | 50 + .../hcode/hoj/config/RestTemplateConfig.java | 30 + .../top/hcode/hoj/config/ShiroConfig.java | 101 + .../top/hcode/hoj/config/StartupRunner.java | 448 + .../top/hcode/hoj/config/SwaggerConfig.java | 56 + .../top/hcode/hoj/config/TomcatConfig.java | 30 + .../top/hcode/hoj/config/WebMvcConfig.java | 56 + .../admin/AdminAccountController.java | 42 + .../admin/AdminContestController.java | 236 + .../admin/AdminDiscussionController.java | 60 + .../admin/AdminGroupProblemController.java | 40 + .../admin/AdminJudgeController.java | 64 + .../admin/AdminProblemController.java | 108 + .../controller/admin/AdminTagController.java | 78 + .../AdminTrainingCategoryController.java | 48 + .../admin/AdminTrainingController.java | 128 + .../controller/admin/AdminUserController.java | 69 + .../admin/AnnouncementController.java | 53 + .../controller/admin/ConfigController.java | 105 + .../controller/admin/DashboardController.java | 46 + .../controller/admin/SwitchController.java | 37 + .../file/ContestFileController.java | 57 + .../hoj/controller/file/ImageController.java | 55 + .../file/ImportFpsProblemController.java | 46 + .../file/ImportQDUOJProblemController.java | 45 + .../file/MarkDownFileController.java | 54 + .../file/ProblemFileController.java | 59 + .../controller/file/TestCaseController.java | 42 + .../controller/file/UserFileController.java | 34 + .../group/GroupAnnouncementController.java | 54 + .../group/GroupContestController.java | 151 + .../hoj/controller/group/GroupController.java | 71 + .../group/GroupDiscussionController.java | 57 + .../group/GroupMemberController.java | 71 + .../group/GroupProblemController.java | 100 + .../controller/group/GroupRankController.java | 32 + .../group/GroupTrainingController.java | 104 + .../controller/msg/AdminNoticeController.java | 61 + .../hoj/controller/msg/NoticeController.java | 43 + .../controller/msg/UserMessageController.java | 103 + .../hoj/controller/oj/AccountController.java | 95 + .../hoj/controller/oj/CommentController.java | 81 + .../hoj/controller/oj/CommonController.java | 77 + .../controller/oj/ContestAdminController.java | 83 + .../hoj/controller/oj/ContestController.java | 193 + .../oj/ContestScoreboardController.java | 47 + .../controller/oj/DiscussionController.java | 93 + .../hoj/controller/oj/HomeController.java | 113 + .../hoj/controller/oj/JudgeController.java | 160 + .../hoj/controller/oj/PassportController.java | 109 + .../hoj/controller/oj/ProblemController.java | 88 + .../hoj/controller/oj/RankController.java | 38 + .../hoj/controller/oj/TrainingController.java | 121 + .../language/AtCoderLanguageStrategy.java | 326 + .../hoj/crawler/language/LanguageContext.java | 45 + .../crawler/language/LanguageStrategy.java | 119 + .../language/SPOJLanguageStrategy.java | 143 + .../problem/AtCoderProblemStrategy.java | 128 + .../crawler/problem/CFProblemStrategy.java | 197 + .../crawler/problem/GYMProblemStrategy.java | 134 + .../crawler/problem/HDUProblemStrategy.java | 66 + .../crawler/problem/POJProblemStrategy.java | 63 + .../hoj/crawler/problem/ProblemContext.java | 31 + .../hoj/crawler/problem/ProblemStrategy.java | 24 + .../crawler/problem/SPOJProblemStrategy.java | 89 + .../dao/common/AnnouncementEntityService.java | 21 + .../hoj/dao/common/FileEntityService.java | 28 + .../impl/AnnouncementEntityServiceImpl.java | 39 + .../impl/FileEntityEntityServiceImpl.java | 184 + .../ContestAnnouncementEntityService.java | 8 + .../hoj/dao/contest/ContestEntityService.java | 25 + .../ContestExplanationEntityService.java | 16 + .../contest/ContestPrintEntityService.java | 12 + .../contest/ContestProblemEntityService.java | 28 + .../contest/ContestRecordEntityService.java | 32 + .../contest/ContestRegisterEntityService.java | 16 + .../contest/ContestScoreEntityService.java | 16 + .../ContestAnnouncementEntityServiceImpl.java | 16 + .../impl/ContestEntityServiceImpl.java | 83 + .../ContestExplanationEntityServiceImpl.java | 20 + .../impl/ContestPrintEntityServiceImpl.java | 17 + .../impl/ContestProblemEntityServiceImpl.java | 71 + .../impl/ContestRecordEntityServiceImpl.java | 170 + .../ContestRegisterEntityServiceImpl.java | 20 + .../impl/ContestScoreEntityServiceImpl.java | 20 + .../dao/discussion/CommentEntityService.java | 27 + .../discussion/CommentLikeEntityService.java | 8 + .../discussion/DiscussionEntityService.java | 13 + .../DiscussionLikeEntityService.java | 7 + .../DiscussionReportEntityService.java | 12 + .../dao/discussion/ReplyEntityService.java | 20 + .../impl/CommentEntityServiceImpl.java | 142 + .../impl/CommentLikeEntityServiceImpl.java | 17 + .../impl/DiscussionEntityServiceImpl.java | 54 + .../impl/DiscussionLikeEntityServiceImpl.java | 16 + .../DiscussionReportEntityServiceImpl.java | 30 + .../impl/ReplyEntityServiceImpl.java | 100 + .../group/GroupAnnouncementEntityService.java | 19 + .../dao/group/GroupContestEntityService.java | 19 + .../group/GroupDiscussionEntityService.java | 13 + .../hoj/dao/group/GroupEntityService.java | 21 + .../dao/group/GroupMemberEntityService.java | 30 + .../dao/group/GroupProblemEntityService.java | 19 + .../dao/group/GroupTrainingEntityService.java | 19 + .../GroupAnnouncementEntityServiceImpl.java | 44 + .../impl/GroupContestEntityServiceImpl.java | 43 + .../GroupDiscussionEntityServiceImpl.java | 16 + .../group/impl/GroupEntityServiceImpl.java | 39 + .../impl/GroupMemberEntityServiceImpl.java | 138 + .../impl/GroupProblemEntityServiceImpl.java | 44 + .../impl/GroupTrainingEntityServiceImpl.java | 44 + .../hoj/dao/judge/JudgeCaseEntityService.java | 16 + .../hoj/dao/judge/JudgeEntityService.java | 63 + .../dao/judge/JudgeServerEntityService.java | 9 + .../RemoteJudgeAccountEntityService.java | 7 + .../impl/JudgeCaseEntityServiceImpl.java | 20 + .../judge/impl/JudgeEntityServiceImpl.java | 152 + .../impl/JudgeServerEntityServiceImpl.java | 19 + .../RemoteJudgeAccountEntityServiceImpl.java | 17 + .../dao/msg/AdminSysNoticeEntityService.java | 18 + .../hoj/dao/msg/MsgRemindEntityService.java | 21 + .../dao/msg/UserSysNoticeEntityService.java | 13 + .../impl/AdminSysNoticeEntityServiceImpl.java | 31 + .../msg/impl/MsgRemindEntityServiceImpl.java | 37 + .../impl/UserSysNoticeEntityServiceImpl.java | 36 + .../dao/problem/CategoryEntityService.java | 8 + .../problem/CodeTemplateEntityService.java | 7 + .../dao/problem/LanguageEntityService.java | 7 + .../dao/problem/ProblemCaseEntityService.java | 12 + .../problem/ProblemCountEntityService.java | 16 + .../hoj/dao/problem/ProblemEntityService.java | 32 + .../problem/ProblemLanguageEntityService.java | 12 + .../dao/problem/ProblemTagEntityService.java | 7 + .../TagClassificationEntityService.java | 11 + .../hoj/dao/problem/TagEntityService.java | 16 + .../impl/CategoryEntityServiceImpl.java | 16 + .../impl/CodeTemplateEntityServiceImpl.java | 16 + .../impl/LanguageEntityServiceImpl.java | 16 + .../impl/ProblemCaseEntityServiceImpl.java | 16 + .../problem/impl/ProblemCountServiceImpl.java | 28 + .../impl/ProblemEntityServiceImpl.java | 690 + .../ProblemLanguageEntityServiceImpl.java | 16 + .../impl/ProblemTagEntityServiceImpl.java | 16 + .../TagClassificationEntityServiceImpl.java | 15 + .../problem/impl/TagEntityServiceImpl.java | 20 + .../MappingTrainingCategoryEntityService.java | 7 + .../TrainingCategoryEntityService.java | 9 + .../dao/training/TrainingEntityService.java | 12 + .../TrainingProblemEntityService.java | 21 + .../training/TrainingRecordEntityService.java | 19 + .../TrainingRegisterEntityService.java | 12 + ...pingTrainingCategoryEntityServiceImpl.java | 16 + .../TrainingCategoryEntityServiceImpl.java | 26 + .../impl/TrainingEntityServiceImpl.java | 49 + .../TrainingProblemEntityServiceImpl.java | 65 + .../impl/TrainingRecordEntityServiceImpl.java | 29 + .../TrainingRegisterEntityServiceImpl.java | 33 + .../hcode/hoj/dao/user/AuthEntityService.java | 16 + .../hoj/dao/user/RoleAuthEntityService.java | 16 + .../hcode/hoj/dao/user/RoleEntityService.java | 16 + .../hoj/dao/user/SessionEntityService.java | 10 + .../dao/user/UserAcproblemEntityService.java | 16 + .../hoj/dao/user/UserInfoEntityService.java | 24 + .../hoj/dao/user/UserRecordEntityService.java | 36 + .../hoj/dao/user/UserRoleEntityService.java | 25 + .../dao/user/impl/AuthEntityServiceImpl.java | 20 + .../user/impl/RoleAuthEntityServiceImpl.java | 20 + .../dao/user/impl/RoleEntityServiceImpl.java | 20 + .../user/impl/SessionEntityServiceImpl.java | 129 + .../impl/UserAcproblemEntityServiceImpl.java | 22 + .../user/impl/UserInfoEntityServiceImpl.java | 54 + .../impl/UserRecordEntityServiceImpl.java | 84 + .../user/impl/UserRoleEntityServiceImpl.java | 128 + .../hcode/hoj/exception/AccessException.java | 27 + .../hoj/interceptor/AccessInterceptor.java | 55 + .../top/hcode/hoj/judge/AbstractReceiver.java | 24 + .../java/top/hcode/hoj/judge/ChooseUtils.java | 214 + .../java/top/hcode/hoj/judge/Dispatcher.java | 379 + .../judge/remote/RemoteJudgeDispatcher.java | 61 + .../hoj/judge/remote/RemoteJudgeReceiver.java | 329 + .../hcode/hoj/judge/self/JudgeDispatcher.java | 81 + .../hcode/hoj/judge/self/JudgeReceiver.java | 99 + .../admin/account/AdminAccountManager.java | 100 + .../AdminAnnouncementManager.java | 52 + .../AdminContestAnnouncementManager.java | 59 + .../admin/contest/AdminContestManager.java | 179 + .../contest/AdminContestProblemManager.java | 341 + .../discussion/AdminDiscussionManager.java | 54 + .../problem/AdminGroupProblemManager.java | 74 + .../admin/problem/AdminProblemManager.java | 264 + .../admin/problem/RemoteProblemManager.java | 149 + .../manager/admin/rejudge/RejudgeManager.java | 351 + .../manager/admin/system/ConfigManager.java | 514 + .../admin/system/DashboardManager.java | 61 + .../manager/admin/tag/AdminTagManager.java | 100 + .../AdminTrainingCategoryManager.java | 55 + .../admin/training/AdminTrainingManager.java | 216 + .../training/AdminTrainingProblemManager.java | 237 + .../training/AdminTrainingRecordManager.java | 155 + .../manager/admin/user/AdminUserManager.java | 257 + .../hcode/hoj/manager/email/EmailManager.java | 235 + .../hoj/manager/file/ContestFileManager.java | 469 + .../hcode/hoj/manager/file/ImageManager.java | 216 + .../manager/file/ImportFpsProblemManager.java | 325 + .../file/ImportQDUOJProblemManager.java | 273 + .../hoj/manager/file/MarkDownFileManager.java | 173 + .../hoj/manager/file/ProblemFileManager.java | 417 + .../hoj/manager/file/TestCaseManager.java | 271 + .../hoj/manager/file/UserFileManager.java | 49 + .../hcode/hoj/manager/group/GroupManager.java | 317 + .../hoj/manager/group/GroupRankManager.java | 100 + .../GroupAnnouncementManager.java | 163 + .../GroupContestAnnouncementManager.java | 187 + .../group/contest/GroupContestManager.java | 276 + .../contest/GroupContestProblemManager.java | 365 + .../discussion/GroupDiscussionManager.java | 241 + .../group/member/GroupMemberManager.java | 297 + .../group/problem/GroupProblemManager.java | 477 + .../group/training/GroupTrainingManager.java | 336 + .../training/GroupTrainingProblemManager.java | 277 + .../hoj/manager/msg/AdminNoticeManager.java | 142 + .../hcode/hoj/manager/msg/NoticeManager.java | 108 + .../hoj/manager/msg/UserMessageManager.java | 288 + .../hcode/hoj/manager/oj/AccountManager.java | 415 + .../manager/oj/BeforeDispatchInitManager.java | 221 + .../hcode/hoj/manager/oj/CommentManager.java | 552 + .../hcode/hoj/manager/oj/CommonManager.java | 226 + .../hoj/manager/oj/ContestAdminManager.java | 156 + .../oj/ContestCalculateRankManager.java | 545 + .../hcode/hoj/manager/oj/ContestManager.java | 585 + .../hoj/manager/oj/ContestRankManager.java | 180 + .../manager/oj/ContestScoreboardManager.java | 150 + .../hoj/manager/oj/DiscussionManager.java | 363 + .../top/hcode/hoj/manager/oj/HomeManager.java | 147 + .../hcode/hoj/manager/oj/JudgeManager.java | 641 + .../hcode/hoj/manager/oj/PassportManager.java | 325 + .../hcode/hoj/manager/oj/ProblemManager.java | 292 + .../top/hcode/hoj/manager/oj/RankManager.java | 134 + .../hcode/hoj/manager/oj/TrainingManager.java | 383 + .../hoj/mapper/AdminSysNoticeMapper.java | 16 + .../hcode/hoj/mapper/AnnouncementMapper.java | 25 + .../java/top/hcode/hoj/mapper/AuthMapper.java | 16 + .../top/hcode/hoj/mapper/CategoryMapper.java | 11 + .../hcode/hoj/mapper/CodeTemplateMapper.java | 13 + .../hcode/hoj/mapper/CommentLikeMapper.java | 12 + .../top/hcode/hoj/mapper/CommentMapper.java | 32 + .../hoj/mapper/ContestAnnouncementMapper.java | 11 + .../hoj/mapper/ContestExplanationMapper.java | 16 + .../top/hcode/hoj/mapper/ContestMapper.java | 33 + .../hcode/hoj/mapper/ContestPrintMapper.java | 16 + .../hoj/mapper/ContestProblemMapper.java | 27 + .../hcode/hoj/mapper/ContestRecordMapper.java | 43 + .../hoj/mapper/ContestRegisterMapper.java | 20 + .../hcode/hoj/mapper/ContestScoreMapper.java | 16 + .../hoj/mapper/DiscussionLikeMapper.java | 12 + .../hcode/hoj/mapper/DiscussionMapper.java | 15 + .../hoj/mapper/DiscussionReportMapper.java | 16 + .../java/top/hcode/hoj/mapper/FileMapper.java | 31 + .../hoj/mapper/GroupAnnouncementMapper.java | 26 + .../hcode/hoj/mapper/GroupContestMapper.java | 26 + .../hoj/mapper/GroupDiscussionMapper.java | 17 + .../top/hcode/hoj/mapper/GroupMapper.java | 27 + .../hcode/hoj/mapper/GroupMemberMapper.java | 23 + .../hcode/hoj/mapper/GroupProblemMapper.java | 25 + .../hcode/hoj/mapper/GroupTrainingMapper.java | 26 + .../top/hcode/hoj/mapper/JudgeCaseMapper.java | 20 + .../top/hcode/hoj/mapper/JudgeMapper.java | 63 + .../hcode/hoj/mapper/JudgeServerMapper.java | 13 + .../top/hcode/hoj/mapper/LanguageMapper.java | 11 + .../mapper/MappingTrainingCategoryMapper.java | 11 + .../top/hcode/hoj/mapper/MsgRemindMapper.java | 20 + .../hcode/hoj/mapper/ProblemCaseMapper.java | 16 + .../hcode/hoj/mapper/ProblemCountMapper.java | 21 + .../hoj/mapper/ProblemLanguageMapper.java | 11 + .../top/hcode/hoj/mapper/ProblemMapper.java | 31 + .../hcode/hoj/mapper/ProblemTagMapper.java | 11 + .../hoj/mapper/RemoteJudgeAccountMapper.java | 24 + .../top/hcode/hoj/mapper/ReplyMapper.java | 24 + .../top/hcode/hoj/mapper/RoleAuthMapper.java | 23 + .../java/top/hcode/hoj/mapper/RoleMapper.java | 20 + .../top/hcode/hoj/mapper/SessionMapper.java | 12 + .../hoj/mapper/TagClassificationMapper.java | 15 + .../java/top/hcode/hoj/mapper/TagMapper.java | 20 + .../hoj/mapper/TrainingCategoryMapper.java | 14 + .../top/hcode/hoj/mapper/TrainingMapper.java | 24 + .../hoj/mapper/TrainingProblemMapper.java | 20 + .../hoj/mapper/TrainingRecordMapper.java | 23 + .../hoj/mapper/TrainingRegisterMapper.java | 12 + .../hcode/hoj/mapper/UserAcproblemMapper.java | 21 + .../top/hcode/hoj/mapper/UserInfoMapper.java | 28 + .../hcode/hoj/mapper/UserRecordMapper.java | 40 + .../top/hcode/hoj/mapper/UserRoleMapper.java | 38 + .../hcode/hoj/mapper/UserSysNoticeMapper.java | 18 + .../hoj/mapper/xml/AdminSysNoticeMapper.xml | 36 + .../hoj/mapper/xml/AnnouncementMapper.xml | 36 + .../hcode/hoj/mapper/xml/CommentMapper.xml | 54 + .../mapper/xml/ContestExplanationMapper.xml | 5 + .../hcode/hoj/mapper/xml/ContestMapper.xml | 47 + .../hoj/mapper/xml/ContestProblemMapper.xml | 55 + .../hoj/mapper/xml/ContestRecordMapper.xml | 128 + .../hoj/mapper/xml/ContestRegisterMapper.xml | 5 + .../hoj/mapper/xml/ContestScoreMapper.xml | 5 + .../hcode/hoj/mapper/xml/DiscussionMapper.xml | 42 + .../hoj/mapper/xml/DiscussionReportMapper.xml | 27 + .../mapper/xml/GroupAnnouncementMapper.xml | 27 + .../hoj/mapper/xml/GroupContestMapper.xml | 18 + .../hoj/mapper/xml/GroupDiscussionMapper.xml | 4 + .../top/hcode/hoj/mapper/xml/GroupMapper.xml | 46 + .../hoj/mapper/xml/GroupMemberMapper.xml | 45 + .../hoj/mapper/xml/GroupProblemMapper.xml | 42 + .../hoj/mapper/xml/GroupTrainingMapper.xml | 44 + .../top/hcode/hoj/mapper/xml/JudgeMapper.xml | 180 + .../hcode/hoj/mapper/xml/MsgRemindMapper.xml | 62 + .../hoj/mapper/xml/ProblemCountMapper.xml | 17 + .../hcode/hoj/mapper/xml/ProblemMapper.xml | 63 + .../top/hcode/hoj/mapper/xml/ReplyMapper.xml | 21 + .../hcode/hoj/mapper/xml/RoleAuthMapper.xml | 24 + .../top/hcode/hoj/mapper/xml/RoleMapper.xml | 5 + .../hcode/hoj/mapper/xml/SessionMapper.xml | 6 + .../top/hcode/hoj/mapper/xml/TagMapper.xml | 5 + .../hoj/mapper/xml/TrainingCategoryMapper.xml | 8 + .../hcode/hoj/mapper/xml/TrainingMapper.xml | 48 + .../hoj/mapper/xml/TrainingProblemMapper.xml | 46 + .../hoj/mapper/xml/TrainingRecordMapper.xml | 14 + .../hoj/mapper/xml/UserAcproblemMapper.xml | 5 + .../hcode/hoj/mapper/xml/UserInfoMapper.xml | 16 + .../hcode/hoj/mapper/xml/UserRecordMapper.xml | 151 + .../hcode/hoj/mapper/xml/UserRoleMapper.xml | 116 + .../hoj/mapper/xml/UserSysNoticeMapper.xml | 36 + .../top/hcode/hoj/pojo/bo/EmailRuleBo.java | 60 + .../hcode/hoj/pojo/dto/AdminEditUserDto.java | 36 + .../hcode/hoj/pojo/dto/AnnouncementDto.java | 19 + .../hoj/pojo/dto/ApplyResetPasswordDto.java | 18 + .../hcode/hoj/pojo/dto/ChangeEmailDto.java | 16 + .../dto/ChangeGroupProblemProgressDto.java | 21 + .../hcode/hoj/pojo/dto/ChangePasswordDto.java | 16 + .../top/hcode/hoj/pojo/dto/CheckACDto.java | 23 + .../hoj/pojo/dto/CheckUsernameOrEmailDto.java | 16 + .../hcode/hoj/pojo/dto/ContestPrintDto.java | 20 + .../hcode/hoj/pojo/dto/ContestProblemDto.java | 23 + .../hcode/hoj/pojo/dto/ContestRankDto.java | 33 + .../hoj/pojo/dto/DBAndRedisConfigDto.java | 58 + .../hcode/hoj/pojo/dto/EmailConfigDto.java | 48 + .../java/top/hcode/hoj/pojo/dto/LoginDto.java | 20 + .../top/hcode/hoj/pojo/dto/PidListDto.java | 27 + .../top/hcode/hoj/pojo/dto/ProblemDto.java | 38 + .../hcode/hoj/pojo/dto/QDOJProblemDto.java | 79 + .../hoj/pojo/dto/RegisterContestDto.java | 20 + .../top/hcode/hoj/pojo/dto/RegisterDto.java | 35 + .../hoj/pojo/dto/RegisterTrainingDto.java | 20 + .../java/top/hcode/hoj/pojo/dto/ReplyDto.java | 23 + .../hcode/hoj/pojo/dto/ResetPasswordDto.java | 19 + .../hcode/hoj/pojo/dto/SubmitIdListDto.java | 19 + .../hcode/hoj/pojo/dto/SubmitJudgeDto.java | 34 + .../hcode/hoj/pojo/dto/SwitchConfigDto.java | 115 + .../top/hcode/hoj/pojo/dto/TestEmailDto.java | 16 + .../top/hcode/hoj/pojo/dto/TestJudgeDto.java | 45 + .../top/hcode/hoj/pojo/dto/TrainingDto.java | 20 + .../hoj/pojo/dto/TrainingProblemDto.java | 23 + .../dto/UserReadContestAnnouncementDto.java | 19 + .../top/hcode/hoj/pojo/dto/WebConfigDto.java | 63 + .../hcode/hoj/pojo/vo/ACMContestRankVo.java | 53 + .../java/top/hcode/hoj/pojo/vo/ACMRankVo.java | 50 + .../java/top/hcode/hoj/pojo/vo/AccessVo.java | 16 + .../top/hcode/hoj/pojo/vo/AdminContestVo.java | 98 + .../hcode/hoj/pojo/vo/AdminSysNoticeVo.java | 40 + .../top/hcode/hoj/pojo/vo/AnnouncementVo.java | 44 + .../java/top/hcode/hoj/pojo/vo/CaptchaVo.java | 19 + .../hcode/hoj/pojo/vo/ChangeAccountVo.java | 18 + .../hoj/pojo/vo/CheckUsernameOrEmailVo.java | 16 + .../top/hcode/hoj/pojo/vo/CommentListVo.java | 19 + .../java/top/hcode/hoj/pojo/vo/CommentVo.java | 53 + .../java/top/hcode/hoj/pojo/vo/ConfigVo.java | 226 + .../hcode/hoj/pojo/vo/ContestOutsideInfo.java | 24 + .../hcode/hoj/pojo/vo/ContestProblemVo.java | 43 + .../hcode/hoj/pojo/vo/ContestRecordVo.java | 79 + .../hoj/pojo/vo/ContestRegisterCountVo.java | 23 + .../java/top/hcode/hoj/pojo/vo/ContestVo.java | 80 + .../hcode/hoj/pojo/vo/DiscussionReportVo.java | 51 + .../top/hcode/hoj/pojo/vo/DiscussionVo.java | 78 + .../top/hcode/hoj/pojo/vo/ExcelUserVo.java | 22 + .../top/hcode/hoj/pojo/vo/GroupMemberVo.java | 41 + .../java/top/hcode/hoj/pojo/vo/GroupVo.java | 50 + .../hcode/hoj/pojo/vo/ImportProblemVo.java | 99 + .../java/top/hcode/hoj/pojo/vo/JudgeVo.java | 86 + .../hcode/hoj/pojo/vo/OIContestRankVo.java | 54 + .../java/top/hcode/hoj/pojo/vo/OIRankVo.java | 48 + .../top/hcode/hoj/pojo/vo/ProblemCountVo.java | 57 + .../top/hcode/hoj/pojo/vo/ProblemInfoVo.java | 23 + .../top/hcode/hoj/pojo/vo/ProblemTagVo.java | 26 + .../java/top/hcode/hoj/pojo/vo/ProblemVo.java | 86 + .../hcode/hoj/pojo/vo/RandomProblemVo.java | 16 + .../top/hcode/hoj/pojo/vo/RegisterCodeVo.java | 19 + .../java/top/hcode/hoj/pojo/vo/ReplyVo.java | 57 + .../top/hcode/hoj/pojo/vo/RoleAuthsVo.java | 40 + .../hcode/hoj/pojo/vo/SubmissionInfoVo.java | 20 + .../java/top/hcode/hoj/pojo/vo/SysMsgVo.java | 38 + .../top/hcode/hoj/pojo/vo/TestJudgeVo.java | 51 + .../top/hcode/hoj/pojo/vo/TrainingRankVo.java | 47 + .../hcode/hoj/pojo/vo/TrainingRecordVo.java | 61 + .../top/hcode/hoj/pojo/vo/TrainingVo.java | 56 + .../hoj/pojo/vo/UserCalendarHeatmapVo.java | 24 + .../top/hcode/hoj/pojo/vo/UserHomeVo.java | 67 + .../top/hcode/hoj/pojo/vo/UserInfoVo.java | 67 + .../java/top/hcode/hoj/pojo/vo/UserMsgVo.java | 63 + .../top/hcode/hoj/pojo/vo/UserRolesVo.java | 85 + .../hoj/pojo/vo/UserUnreadMsgCountVo.java | 34 + .../hcode/hoj/schedule/ScheduleService.java | 21 + .../hoj/schedule/ScheduleServiceImpl.java | 442 + .../admin/account/AdminAccountService.java | 18 + .../account/impl/AdminAccountServiceImpl.java | 43 + .../AdminAnnouncementService.java | 22 + .../impl/AdminAnnouncementServiceImpl.java | 59 + .../AdminContestAnnouncementService.java | 19 + .../contest/AdminContestProblemService.java | 34 + .../admin/contest/AdminContestService.java | 26 + .../AdminContestAnnouncementServiceImpl.java | 60 + .../impl/AdminContestProblemServiceImpl.java | 115 + .../contest/impl/AdminContestServiceImpl.java | 99 + .../discussion/AdminDiscussionService.java | 25 + .../impl/AdminDiscussionServiceImpl.java | 64 + .../problem/AdminGroupProblemService.java | 17 + .../admin/problem/AdminProblemService.java | 34 + .../impl/AdminGroupProblemServiceImpl.java | 39 + .../problem/impl/AdminProblemServiceImpl.java | 119 + .../service/admin/rejudge/RejudgeService.java | 15 + .../rejudge/impl/RejudgeServiceImpl.java | 61 + .../service/admin/system/ConfigService.java | 35 + .../admin/system/DashboardService.java | 18 + .../admin/system/impl/ConfigServiceImpl.java | 114 + .../system/impl/DashboardServiceImpl.java | 32 + .../service/admin/tag/AdminTagService.java | 24 + .../admin/tag/impl/AdminTagServiceImpl.java | 88 + .../AdminTrainingCategoryService.java | 18 + .../training/AdminTrainingProblemService.java | 20 + .../admin/training/AdminTrainingService.java | 21 + .../AdminTrainingCategoryServiceImpl.java | 51 + .../impl/AdminTrainingProblemServiceImpl.java | 70 + .../impl/AdminTrainingServiceImpl.java | 86 + .../service/admin/user/AdminUserService.java | 28 + .../admin/user/impl/AdminUserServiceImpl.java | 70 + .../hoj/service/file/ContestFileService.java | 23 + .../hcode/hoj/service/file/ImageService.java | 16 + .../service/file/ImportFpsProblemService.java | 14 + .../file/ImportQDUOJProblemService.java | 9 + .../hoj/service/file/MarkDownFileService.java | 15 + .../hoj/service/file/ProblemFileService.java | 14 + .../hoj/service/file/TestCaseService.java | 21 + .../hoj/service/file/UserFileService.java | 9 + .../file/impl/ContestFileServiceImpl.java | 38 + .../service/file/impl/ImageServiceImpl.java | 62 + .../impl/ImportFpsProblemServiceImpl.java | 33 + .../impl/ImportQDUOJProblemServiceImpl.java | 35 + .../file/impl/MarkDownFileServiceImpl.java | 64 + .../file/impl/ProblemFileServiceImpl.java | 43 + .../file/impl/TestCaseServiceImpl.java | 45 + .../file/impl/UserFileServiceImpl.java | 27 + .../hoj/service/group/GroupRankService.java | 14 + .../hcode/hoj/service/group/GroupService.java | 29 + .../GroupAnnouncementService.java | 25 + .../impl/GroupAnnouncementServiceImpl.java | 91 + .../GroupContestAnnouncementService.java | 23 + .../contest/GroupContestProblemService.java | 32 + .../group/contest/GroupContestService.java | 30 + .../GroupContestAnnouncementServiceImpl.java | 79 + .../impl/GroupContestProblemServiceImpl.java | 122 + .../contest/impl/GroupContestServiceImpl.java | 118 + .../discussion/GroupDiscussionService.java | 24 + .../impl/GroupDiscussionServiceImpl.java | 91 + .../group/impl/GroupRankServiceImpl.java | 36 + .../service/group/impl/GroupServiceImpl.java | 99 + .../group/member/GroupMemberService.java | 26 + .../member/impl/GroupMemberServiceImpl.java | 106 + .../group/problem/GroupProblemService.java | 44 + .../problem/impl/GroupProblemServiceImpl.java | 189 + .../training/GroupTrainingProblemService.java | 30 + .../group/training/GroupTrainingService.java | 30 + .../impl/GroupTrainingProblemServiceImpl.java | 95 + .../impl/GroupTrainingServiceImpl.java | 118 + .../hoj/service/msg/AdminNoticeService.java | 17 + .../hcode/hoj/service/msg/NoticeService.java | 12 + .../hoj/service/msg/UserMessageService.java | 20 + .../msg/impl/AdminNoticeServiceImpl.java | 60 + .../service/msg/impl/NoticeServiceImpl.java | 32 + .../msg/impl/UserMessageServiceImpl.java | 54 + .../hcode/hoj/service/oj/AccountService.java | 24 + .../hcode/hoj/service/oj/CommentService.java | 28 + .../hcode/hoj/service/oj/CommonService.java | 31 + .../hoj/service/oj/ContestAdminService.java | 18 + .../service/oj/ContestScoreboardService.java | 20 + .../hcode/hoj/service/oj/ContestService.java | 46 + .../hoj/service/oj/DiscussionService.java | 36 + .../top/hcode/hoj/service/oj/HomeService.java | 32 + .../hcode/hoj/service/oj/JudgeService.java | 45 + .../hcode/hoj/service/oj/PassportService.java | 31 + .../hcode/hoj/service/oj/ProblemService.java | 29 + .../top/hcode/hoj/service/oj/RankService.java | 9 + .../hcode/hoj/service/oj/TrainingService.java | 31 + .../service/oj/impl/AccountServiceImpl.java | 81 + .../service/oj/impl/CommentServiceImpl.java | 106 + .../service/oj/impl/CommonServiceImpl.java | 68 + .../oj/impl/ContestAdminServiceImpl.java | 70 + .../oj/impl/ContestScoreboardServiceImpl.java | 49 + .../service/oj/impl/ContestServiceImpl.java | 160 + .../oj/impl/DiscussionServiceImpl.java | 113 + .../hoj/service/oj/impl/HomeServiceImpl.java | 57 + .../hoj/service/oj/impl/JudgeServiceImpl.java | 151 + .../service/oj/impl/PassportServiceImpl.java | 86 + .../service/oj/impl/ProblemServiceImpl.java | 65 + .../hoj/service/oj/impl/RankServiceImpl.java | 31 + .../service/oj/impl/TrainingServiceImpl.java | 96 + .../top/hcode/hoj/shiro/AccountProfile.java | 56 + .../top/hcode/hoj/shiro/AccountRealm.java | 92 + .../java/top/hcode/hoj/shiro/JwtFilter.java | 143 + .../java/top/hcode/hoj/shiro/JwtToken.java | 27 + .../top/hcode/hoj/utils/CodeForcesUtils.java | 82 + .../java/top/hcode/hoj/utils/ConfigUtils.java | 128 + .../java/top/hcode/hoj/utils/Constants.java | 333 + .../java/top/hcode/hoj/utils/IpUtils.java | 65 + .../java/top/hcode/hoj/utils/JsoupUtils.java | 84 + .../java/top/hcode/hoj/utils/JwtUtils.java | 74 + .../java/top/hcode/hoj/utils/RedisUtils.java | 664 + .../hcode/hoj/utils/ServiceContextUtils.java | 29 + .../java/top/hcode/hoj/utils/ShiroUtils.java | 21 + .../hcode/hoj/validator/AccessValidator.java | 57 + .../hcode/hoj/validator/ContestValidator.java | 152 + .../hcode/hoj/validator/GroupValidator.java | 60 + .../hcode/hoj/validator/JudgeValidator.java | 146 + .../hoj/validator/TrainingValidator.java | 109 + .../src/main/resources/CodeForcesAES.js | 722 + .../src/main/resources/application-dev.yml | 120 + .../src/main/resources/application-prod.yml | 124 + .../src/main/resources/application.yml | 13 + .../DataBackup/src/main/resources/banner.txt | 21 + .../src/main/resources/bootstrap.yml | 31 + .../src/main/resources/email-rule.yml | 39 + .../src/main/resources/logback-spring.xml | 78 + .../templates/emailTemplate_registerCode.html | 74 + .../emailTemplate_resetPassword.html | 72 + .../templates/emailTemplate_testEmail.html | 72 + .../hcode/hoj/DataBackupApplicationTests.java | 269 + src/hoj-springboot/JudgeServer/pom.xml | 134 + .../druid/pool/DruidAbstractDataSource.java | 2098 ++ .../top/hcode/hoj/JudgeServerApplication.java | 22 + .../top/hcode/hoj/common/CommonResult.java | 73 + .../top/hcode/hoj/common/ResultStatus.java | 31 + .../hoj/common/exception/CompileError.java | 22 + .../hoj/common/exception/RuntimeError.java | 22 + .../hoj/common/exception/SubmitError.java | 22 + .../hoj/common/exception/SystemError.java | 23 + .../top/hcode/hoj/config/AsyncTaskConfig.java | 48 + .../hcode/hoj/config/DruidConfiguration.java | 65 + .../hcode/hoj/config/MyMetaObjectConfig.java | 27 + .../hcode/hoj/config/MybatisPlusConfig.java | 24 + .../top/hcode/hoj/config/NacosConfig.java | 75 + .../hcode/hoj/config/RestTemplateConfig.java | 23 + .../top/hcode/hoj/config/StartupRunner.java | 97 + .../hcode/hoj/controller/JudgeController.java | 138 + .../controller/SystemConfigController.java | 25 + .../hcode/hoj/dao/ContestEntityService.java | 17 + .../hoj/dao/ContestRecordEntityService.java | 16 + .../hcode/hoj/dao/JudgeCaseEntityService.java | 16 + .../top/hcode/hoj/dao/JudgeEntityService.java | 17 + .../hoj/dao/JudgeServerEntityService.java | 11 + .../hoj/dao/ProblemCaseEntityService.java | 12 + .../hoj/dao/ProblemCountEntityService.java | 18 + .../hcode/hoj/dao/ProblemEntityService.java | 18 + .../dao/RemoteJudgeAccountEntityService.java | 7 + .../hoj/dao/UserAcproblemEntityService.java | 16 + .../hoj/dao/UserRecordEntityService.java | 18 + .../dao/impl/ContestEntityServiceImpl.java | 21 + .../impl/ContestRecordEntityServiceImpl.java | 90 + .../dao/impl/JudgeCaseEntityServiceImpl.java | 20 + .../hoj/dao/impl/JudgeEntityServiceImpl.java | 21 + .../impl/JudgeServerEntityServiceImpl.java | 82 + .../impl/ProblemCaseEntityServiceImpl.java | 16 + .../impl/ProblemCountEntityServiceImpl.java | 128 + .../dao/impl/ProblemEntityServiceImpl.java | 21 + .../RemoteJudgeAccountEntityServiceImpl.java | 17 + .../impl/UserAcproblemEntityServiceImpl.java | 21 + .../dao/impl/UserRecordEntityServiceImpl.java | 120 + .../top/hcode/hoj/judge/AbstractJudge.java | 168 + .../java/top/hcode/hoj/judge/Compiler.java | 137 + .../top/hcode/hoj/judge/JudgeContext.java | 117 + .../java/top/hcode/hoj/judge/JudgeRun.java | 218 + .../top/hcode/hoj/judge/JudgeStrategy.java | 409 + .../hcode/hoj/judge/ProblemTestCaseUtils.java | 212 + .../java/top/hcode/hoj/judge/SandboxRun.java | 844 + .../top/hcode/hoj/judge/entity/JudgeDTO.java | 53 + .../hoj/judge/entity/JudgeGlobalDTO.java | 107 + .../hcode/hoj/judge/entity/SandBoxRes.java | 49 + .../hcode/hoj/judge/task/DefaultJudge.java | 129 + .../hoj/judge/task/InteractiveJudge.java | 176 + .../hcode/hoj/judge/task/SpecialJudge.java | 213 + .../top/hcode/hoj/judge/task/TestJudge.java | 115 + .../top/hcode/hoj/mapper/ContestMapper.java | 21 + .../hcode/hoj/mapper/ContestRecordMapper.java | 21 + .../top/hcode/hoj/mapper/JudgeCaseMapper.java | 20 + .../top/hcode/hoj/mapper/JudgeMapper.java | 21 + .../hcode/hoj/mapper/JudgeServerMapper.java | 11 + .../hcode/hoj/mapper/ProblemCaseMapper.java | 16 + .../hcode/hoj/mapper/ProblemCountMapper.java | 20 + .../top/hcode/hoj/mapper/ProblemMapper.java | 21 + .../hoj/mapper/RemoteJudgeAccountMapper.java | 11 + .../hcode/hoj/mapper/UserAcproblemMapper.java | 21 + .../hcode/hoj/mapper/UserRecordMapper.java | 21 + .../hcode/hoj/mapper/xml/JudgeCaseMapper.xml | 5 + .../top/hcode/hoj/mapper/xml/JudgeMapper.xml | 5 + .../hoj/remoteJudge/RemoteJudgeContext.java | 116 + .../hoj/remoteJudge/RemoteJudgeGetResult.java | 196 + .../hoj/remoteJudge/RemoteJudgeToSubmit.java | 91 + .../remoteJudge/entity/RemoteJudgeDTO.java | 154 + .../remoteJudge/entity/RemoteJudgeRes.java | 33 + .../remoteJudge/task/Impl/AtCoderJudge.java | 259 + .../task/Impl/CodeForcesJudge.java | 500 + .../hoj/remoteJudge/task/Impl/GYMJudge.java | 102 + .../hoj/remoteJudge/task/Impl/HDUJudge.java | 219 + .../hoj/remoteJudge/task/Impl/POJJudge.java | 222 + .../hoj/remoteJudge/task/Impl/SPOJJudge.java | 256 + .../remoteJudge/task/RemoteJudgeFactory.java | 27 + .../remoteJudge/task/RemoteJudgeStrategy.java | 26 + .../top/hcode/hoj/service/JudgeService.java | 23 + .../hcode/hoj/service/RemoteJudgeService.java | 8 + .../hoj/service/SystemConfigService.java | 7 + .../hoj/service/impl/JudgeServiceImpl.java | 150 + .../service/impl/RemoteJudgeServiceImpl.java | 110 + .../service/impl/SystemConfigServiceImpl.java | 35 + .../top/hcode/hoj/util/CodeForcesUtils.java | 38 + .../java/top/hcode/hoj/util/Constants.java | 402 + .../main/java/top/hcode/hoj/util/IpUtils.java | 88 + .../java/top/hcode/hoj/util/JsoupUtils.java | 62 + .../java/top/hcode/hoj/util/JudgeUtils.java | 91 + .../top/hcode/hoj/util/ThreadPoolUtils.java | 40 + .../src/main/resources/CodeForcesAES.js | 722 + .../src/main/resources/application.yml | 54 + .../JudgeServer/src/main/resources/banner.txt | 21 + .../src/main/resources/bootstrap.yml | 35 + .../src/main/resources/logback-spring.xml | 76 + .../hoj/JudgeServerApplicationTests.java | 9 + .../task/Impl/CodeForcesJudgeTest.java | 35 + .../remoteJudge/task/Impl/HDUJudgeTest.java | 18 + .../java/top/hcode/hoj/remoteJudge/test.html | 3340 ++ src/hoj-springboot/api/pom.xml | 56 + .../top/hcode/hoj/pojo/dto/CompileDTO.java | 43 + .../top/hcode/hoj/pojo/dto/TestJudgeReq.java | 82 + .../top/hcode/hoj/pojo/dto/TestJudgeRes.java | 61 + .../top/hcode/hoj/pojo/dto/ToJudgeDTO.java | 69 + .../hoj/pojo/entity/common/Announcement.java | 50 + .../hcode/hoj/pojo/entity/common/File.java | 62 + .../hoj/pojo/entity/contest/Contest.java | 118 + .../entity/contest/ContestAnnouncement.java | 48 + .../entity/contest/ContestExplanation.java | 50 + .../hoj/pojo/entity/contest/ContestPrint.java | 50 + .../pojo/entity/contest/ContestProblem.java | 57 + .../pojo/entity/contest/ContestRecord.java | 86 + .../pojo/entity/contest/ContestRegister.java | 51 + .../hoj/pojo/entity/contest/ContestScore.java | 53 + .../hoj/pojo/entity/discussion/Comment.java | 67 + .../pojo/entity/discussion/CommentLike.java | 42 + .../pojo/entity/discussion/Discussion.java | 78 + .../entity/discussion/DiscussionLike.java | 42 + .../entity/discussion/DiscussionReport.java | 47 + .../hoj/pojo/entity/discussion/Reply.java | 65 + .../hcode/hoj/pojo/entity/group/Group.java | 68 + .../hoj/pojo/entity/group/GroupMember.java | 49 + .../hcode/hoj/pojo/entity/judge/Judge.java | 120 + .../hoj/pojo/entity/judge/JudgeCase.java | 74 + .../hoj/pojo/entity/judge/JudgeServer.java | 63 + .../pojo/entity/judge/RemoteJudgeAccount.java | 48 + .../hoj/pojo/entity/msg/AdminSysNotice.java | 54 + .../hcode/hoj/pojo/entity/msg/MsgRemind.java | 68 + .../hoj/pojo/entity/msg/UserSysNotice.java | 48 + .../hoj/pojo/entity/problem/Category.java | 38 + .../hoj/pojo/entity/problem/CodeTemplate.java | 47 + .../hoj/pojo/entity/problem/Language.java | 59 + .../hoj/pojo/entity/problem/Problem.java | 136 + .../hoj/pojo/entity/problem/ProblemCase.java | 50 + .../hoj/pojo/entity/problem/ProblemCount.java | 70 + .../pojo/entity/problem/ProblemLanguage.java | 38 + .../hoj/pojo/entity/problem/ProblemTag.java | 38 + .../hcode/hoj/pojo/entity/problem/Tag.java | 55 + .../entity/problem/TagClassification.java | 45 + .../training/MappingTrainingCategory.java | 43 + .../hoj/pojo/entity/training/Training.java | 68 + .../entity/training/TrainingCategory.java | 47 + .../pojo/entity/training/TrainingProblem.java | 51 + .../pojo/entity/training/TrainingRecord.java | 53 + .../entity/training/TrainingRegister.java | 46 + .../top/hcode/hoj/pojo/entity/user/Auth.java | 51 + .../top/hcode/hoj/pojo/entity/user/Role.java | 53 + .../hcode/hoj/pojo/entity/user/RoleAuth.java | 40 + .../hcode/hoj/pojo/entity/user/Session.java | 41 + .../hoj/pojo/entity/user/UserAcproblem.java | 51 + .../hcode/hoj/pojo/entity/user/UserInfo.java | 103 + .../hoj/pojo/entity/user/UserRecord.java | 45 + .../hcode/hoj/pojo/entity/user/UserRole.java | 45 + src/hoj-springboot/pom.xml | 126 + src/hoj-vue/.gitignore | 23 + src/hoj-vue/README.md | 19 + src/hoj-vue/babel.config.js | 5 + src/hoj-vue/package-lock.json | 25960 ++++++++++++++++ src/hoj-vue/package.json | 59 + src/hoj-vue/public/favicon.ico | Bin 0 -> 17750 bytes src/hoj-vue/public/index.html | 218 + src/hoj-vue/src/App.vue | 709 + src/hoj-vue/src/assets/acm.jpg | Bin 0 -> 13574 bytes src/hoj-vue/src/assets/atcoder-logo.png | Bin 0 -> 11143 bytes src/hoj-vue/src/assets/backstage.png | Bin 0 -> 9449 bytes src/hoj-vue/src/assets/codeforces-logo.png | Bin 0 -> 33908 bytes src/hoj-vue/src/assets/default.jpg | Bin 0 -> 16184 bytes src/hoj-vue/src/assets/gym-logo.png | Bin 0 -> 31119 bytes src/hoj-vue/src/assets/hdu-logo.png | Bin 0 -> 35182 bytes src/hoj-vue/src/assets/home1.jfif | Bin 0 -> 286527 bytes src/hoj-vue/src/assets/home2.jpeg | Bin 0 -> 58258 bytes src/hoj-vue/src/assets/icon.png | Bin 0 -> 4568 bytes src/hoj-vue/src/assets/logo.png | Bin 0 -> 8675 bytes src/hoj-vue/src/assets/oi.jpg | Bin 0 -> 12205 bytes src/hoj-vue/src/assets/poj-logo.png | Bin 0 -> 6508 bytes src/hoj-vue/src/assets/spoj-logo.png | Bin 0 -> 31489 bytes src/hoj-vue/src/common/api.js | 1866 ++ src/hoj-vue/src/common/codeblock.js | 32 + src/hoj-vue/src/common/constants.js | 317 + src/hoj-vue/src/common/filters.js | 52 + src/hoj-vue/src/common/highlight.js | 26 + src/hoj-vue/src/common/katex.js | 36 + src/hoj-vue/src/common/logo.js | 15 + src/hoj-vue/src/common/message.js | 42 + src/hoj-vue/src/common/storage.js | 37 + src/hoj-vue/src/common/time.js | 79 + src/hoj-vue/src/common/utils.js | 187 + .../src/components/admin/Accordion.vue | 91 + .../src/components/admin/AddExtraFile.vue | 146 + .../src/components/admin/AddPublicProblem.vue | 170 + .../src/components/admin/CodeMirror.vue | 107 + src/hoj-vue/src/components/admin/Editor.vue | 193 + .../src/components/admin/KatexEditor.vue | 45 + .../components/admin/RemoteJudgeAccount.vue | 133 + src/hoj-vue/src/components/admin/infoCard.vue | 90 + .../src/components/oj/comment/comment.vue | 1279 + .../src/components/oj/comment/emoji.json | 1 + .../components/oj/common/Announcements.vue | 236 + .../src/components/oj/common/CodeMirror.vue | 834 + .../src/components/oj/common/Highlight.vue | 50 + .../src/components/oj/common/Login.vue | 217 + .../src/components/oj/common/Marquee.vue | 80 + .../src/components/oj/common/NavBar.vue | 845 + .../src/components/oj/common/Pagination.vue | 94 + .../src/components/oj/common/Register.vue | 315 + .../components/oj/common/ResetPassword.vue | 208 + .../components/oj/group/AddGroupProblem.vue | 87 + .../components/oj/group/AddPublicProblem.vue | 190 + .../src/components/oj/group/Announcement.vue | 203 + .../components/oj/group/AnnouncementList.vue | 354 + .../src/components/oj/group/Contest.vue | 659 + .../src/components/oj/group/ContestList.vue | 313 + .../components/oj/group/DiscussionList.vue | 248 + .../src/components/oj/group/MemberList.vue | 288 + .../src/components/oj/group/Problem.vue | 1499 + .../src/components/oj/group/ProblemList.vue | 459 + .../src/components/oj/group/Training.vue | 320 + .../src/components/oj/group/TrainingList.vue | 208 + .../oj/group/TrainingProblemList.vue | 292 + src/hoj-vue/src/components/oj/msg/msgSvg.vue | 23 + .../src/components/oj/setting/Account.vue | 428 + .../src/components/oj/setting/UserInfo.vue | 454 + src/hoj-vue/src/i18n/admin/en-US.js | 442 + src/hoj-vue/src/i18n/admin/zh-CN.js | 438 + src/hoj-vue/src/i18n/index.js | 32 + src/hoj-vue/src/i18n/oj/en-US.js | 696 + src/hoj-vue/src/i18n/oj/zh-CN.js | 696 + src/hoj-vue/src/main.js | 101 + src/hoj-vue/src/router/adminRoutes.js | 198 + src/hoj-vue/src/router/index.js | 142 + src/hoj-vue/src/router/ojRoutes.js | 435 + src/hoj-vue/src/store/contest.js | 282 + src/hoj-vue/src/store/group.js | 99 + src/hoj-vue/src/store/index.js | 139 + src/hoj-vue/src/store/training.js | 126 + src/hoj-vue/src/store/user.js | 110 + src/hoj-vue/src/views/404.vue | 263 + src/hoj-vue/src/views/admin/Dashboard.vue | 422 + src/hoj-vue/src/views/admin/Home.vue | 732 + src/hoj-vue/src/views/admin/Login.vue | 151 + .../src/views/admin/contest/Contest.vue | 644 + .../src/views/admin/contest/ContestList.vue | 324 + .../src/views/admin/discussion/Discussion.vue | 451 + .../src/views/admin/general/Announcement.vue | 388 + .../src/views/admin/general/SysNotice.vue | 331 + .../src/views/admin/general/SysSwitch.vue | 276 + .../src/views/admin/general/SystemConfig.vue | 474 + src/hoj-vue/src/views/admin/general/User.vue | 920 + .../views/admin/problem/GroupProblemList.vue | 250 + .../views/admin/problem/ImportAndExport.vue | 312 + .../src/views/admin/problem/Problem.vue | 1589 + .../src/views/admin/problem/ProblemList.vue | 675 + src/hoj-vue/src/views/admin/problem/Tag.vue | 434 + .../src/views/admin/training/Category.vue | 190 + .../src/views/admin/training/Training.vue | 250 + .../src/views/admin/training/TrainingList.vue | 246 + .../admin/training/TrainingProblemList.vue | 435 + src/hoj-vue/src/views/oj/Home.vue | 679 + src/hoj-vue/src/views/oj/about/Developer.vue | 118 + .../src/views/oj/about/Introduction.vue | 196 + .../src/views/oj/contest/ContestDetails.vue | 573 + .../src/views/oj/contest/ContestList.vue | 482 + .../oj/contest/children/ACMContestRank.vue | 699 + .../oj/contest/children/ACMInfoAdmin.vue | 241 + .../oj/contest/children/ContestAdminPrint.vue | 195 + .../oj/contest/children/ContestComment.vue | 12 + .../oj/contest/children/ContestPrint.vue | 96 + .../contest/children/ContestProblemList.vue | 249 + .../views/oj/contest/children/ContestRank.vue | 46 + .../contest/children/ContestRejudgeAdmin.vue | 110 + .../oj/contest/children/OIContestRank.vue | 593 + .../oj/contest/children/contestRankMixin.js | 111 + .../oj/contest/outside/ACMScoreBoard.vue | 605 + .../views/oj/contest/outside/OIScoreBoard.vue | 552 + .../oj/contest/outside/scoreBoardMixin.js | 162 + .../src/views/oj/discussion/discussion.vue | 471 + .../views/oj/discussion/discussionList.vue | 822 + .../src/views/oj/group/GroupDetails.vue | 628 + src/hoj-vue/src/views/oj/group/GroupList.vue | 683 + .../group/children/GroupAnnouncementList.vue | 68 + .../oj/group/children/GroupContestList.vue | 580 + .../oj/group/children/GroupDiscussionList.vue | 605 + .../oj/group/children/GroupMemberList.vue | 200 + .../oj/group/children/GroupProblemList.vue | 359 + .../src/views/oj/group/children/GroupRank.vue | 269 + .../views/oj/group/children/GroupSetting.vue | 551 + .../oj/group/children/GroupTrainingList.vue | 367 + src/hoj-vue/src/views/oj/message/SysMsg.vue | 226 + src/hoj-vue/src/views/oj/message/UserMsg.vue | 343 + src/hoj-vue/src/views/oj/message/message.vue | 147 + src/hoj-vue/src/views/oj/problem/Problem.vue | 1832 ++ .../src/views/oj/problem/ProblemList.vue | 852 + src/hoj-vue/src/views/oj/problem/chartData.js | 123 + src/hoj-vue/src/views/oj/rank/ACMRank.vue | 347 + src/hoj-vue/src/views/oj/rank/OIRank.vue | 326 + .../src/views/oj/status/SubmissionDetails.vue | 540 + .../src/views/oj/status/SubmissionList.vue | 1130 + .../src/views/oj/training/TrainingDetails.vue | 363 + .../src/views/oj/training/TrainingList.vue | 347 + .../views/oj/training/TrainingProblemList.vue | 228 + .../src/views/oj/training/TrainingRank.vue | 350 + src/hoj-vue/src/views/oj/user/Logout.vue | 17 + .../src/views/oj/user/SetNewPassword.vue | 180 + src/hoj-vue/src/views/oj/user/Setting.vue | 48 + src/hoj-vue/src/views/oj/user/UserHome.vue | 506 + src/hoj-vue/vue.config.js | 119 + src/judger/README.md | 1 + src/judger/SandBox-v1.5.1 | Bin 0 -> 14360576 bytes src/sqlAndsetting/README.md | 1 + src/sqlAndsetting/hoj-update.sql | 922 + src/sqlAndsetting/hoj.sql | 1156 + src/sqlAndsetting/nacos.sql | 222 + 877 files changed, 138706 insertions(+) create mode 100644 src/hoj-springboot/.gitignore create mode 100644 src/hoj-springboot/DataBackup/pom.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/DataBackupApplication.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/advice/GlobalExceptionAdvice.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccess.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccessEnum.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusAccessDeniedException.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusFailException.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusForbiddenException.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusNotFoundException.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusSystemErrorException.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/result/CommonResult.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/result/ResultStatus.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/AsyncTaskConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/DataSourceConfigure.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/DruidConfigure.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/JedisPoolConfigure.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/JudgeAsyncTaskConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/MyMetaObjectConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/MybatisPlusConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RedisAutoConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RedisConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RestTemplateConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/ShiroConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/StartupRunner.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/SwaggerConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/TomcatConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/WebMvcConfig.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminAccountController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminContestController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminDiscussionController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminGroupProblemController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminJudgeController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminProblemController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTagController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTrainingCategoryController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTrainingController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminUserController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AnnouncementController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/ConfigController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/DashboardController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/SwitchController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ContestFileController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImageController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImportFpsProblemController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImportQDUOJProblemController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/MarkDownFileController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ProblemFileController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/TestCaseController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/UserFileController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupAnnouncementController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupContestController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupDiscussionController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupMemberController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupProblemController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupRankController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupTrainingController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/AdminNoticeController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/NoticeController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/UserMessageController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/AccountController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/CommentController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/CommonController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestAdminController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestScoreboardController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/DiscussionController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/HomeController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/JudgeController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/PassportController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ProblemController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/RankController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/TrainingController.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/AtCoderLanguageStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/LanguageContext.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/LanguageStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/SPOJLanguageStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/AtCoderProblemStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/CFProblemStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/GYMProblemStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/HDUProblemStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/POJProblemStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/ProblemContext.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/ProblemStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/SPOJProblemStrategy.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/AnnouncementEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/FileEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/impl/AnnouncementEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/impl/FileEntityEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestAnnouncementEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestExplanationEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestPrintEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestProblemEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestRecordEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestRegisterEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestScoreEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestAnnouncementEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestExplanationEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestPrintEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestProblemEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestRecordEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestRegisterEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestScoreEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentLikeEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionLikeEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionReportEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/ReplyEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/CommentEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/CommentLikeEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionLikeEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionReportEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/ReplyEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupAnnouncementEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupContestEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupDiscussionEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupMemberEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupProblemEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupTrainingEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupAnnouncementEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupContestEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupDiscussionEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupMemberEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupProblemEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupTrainingEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeCaseEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeServerEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/RemoteJudgeAccountEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeCaseEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeServerEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/RemoteJudgeAccountEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/AdminSysNoticeEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/MsgRemindEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/UserSysNoticeEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/AdminSysNoticeEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/MsgRemindEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/UserSysNoticeEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CategoryEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CodeTemplateEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/LanguageEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCaseEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCountEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemLanguageEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemTagEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagClassificationEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CategoryEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CodeTemplateEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/LanguageEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemCaseEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemCountServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemLanguageEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemTagEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagClassificationEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/MappingTrainingCategoryEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingCategoryEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingProblemEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRecordEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRegisterEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/MappingTrainingCategoryEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingCategoryEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingProblemEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingRecordEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingRegisterEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/AuthEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleAuthEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/SessionEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserAcproblemEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserInfoEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserRecordEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserRoleEntityService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/AuthEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleAuthEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/SessionEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserAcproblemEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserInfoEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserRecordEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserRoleEntityServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/exception/AccessException.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/interceptor/AccessInterceptor.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/AbstractReceiver.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/ChooseUtils.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/Dispatcher.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/remote/RemoteJudgeDispatcher.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/remote/RemoteJudgeReceiver.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/self/JudgeDispatcher.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/self/JudgeReceiver.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/account/AdminAccountManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/announcement/AdminAnnouncementManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestAnnouncementManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/discussion/AdminDiscussionManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/AdminGroupProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/AdminProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/RemoteProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/rejudge/RejudgeManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/system/ConfigManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/system/DashboardManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/tag/AdminTagManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingCategoryManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingRecordManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/user/AdminUserManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/email/EmailManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ContestFileManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImageManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImportFpsProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImportQDUOJProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/MarkDownFileManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ProblemFileManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/TestCaseManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/UserFileManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/GroupManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/GroupRankManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/announcement/GroupAnnouncementManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestAnnouncementManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/discussion/GroupDiscussionManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/member/GroupMemberManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/problem/GroupProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/training/GroupTrainingManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/training/GroupTrainingProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/AdminNoticeManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/NoticeManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/UserMessageManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/AccountManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/BeforeDispatchInitManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/CommentManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/CommonManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestAdminManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestCalculateRankManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestRankManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestScoreboardManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/DiscussionManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/HomeManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/JudgeManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/PassportManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ProblemManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/RankManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/TrainingManager.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AdminSysNoticeMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AnnouncementMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AuthMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CategoryMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CodeTemplateMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CommentLikeMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CommentMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestAnnouncementMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestExplanationMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestPrintMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestProblemMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestRecordMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestRegisterMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestScoreMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionLikeMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionReportMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/FileMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupAnnouncementMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupContestMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupDiscussionMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupMemberMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupProblemMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupTrainingMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/LanguageMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/MappingTrainingCategoryMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/MsgRemindMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemLanguageMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemTagMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RemoteJudgeAccountMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ReplyMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleAuthMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/SessionMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagClassificationMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingCategoryMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingProblemMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRecordMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRegisterMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserInfoMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserRecordMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserRoleMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserSysNoticeMapper.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/AdminSysNoticeMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/AnnouncementMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/CommentMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestExplanationMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestProblemMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestRecordMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestRegisterMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestScoreMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/DiscussionMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/DiscussionReportMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupAnnouncementMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupContestMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupDiscussionMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupMemberMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupProblemMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupTrainingMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/JudgeMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/MsgRemindMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ProblemCountMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ProblemMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ReplyMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/RoleAuthMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/RoleMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/SessionMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TagMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingCategoryMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingProblemMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingRecordMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserAcproblemMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserInfoMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserRecordMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserRoleMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserSysNoticeMapper.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/bo/EmailRuleBo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AdminEditUserDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AnnouncementDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ApplyResetPasswordDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeEmailDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeGroupProblemProgressDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangePasswordDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckACDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckUsernameOrEmailDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestPrintDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestProblemDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestRankDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/DBAndRedisConfigDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/EmailConfigDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/LoginDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/PidListDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ProblemDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/QDOJProblemDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterContestDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterTrainingDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ReplyDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ResetPasswordDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitIdListDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitJudgeDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SwitchConfigDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TestEmailDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingProblemDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/UserReadContestAnnouncementDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/WebConfigDto.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ACMContestRankVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ACMRankVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AccessVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AdminContestVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AdminSysNoticeVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AnnouncementVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CaptchaVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ChangeAccountVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CheckUsernameOrEmailVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CommentListVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CommentVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ConfigVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestOutsideInfo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestProblemVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestRecordVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestRegisterCountVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/DiscussionReportVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/DiscussionVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ExcelUserVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/GroupMemberVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/GroupVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ImportProblemVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/JudgeVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/OIContestRankVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/OIRankVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemCountVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemInfoVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemTagVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RandomProblemVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RegisterCodeVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ReplyVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RoleAuthsVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SubmissionInfoVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SysMsgVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TestJudgeVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingRankVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingRecordVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserCalendarHeatmapVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserHomeVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserInfoVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserMsgVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserRolesVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserUnreadMsgCountVo.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/schedule/ScheduleService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/schedule/ScheduleServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/account/AdminAccountService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/account/impl/AdminAccountServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/announcement/AdminAnnouncementService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/announcement/impl/AdminAnnouncementServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestAnnouncementService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestAnnouncementServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/discussion/AdminDiscussionService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/discussion/impl/AdminDiscussionServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/AdminGroupProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/AdminProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/impl/AdminGroupProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/impl/AdminProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/rejudge/RejudgeService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/rejudge/impl/RejudgeServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/ConfigService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/DashboardService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/impl/ConfigServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/impl/DashboardServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/tag/AdminTagService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/tag/impl/AdminTagServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingCategoryService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingCategoryServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/user/AdminUserService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/user/impl/AdminUserServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ContestFileService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImageService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportFpsProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportQDUOJProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/MarkDownFileService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ProblemFileService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/TestCaseService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/UserFileService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ContestFileServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImageServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImportFpsProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImportQDUOJProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/MarkDownFileServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ProblemFileServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/TestCaseServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/UserFileServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/GroupRankService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/GroupService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/announcement/GroupAnnouncementService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/announcement/impl/GroupAnnouncementServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestAnnouncementService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestAnnouncementServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/discussion/GroupDiscussionService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/discussion/impl/GroupDiscussionServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/impl/GroupRankServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/impl/GroupServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/member/GroupMemberService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/member/impl/GroupMemberServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/problem/GroupProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/problem/impl/GroupProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/GroupTrainingProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/GroupTrainingService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/impl/GroupTrainingProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/impl/GroupTrainingServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/AdminNoticeService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/NoticeService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/UserMessageService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/AdminNoticeServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/NoticeServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/UserMessageServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/AccountService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/CommentService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/CommonService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestAdminService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestScoreboardService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/DiscussionService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/HomeService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/JudgeService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/PassportService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ProblemService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/RankService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/TrainingService.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/AccountServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/CommentServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/CommonServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestAdminServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestScoreboardServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/DiscussionServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/HomeServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/JudgeServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/PassportServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ProblemServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/RankServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/TrainingServiceImpl.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/AccountProfile.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/AccountRealm.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/JwtFilter.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/JwtToken.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/CodeForcesUtils.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ConfigUtils.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/Constants.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/IpUtils.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/JsoupUtils.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/JwtUtils.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/RedisUtils.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ServiceContextUtils.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ShiroUtils.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/AccessValidator.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/ContestValidator.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/GroupValidator.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/JudgeValidator.java create mode 100644 src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/TrainingValidator.java create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/CodeForcesAES.js create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/application-dev.yml create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/application-prod.yml create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/application.yml create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/banner.txt create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/bootstrap.yml create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/email-rule.yml create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/logback-spring.xml create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_registerCode.html create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_resetPassword.html create mode 100644 src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_testEmail.html create mode 100644 src/hoj-springboot/DataBackup/src/test/java/top/hcode/hoj/DataBackupApplicationTests.java create mode 100644 src/hoj-springboot/JudgeServer/pom.xml create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/JudgeServerApplication.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/CommonResult.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/ResultStatus.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/CompileError.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/RuntimeError.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SubmitError.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SystemError.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/AsyncTaskConfig.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/DruidConfiguration.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/MyMetaObjectConfig.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/MybatisPlusConfig.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/NacosConfig.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/RestTemplateConfig.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/StartupRunner.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/controller/JudgeController.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/controller/SystemConfigController.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestRecordEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeCaseEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeServerEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCaseEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCountEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/RemoteJudgeAccountEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserAcproblemEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserRecordEntityService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ContestEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ContestRecordEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeCaseEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeServerEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemCaseEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemCountEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/RemoteJudgeAccountEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/UserAcproblemEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/UserRecordEntityServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/AbstractJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/Compiler.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeContext.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeRun.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeStrategy.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/ProblemTestCaseUtils.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/SandboxRun.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/JudgeDTO.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/JudgeGlobalDTO.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/SandBoxRes.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/DefaultJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/InteractiveJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/SpecialJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/TestJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestRecordMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/RemoteJudgeAccountMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserRecordMapper.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeCaseMapper.xml create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeMapper.xml create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeContext.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeGetResult.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeToSubmit.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/entity/RemoteJudgeDTO.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/entity/RemoteJudgeRes.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/AtCoderJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/CodeForcesJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/GYMJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/HDUJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/POJJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/SPOJJudge.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/RemoteJudgeFactory.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/RemoteJudgeStrategy.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/JudgeService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/RemoteJudgeService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/SystemConfigService.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/JudgeServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/RemoteJudgeServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/SystemConfigServiceImpl.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/CodeForcesUtils.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/Constants.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/IpUtils.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/JsoupUtils.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/JudgeUtils.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/ThreadPoolUtils.java create mode 100644 src/hoj-springboot/JudgeServer/src/main/resources/CodeForcesAES.js create mode 100644 src/hoj-springboot/JudgeServer/src/main/resources/application.yml create mode 100644 src/hoj-springboot/JudgeServer/src/main/resources/banner.txt create mode 100644 src/hoj-springboot/JudgeServer/src/main/resources/bootstrap.yml create mode 100644 src/hoj-springboot/JudgeServer/src/main/resources/logback-spring.xml create mode 100644 src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/JudgeServerApplicationTests.java create mode 100644 src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/task/Impl/CodeForcesJudgeTest.java create mode 100644 src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/task/Impl/HDUJudgeTest.java create mode 100644 src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/test.html create mode 100644 src/hoj-springboot/api/pom.xml create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/CompileDTO.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeReq.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeRes.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/ToJudgeDTO.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/common/Announcement.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/common/File.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/Contest.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestAnnouncement.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestExplanation.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestPrint.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestProblem.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestRecord.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestRegister.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestScore.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Comment.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/CommentLike.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Discussion.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/DiscussionLike.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/DiscussionReport.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Reply.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/group/Group.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/group/GroupMember.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/Judge.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/JudgeCase.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/JudgeServer.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/RemoteJudgeAccount.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/AdminSysNotice.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/MsgRemind.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/UserSysNotice.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Category.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/CodeTemplate.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Language.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Problem.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemCase.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemCount.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemLanguage.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemTag.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Tag.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/TagClassification.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/MappingTrainingCategory.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/Training.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingCategory.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingProblem.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingRecord.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingRegister.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Auth.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Role.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/RoleAuth.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Session.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserAcproblem.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserInfo.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserRecord.java create mode 100644 src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserRole.java create mode 100644 src/hoj-springboot/pom.xml create mode 100644 src/hoj-vue/.gitignore create mode 100644 src/hoj-vue/README.md create mode 100644 src/hoj-vue/babel.config.js create mode 100644 src/hoj-vue/package-lock.json create mode 100644 src/hoj-vue/package.json create mode 100644 src/hoj-vue/public/favicon.ico create mode 100644 src/hoj-vue/public/index.html create mode 100644 src/hoj-vue/src/App.vue create mode 100644 src/hoj-vue/src/assets/acm.jpg create mode 100644 src/hoj-vue/src/assets/atcoder-logo.png create mode 100644 src/hoj-vue/src/assets/backstage.png create mode 100644 src/hoj-vue/src/assets/codeforces-logo.png create mode 100644 src/hoj-vue/src/assets/default.jpg create mode 100644 src/hoj-vue/src/assets/gym-logo.png create mode 100644 src/hoj-vue/src/assets/hdu-logo.png create mode 100644 src/hoj-vue/src/assets/home1.jfif create mode 100644 src/hoj-vue/src/assets/home2.jpeg create mode 100644 src/hoj-vue/src/assets/icon.png create mode 100644 src/hoj-vue/src/assets/logo.png create mode 100644 src/hoj-vue/src/assets/oi.jpg create mode 100644 src/hoj-vue/src/assets/poj-logo.png create mode 100644 src/hoj-vue/src/assets/spoj-logo.png create mode 100644 src/hoj-vue/src/common/api.js create mode 100644 src/hoj-vue/src/common/codeblock.js create mode 100644 src/hoj-vue/src/common/constants.js create mode 100644 src/hoj-vue/src/common/filters.js create mode 100644 src/hoj-vue/src/common/highlight.js create mode 100644 src/hoj-vue/src/common/katex.js create mode 100644 src/hoj-vue/src/common/logo.js create mode 100644 src/hoj-vue/src/common/message.js create mode 100644 src/hoj-vue/src/common/storage.js create mode 100644 src/hoj-vue/src/common/time.js create mode 100644 src/hoj-vue/src/common/utils.js create mode 100644 src/hoj-vue/src/components/admin/Accordion.vue create mode 100644 src/hoj-vue/src/components/admin/AddExtraFile.vue create mode 100644 src/hoj-vue/src/components/admin/AddPublicProblem.vue create mode 100644 src/hoj-vue/src/components/admin/CodeMirror.vue create mode 100644 src/hoj-vue/src/components/admin/Editor.vue create mode 100644 src/hoj-vue/src/components/admin/KatexEditor.vue create mode 100644 src/hoj-vue/src/components/admin/RemoteJudgeAccount.vue create mode 100644 src/hoj-vue/src/components/admin/infoCard.vue create mode 100644 src/hoj-vue/src/components/oj/comment/comment.vue create mode 100644 src/hoj-vue/src/components/oj/comment/emoji.json create mode 100644 src/hoj-vue/src/components/oj/common/Announcements.vue create mode 100644 src/hoj-vue/src/components/oj/common/CodeMirror.vue create mode 100644 src/hoj-vue/src/components/oj/common/Highlight.vue create mode 100644 src/hoj-vue/src/components/oj/common/Login.vue create mode 100644 src/hoj-vue/src/components/oj/common/Marquee.vue create mode 100644 src/hoj-vue/src/components/oj/common/NavBar.vue create mode 100644 src/hoj-vue/src/components/oj/common/Pagination.vue create mode 100644 src/hoj-vue/src/components/oj/common/Register.vue create mode 100644 src/hoj-vue/src/components/oj/common/ResetPassword.vue create mode 100644 src/hoj-vue/src/components/oj/group/AddGroupProblem.vue create mode 100644 src/hoj-vue/src/components/oj/group/AddPublicProblem.vue create mode 100644 src/hoj-vue/src/components/oj/group/Announcement.vue create mode 100644 src/hoj-vue/src/components/oj/group/AnnouncementList.vue create mode 100644 src/hoj-vue/src/components/oj/group/Contest.vue create mode 100644 src/hoj-vue/src/components/oj/group/ContestList.vue create mode 100644 src/hoj-vue/src/components/oj/group/DiscussionList.vue create mode 100644 src/hoj-vue/src/components/oj/group/MemberList.vue create mode 100644 src/hoj-vue/src/components/oj/group/Problem.vue create mode 100644 src/hoj-vue/src/components/oj/group/ProblemList.vue create mode 100644 src/hoj-vue/src/components/oj/group/Training.vue create mode 100644 src/hoj-vue/src/components/oj/group/TrainingList.vue create mode 100644 src/hoj-vue/src/components/oj/group/TrainingProblemList.vue create mode 100644 src/hoj-vue/src/components/oj/msg/msgSvg.vue create mode 100644 src/hoj-vue/src/components/oj/setting/Account.vue create mode 100644 src/hoj-vue/src/components/oj/setting/UserInfo.vue create mode 100644 src/hoj-vue/src/i18n/admin/en-US.js create mode 100644 src/hoj-vue/src/i18n/admin/zh-CN.js create mode 100644 src/hoj-vue/src/i18n/index.js create mode 100644 src/hoj-vue/src/i18n/oj/en-US.js create mode 100644 src/hoj-vue/src/i18n/oj/zh-CN.js create mode 100644 src/hoj-vue/src/main.js create mode 100644 src/hoj-vue/src/router/adminRoutes.js create mode 100644 src/hoj-vue/src/router/index.js create mode 100644 src/hoj-vue/src/router/ojRoutes.js create mode 100644 src/hoj-vue/src/store/contest.js create mode 100644 src/hoj-vue/src/store/group.js create mode 100644 src/hoj-vue/src/store/index.js create mode 100644 src/hoj-vue/src/store/training.js create mode 100644 src/hoj-vue/src/store/user.js create mode 100644 src/hoj-vue/src/views/404.vue create mode 100644 src/hoj-vue/src/views/admin/Dashboard.vue create mode 100644 src/hoj-vue/src/views/admin/Home.vue create mode 100644 src/hoj-vue/src/views/admin/Login.vue create mode 100644 src/hoj-vue/src/views/admin/contest/Contest.vue create mode 100644 src/hoj-vue/src/views/admin/contest/ContestList.vue create mode 100644 src/hoj-vue/src/views/admin/discussion/Discussion.vue create mode 100644 src/hoj-vue/src/views/admin/general/Announcement.vue create mode 100644 src/hoj-vue/src/views/admin/general/SysNotice.vue create mode 100644 src/hoj-vue/src/views/admin/general/SysSwitch.vue create mode 100644 src/hoj-vue/src/views/admin/general/SystemConfig.vue create mode 100644 src/hoj-vue/src/views/admin/general/User.vue create mode 100644 src/hoj-vue/src/views/admin/problem/GroupProblemList.vue create mode 100644 src/hoj-vue/src/views/admin/problem/ImportAndExport.vue create mode 100644 src/hoj-vue/src/views/admin/problem/Problem.vue create mode 100644 src/hoj-vue/src/views/admin/problem/ProblemList.vue create mode 100644 src/hoj-vue/src/views/admin/problem/Tag.vue create mode 100644 src/hoj-vue/src/views/admin/training/Category.vue create mode 100644 src/hoj-vue/src/views/admin/training/Training.vue create mode 100644 src/hoj-vue/src/views/admin/training/TrainingList.vue create mode 100644 src/hoj-vue/src/views/admin/training/TrainingProblemList.vue create mode 100644 src/hoj-vue/src/views/oj/Home.vue create mode 100644 src/hoj-vue/src/views/oj/about/Developer.vue create mode 100644 src/hoj-vue/src/views/oj/about/Introduction.vue create mode 100644 src/hoj-vue/src/views/oj/contest/ContestDetails.vue create mode 100644 src/hoj-vue/src/views/oj/contest/ContestList.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/ACMContestRank.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/ACMInfoAdmin.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/ContestAdminPrint.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/ContestComment.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/ContestPrint.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/ContestProblemList.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/ContestRank.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/ContestRejudgeAdmin.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/OIContestRank.vue create mode 100644 src/hoj-vue/src/views/oj/contest/children/contestRankMixin.js create mode 100644 src/hoj-vue/src/views/oj/contest/outside/ACMScoreBoard.vue create mode 100644 src/hoj-vue/src/views/oj/contest/outside/OIScoreBoard.vue create mode 100644 src/hoj-vue/src/views/oj/contest/outside/scoreBoardMixin.js create mode 100644 src/hoj-vue/src/views/oj/discussion/discussion.vue create mode 100644 src/hoj-vue/src/views/oj/discussion/discussionList.vue create mode 100644 src/hoj-vue/src/views/oj/group/GroupDetails.vue create mode 100644 src/hoj-vue/src/views/oj/group/GroupList.vue create mode 100644 src/hoj-vue/src/views/oj/group/children/GroupAnnouncementList.vue create mode 100644 src/hoj-vue/src/views/oj/group/children/GroupContestList.vue create mode 100644 src/hoj-vue/src/views/oj/group/children/GroupDiscussionList.vue create mode 100644 src/hoj-vue/src/views/oj/group/children/GroupMemberList.vue create mode 100644 src/hoj-vue/src/views/oj/group/children/GroupProblemList.vue create mode 100644 src/hoj-vue/src/views/oj/group/children/GroupRank.vue create mode 100644 src/hoj-vue/src/views/oj/group/children/GroupSetting.vue create mode 100644 src/hoj-vue/src/views/oj/group/children/GroupTrainingList.vue create mode 100644 src/hoj-vue/src/views/oj/message/SysMsg.vue create mode 100644 src/hoj-vue/src/views/oj/message/UserMsg.vue create mode 100644 src/hoj-vue/src/views/oj/message/message.vue create mode 100644 src/hoj-vue/src/views/oj/problem/Problem.vue create mode 100644 src/hoj-vue/src/views/oj/problem/ProblemList.vue create mode 100644 src/hoj-vue/src/views/oj/problem/chartData.js create mode 100644 src/hoj-vue/src/views/oj/rank/ACMRank.vue create mode 100644 src/hoj-vue/src/views/oj/rank/OIRank.vue create mode 100644 src/hoj-vue/src/views/oj/status/SubmissionDetails.vue create mode 100644 src/hoj-vue/src/views/oj/status/SubmissionList.vue create mode 100644 src/hoj-vue/src/views/oj/training/TrainingDetails.vue create mode 100644 src/hoj-vue/src/views/oj/training/TrainingList.vue create mode 100644 src/hoj-vue/src/views/oj/training/TrainingProblemList.vue create mode 100644 src/hoj-vue/src/views/oj/training/TrainingRank.vue create mode 100644 src/hoj-vue/src/views/oj/user/Logout.vue create mode 100644 src/hoj-vue/src/views/oj/user/SetNewPassword.vue create mode 100644 src/hoj-vue/src/views/oj/user/Setting.vue create mode 100644 src/hoj-vue/src/views/oj/user/UserHome.vue create mode 100644 src/hoj-vue/vue.config.js create mode 100644 src/judger/README.md create mode 100644 src/judger/SandBox-v1.5.1 create mode 100644 src/sqlAndsetting/README.md create mode 100644 src/sqlAndsetting/hoj-update.sql create mode 100644 src/sqlAndsetting/hoj.sql create mode 100644 src/sqlAndsetting/nacos.sql diff --git a/src/hoj-springboot/.gitignore b/src/hoj-springboot/.gitignore new file mode 100644 index 0000000..24cbb6d --- /dev/null +++ b/src/hoj-springboot/.gitignore @@ -0,0 +1,36 @@ +*.classpath + +# Package Files +*.jar +*.war +*.ear +*.log +*.iml + +.DS_Store +node_modules +dist/ +target/ +out/ +.idea/ +.classpath +.project + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/src/hoj-springboot/DataBackup/pom.xml b/src/hoj-springboot/DataBackup/pom.xml new file mode 100644 index 0000000..1a0f0a4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/pom.xml @@ -0,0 +1,208 @@ + + + + hoj-springboot + top.hcode + 1.0-SNAPSHOT + + 4.0.0 + DataBackup + + + + org.springframework.boot + spring-boot-maven-plugin + + + top.hcode.hoj.DataBackupApplication + ZIP + + + + + repackage + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + src/main/resources + + + src/main/java + + **/*.xml + + + + + + + top.hcode + api + 1.0-SNAPSHOT + + + + org.springframework.boot + spring-boot-starter-mail + + + + org.springframework.retry + spring-retry + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + com.alibaba.nacos + nacos-client + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + org.projectlombok + lombok + true + + + com.alibaba + druid + + + com.alibaba + easyexcel + 2.2.7 + + + com.baomidou + mybatis-plus-boot-starter + + + org.crazycake + shiro-redis-spring-boot-starter + + + org.crazycake + shiro-redis + + + + + org.crazycake + shiro-redis + 3.3.1 + + + mysql + mysql-connector-java + + + + cn.hutool + hutool-all + 5.7.22 + + + + com.github.oshi + oshi-core + 5.6.1 + + + + com.vdurmont + emoji-java + 5.1.1 + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + io.lettuce + lettuce-core + + + + + + + io.jsonwebtoken + jjwt + 0.9.1 + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + com.github.whvcse + easy-captcha + 1.6.2 + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + org.jsoup + jsoup + 1.13.1 + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java b/src/hoj-springboot/DataBackup/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java new file mode 100644 index 0000000..663da0b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java @@ -0,0 +1,2118 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.alibaba.druid.pool; + +import com.alibaba.druid.DruidRuntimeException; +import com.alibaba.druid.filter.Filter; +import com.alibaba.druid.filter.FilterChainImpl; +import com.alibaba.druid.filter.FilterManager; +import com.alibaba.druid.pool.vendor.NullExceptionSorter; +import com.alibaba.druid.proxy.jdbc.DataSourceProxy; +import com.alibaba.druid.proxy.jdbc.TransactionInfo; +import com.alibaba.druid.stat.JdbcDataSourceStat; +import com.alibaba.druid.stat.JdbcSqlStat; +import com.alibaba.druid.stat.JdbcStatManager; +import com.alibaba.druid.support.logging.Log; +import com.alibaba.druid.support.logging.LogFactory; +import com.alibaba.druid.util.DruidPasswordCallback; +import com.alibaba.druid.util.Histogram; +import com.alibaba.druid.util.JdbcUtils; +import com.alibaba.druid.util.MySqlUtils; +import com.alibaba.druid.util.StringUtils; +import com.alibaba.druid.util.Utils; +import java.io.PrintWriter; +import java.io.Serializable; +import java.sql.Connection; +import java.sql.Driver; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; +import java.util.concurrent.atomic.AtomicLongFieldUpdater; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; +import java.util.logging.Logger; +import javax.management.JMException; +import javax.management.ObjectName; +import javax.management.openmbean.CompositeDataSupport; +import javax.security.auth.callback.NameCallback; +import javax.security.auth.callback.PasswordCallback; +import javax.sql.DataSource; + +public abstract class DruidAbstractDataSource extends WrapperAdapter implements DruidAbstractDataSourceMBean, DataSource, DataSourceProxy, Serializable { + private static final long serialVersionUID = 1L; + private static final Log LOG = LogFactory.getLog(DruidAbstractDataSource.class); + public static final int DEFAULT_INITIAL_SIZE = 0; + public static final int DEFAULT_MAX_ACTIVE_SIZE = 8; + public static final int DEFAULT_MAX_IDLE = 8; + public static final int DEFAULT_MIN_IDLE = 0; + public static final int DEFAULT_MAX_WAIT = -1; + public static final String DEFAULT_VALIDATION_QUERY = null; + public static final boolean DEFAULT_TEST_ON_BORROW = false; + public static final boolean DEFAULT_TEST_ON_RETURN = false; + public static final boolean DEFAULT_WHILE_IDLE = true; + public static final long DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS = 60000L; + public static final long DEFAULT_TIME_BETWEEN_CONNECT_ERROR_MILLIS = 500L; + public static final int DEFAULT_NUM_TESTS_PER_EVICTION_RUN = 3; + public static final long DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS = 1800000L; + public static final long DEFAULT_MAX_EVICTABLE_IDLE_TIME_MILLIS = 25200000L; + public static final long DEFAULT_PHY_TIMEOUT_MILLIS = -1L; + protected volatile boolean defaultAutoCommit = true; + protected volatile Boolean defaultReadOnly; + protected volatile Integer defaultTransactionIsolation; + protected volatile String defaultCatalog = null; + protected String name; + protected volatile String username; + protected volatile String password; + protected volatile String jdbcUrl; + protected volatile String driverClass; + protected volatile ClassLoader driverClassLoader; + protected volatile Properties connectProperties = new Properties(); + protected volatile PasswordCallback passwordCallback; + protected volatile NameCallback userCallback; + protected volatile int initialSize = 0; + protected volatile int maxActive = 8; + protected volatile int minIdle = 0; + protected volatile int maxIdle = 8; + protected volatile long maxWait = -1L; + protected int notFullTimeoutRetryCount = 0; + protected volatile String validationQuery; + protected volatile int validationQueryTimeout; + protected volatile boolean testOnBorrow; + protected volatile boolean testOnReturn; + protected volatile boolean testWhileIdle; + protected volatile boolean poolPreparedStatements; + protected volatile boolean sharePreparedStatements; + protected volatile int maxPoolPreparedStatementPerConnectionSize; + protected volatile boolean inited; + protected volatile boolean initExceptionThrow; + protected PrintWriter logWriter; + protected List filters; + private boolean clearFiltersEnable; + protected volatile ExceptionSorter exceptionSorter; + protected Driver driver; + protected volatile int queryTimeout; + protected volatile int transactionQueryTimeout; + protected long createTimespan; + protected volatile int maxWaitThreadCount; + protected volatile boolean accessToUnderlyingConnectionAllowed; + protected volatile long timeBetweenEvictionRunsMillis; + protected volatile int numTestsPerEvictionRun; + protected volatile long minEvictableIdleTimeMillis; + protected volatile long maxEvictableIdleTimeMillis; + protected volatile long keepAliveBetweenTimeMillis; + protected volatile long phyTimeoutMillis; + protected volatile long phyMaxUseCount; + protected volatile boolean removeAbandoned; + protected volatile long removeAbandonedTimeoutMillis; + protected volatile boolean logAbandoned; + protected volatile int maxOpenPreparedStatements; + protected volatile List connectionInitSqls; + protected volatile String dbType; + protected volatile long timeBetweenConnectErrorMillis; + protected volatile ValidConnectionChecker validConnectionChecker; + protected final Map activeConnections; + protected static final Object PRESENT = new Object(); + protected long id; + protected int connectionErrorRetryAttempts; + protected boolean breakAfterAcquireFailure; + protected long transactionThresholdMillis; + protected final Date createdTime; + protected Date initedTime; + protected volatile long errorCount; + protected volatile long dupCloseCount; + protected volatile long startTransactionCount; + protected volatile long commitCount; + protected volatile long rollbackCount; + protected volatile long cachedPreparedStatementHitCount; + protected volatile long preparedStatementCount; + protected volatile long closedPreparedStatementCount; + protected volatile long cachedPreparedStatementCount; + protected volatile long cachedPreparedStatementDeleteCount; + protected volatile long cachedPreparedStatementMissCount; + static final AtomicLongFieldUpdater errorCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "errorCount"); + static final AtomicLongFieldUpdater dupCloseCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "dupCloseCount"); + static final AtomicLongFieldUpdater startTransactionCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "startTransactionCount"); + static final AtomicLongFieldUpdater commitCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "commitCount"); + static final AtomicLongFieldUpdater rollbackCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "rollbackCount"); + static final AtomicLongFieldUpdater cachedPreparedStatementHitCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "cachedPreparedStatementHitCount"); + static final AtomicLongFieldUpdater preparedStatementCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "preparedStatementCount"); + static final AtomicLongFieldUpdater closedPreparedStatementCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "closedPreparedStatementCount"); + static final AtomicLongFieldUpdater cachedPreparedStatementCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "cachedPreparedStatementCount"); + static final AtomicLongFieldUpdater cachedPreparedStatementDeleteCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "cachedPreparedStatementDeleteCount"); + static final AtomicLongFieldUpdater cachedPreparedStatementMissCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "cachedPreparedStatementMissCount"); + protected final Histogram transactionHistogram; + private boolean dupCloseLogEnable; + private ObjectName objectName; + protected volatile long executeCount; + protected volatile long executeQueryCount; + protected volatile long executeUpdateCount; + protected volatile long executeBatchCount; + static final AtomicLongFieldUpdater executeQueryCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "executeQueryCount"); + static final AtomicLongFieldUpdater executeUpdateCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "executeUpdateCount"); + static final AtomicLongFieldUpdater executeBatchCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "executeBatchCount"); + static final AtomicLongFieldUpdater executeCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "executeCount"); + protected volatile Throwable createError; + protected volatile Throwable lastError; + protected volatile long lastErrorTimeMillis; + protected volatile Throwable lastCreateError; + protected volatile long lastCreateErrorTimeMillis; + protected volatile long lastCreateStartTimeMillis; + protected boolean isOracle; + protected boolean isMySql; + protected boolean useOracleImplicitCache; + protected ReentrantLock lock; + protected Condition notEmpty; + protected Condition empty; + protected ReentrantLock activeConnectionLock; + protected volatile int createErrorCount; + protected volatile int creatingCount; + protected volatile int directCreateCount; + protected volatile long createCount; + protected volatile long destroyCount; + protected volatile long createStartNanos; + static final AtomicIntegerFieldUpdater createErrorCountUpdater = AtomicIntegerFieldUpdater.newUpdater(DruidAbstractDataSource.class, "createErrorCount"); + static final AtomicIntegerFieldUpdater creatingCountUpdater = AtomicIntegerFieldUpdater.newUpdater(DruidAbstractDataSource.class, "creatingCount"); + static final AtomicIntegerFieldUpdater directCreateCountUpdater = AtomicIntegerFieldUpdater.newUpdater(DruidAbstractDataSource.class, "directCreateCount"); + static final AtomicLongFieldUpdater createCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "createCount"); + static final AtomicLongFieldUpdater destroyCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "destroyCount"); + static final AtomicLongFieldUpdater createStartNanosUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "createStartNanos"); + private Boolean useUnfairLock; + private boolean useLocalSessionState; + protected long timeBetweenLogStatsMillis; + protected DruidDataSourceStatLogger statLogger; + private boolean asyncCloseConnectionEnable; + protected int maxCreateTaskCount; + protected boolean failFast; + protected volatile int failContinuous; + protected volatile long failContinuousTimeMillis; + protected ScheduledExecutorService destroyScheduler; + protected ScheduledExecutorService createScheduler; + static final AtomicLongFieldUpdater failContinuousTimeMillisUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "failContinuousTimeMillis"); + static final AtomicIntegerFieldUpdater failContinuousUpdater = AtomicIntegerFieldUpdater.newUpdater(DruidAbstractDataSource.class, "failContinuous"); + protected boolean initVariants; + protected boolean initGlobalVariants; + protected volatile boolean onFatalError; + protected volatile int onFatalErrorMaxActive; + protected volatile int fatalErrorCount; + protected volatile int fatalErrorCountLastShrink; + protected volatile long lastFatalErrorTimeMillis; + protected volatile String lastFatalErrorSql; + protected volatile Throwable lastFatalError; + protected volatile long connectionIdSeed; + protected volatile long statementIdSeed; + protected volatile long resultSetIdSeed; + protected volatile long transactionIdSeed; + protected volatile long metaDataIdSeed; + static final AtomicLongFieldUpdater connectionIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "connectionIdSeed"); + static final AtomicLongFieldUpdater statementIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "statementIdSeed"); + static final AtomicLongFieldUpdater resultSetIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "resultSetIdSeed"); + static final AtomicLongFieldUpdater transactionIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "transactionIdSeed"); + static final AtomicLongFieldUpdater metaDataIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "metaDataIdSeed"); + + public DruidAbstractDataSource(boolean lockFair) { + this.validationQuery = DEFAULT_VALIDATION_QUERY; + this.validationQueryTimeout = -1; + this.testOnBorrow = false; + this.testOnReturn = false; + this.testWhileIdle = true; + this.poolPreparedStatements = false; + this.sharePreparedStatements = false; + this.maxPoolPreparedStatementPerConnectionSize = 10; + this.inited = false; + this.initExceptionThrow = true; + this.logWriter = new PrintWriter(System.out); + this.filters = new CopyOnWriteArrayList(); + this.clearFiltersEnable = true; + this.exceptionSorter = null; + this.maxWaitThreadCount = -1; + this.accessToUnderlyingConnectionAllowed = true; + this.timeBetweenEvictionRunsMillis = 60000L; + this.numTestsPerEvictionRun = 3; + this.minEvictableIdleTimeMillis = 1800000L; + this.maxEvictableIdleTimeMillis = 25200000L; + this.keepAliveBetweenTimeMillis = 120000L; + this.phyTimeoutMillis = -1L; + this.phyMaxUseCount = -1L; + this.removeAbandonedTimeoutMillis = 300000L; + this.maxOpenPreparedStatements = -1; + this.timeBetweenConnectErrorMillis = 500L; + this.validConnectionChecker = null; + this.activeConnections = new IdentityHashMap(); + this.connectionErrorRetryAttempts = 1; + this.breakAfterAcquireFailure = false; + this.transactionThresholdMillis = 0L; + this.createdTime = new Date(); + this.errorCount = 0L; + this.dupCloseCount = 0L; + this.startTransactionCount = 0L; + this.commitCount = 0L; + this.rollbackCount = 0L; + this.cachedPreparedStatementHitCount = 0L; + this.preparedStatementCount = 0L; + this.closedPreparedStatementCount = 0L; + this.cachedPreparedStatementCount = 0L; + this.cachedPreparedStatementDeleteCount = 0L; + this.cachedPreparedStatementMissCount = 0L; + this.transactionHistogram = new Histogram(new long[]{1L, 10L, 100L, 1000L, 10000L, 100000L}); + this.dupCloseLogEnable = false; + this.executeCount = 0L; + this.executeQueryCount = 0L; + this.executeUpdateCount = 0L; + this.executeBatchCount = 0L; + this.isOracle = false; + this.isMySql = false; + this.useOracleImplicitCache = true; + this.activeConnectionLock = new ReentrantLock(); + this.createErrorCount = 0; + this.creatingCount = 0; + this.directCreateCount = 0; + this.createCount = 0L; + this.destroyCount = 0L; + this.createStartNanos = 0L; + this.useUnfairLock = null; + this.useLocalSessionState = true; + this.statLogger = new DruidDataSourceStatLoggerImpl(); + this.asyncCloseConnectionEnable = false; + this.maxCreateTaskCount = 3; + this.failFast = false; + this.failContinuous = 0; + this.failContinuousTimeMillis = 0L; + this.initVariants = false; + this.initGlobalVariants = false; + this.onFatalError = false; + this.onFatalErrorMaxActive = 0; + this.fatalErrorCount = 0; + this.fatalErrorCountLastShrink = 0; + this.lastFatalErrorTimeMillis = 0L; + this.lastFatalErrorSql = null; + this.lastFatalError = null; + this.connectionIdSeed = 10000L; + this.statementIdSeed = 20000L; + this.resultSetIdSeed = 50000L; + this.transactionIdSeed = 60000L; + this.metaDataIdSeed = 80000L; + this.lock = new ReentrantLock(lockFair); + this.notEmpty = this.lock.newCondition(); + this.empty = this.lock.newCondition(); + } + + public boolean isUseLocalSessionState() { + return this.useLocalSessionState; + } + + public void setUseLocalSessionState(boolean useLocalSessionState) { + this.useLocalSessionState = useLocalSessionState; + } + + public DruidDataSourceStatLogger getStatLogger() { + return this.statLogger; + } + + public void setStatLoggerClassName(String className) { + try { + Class clazz = Class.forName(className); + DruidDataSourceStatLogger statLogger = (DruidDataSourceStatLogger)clazz.newInstance(); + this.setStatLogger(statLogger); + } catch (Exception var4) { + throw new IllegalArgumentException(className, var4); + } + } + + public void setStatLogger(DruidDataSourceStatLogger statLogger) { + this.statLogger = statLogger; + } + + public long getTimeBetweenLogStatsMillis() { + return this.timeBetweenLogStatsMillis; + } + + public void setTimeBetweenLogStatsMillis(long timeBetweenLogStatsMillis) { + this.timeBetweenLogStatsMillis = timeBetweenLogStatsMillis; + } + + public boolean isOracle() { + return this.isOracle; + } + + public void setOracle(boolean isOracle) { + if (this.inited) { + throw new IllegalStateException(); + } else { + this.isOracle = isOracle; + } + } + + public boolean isUseUnfairLock() { + return this.lock.isFair(); + } + + public void setUseUnfairLock(boolean useUnfairLock) { + if (this.lock.isFair() != !useUnfairLock) { + if (!this.inited) { + ReentrantLock lock = this.lock; + lock.lock(); + + try { + if (!this.inited) { + this.lock = new ReentrantLock(!useUnfairLock); + this.notEmpty = this.lock.newCondition(); + this.empty = this.lock.newCondition(); + this.useUnfairLock = useUnfairLock; + } + } finally { + lock.unlock(); + } + } + + } + } + + public boolean isUseOracleImplicitCache() { + return this.useOracleImplicitCache; + } + + public void setUseOracleImplicitCache(boolean useOracleImplicitCache) { + if (this.useOracleImplicitCache != useOracleImplicitCache) { + this.useOracleImplicitCache = useOracleImplicitCache; + boolean isOracleDriver10 = this.isOracle() && this.driver != null && this.driver.getMajorVersion() == 10; + if (isOracleDriver10 && useOracleImplicitCache) { + this.getConnectProperties().setProperty("oracle.jdbc.FreeMemoryOnEnterImplicitCache", "true"); + } else { + this.getConnectProperties().remove("oracle.jdbc.FreeMemoryOnEnterImplicitCache"); + } + } + + } + + public Throwable getLastCreateError() { + return this.lastCreateError; + } + + public Throwable getLastError() { + return this.lastError; + } + + public long getLastErrorTimeMillis() { + return this.lastErrorTimeMillis; + } + + public Date getLastErrorTime() { + return this.lastErrorTimeMillis <= 0L ? null : new Date(this.lastErrorTimeMillis); + } + + public long getLastCreateErrorTimeMillis() { + return this.lastCreateErrorTimeMillis; + } + + public Date getLastCreateErrorTime() { + return this.lastCreateErrorTimeMillis <= 0L ? null : new Date(this.lastCreateErrorTimeMillis); + } + + public int getTransactionQueryTimeout() { + return this.transactionQueryTimeout <= 0 ? this.queryTimeout : this.transactionQueryTimeout; + } + + public void setTransactionQueryTimeout(int transactionQueryTimeout) { + this.transactionQueryTimeout = transactionQueryTimeout; + } + + public long getExecuteCount() { + return this.executeCount + this.executeQueryCount + this.executeUpdateCount + this.executeBatchCount; + } + + public long getExecuteUpdateCount() { + return this.executeUpdateCount; + } + + public long getExecuteQueryCount() { + return this.executeQueryCount; + } + + public long getExecuteBatchCount() { + return this.executeBatchCount; + } + + public long getAndResetExecuteCount() { + return executeCountUpdater.getAndSet(this, 0L) + executeQueryCountUpdater.getAndSet(this, 0L) + executeUpdateCountUpdater.getAndSet(this, 0L) + executeBatchCountUpdater.getAndSet(this, 0L); + } + + public long getExecuteCount2() { + return this.executeCount; + } + + public void incrementExecuteCount() { + executeCountUpdater.incrementAndGet(this); + } + + public void incrementExecuteUpdateCount() { + ++this.executeUpdateCount; + } + + public void incrementExecuteQueryCount() { + ++this.executeQueryCount; + } + + public void incrementExecuteBatchCount() { + ++this.executeBatchCount; + } + + public boolean isDupCloseLogEnable() { + return this.dupCloseLogEnable; + } + + public void setDupCloseLogEnable(boolean dupCloseLogEnable) { + this.dupCloseLogEnable = dupCloseLogEnable; + } + + public ObjectName getObjectName() { + return this.objectName; + } + + public void setObjectName(ObjectName objectName) { + this.objectName = objectName; + } + + public Histogram getTransactionHistogram() { + return this.transactionHistogram; + } + + public void incrementCachedPreparedStatementCount() { + cachedPreparedStatementCountUpdater.incrementAndGet(this); + } + + public void decrementCachedPreparedStatementCount() { + cachedPreparedStatementCountUpdater.decrementAndGet(this); + } + + public void incrementCachedPreparedStatementDeleteCount() { + cachedPreparedStatementDeleteCountUpdater.incrementAndGet(this); + } + + public void incrementCachedPreparedStatementMissCount() { + cachedPreparedStatementMissCountUpdater.incrementAndGet(this); + } + + public long getCachedPreparedStatementMissCount() { + return this.cachedPreparedStatementMissCount; + } + + public long getCachedPreparedStatementAccessCount() { + return this.cachedPreparedStatementMissCount + this.cachedPreparedStatementHitCount; + } + + public long getCachedPreparedStatementDeleteCount() { + return this.cachedPreparedStatementDeleteCount; + } + + public long getCachedPreparedStatementCount() { + return this.cachedPreparedStatementCount; + } + + public void incrementClosedPreparedStatementCount() { + closedPreparedStatementCountUpdater.incrementAndGet(this); + } + + public long getClosedPreparedStatementCount() { + return this.closedPreparedStatementCount; + } + + public void incrementPreparedStatementCount() { + preparedStatementCountUpdater.incrementAndGet(this); + } + + public long getPreparedStatementCount() { + return this.preparedStatementCount; + } + + public void incrementCachedPreparedStatementHitCount() { + cachedPreparedStatementHitCountUpdater.incrementAndGet(this); + } + + public long getCachedPreparedStatementHitCount() { + return this.cachedPreparedStatementHitCount; + } + + public long getTransactionThresholdMillis() { + return this.transactionThresholdMillis; + } + + public void setTransactionThresholdMillis(long transactionThresholdMillis) { + this.transactionThresholdMillis = transactionThresholdMillis; + } + + public abstract void logTransaction(TransactionInfo var1); + + public long[] getTransactionHistogramValues() { + return this.transactionHistogram.toArray(); + } + + public long[] getTransactionHistogramRanges() { + return this.transactionHistogram.getRanges(); + } + + public long getCommitCount() { + return this.commitCount; + } + + public void incrementCommitCount() { + commitCountUpdater.incrementAndGet(this); + } + + public long getRollbackCount() { + return this.rollbackCount; + } + + public void incrementRollbackCount() { + rollbackCountUpdater.incrementAndGet(this); + } + + public long getStartTransactionCount() { + return this.startTransactionCount; + } + + public void incrementStartTransactionCount() { + startTransactionCountUpdater.incrementAndGet(this); + } + + public boolean isBreakAfterAcquireFailure() { + return this.breakAfterAcquireFailure; + } + + public void setBreakAfterAcquireFailure(boolean breakAfterAcquireFailure) { + this.breakAfterAcquireFailure = breakAfterAcquireFailure; + } + + public int getConnectionErrorRetryAttempts() { + return this.connectionErrorRetryAttempts; + } + + public void setConnectionErrorRetryAttempts(int connectionErrorRetryAttempts) { + this.connectionErrorRetryAttempts = connectionErrorRetryAttempts; + } + + public long getDupCloseCount() { + return this.dupCloseCount; + } + + public int getMaxPoolPreparedStatementPerConnectionSize() { + return this.maxPoolPreparedStatementPerConnectionSize; + } + + public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) { + if (maxPoolPreparedStatementPerConnectionSize > 0) { + this.poolPreparedStatements = true; + } else { + this.poolPreparedStatements = false; + } + + this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize; + } + + public boolean isSharePreparedStatements() { + return this.sharePreparedStatements; + } + + public void setSharePreparedStatements(boolean sharePreparedStatements) { + this.sharePreparedStatements = sharePreparedStatements; + } + + public void incrementDupCloseCount() { + dupCloseCountUpdater.incrementAndGet(this); + } + + public ValidConnectionChecker getValidConnectionChecker() { + return this.validConnectionChecker; + } + + public void setValidConnectionChecker(ValidConnectionChecker validConnectionChecker) { + this.validConnectionChecker = validConnectionChecker; + } + + public String getValidConnectionCheckerClassName() { + return this.validConnectionChecker == null ? null : this.validConnectionChecker.getClass().getName(); + } + + public void setValidConnectionCheckerClassName(String validConnectionCheckerClass) throws Exception { + Class clazz = Utils.loadClass(validConnectionCheckerClass); + ValidConnectionChecker validConnectionChecker = null; + if (clazz != null) { + validConnectionChecker = (ValidConnectionChecker)clazz.newInstance(); + this.validConnectionChecker = validConnectionChecker; + } else { + LOG.error("load validConnectionCheckerClass error : " + validConnectionCheckerClass); + } + + } + + public String getDbType() { + return this.dbType; + } + + public void setDbType(String dbType) { + this.dbType = dbType; + } + + public void addConnectionProperty(String name, String value) { + if (!StringUtils.equals(this.connectProperties.getProperty(name), value)) { + if (this.inited) { + throw new UnsupportedOperationException(); + } else { + this.connectProperties.put(name, value); + } + } + } + + public Collection getConnectionInitSqls() { + Collection result = this.connectionInitSqls; + return result == null ? Collections.emptyList() : result; + } + + public void setConnectionInitSqls(Collection connectionInitSqls) { + if (connectionInitSqls != null && connectionInitSqls.size() > 0) { + ArrayList newVal = null; + Iterator var3 = connectionInitSqls.iterator(); + + while(var3.hasNext()) { + Object o = var3.next(); + if (o != null) { + String s = o.toString(); + s = s.trim(); + if (s.length() != 0) { + if (newVal == null) { + newVal = new ArrayList(); + } + + newVal.add(s); + } + } + } + + this.connectionInitSqls = newVal; + } else { + this.connectionInitSqls = null; + } + + } + + public long getTimeBetweenConnectErrorMillis() { + return this.timeBetweenConnectErrorMillis; + } + + public void setTimeBetweenConnectErrorMillis(long timeBetweenConnectErrorMillis) { + this.timeBetweenConnectErrorMillis = timeBetweenConnectErrorMillis; + } + + public int getMaxOpenPreparedStatements() { + return this.maxPoolPreparedStatementPerConnectionSize; + } + + public void setMaxOpenPreparedStatements(int maxOpenPreparedStatements) { + this.setMaxPoolPreparedStatementPerConnectionSize(maxOpenPreparedStatements); + } + + public boolean isLogAbandoned() { + return this.logAbandoned; + } + + public void setLogAbandoned(boolean logAbandoned) { + this.logAbandoned = logAbandoned; + } + + public int getRemoveAbandonedTimeout() { + return (int)(this.removeAbandonedTimeoutMillis / 1000L); + } + + public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) { + this.removeAbandonedTimeoutMillis = (long)removeAbandonedTimeout * 1000L; + } + + public void setRemoveAbandonedTimeoutMillis(long removeAbandonedTimeoutMillis) { + this.removeAbandonedTimeoutMillis = removeAbandonedTimeoutMillis; + } + + public long getRemoveAbandonedTimeoutMillis() { + return this.removeAbandonedTimeoutMillis; + } + + public boolean isRemoveAbandoned() { + return this.removeAbandoned; + } + + public void setRemoveAbandoned(boolean removeAbandoned) { + this.removeAbandoned = removeAbandoned; + } + + public long getMinEvictableIdleTimeMillis() { + return this.minEvictableIdleTimeMillis; + } + + public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) { + if (minEvictableIdleTimeMillis < 30000L) { + LOG.error("minEvictableIdleTimeMillis should be greater than 30000"); + } + + this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis; + } + + public long getKeepAliveBetweenTimeMillis() { + return this.keepAliveBetweenTimeMillis; + } + + public void setKeepAliveBetweenTimeMillis(long keepAliveBetweenTimeMillis) { + if (keepAliveBetweenTimeMillis < 30000L) { + LOG.error("keepAliveBetweenTimeMillis should be greater than 30000"); + } + + this.keepAliveBetweenTimeMillis = keepAliveBetweenTimeMillis; + } + + public long getMaxEvictableIdleTimeMillis() { + return this.maxEvictableIdleTimeMillis; + } + + public void setMaxEvictableIdleTimeMillis(long maxEvictableIdleTimeMillis) { + if (maxEvictableIdleTimeMillis < 30000L) { + LOG.error("maxEvictableIdleTimeMillis should be greater than 30000"); + } + + if (maxEvictableIdleTimeMillis < this.minEvictableIdleTimeMillis) { + throw new IllegalArgumentException("maxEvictableIdleTimeMillis must be grater than minEvictableIdleTimeMillis"); + } else { + this.maxEvictableIdleTimeMillis = maxEvictableIdleTimeMillis; + } + } + + public long getPhyTimeoutMillis() { + return this.phyTimeoutMillis; + } + + public void setPhyTimeoutMillis(long phyTimeoutMillis) { + this.phyTimeoutMillis = phyTimeoutMillis; + } + + public long getPhyMaxUseCount() { + return this.phyMaxUseCount; + } + + public void setPhyMaxUseCount(long phyMaxUseCount) { + this.phyMaxUseCount = phyMaxUseCount; + } + + public int getNumTestsPerEvictionRun() { + return this.numTestsPerEvictionRun; + } + + /** @deprecated */ + @Deprecated + public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) { + this.numTestsPerEvictionRun = numTestsPerEvictionRun; + } + + public long getTimeBetweenEvictionRunsMillis() { + return this.timeBetweenEvictionRunsMillis; + } + + public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) { + this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis; + } + + public int getMaxWaitThreadCount() { + return this.maxWaitThreadCount; + } + + public void setMaxWaitThreadCount(int maxWaithThreadCount) { + this.maxWaitThreadCount = maxWaithThreadCount; + } + + public String getValidationQuery() { + return this.validationQuery; + } + + public void setValidationQuery(String validationQuery) { + this.validationQuery = validationQuery; + } + + public int getValidationQueryTimeout() { + return this.validationQueryTimeout; + } + + public void setValidationQueryTimeout(int validationQueryTimeout) { + if (validationQueryTimeout < 0 && "sqlserver".equals(this.dbType)) { + LOG.error("validationQueryTimeout should be >= 0"); + } + + this.validationQueryTimeout = validationQueryTimeout; + } + + public boolean isAccessToUnderlyingConnectionAllowed() { + return this.accessToUnderlyingConnectionAllowed; + } + + public void setAccessToUnderlyingConnectionAllowed(boolean accessToUnderlyingConnectionAllowed) { + this.accessToUnderlyingConnectionAllowed = accessToUnderlyingConnectionAllowed; + } + + public boolean isTestOnBorrow() { + return this.testOnBorrow; + } + + public void setTestOnBorrow(boolean testOnBorrow) { + this.testOnBorrow = testOnBorrow; + } + + public boolean isTestOnReturn() { + return this.testOnReturn; + } + + public void setTestOnReturn(boolean testOnReturn) { + this.testOnReturn = testOnReturn; + } + + public boolean isTestWhileIdle() { + return this.testWhileIdle; + } + + public void setTestWhileIdle(boolean testWhileIdle) { + this.testWhileIdle = testWhileIdle; + } + + public boolean isDefaultAutoCommit() { + return this.defaultAutoCommit; + } + + public void setDefaultAutoCommit(boolean defaultAutoCommit) { + this.defaultAutoCommit = defaultAutoCommit; + } + + public Boolean getDefaultReadOnly() { + return this.defaultReadOnly; + } + + public void setDefaultReadOnly(Boolean defaultReadOnly) { + this.defaultReadOnly = defaultReadOnly; + } + + public Integer getDefaultTransactionIsolation() { + return this.defaultTransactionIsolation; + } + + public void setDefaultTransactionIsolation(Integer defaultTransactionIsolation) { + this.defaultTransactionIsolation = defaultTransactionIsolation; + } + + public String getDefaultCatalog() { + return this.defaultCatalog; + } + + public void setDefaultCatalog(String defaultCatalog) { + this.defaultCatalog = defaultCatalog; + } + + public PasswordCallback getPasswordCallback() { + return this.passwordCallback; + } + + public void setPasswordCallback(PasswordCallback passwordCallback) { + this.passwordCallback = passwordCallback; + } + + public void setPasswordCallbackClassName(String passwordCallbackClassName) throws Exception { + Class clazz = Utils.loadClass(passwordCallbackClassName); + if (clazz != null) { + this.passwordCallback = (PasswordCallback)clazz.newInstance(); + } else { + LOG.error("load passwordCallback error : " + passwordCallbackClassName); + this.passwordCallback = null; + } + + } + + public NameCallback getUserCallback() { + return this.userCallback; + } + + public void setUserCallback(NameCallback userCallback) { + this.userCallback = userCallback; + } + + public boolean isInitVariants() { + return this.initVariants; + } + + public void setInitVariants(boolean initVariants) { + this.initVariants = initVariants; + } + + public boolean isInitGlobalVariants() { + return this.initGlobalVariants; + } + + public void setInitGlobalVariants(boolean initGlobalVariants) { + this.initGlobalVariants = initGlobalVariants; + } + + public int getQueryTimeout() { + return this.queryTimeout; + } + + public void setQueryTimeout(int seconds) { + this.queryTimeout = seconds; + } + + public String getName() { + return this.name != null ? this.name : "DataSource-" + System.identityHashCode(this); + } + + public void setName(String name) { + this.name = name; + } + + public boolean isPoolPreparedStatements() { + return this.poolPreparedStatements; + } + + public abstract void setPoolPreparedStatements(boolean var1); + + public long getMaxWait() { + return this.maxWait; + } + + public void setMaxWait(long maxWaitMillis) { + if (maxWaitMillis != this.maxWait) { + if (maxWaitMillis > 0L && this.useUnfairLock == null && !this.inited) { + ReentrantLock lock = this.lock; + lock.lock(); + + try { + if (!this.inited && !lock.isFair()) { + this.lock = new ReentrantLock(true); + this.notEmpty = this.lock.newCondition(); + this.empty = this.lock.newCondition(); + } + } finally { + lock.unlock(); + } + } + + if (this.inited) { + LOG.error("maxWait changed : " + this.maxWait + " -> " + maxWaitMillis); + } + + this.maxWait = maxWaitMillis; + } + } + + public int getNotFullTimeoutRetryCount() { + return this.notFullTimeoutRetryCount; + } + + public void setNotFullTimeoutRetryCount(int notFullTimeoutRetryCount) { + this.notFullTimeoutRetryCount = notFullTimeoutRetryCount; + } + + public int getMinIdle() { + return this.minIdle; + } + + public void setMinIdle(int value) { + if (value != this.minIdle) { + if (this.inited && value > this.maxActive) { + throw new IllegalArgumentException("minIdle greater than maxActive, " + this.maxActive + " < " + this.minIdle); + } else if (this.minIdle < 0) { + throw new IllegalArgumentException("minIdle must > 0"); + } else { + this.minIdle = value; + } + } + } + + public int getMaxIdle() { + return this.maxIdle; + } + + /** @deprecated */ + @Deprecated + public void setMaxIdle(int maxIdle) { + LOG.error("maxIdle is deprecated"); + this.maxIdle = maxIdle; + } + + public int getInitialSize() { + return this.initialSize; + } + + public void setInitialSize(int initialSize) { + if (this.initialSize != initialSize) { + if (this.inited) { + throw new UnsupportedOperationException(); + } else { + this.initialSize = initialSize; + } + } + } + + public long getCreateErrorCount() { + return (long)this.createErrorCount; + } + + public int getMaxActive() { + return this.maxActive; + } + + public abstract void setMaxActive(int var1); + + public String getUsername() { + return this.username; + } + + public void setUsername(String username) { + if (!StringUtils.equals(this.username, username)) { +// if (this.inited) { +// throw new UnsupportedOperationException(); +// } else { + this.username = username; +// } + } + } + + public String getPassword() { + return this.password; + } + + public void setPassword(String password) { + if (!StringUtils.equals(this.password, password)) { + if (this.inited) { + LOG.info("password changed"); + } + + this.password = password; + } + } + + public Properties getConnectProperties() { + return this.connectProperties; + } + + public abstract void setConnectProperties(Properties var1); + + public void setConnectionProperties(String connectionProperties) { + if (connectionProperties != null && connectionProperties.trim().length() != 0) { + String[] entries = connectionProperties.split(";"); + Properties properties = new Properties(); + + for(int i = 0; i < entries.length; ++i) { + String entry = entries[i]; + if (entry.length() > 0) { + int index = entry.indexOf(61); + if (index > 0) { + String name = entry.substring(0, index); + String value = entry.substring(index + 1); + properties.setProperty(name, value); + } else { + properties.setProperty(entry, ""); + } + } + } + + this.setConnectProperties(properties); + } else { + this.setConnectProperties((Properties)null); + } + } + + public String getUrl() { + return this.jdbcUrl; + } + + public String getRawJdbcUrl() { + return this.jdbcUrl; + } + + public void setUrl(String jdbcUrl) { + if (!StringUtils.equals(this.jdbcUrl, jdbcUrl)) { +// if (this.inited) { +// throw new UnsupportedOperationException(); +// } else { + if (jdbcUrl != null) { + jdbcUrl = jdbcUrl.trim(); + } + + this.jdbcUrl = jdbcUrl; +// } + } + } + + public String getDriverClassName() { + return this.driverClass; + } + + public void setDriverClassName(String driverClass) { + if (driverClass != null && driverClass.length() > 256) { + throw new IllegalArgumentException("driverClassName length > 256."); + } else { + if ("oracle.jdbc.driver.OracleDriver".equalsIgnoreCase(driverClass)) { + driverClass = "oracle.jdbc.OracleDriver"; + LOG.warn("oracle.jdbc.driver.OracleDriver is deprecated.Having use oracle.jdbc.OracleDriver."); + } + + if (this.inited) { + if (!StringUtils.equals(this.driverClass, driverClass)) { + throw new UnsupportedOperationException(); + } + } else { + this.driverClass = driverClass; + } + } + } + + public ClassLoader getDriverClassLoader() { + return this.driverClassLoader; + } + + public void setDriverClassLoader(ClassLoader driverClassLoader) { + this.driverClassLoader = driverClassLoader; + } + + public PrintWriter getLogWriter() { + return this.logWriter; + } + + public void setLogWriter(PrintWriter out) throws SQLException { + this.logWriter = out; + } + + public void setLoginTimeout(int seconds) { + DriverManager.setLoginTimeout(seconds); + } + + public int getLoginTimeout() { + return DriverManager.getLoginTimeout(); + } + + public Driver getDriver() { + return this.driver; + } + + public void setDriver(Driver driver) { + this.driver = driver; + } + + public int getDriverMajorVersion() { + return this.driver == null ? -1 : this.driver.getMajorVersion(); + } + + public int getDriverMinorVersion() { + return this.driver == null ? -1 : this.driver.getMinorVersion(); + } + + public ExceptionSorter getExceptionSorter() { + return this.exceptionSorter; + } + + public String getExceptionSorterClassName() { + return this.exceptionSorter == null ? null : this.exceptionSorter.getClass().getName(); + } + + public void setExceptionSorter(ExceptionSorter exceptionSoter) { + this.exceptionSorter = exceptionSoter; + } + + public void setExceptionSorterClassName(String exceptionSorter) throws Exception { + this.setExceptionSorter(exceptionSorter); + } + + public void setExceptionSorter(String exceptionSorter) throws SQLException { + if (exceptionSorter == null) { + this.exceptionSorter = NullExceptionSorter.getInstance(); + } else { + exceptionSorter = exceptionSorter.trim(); + if (exceptionSorter.length() == 0) { + this.exceptionSorter = NullExceptionSorter.getInstance(); + } else { + Class clazz = Utils.loadClass(exceptionSorter); + if (clazz == null) { + LOG.error("load exceptionSorter error : " + exceptionSorter); + } else { + try { + this.exceptionSorter = (ExceptionSorter)clazz.newInstance(); + } catch (Exception var4) { + throw new SQLException("create exceptionSorter error", var4); + } + } + + } + } + } + + public List getProxyFilters() { + return this.filters; + } + + public void setProxyFilters(List filters) { + if (filters != null) { + this.filters.addAll(filters); + } + + } + + public String[] getFilterClasses() { + List filterConfigList = this.getProxyFilters(); + List classes = new ArrayList(); + Iterator var3 = filterConfigList.iterator(); + + while(var3.hasNext()) { + Filter filter = (Filter)var3.next(); + classes.add(filter.getClass().getName()); + } + + return (String[])classes.toArray(new String[classes.size()]); + } + + public void setFilters(String filters) throws SQLException { + if (filters != null && filters.startsWith("!")) { + filters = filters.substring(1); + this.clearFilters(); + } + + this.addFilters(filters); + } + + public void addFilters(String filters) throws SQLException { + if (filters != null && filters.length() != 0) { + String[] filterArray = filters.split("\\,"); + String[] var3 = filterArray; + int var4 = filterArray.length; + + for(int var5 = 0; var5 < var4; ++var5) { + String item = var3[var5]; + FilterManager.loadFilter(this.filters, item.trim()); + } + + } + } + + public void clearFilters() { + if (this.isClearFiltersEnable()) { + this.filters.clear(); + } + } + + public void validateConnection(Connection conn) throws SQLException { + String query = this.getValidationQuery(); + if (conn.isClosed()) { + throw new SQLException("validateConnection: connection closed"); + } else if (this.validConnectionChecker != null) { + boolean result = true; + Exception error = null; + + try { + result = this.validConnectionChecker.isValidConnection(conn, this.validationQuery, this.validationQueryTimeout); + if (result && this.onFatalError) { + this.lock.lock(); + + try { + if (this.onFatalError) { + this.onFatalError = false; + } + } finally { + this.lock.unlock(); + } + } + } catch (SQLException var24) { + throw var24; + } catch (Exception var25) { + error = var25; + } + + if (!result) { + SQLException sqlError = error != null ? new SQLException("validateConnection false", error) : new SQLException("validateConnection false"); + throw sqlError; + } + } else { + if (null != query) { + Statement stmt = null; + ResultSet rs = null; + + try { + stmt = conn.createStatement(); + if (this.getValidationQueryTimeout() > 0) { + stmt.setQueryTimeout(this.getValidationQueryTimeout()); + } + + rs = stmt.executeQuery(query); + if (!rs.next()) { + throw new SQLException("validationQuery didn't return a row"); + } + + if (this.onFatalError) { + this.lock.lock(); + + try { + if (this.onFatalError) { + this.onFatalError = false; + } + } finally { + this.lock.unlock(); + } + } + } finally { + JdbcUtils.close(rs); + JdbcUtils.close(stmt); + } + } + + } + } + + /** @deprecated */ + protected boolean testConnectionInternal(Connection conn) { + return this.testConnectionInternal((DruidConnectionHolder)null, conn); + } + + protected boolean testConnectionInternal(DruidConnectionHolder holder, Connection conn) { + String sqlFile = JdbcSqlStat.getContextSqlFile(); + String sqlName = JdbcSqlStat.getContextSqlName(); + if (sqlFile != null) { + JdbcSqlStat.setContextSqlFile((String)null); + } + + if (sqlName != null) { + JdbcSqlStat.setContextSqlName((String)null); + } + + try { + boolean valid; + if (this.validConnectionChecker == null) { + if (conn.isClosed()) { + valid = false; + return valid; + } else if (null == this.validationQuery) { + valid = true; + return valid; + } else { + Statement stmt = null; + ResultSet rset = null; + + boolean var7; + try { + stmt = conn.createStatement(); + if (this.getValidationQueryTimeout() > 0) { + stmt.setQueryTimeout(this.validationQueryTimeout); + } + + rset = stmt.executeQuery(this.validationQuery); + if (!rset.next()) { + var7 = false; + return var7; + } + } finally { + JdbcUtils.close(rset); + JdbcUtils.close(stmt); + } + + if (this.onFatalError) { + this.lock.lock(); + + try { + if (this.onFatalError) { + this.onFatalError = false; + } + } finally { + this.lock.unlock(); + } + } + + var7 = true; + return var7; + } + } else { + valid = this.validConnectionChecker.isValidConnection(conn, this.validationQuery, this.validationQueryTimeout); + long currentTimeMillis = System.currentTimeMillis(); + if (holder != null) { + holder.lastValidTimeMillis = currentTimeMillis; + } + + if (valid && this.isMySql) { + long lastPacketReceivedTimeMs = MySqlUtils.getLastPacketReceivedTimeMs(conn); + if (lastPacketReceivedTimeMs > 0L) { + long mysqlIdleMillis = currentTimeMillis - lastPacketReceivedTimeMs; + if (lastPacketReceivedTimeMs > 0L && mysqlIdleMillis >= this.timeBetweenEvictionRunsMillis) { + this.discardConnection(conn); + String errorMsg = "discard long time none received connection. , jdbcUrl : " + this.jdbcUrl + ", jdbcUrl : " + this.jdbcUrl + ", lastPacketReceivedIdleMillis : " + mysqlIdleMillis; + LOG.error(errorMsg); + boolean var13 = false; + return var13; + } + } + } + + if (valid && this.onFatalError) { + this.lock.lock(); + + try { + if (this.onFatalError) { + this.onFatalError = false; + } + } finally { + this.lock.unlock(); + } + } + + boolean var46 = valid; + return var46; + } + } catch (Throwable var41) { + boolean var6 = false; + return var6; + } finally { + if (sqlFile != null) { + JdbcSqlStat.setContextSqlFile(sqlFile); + } + + if (sqlName != null) { + JdbcSqlStat.setContextSqlName(sqlName); + } + + } + } + + public Set getActiveConnections() { + this.activeConnectionLock.lock(); + + HashSet var1; + try { + var1 = new HashSet(this.activeConnections.keySet()); + } finally { + this.activeConnectionLock.unlock(); + } + + return var1; + } + + public List getActiveConnectionStackTrace() { + List list = new ArrayList(); + Iterator var2 = this.getActiveConnections().iterator(); + + while(var2.hasNext()) { + DruidPooledConnection conn = (DruidPooledConnection)var2.next(); + list.add(Utils.toString(conn.getConnectStackTrace())); + } + + return list; + } + + public long getCreateTimespanNano() { + return this.createTimespan; + } + + public long getCreateTimespanMillis() { + return this.createTimespan / 1000000L; + } + + public Driver getRawDriver() { + return this.driver; + } + + public boolean isClearFiltersEnable() { + return this.clearFiltersEnable; + } + + public void setClearFiltersEnable(boolean clearFiltersEnable) { + this.clearFiltersEnable = clearFiltersEnable; + } + + public long createConnectionId() { + return connectionIdSeedUpdater.incrementAndGet(this); + } + + public long createStatementId() { + return statementIdSeedUpdater.getAndIncrement(this); + } + + public long createMetaDataId() { + return metaDataIdSeedUpdater.getAndIncrement(this); + } + + public long createResultSetId() { + return resultSetIdSeedUpdater.getAndIncrement(this); + } + + public long createTransactionId() { + return transactionIdSeedUpdater.getAndIncrement(this); + } + + void initStatement(DruidPooledConnection conn, Statement stmt) throws SQLException { + boolean transaction = !conn.getConnectionHolder().underlyingAutoCommit; + int queryTimeout = transaction ? this.getTransactionQueryTimeout() : this.getQueryTimeout(); + if (queryTimeout > 0) { + stmt.setQueryTimeout(queryTimeout); + } + + } + + public void handleConnectionException(DruidPooledConnection conn, Throwable t) throws SQLException { + this.handleConnectionException(conn, t, (String)null); + } + + public abstract void handleConnectionException(DruidPooledConnection var1, Throwable var2, String var3) throws SQLException; + + protected abstract void recycle(DruidPooledConnection var1) throws SQLException; + + public Connection createPhysicalConnection(String url, Properties info) throws SQLException { + Object conn; + if (this.getProxyFilters().size() == 0) { + conn = this.getDriver().connect(url, info); + } else { + conn = (new FilterChainImpl(this)).connection_connect(info); + } + + createCountUpdater.incrementAndGet(this); + return (Connection)conn; + } + + public DruidAbstractDataSource.PhysicalConnectionInfo createPhysicalConnection() throws SQLException { + String url = this.getUrl(); + Properties connectProperties = this.getConnectProperties(); + String user; + if (this.getUserCallback() != null) { + user = this.getUserCallback().getName(); + } else { + user = this.getUsername(); + } + + String password = this.getPassword(); + PasswordCallback passwordCallback = this.getPasswordCallback(); + if (passwordCallback != null) { + if (passwordCallback instanceof DruidPasswordCallback) { + DruidPasswordCallback druidPasswordCallback = (DruidPasswordCallback)passwordCallback; + druidPasswordCallback.setUrl(url); + druidPasswordCallback.setProperties(connectProperties); + } + + char[] chars = passwordCallback.getPassword(); + if (chars != null) { + password = new String(chars); + } + } + + Properties physicalConnectProperties = new Properties(); + if (connectProperties != null) { + physicalConnectProperties.putAll(connectProperties); + } + + if (user != null && user.length() != 0) { + physicalConnectProperties.put("user", user); + } + + if (password != null && password.length() != 0) { + physicalConnectProperties.put("password", password); + } + + Connection conn = null; + long connectStartNanos = System.nanoTime(); + Map variables = this.initVariants ? new HashMap() : null; + Map globalVariables = this.initGlobalVariants ? new HashMap() : null; + createStartNanosUpdater.set(this, connectStartNanos); + creatingCountUpdater.incrementAndGet(this); + boolean var27 = false; + + long connectedNanos; + long initedNanos; + long validatedNanos; + try { + var27 = true; + conn = this.createPhysicalConnection(url, physicalConnectProperties); + connectedNanos = System.nanoTime(); + if (conn == null) { + throw new SQLException("connect error, url " + url + ", driverClass " + this.driverClass); + } + + this.initPhysicalConnection(conn, variables, globalVariables); + initedNanos = System.nanoTime(); + this.validateConnection(conn); + validatedNanos = System.nanoTime(); + this.setFailContinuous(false); + this.setCreateError((Throwable)null); + var27 = false; + } catch (SQLException var28) { + this.setCreateError(var28); + JdbcUtils.close(conn); + throw var28; + } catch (RuntimeException var29) { + this.setCreateError(var29); + JdbcUtils.close(conn); + throw var29; + } catch (Error var30) { + createErrorCountUpdater.incrementAndGet(this); + this.setCreateError(var30); + JdbcUtils.close(conn); + throw var30; + } finally { + if (var27) { + long nano = System.nanoTime() - connectStartNanos; + this.createTimespan += nano; + creatingCountUpdater.decrementAndGet(this); + } + } + + long nano = System.nanoTime() - connectStartNanos; + this.createTimespan += nano; + creatingCountUpdater.decrementAndGet(this); + return new DruidAbstractDataSource.PhysicalConnectionInfo(conn, connectStartNanos, connectedNanos, initedNanos, validatedNanos, variables, globalVariables); + } + + protected void setCreateError(Throwable ex) { + if (ex == null) { + this.lock.lock(); + + try { + if (this.createError != null) { + this.createError = null; + } + } finally { + this.lock.unlock(); + } + + } else { + createErrorCountUpdater.incrementAndGet(this); + long now = System.currentTimeMillis(); + this.lock.lock(); + + try { + this.createError = ex; + this.lastCreateError = ex; + this.lastCreateErrorTimeMillis = now; + } finally { + this.lock.unlock(); + } + + } + } + + public boolean isFailContinuous() { + return failContinuousUpdater.get(this) == 1; + } + + protected void setFailContinuous(boolean fail) { + if (fail) { + failContinuousTimeMillisUpdater.set(this, System.currentTimeMillis()); + } else { + failContinuousTimeMillisUpdater.set(this, 0L); + } + + boolean currentState = failContinuousUpdater.get(this) == 1; + if (currentState != fail) { + if (fail) { + failContinuousUpdater.set(this, 1); + if (LOG.isInfoEnabled()) { + LOG.info("{dataSource-" + this.getID() + "} failContinuous is true"); + } + } else { + failContinuousUpdater.set(this, 0); + if (LOG.isInfoEnabled()) { + LOG.info("{dataSource-" + this.getID() + "} failContinuous is false"); + } + } + + } + } + + public void initPhysicalConnection(Connection conn) throws SQLException { + this.initPhysicalConnection(conn, (Map)null, (Map)null); + } + + public void initPhysicalConnection(Connection conn, Map variables, Map globalVariables) throws SQLException { + if (conn.getAutoCommit() != this.defaultAutoCommit) { + conn.setAutoCommit(this.defaultAutoCommit); + } + + if (this.defaultReadOnly != null && conn.isReadOnly() != this.defaultReadOnly) { + conn.setReadOnly(this.defaultReadOnly); + } + + if (this.getDefaultTransactionIsolation() != null && conn.getTransactionIsolation() != this.getDefaultTransactionIsolation()) { + conn.setTransactionIsolation(this.getDefaultTransactionIsolation()); + } + + if (this.getDefaultCatalog() != null && this.getDefaultCatalog().length() != 0) { + conn.setCatalog(this.getDefaultCatalog()); + } + + Collection initSqls = this.getConnectionInitSqls(); + if (initSqls.size() != 0 || variables != null || globalVariables != null) { + Statement stmt = null; + + try { + stmt = conn.createStatement(); + Iterator var6 = initSqls.iterator(); + + String name; + while(var6.hasNext()) { + name = (String)var6.next(); + if (name != null) { + stmt.execute(name); + } + } + + if ("mysql".equals(this.dbType) || "aliyun_ads".equals(this.dbType)) { + ResultSet rs; + Object value; + if (variables != null) { + rs = null; + + try { + rs = stmt.executeQuery("show variables"); + + while(rs.next()) { + name = rs.getString(1); + value = rs.getObject(2); + variables.put(name, value); + } + } finally { + JdbcUtils.close(rs); + } + } + + if (globalVariables != null) { + rs = null; + + try { + rs = stmt.executeQuery("show global variables"); + + while(rs.next()) { + name = rs.getString(1); + value = rs.getObject(2); + globalVariables.put(name, value); + } + } finally { + JdbcUtils.close(rs); + } + } + } + } finally { + JdbcUtils.close(stmt); + } + + } + } + + public abstract int getActivePeak(); + + public CompositeDataSupport getCompositeData() throws JMException { + JdbcDataSourceStat stat = this.getDataSourceStat(); + Map map = new HashMap(); + map.put("ID", this.getID()); + map.put("URL", this.getUrl()); + map.put("Name", this.getName()); + map.put("FilterClasses", this.getFilterClasses()); + map.put("CreatedTime", this.getCreatedTime()); + map.put("RawDriverClassName", this.getDriverClassName()); + map.put("RawUrl", this.getUrl()); + map.put("RawDriverMajorVersion", this.getRawDriverMajorVersion()); + map.put("RawDriverMinorVersion", this.getRawDriverMinorVersion()); + map.put("Properties", this.getProperties()); + map.put("ConnectionActiveCount", (long)this.getActiveCount()); + map.put("ConnectionActiveCountMax", this.getActivePeak()); + map.put("ConnectionCloseCount", this.getCloseCount()); + map.put("ConnectionCommitCount", this.getCommitCount()); + map.put("ConnectionRollbackCount", this.getRollbackCount()); + map.put("ConnectionConnectLastTime", stat.getConnectionStat().getConnectLastTime()); + map.put("ConnectionConnectErrorCount", this.getCreateCount()); + if (this.createError != null) { + map.put("ConnectionConnectErrorLastTime", this.getLastCreateErrorTime()); + map.put("ConnectionConnectErrorLastMessage", this.createError.getMessage()); + map.put("ConnectionConnectErrorLastStackTrace", Utils.getStackTrace(this.createError)); + } else { + map.put("ConnectionConnectErrorLastTime", (Object)null); + map.put("ConnectionConnectErrorLastMessage", (Object)null); + map.put("ConnectionConnectErrorLastStackTrace", (Object)null); + } + + map.put("StatementCreateCount", stat.getStatementStat().getCreateCount()); + map.put("StatementPrepareCount", stat.getStatementStat().getPrepareCount()); + map.put("StatementPreCallCount", stat.getStatementStat().getPrepareCallCount()); + map.put("StatementExecuteCount", stat.getStatementStat().getExecuteCount()); + map.put("StatementRunningCount", stat.getStatementStat().getRunningCount()); + map.put("StatementConcurrentMax", stat.getStatementStat().getConcurrentMax()); + map.put("StatementCloseCount", stat.getStatementStat().getCloseCount()); + map.put("StatementErrorCount", stat.getStatementStat().getErrorCount()); + map.put("StatementLastErrorTime", (Object)null); + map.put("StatementLastErrorMessage", (Object)null); + map.put("StatementLastErrorStackTrace", (Object)null); + map.put("StatementExecuteMillisTotal", stat.getStatementStat().getMillisTotal()); + map.put("StatementExecuteLastTime", stat.getStatementStat().getExecuteLastTime()); + map.put("ConnectionConnectingCount", stat.getConnectionStat().getConnectingCount()); + map.put("ResultSetCloseCount", stat.getResultSetStat().getCloseCount()); + map.put("ResultSetOpenCount", stat.getResultSetStat().getOpenCount()); + map.put("ResultSetOpenningCount", stat.getResultSetStat().getOpeningCount()); + map.put("ResultSetOpenningMax", stat.getResultSetStat().getOpeningMax()); + map.put("ResultSetFetchRowCount", stat.getResultSetStat().getFetchRowCount()); + map.put("ResultSetLastOpenTime", stat.getResultSetStat().getLastOpenTime()); + map.put("ResultSetErrorCount", stat.getResultSetStat().getErrorCount()); + map.put("ResultSetOpenningMillisTotal", stat.getResultSetStat().getAliveMillisTotal()); + map.put("ResultSetLastErrorTime", stat.getResultSetStat().getLastErrorTime()); + map.put("ResultSetLastErrorMessage", (Object)null); + map.put("ResultSetLastErrorStackTrace", (Object)null); + map.put("ConnectionConnectCount", this.getConnectCount()); + if (this.createError != null) { + map.put("ConnectionErrorLastMessage", this.createError.getMessage()); + map.put("ConnectionErrorLastStackTrace", Utils.getStackTrace(this.createError)); + } else { + map.put("ConnectionErrorLastMessage", (Object)null); + map.put("ConnectionErrorLastStackTrace", (Object)null); + } + + map.put("ConnectionConnectMillisTotal", stat.getConnectionStat().getConnectMillis()); + map.put("ConnectionConnectingCountMax", stat.getConnectionStat().getConnectingMax()); + map.put("ConnectionConnectMillisMax", stat.getConnectionStat().getConnectMillisMax()); + map.put("ConnectionErrorLastTime", stat.getConnectionStat().getErrorLastTime()); + map.put("ConnectionAliveMillisMax", stat.getConnectionConnectAliveMillisMax()); + map.put("ConnectionAliveMillisMin", stat.getConnectionConnectAliveMillisMin()); + map.put("ConnectionHistogram", stat.getConnectionHistogramValues()); + map.put("StatementHistogram", stat.getStatementStat().getHistogramValues()); + return new CompositeDataSupport(JdbcStatManager.getDataSourceCompositeType(), map); + } + + public long getID() { + return this.id; + } + + public Date getCreatedTime() { + return this.createdTime; + } + + public abstract int getRawDriverMajorVersion(); + + public abstract int getRawDriverMinorVersion(); + + public abstract String getProperties(); + + public Logger getParentLogger() throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + public void closePreapredStatement(PreparedStatementHolder stmtHolder) { + if (stmtHolder != null) { + closedPreparedStatementCountUpdater.incrementAndGet(this); + this.decrementCachedPreparedStatementCount(); + this.incrementCachedPreparedStatementDeleteCount(); + JdbcUtils.close(stmtHolder.statement); + } + } + + protected void cloneTo(DruidAbstractDataSource to) { + to.defaultAutoCommit = this.defaultAutoCommit; + to.defaultReadOnly = this.defaultReadOnly; + to.defaultTransactionIsolation = this.defaultTransactionIsolation; + to.defaultCatalog = this.defaultCatalog; + to.name = this.name; + to.username = this.username; + to.password = this.password; + to.jdbcUrl = this.jdbcUrl; + to.driverClass = this.driverClass; + to.connectProperties = this.connectProperties; + to.passwordCallback = this.passwordCallback; + to.userCallback = this.userCallback; + to.initialSize = this.initialSize; + to.maxActive = this.maxActive; + to.minIdle = this.minIdle; + to.maxIdle = this.maxIdle; + to.maxWait = this.maxWait; + to.validationQuery = this.validationQuery; + to.validationQueryTimeout = this.validationQueryTimeout; + to.testOnBorrow = this.testOnBorrow; + to.testOnReturn = this.testOnReturn; + to.testWhileIdle = this.testWhileIdle; + to.poolPreparedStatements = this.poolPreparedStatements; + to.sharePreparedStatements = this.sharePreparedStatements; + to.maxPoolPreparedStatementPerConnectionSize = this.maxPoolPreparedStatementPerConnectionSize; + to.logWriter = this.logWriter; + if (this.filters != null) { + to.filters = new ArrayList(this.filters); + } + + to.exceptionSorter = this.exceptionSorter; + to.driver = this.driver; + to.queryTimeout = this.queryTimeout; + to.transactionQueryTimeout = this.transactionQueryTimeout; + to.accessToUnderlyingConnectionAllowed = this.accessToUnderlyingConnectionAllowed; + to.timeBetweenEvictionRunsMillis = this.timeBetweenEvictionRunsMillis; + to.numTestsPerEvictionRun = this.numTestsPerEvictionRun; + to.minEvictableIdleTimeMillis = this.minEvictableIdleTimeMillis; + to.removeAbandoned = this.removeAbandoned; + to.removeAbandonedTimeoutMillis = this.removeAbandonedTimeoutMillis; + to.logAbandoned = this.logAbandoned; + to.maxOpenPreparedStatements = this.maxOpenPreparedStatements; + if (this.connectionInitSqls != null) { + to.connectionInitSqls = new ArrayList(this.connectionInitSqls); + } + + to.dbType = this.dbType; + to.timeBetweenConnectErrorMillis = this.timeBetweenConnectErrorMillis; + to.validConnectionChecker = this.validConnectionChecker; + to.connectionErrorRetryAttempts = this.connectionErrorRetryAttempts; + to.breakAfterAcquireFailure = this.breakAfterAcquireFailure; + to.transactionThresholdMillis = this.transactionThresholdMillis; + to.dupCloseLogEnable = this.dupCloseLogEnable; + to.isOracle = this.isOracle; + to.useOracleImplicitCache = this.useOracleImplicitCache; + to.asyncCloseConnectionEnable = this.asyncCloseConnectionEnable; + to.createScheduler = this.createScheduler; + to.destroyScheduler = this.destroyScheduler; + } + + public abstract void discardConnection(Connection var1); + + public boolean isAsyncCloseConnectionEnable() { + return this.isRemoveAbandoned() ? true : this.asyncCloseConnectionEnable; + } + + public void setAsyncCloseConnectionEnable(boolean asyncCloseConnectionEnable) { + this.asyncCloseConnectionEnable = asyncCloseConnectionEnable; + } + + public ScheduledExecutorService getCreateScheduler() { + return this.createScheduler; + } + + public void setCreateScheduler(ScheduledExecutorService createScheduler) { + if (this.isInited()) { + throw new DruidRuntimeException("dataSource inited."); + } else { + this.createScheduler = createScheduler; + } + } + + public ScheduledExecutorService getDestroyScheduler() { + return this.destroyScheduler; + } + + public void setDestroyScheduler(ScheduledExecutorService destroyScheduler) { + if (this.isInited()) { + throw new DruidRuntimeException("dataSource inited."); + } else { + this.destroyScheduler = destroyScheduler; + } + } + + public boolean isInited() { + return this.inited; + } + + public int getMaxCreateTaskCount() { + return this.maxCreateTaskCount; + } + + public void setMaxCreateTaskCount(int maxCreateTaskCount) { + if (maxCreateTaskCount < 1) { + throw new IllegalArgumentException(); + } else { + this.maxCreateTaskCount = maxCreateTaskCount; + } + } + + public boolean isFailFast() { + return this.failFast; + } + + public void setFailFast(boolean failFast) { + this.failFast = failFast; + } + + public int getOnFatalErrorMaxActive() { + return this.onFatalErrorMaxActive; + } + + public void setOnFatalErrorMaxActive(int onFatalErrorMaxActive) { + this.onFatalErrorMaxActive = onFatalErrorMaxActive; + } + + public boolean isOnFatalError() { + return this.onFatalError; + } + + public boolean isInitExceptionThrow() { + return this.initExceptionThrow; + } + + public void setInitExceptionThrow(boolean initExceptionThrow) { + this.initExceptionThrow = initExceptionThrow; + } + + public static class PhysicalConnectionInfo { + private Connection connection; + private long connectStartNanos; + private long connectedNanos; + private long initedNanos; + private long validatedNanos; + private Map vairiables; + private Map globalVairiables; + long createTaskId; + + public PhysicalConnectionInfo(Connection connection, long connectStartNanos, long connectedNanos, long initedNanos, long validatedNanos) { + this(connection, connectStartNanos, connectedNanos, initedNanos, validatedNanos, (Map)null, (Map)null); + } + + public PhysicalConnectionInfo(Connection connection, long connectStartNanos, long connectedNanos, long initedNanos, long validatedNanos, Map vairiables, Map globalVairiables) { + this.connection = connection; + this.connectStartNanos = connectStartNanos; + this.connectedNanos = connectedNanos; + this.initedNanos = initedNanos; + this.validatedNanos = validatedNanos; + this.vairiables = vairiables; + this.globalVairiables = globalVairiables; + } + + public Connection getPhysicalConnection() { + return this.connection; + } + + public long getConnectStartNanos() { + return this.connectStartNanos; + } + + public long getConnectedNanos() { + return this.connectedNanos; + } + + public long getInitedNanos() { + return this.initedNanos; + } + + public long getValidatedNanos() { + return this.validatedNanos; + } + + public long getConnectNanoSpan() { + return this.connectedNanos - this.connectStartNanos; + } + + public Map getVairiables() { + return this.vairiables; + } + + public Map getGlobalVairiables() { + return this.globalVairiables; + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/DataBackupApplication.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/DataBackupApplication.java new file mode 100644 index 0000000..3279af5 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/DataBackupApplication.java @@ -0,0 +1,26 @@ +package top.hcode.hoj; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.retry.annotation.EnableRetry; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/22 23:25 + * @Description: + */ +@EnableRetry +@EnableScheduling // 开启定时任务 +@EnableDiscoveryClient // 开启注册发现 +@SpringBootApplication +@EnableAsync(proxyTargetClass=true) //开启异步注解 +@EnableTransactionManagement +public class DataBackupApplication { + public static void main(String[] args) { + SpringApplication.run(DataBackupApplication.class,args); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/advice/GlobalExceptionAdvice.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/advice/GlobalExceptionAdvice.java new file mode 100644 index 0000000..d2a7850 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/advice/GlobalExceptionAdvice.java @@ -0,0 +1,299 @@ +package top.hcode.hoj.advice; + + +import com.google.protobuf.ServiceException; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.exceptions.PersistenceException; +import org.apache.shiro.ShiroException; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authz.AuthorizationException; +import org.apache.shiro.authz.UnauthenticatedException; +import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.http.HttpStatus; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.validation.BindException; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.validation.ObjectError; +import org.springframework.web.HttpMediaTypeNotSupportedException; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.MissingServletRequestParameterException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import top.hcode.hoj.common.exception.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.exception.AccessException; + +import javax.mail.MessagingException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.ConstraintViolation; +import javax.validation.ConstraintViolationException; +import javax.validation.ValidationException; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.sql.SQLException; +import java.util.Set; + +/** + * 全局异常处理 + */ +@Slf4j(topic = "hoj") +@RestControllerAdvice +public class GlobalExceptionAdvice { + + + /** + * 400 - Internal Server Error 自定义通用异常 + */ + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler(value = {StatusForbiddenException.class, + StatusAccessDeniedException.class, + StatusFailException.class, + StatusNotFoundException.class, + StatusSystemErrorException.class}) + public CommonResult handleCustomException(Exception e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + + + /** + * 401 -UnAuthorized 处理AuthenticationException,token相关异常 即是认证出错 可能无法处理! + */ + @ResponseStatus(HttpStatus.UNAUTHORIZED) + @ExceptionHandler(value = AuthenticationException.class) + public CommonResult handleAuthenticationException(AuthenticationException e, + HttpServletRequest httpRequest, + HttpServletResponse httpResponse) { + httpResponse.setHeader("Url-Type", httpRequest.getHeader("Url-Type")); // 为了前端能区别请求来源 + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } + + /** + * 401 -UnAuthorized UnauthenticatedException,token相关异常 即是认证出错 可能无法处理! + * 没有登录(没有token),访问有@RequiresAuthentication的请求路径会报这个异常 + */ + @ResponseStatus(HttpStatus.UNAUTHORIZED) + @ExceptionHandler(value = UnauthenticatedException.class) + public CommonResult handleUnauthenticatedException(UnauthenticatedException e, + HttpServletRequest httpRequest, + HttpServletResponse httpResponse) { + httpResponse.setHeader("Url-Type", httpRequest.getHeader("Url-Type")); // 为了前端能区别请求来源 + return CommonResult.errorResponse("请您先登录!", ResultStatus.ACCESS_DENIED); + } + + /** + * 403 -FORBIDDEN AuthorizationException异常 即是授权认证出错 可能无法处理! + */ + @ResponseStatus(HttpStatus.FORBIDDEN) + @ExceptionHandler(value = AuthorizationException.class) + public CommonResult handleAuthenticationException(AuthorizationException e, + HttpServletRequest httpRequest, + HttpServletResponse httpResponse) { + httpResponse.setHeader("Url-Type", httpRequest.getHeader("Url-Type")); // 为了前端能区别请求来源 + return CommonResult.errorResponse("对不起,您无权限进行此操作!", ResultStatus.FORBIDDEN); + } + + /** + * 403 -FORBIDDEN 处理shiro的异常 无法处理! 未能走到controller层 + */ + @ResponseStatus(HttpStatus.FORBIDDEN) + @ExceptionHandler(value = ShiroException.class) + public CommonResult handleShiroException(ShiroException e, + HttpServletRequest httpRequest, + HttpServletResponse httpResponse) { + httpResponse.setHeader("Url-Type", httpRequest.getHeader("Url-Type")); // 为了前端能区别请求来源 + return CommonResult.errorResponse("对不起,您无权限进行此操作,请先登录进行授权认证", ResultStatus.FORBIDDEN); + } + + /** + * 403 -FORBIDDEN 处理访问api能力被禁止的异常 + */ + @ResponseStatus(HttpStatus.FORBIDDEN) + @ExceptionHandler(value = AccessException.class) + public CommonResult handleAccessException(AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + + /** + * 400 - Bad Request 处理Assert的异常 断言的异常! + */ + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler(value = IllegalArgumentException.class) + public CommonResult handler(IllegalArgumentException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + + /** + * 400 - Bad Request @Validated 校验错误异常处理 + */ + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler(value = MethodArgumentNotValidException.class) + public CommonResult handlerMethodArgumentNotValidException(MethodArgumentNotValidException e) throws IOException { + BindingResult bindingResult = e.getBindingResult(); + ObjectError objectError = bindingResult.getAllErrors().stream().findFirst().get(); + return CommonResult.errorResponse(objectError.getDefaultMessage(), ResultStatus.FAIL); + } + + + /** + * 400 - Bad Request 处理缺少请求参数 + */ + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler(MissingServletRequestParameterException.class) + public CommonResult handleMissingServletRequestParameterException( + MissingServletRequestParameterException e) { + return CommonResult.errorResponse("The required request parameters are missing:" + e.getMessage(), ResultStatus.FAIL); + } + + /** + * 400 - Bad Request 参数解析失败 + */ + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler(HttpMessageNotReadableException.class) + public CommonResult handleHttpMessageNotReadableException( + HttpMessageNotReadableException e) { + return CommonResult.errorResponse("Failed to parse parameter format!", ResultStatus.FAIL); + } + + + /** + * 400 - Bad Request 参数绑定失败 + */ + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler(BindException.class) + public CommonResult handleBindException(BindException e) { + BindingResult result = e.getBindingResult(); + FieldError error = result.getFieldError(); + String field = error.getField(); + String code = error.getDefaultMessage(); + String message = String.format("%s:%s", field, code); + return CommonResult.errorResponse(message, ResultStatus.FAIL); + } + + /** + * 400 - Bad Request 参数验证失败 + */ + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler(ConstraintViolationException.class) + public CommonResult handleServiceException(ConstraintViolationException e) { + Set> violations = e.getConstraintViolations(); + ConstraintViolation violation = violations.iterator().next(); + String message = violation.getMessage(); + return CommonResult.errorResponse("[参数验证失败]parameter:" + message, ResultStatus.FAIL); + } + + /** + * 400 - Bad Request 实体校验失败 + */ + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler(ValidationException.class) + public CommonResult handleValidationException(ValidationException e) { + return CommonResult.errorResponse("Entity verification failed. The request parameters are incorrect!", ResultStatus.FAIL); + } + + /** + * 405 - Method Not Allowed 不支持当前请求方法 + */ + @ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED) + @ExceptionHandler(HttpRequestMethodNotSupportedException.class) + public CommonResult handleHttpRequestMethodNotSupportedException( + HttpRequestMethodNotSupportedException e) { + return CommonResult.errorResponse("The request method is not supported!", ResultStatus.FAIL); + } + + /** + * 415 - Unsupported Media Type 不支持当前媒体类型 + */ + @ResponseStatus(HttpStatus.UNSUPPORTED_MEDIA_TYPE) + @ExceptionHandler(HttpMediaTypeNotSupportedException.class) + public CommonResult handleHttpMediaTypeNotSupportedException(Exception e) { + return CommonResult.errorResponse("The media type is not supported!", ResultStatus.FAIL); + } + + + /** + * 500 - Internal Server Error 处理邮件发送出现的异常 + */ + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(value = MessagingException.class) + public CommonResult handler(MessagingException e) { + log.error("邮箱系统异常-------------->{}", getMessage(e)); + return CommonResult.errorResponse("Server Error! Please try Again later!", ResultStatus.SYSTEM_ERROR); + } + + /** + * 500 - Internal Server Error 业务逻辑异常 + */ + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(ServiceException.class) + public CommonResult handleServiceException(ServiceException e) { + log.error("业务逻辑异常-------------->{}", getMessage(e)); + return CommonResult.errorResponse("Server Error! Please try Again later!", ResultStatus.SYSTEM_ERROR); + } + + /** + * 500 - Internal Server Error 操作数据库出现异常:名称重复,外键关联 + */ + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(DataIntegrityViolationException.class) + public CommonResult handleDataIntegrityViolationException(DataIntegrityViolationException e) { + log.error("操作数据库出现异常-------------->{}", getMessage(e)); + return CommonResult.errorResponse("Server Error! Please try Again later!", ResultStatus.SYSTEM_ERROR); + } + + + /** + * 500 - Internal Server Error 操作数据库出现异常 + */ + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(SQLException.class) + public CommonResult handleSQLException(SQLException e) { + log.error("操作数据库出现异常-------------->{}", getMessage(e)); + return CommonResult.errorResponse("Operation failed! Error message: " + e.getMessage(), ResultStatus.SYSTEM_ERROR); + } + + /** + * 500 - Internal Server Error 批量操作数据库出现异常:名称重复,外键关联 + */ + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(PersistenceException.class) + public CommonResult handleBatchUpdateException(PersistenceException e) { + log.error("操作数据库出现异常-------------->{}", getMessage(e)); + return CommonResult.errorResponse("请检查数据是否准确!可能原因:数据库中已有相同的数据导致重复冲突!", ResultStatus.SYSTEM_ERROR); + } + + + /** + * 500 - Internal Server Error 系统通用异常 + */ + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(Exception.class) + public CommonResult handleException(Exception e) { + log.error("系统通用异常-------------->{}", getMessage(e)); + return CommonResult.errorResponse("Server Error!", ResultStatus.SYSTEM_ERROR); + } + + + /** + * 打印异常信息 + */ + public static String getMessage(Exception e) { + String swStr = null; + try (StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw)) { + e.printStackTrace(pw); + pw.flush(); + sw.flush(); + swStr = sw.toString(); + } catch (IOException ex) { + ex.printStackTrace(); + log.error(ex.getMessage()); + } + return swStr; + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccess.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccess.java new file mode 100644 index 0000000..90a8976 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccess.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @Author Himit_ZH + * @Date 2022/5/9 + */ +@Target({ElementType.TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface HOJAccess { + HOJAccessEnum[] value() default {}; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccessEnum.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccessEnum.java new file mode 100644 index 0000000..b35385e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/annotation/HOJAccessEnum.java @@ -0,0 +1,42 @@ +package top.hcode.hoj.annotation; + +/** + * @Author Himit_ZH + * @Date 2022/5/9 + */ +public enum HOJAccessEnum { + /** + * 公共讨论区 + */ + PUBLIC_DISCUSSION, + + /** + * 团队讨论区 + */ + GROUP_DISCUSSION, + + /** + * 比赛评论 + */ + CONTEST_COMMENT, + + /** + * 公共评测 + */ + PUBLIC_JUDGE, + + /** + * 团队评测 + */ + GROUP_JUDGE, + + /** + * 比赛评测 + */ + CONTEST_JUDGE, + + /** + * 隐藏非比赛提交详情的代码 + */ + HIDE_NON_CONTEST_SUBMISSION_CODE +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusAccessDeniedException.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusAccessDeniedException.java new file mode 100644 index 0000000..624f5af --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusAccessDeniedException.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.common.exception; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 10:30 + * @Description: + */ +public class StatusAccessDeniedException extends Exception { + + public StatusAccessDeniedException() { + } + + public StatusAccessDeniedException(String message) { + super(message); + } + + public StatusAccessDeniedException(String message, Throwable cause) { + super(message, cause); + } + + public StatusAccessDeniedException(Throwable cause) { + super(cause); + } + + public StatusAccessDeniedException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusFailException.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusFailException.java new file mode 100644 index 0000000..7be8fff --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusFailException.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.common.exception; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 10:27 + * @Description: + */ +public class StatusFailException extends Exception{ + public StatusFailException() { + } + + public StatusFailException(String message) { + super(message); + } + + public StatusFailException(String message, Throwable cause) { + super(message, cause); + } + + public StatusFailException(Throwable cause) { + super(cause); + } + + public StatusFailException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusForbiddenException.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusForbiddenException.java new file mode 100644 index 0000000..c2814c7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusForbiddenException.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.common.exception; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 10:29 + * @Description: + */ +public class StatusForbiddenException extends Exception{ + + public StatusForbiddenException() { + } + + public StatusForbiddenException(String message) { + super(message); + } + + public StatusForbiddenException(String message, Throwable cause) { + super(message, cause); + } + + public StatusForbiddenException(Throwable cause) { + super(cause); + } + + public StatusForbiddenException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusNotFoundException.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusNotFoundException.java new file mode 100644 index 0000000..5c80059 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusNotFoundException.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.common.exception; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 10:30 + * @Description: + */ +public class StatusNotFoundException extends Exception{ + + public StatusNotFoundException() { + } + + public StatusNotFoundException(String message) { + super(message); + } + + public StatusNotFoundException(String message, Throwable cause) { + super(message, cause); + } + + public StatusNotFoundException(Throwable cause) { + super(cause); + } + + public StatusNotFoundException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusSystemErrorException.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusSystemErrorException.java new file mode 100644 index 0000000..88f000d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/exception/StatusSystemErrorException.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.common.exception; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 14:33 + * @Description: + */ +public class StatusSystemErrorException extends Exception { + + public StatusSystemErrorException() { + } + + public StatusSystemErrorException(String message) { + super(message); + } + + public StatusSystemErrorException(String message, Throwable cause) { + super(message, cause); + } + + public StatusSystemErrorException(Throwable cause) { + super(cause); + } + + public StatusSystemErrorException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/result/CommonResult.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/result/CommonResult.java new file mode 100644 index 0000000..880c928 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/result/CommonResult.java @@ -0,0 +1,73 @@ +package top.hcode.hoj.common.result; + +import lombok.Data; + +@Data +public class CommonResult{ + + private final Integer status; // 状态码 + + private final T data; // 返回的数据 + + private final String msg; // 自定义信息 + + + /** + * 成功的结果 + * + * @param data 返回结果 + * @param msg 返回信息 + */ + public static CommonResult successResponse(T data, String msg) { + return new CommonResult<>(ResultStatus.SUCCESS.getStatus(), data, msg); + } + + + /** + * 成功的结果 + * + * @param data 返回结果 + */ + public static CommonResult successResponse(T data) { + return new CommonResult(ResultStatus.SUCCESS.getStatus(), data, "success"); + } + + /** + * 成功的结果 + * + * @param msg 返回信息 + */ + public static CommonResult successResponse(String msg) { + return new CommonResult(ResultStatus.SUCCESS.getStatus(), null, msg); + } + + /** + * 成功的结果 + */ + public static CommonResult successResponse() { + return new CommonResult(ResultStatus.SUCCESS.getStatus(), null, "success"); + } + + + /** + * 失败的结果,无异常 + * + * @param msg 返回信息 + */ + public static CommonResult errorResponse(String msg) { + return new CommonResult(ResultStatus.FAIL.getStatus(), null, msg); + } + + public static CommonResult errorResponse(ResultStatus resultStatus) { + return new CommonResult(resultStatus.getStatus(), null, resultStatus.getDescription()); + } + + public static CommonResult errorResponse(String msg, ResultStatus resultStatus) { + return new CommonResult(resultStatus.getStatus(), null, msg); + } + + public static CommonResult errorResponse(String msg, Integer status) { + return new CommonResult(status, null, msg); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/result/ResultStatus.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/result/ResultStatus.java new file mode 100644 index 0000000..9e71faa --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/common/result/ResultStatus.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.common.result; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 15:17 + * @Description: + */ +@Getter +@AllArgsConstructor +public enum ResultStatus { + + SUCCESS(200,"成功"), + + FAIL(400,"失败"), + + ACCESS_DENIED(401,"访问受限"), + + FORBIDDEN(403,"拒绝访问"), + + NOT_FOUND(404,"数据不存在"), + + SYSTEM_ERROR(500,"系统错误"); + + + private int status; + + private String description; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/AsyncTaskConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/AsyncTaskConfig.java new file mode 100644 index 0000000..7cc62f2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/AsyncTaskConfig.java @@ -0,0 +1,62 @@ +package top.hcode.hoj.config; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.AsyncConfigurer; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.lang.reflect.Method; +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * @Author: Himit_ZH + * @Date: 2020/11/6 23:36 + * @Description: 通用异步线程池 + */ +@Configuration +@Slf4j(topic = "hoj") +public class AsyncTaskConfig implements AsyncConfigurer { + @Override + public Executor getAsyncExecutor() { + ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); + // 线程池维护线程的最少数量 + taskExecutor.setCorePoolSize(10); + // 线程池维护线程的最大数量 + taskExecutor.setMaxPoolSize(20); + // 缓存队列 + taskExecutor.setQueueCapacity(200); + //活跃时间 + taskExecutor.setKeepAliveSeconds(3); + // 对拒绝task的处理策略 + //(1) 默认的ThreadPoolExecutor.AbortPolicy 处理程序遭到拒绝将抛出运行时RejectedExecutionException; + //(2) ThreadPoolExecutor.CallerRunsPolicy 线程调用运行该任务的 execute 本身。此策略提供简单的反馈控制机制,能够减缓新任务的提交速度 + //(3) ThreadPoolExecutor.DiscardPolicy 不能执行的任务将被删除; + //(4) ThreadPoolExecutor.DiscardOldestPolicy 如果执行程序尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序(如果再次失败,则重复此过程) + taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + // 线程名前缀,方便排查问题 + taskExecutor.setThreadNamePrefix("CommonThread-"); + // 注意一定要初始化 + taskExecutor.initialize(); + + return taskExecutor; + + } + + /** + * 异步任务中异常处理 + * @return + */ + @Override + public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { + return new AsyncUncaughtExceptionHandler() { + + @Override + public void handleUncaughtException(Throwable arg0, Method arg1, Object... arg2) { + log.error("==========================" + arg0.getMessage() + "=======================", arg0); + log.error("exception method:" + arg1.getName()); + } + }; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/DataSourceConfigure.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/DataSourceConfigure.java new file mode 100644 index 0000000..d9fe45c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/DataSourceConfigure.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; + +/** + * @Author Himit_ZH + * @Date 2022/6/15 + */ +@Component +@RefreshScope +@ConfigurationProperties(prefix = "hoj.db") +@Data +public class DataSourceConfigure { + + private String username; + + private String password; + + private String host; + + private Integer port; + + private String name; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/DruidConfigure.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/DruidConfigure.java new file mode 100644 index 0000000..654c18c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/DruidConfigure.java @@ -0,0 +1,130 @@ +package top.hcode.hoj.config; + +import com.alibaba.druid.pool.DruidDataSource; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Optional; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/21 17:57 + * @Description: + */ +@Configuration +@RefreshScope +@Data +@Slf4j(topic = "hoj") +public class DruidConfigure { + + @Value("${mysql-username}") + private String username; + + @Value("${mysql-password}") + private String password; + + @Value("${mysql-host}") + private String host; + + @Value("${mysql-port}") + private Integer port; + + @Value("${mysql-name}") + private String name; + + @Value("${spring.datasource.driver-class-name}") + private String driverClassName; + + @Value("${spring.datasource.type}") + private String type; + + @Value("${spring.datasource.initial-size}") + private Integer initialSize; + + @Value("${spring.datasource.poolPreparedStatements:true}") + private Boolean poolPreparedStatements; + + @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize:20}") + private Integer maxPoolPreparedStatementPerConnectionSize; + + @Value("${spring.datasource.timeBetweenEvictionRunsMillis:60000}") + private Integer timeBetweenEvictionRunsMillis; + + @Value("${spring.datasource.minEvictableIdleTimeMillis:300000}") + private Integer minEvictableIdleTimeMillis; + + @Value("${spring.datasource.validationQuery}") + private String validationQuery; + + @Value("${spring.datasource.testWhileIdle:true}") + private Boolean testWhileIdle; + + @Value("${spring.datasource.testOnBorrow:false}") + private Boolean testOnBorrow; + + @Value("${spring.datasource.testOnReturn:false}") + private Boolean testOnReturn; + + @Value("${spring.datasource.connectionErrorRetryAttempts:3}") + private Integer connectionErrorRetryAttempts; + + @Value("${spring.datasource.breakAfterAcquireFailure:true}") + private Boolean breakAfterAcquireFailure; + + @Value("${spring.datasource.timeBetweenConnectErrorMillis:300000}") + private Integer timeBetweenConnectErrorMillis; + + @Value("${spring.datasource.min-idle}") + private Integer minIdle; + + @Value("${spring.datasource.maxActive}") + private Integer maxActive; + + @Value("${spring.datasource.maxWait}") + private Integer maxWait; + + @Autowired + private DataSourceConfigure dataSourceConfigure; + + @Bean(name = "datasource") + @RefreshScope + public DruidDataSource dataSource(){ + + String mysqlHost = Optional.ofNullable(dataSourceConfigure.getHost()).orElseGet(() -> host); + Integer mysqlPort = Optional.ofNullable(dataSourceConfigure.getPort()).orElseGet(() -> port); + String mysqlName = Optional.ofNullable(dataSourceConfigure.getName()).orElseGet(() -> name); + String mysqlUsername = Optional.ofNullable(dataSourceConfigure.getUsername()).orElseGet(() -> username); + String mysqlUserPassword = Optional.ofNullable(dataSourceConfigure.getPassword()).orElseGet(() -> password); + + log.warn("[MySQL] [Config Change] name:[{}], host:[{}], port:[{}], username:[{}], password:[{}]", mysqlName, mysqlHost, mysqlPort, mysqlUsername, mysqlUserPassword); + + DruidDataSource datasource = new DruidDataSource(); + String url = "jdbc:mysql://" + mysqlHost + ":" + mysqlPort + "/" + mysqlName + "?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true"; + datasource.setUrl(url); + datasource.setUsername(mysqlUsername); + datasource.setPassword(mysqlUserPassword); + datasource.setDriverClassName(driverClassName); + datasource.setDbType(type); + datasource.setMaxActive(maxActive); + datasource.setInitialSize(initialSize); + datasource.setMinIdle(minIdle); + datasource.setMaxWait(maxWait); + datasource.setPoolPreparedStatements(poolPreparedStatements); + datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize); + datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); + datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); + datasource.setValidationQuery(validationQuery); + datasource.setTestWhileIdle(testWhileIdle); + datasource.setTestOnReturn(testOnReturn); + datasource.setTestOnBorrow(testOnBorrow); + datasource.setConnectionErrorRetryAttempts(connectionErrorRetryAttempts); + datasource.setBreakAfterAcquireFailure(breakAfterAcquireFailure); + datasource.setTimeBetweenConnectErrorMillis(timeBetweenConnectErrorMillis); + return datasource; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/JedisPoolConfigure.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/JedisPoolConfigure.java new file mode 100644 index 0000000..055ced8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/JedisPoolConfigure.java @@ -0,0 +1,22 @@ +package top.hcode.hoj.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; + +/** + * @Author Himit_ZH + * @Date 2022/6/15 + */ +@Component +@RefreshScope +@ConfigurationProperties(prefix = "hoj.redis") +@Data +public class JedisPoolConfigure { + private String host; + + private Integer port; + + private String password; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/JudgeAsyncTaskConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/JudgeAsyncTaskConfig.java new file mode 100644 index 0000000..96b8294 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/JudgeAsyncTaskConfig.java @@ -0,0 +1,39 @@ +package top.hcode.hoj.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/24 16:54 + * @Description: 专用于判题的异步线程池 + */ +@Configuration +@EnableAsync +public class JudgeAsyncTaskConfig { + @Bean + public Executor judgeTaskAsyncPool() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + //核心线程池大小 + executor.setCorePoolSize(2); + //最大线程数 + executor.setMaxPoolSize(10); + //队列容量 + executor.setQueueCapacity(500); + //活跃时间 + executor.setKeepAliveSeconds(3); + //线程名字前缀 + executor.setThreadNamePrefix("JudgeExecutor-"); + + // setRejectedExecutionHandler:当pool已经达到max size的时候,如何处理新任务 + // CallerRunsPolicy:不在新线程中执行任务,而是由调用者所在的线程来执行 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + executor.initialize(); + return executor; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/MyMetaObjectConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/MyMetaObjectConfig.java new file mode 100644 index 0000000..a407eff --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/MyMetaObjectConfig.java @@ -0,0 +1,26 @@ +package top.hcode.hoj.config; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/4 14:14 + * @Description: 处理mybatis-plus自动填充时间 + */ +@Component +public class MyMetaObjectConfig implements MetaObjectHandler { + @Override + public void insertFill(MetaObject metaObject) { + this.setFieldValByName("gmtCreate",new Date(),metaObject); + this.setFieldValByName("gmtModified",new Date(),metaObject); + } + + @Override + public void updateFill(MetaObject metaObject) { + this.setFieldValByName("gmtModified", new Date(), metaObject); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/MybatisPlusConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/MybatisPlusConfig.java new file mode 100644 index 0000000..f5c4ffd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/MybatisPlusConfig.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.config; +import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * @Author: Himit_ZH + * @Date: 2020/7/19 21:04 + * @Description: + */ +@Configuration +@EnableTransactionManagement +@MapperScan("top.hcode.hoj.mapper") +public class MybatisPlusConfig { + + // 注册乐观锁插件 + @Bean + public OptimisticLockerInterceptor optimisticLockerInterceptor() { + return new OptimisticLockerInterceptor(); + } + + // 分页插件 + @Bean + public PaginationInterceptor paginationInterceptor() { + return new PaginationInterceptor(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RedisAutoConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RedisAutoConfig.java new file mode 100644 index 0000000..e4c2307 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RedisAutoConfig.java @@ -0,0 +1,72 @@ +package top.hcode.hoj.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.RedisPassword; +import org.springframework.data.redis.connection.RedisStandaloneConfiguration; +import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; +import redis.clients.jedis.JedisPoolConfig; + +import java.util.Optional; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/21 15:53 + * @Description: + */ +@Configuration +public class RedisAutoConfig { + + @Value("${spring.redis.jedis.pool.max-active:200}") + private Integer maxActive; + @Value("${spring.redis.jedis.pool.max-idle:50}") + private Integer maxIdle; + @Value("${spring.redis.jedis.pool.max-wait:-1}") + private Long maxWait; + @Value("${spring.redis.jedis.pool.min-idle:10}") + private Integer minIdle; + + @Value("${redis-host}") + private String redisHost; + @Value("${redis-port}") + private Integer redisPort; + @Value("${redis-password}") + private String redisPassword; + + @Autowired + private JedisPoolConfigure jedisPoolConfigure; + + + @Bean + public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig jedisPool, + RedisStandaloneConfiguration jedisConfig) { + JedisConnectionFactory connectionFactory = new JedisConnectionFactory(jedisConfig); + connectionFactory.setPoolConfig(jedisPool); + return connectionFactory; + } + + @Bean + public JedisPoolConfig jedisPool() { + JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); + jedisPoolConfig.setMaxIdle(maxIdle); + jedisPoolConfig.setMaxWaitMillis(maxWait); + jedisPoolConfig.setMaxTotal(maxActive); + jedisPoolConfig.setMinIdle(minIdle); + return jedisPoolConfig; + } + + @Bean + @RefreshScope + public RedisStandaloneConfiguration jedisConfig() { + RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(); + config.setHostName(Optional.ofNullable(jedisPoolConfigure.getHost()).orElseGet(() -> redisHost)); + config.setPort(Optional.ofNullable(jedisPoolConfigure.getPort()).orElseGet(() -> redisPort)); + config.setPassword(RedisPassword.of(Optional.ofNullable(jedisPoolConfigure.getPassword()).orElseGet(() -> redisPassword))); + return config; + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RedisConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RedisConfig.java new file mode 100644 index 0000000..c8948e7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RedisConfig.java @@ -0,0 +1,50 @@ +package top.hcode.hoj.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/23 23:47 + * @Description: + */ +@Configuration +public class RedisConfig { + // 自己定义了一个 RedisTemplate + @Bean(name = "redisTemplate") + @SuppressWarnings("all") + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + // 我们为了自己开发方便,一般直接使用 + RedisTemplate template = new RedisTemplate(); + template.setConnectionFactory(factory); + + // Json序列化配置 + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); + ObjectMapper om = new ObjectMapper(); + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + jackson2JsonRedisSerializer.setObjectMapper(om); + // String 的序列化 + StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); + + // key采用String的序列化方式 + template.setKeySerializer(stringRedisSerializer); + // hash的key也采用String的序列化方式 + template.setHashKeySerializer(stringRedisSerializer); + // value序列化方式采用jackson + template.setValueSerializer(jackson2JsonRedisSerializer); + // hash的value序列化方式采用jackson + template.setHashValueSerializer(jackson2JsonRedisSerializer); + template.afterPropertiesSet(); + + return template; + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RestTemplateConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RestTemplateConfig.java new file mode 100644 index 0000000..5dc8336 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/RestTemplateConfig.java @@ -0,0 +1,30 @@ +package top.hcode.hoj.config; + +import org.springframework.cloud.client.loadbalancer.LoadBalanced; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +/** + * @Author: Himit_ZH + * @Date: 2020/5/19 22:47 + * @Description: + */ +@Configuration +public class RestTemplateConfig { + @Bean + public RestTemplate restTemplate(ClientHttpRequestFactory factory) + { + return new RestTemplate(factory); + } + + @Bean + public ClientHttpRequestFactory simpleClientHttpRequestFactory() { + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + factory.setReadTimeout(600000);//单位为ms + factory.setConnectTimeout(50000);//单位为ms + return factory; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/ShiroConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/ShiroConfig.java new file mode 100644 index 0000000..6bf509c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/ShiroConfig.java @@ -0,0 +1,101 @@ +package top.hcode.hoj.config; + +/** + * @Author: Himit_ZH + * @Date: 2020/7/19 22:53 + * @Description: + */ + +import org.apache.shiro.mgt.DefaultSessionStorageEvaluator; +import org.apache.shiro.mgt.DefaultSubjectDAO; +import org.apache.shiro.mgt.SecurityManager; +import org.apache.shiro.session.mgt.SessionManager; +import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; +import org.apache.shiro.spring.web.ShiroFilterFactoryBean; +import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition; +import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition; +import org.apache.shiro.web.mgt.DefaultWebSecurityManager; +import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; +import org.crazycake.shiro.RedisCacheManager; +import org.crazycake.shiro.RedisSessionDAO; +import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import top.hcode.hoj.shiro.AccountRealm; +import top.hcode.hoj.shiro.JwtFilter; + + +import javax.servlet.Filter; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * shiro启用注解拦截控制器 + */ +@Configuration +public class ShiroConfig { + @Autowired + JwtFilter jwtFilter; + + @Bean + public SessionManager sessionManager(RedisSessionDAO redisSessionDAO) { + DefaultWebSessionManager sessionManager = new DefaultWebSessionManager(); + sessionManager.setSessionDAO(redisSessionDAO); + return sessionManager; + } + + + @Bean + public DefaultWebSecurityManager securityManager(AccountRealm accountRealm, + SessionManager sessionManager, + RedisCacheManager redisCacheManager) { + DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(accountRealm); + securityManager.setSessionManager(sessionManager); + securityManager.setCacheManager(redisCacheManager); + /* + * 关闭shiro自带的session,详情见文档 + */ + DefaultSubjectDAO subjectDAO = new DefaultSubjectDAO(); + DefaultSessionStorageEvaluator defaultSessionStorageEvaluator = new DefaultSessionStorageEvaluator(); + defaultSessionStorageEvaluator.setSessionStorageEnabled(false); + subjectDAO.setSessionStorageEvaluator(defaultSessionStorageEvaluator); + securityManager.setSubjectDAO(subjectDAO); + return securityManager; + } + @Bean + public ShiroFilterChainDefinition shiroFilterChainDefinition() { + DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition(); + Map filterMap = new LinkedHashMap<>(); + filterMap.put("/**", "jwt"); // 主要通过注解方式校验权限 + chainDefinition.addPathDefinitions(filterMap); + return chainDefinition; + } + @Bean("shiroFilterFactoryBean") + public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager, + ShiroFilterChainDefinition shiroFilterChainDefinition) { + ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean(); + shiroFilter.setSecurityManager(securityManager); + Map filters = new HashMap<>(); + filters.put("jwt", jwtFilter); + shiroFilter.setFilters(filters); + Map filterMap = shiroFilterChainDefinition.getFilterChainMap(); + shiroFilter.setFilterChainDefinitionMap(filterMap); + return shiroFilter; + } + + //开启注解代理(默认好像已经开启,可以不要) + @Bean + public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager){ + AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); + authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); + return authorizationAttributeSourceAdvisor; + } + @Bean + public static DefaultAdvisorAutoProxyCreator getDefaultAdvisorAutoProxyCreator() { + DefaultAdvisorAutoProxyCreator creator = new DefaultAdvisorAutoProxyCreator(); + creator.setProxyTargetClass(true); + return creator; + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/StartupRunner.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/StartupRunner.java new file mode 100644 index 0000000..5e58cfa --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/StartupRunner.java @@ -0,0 +1,448 @@ +package top.hcode.hoj.config; + +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.crawler.language.LanguageContext; +import top.hcode.hoj.dao.judge.RemoteJudgeAccountEntityService; +import top.hcode.hoj.dao.problem.LanguageEntityService; +import top.hcode.hoj.manager.admin.system.ConfigManager; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; +import top.hcode.hoj.pojo.entity.problem.Language; +import top.hcode.hoj.pojo.vo.ConfigVo; +import top.hcode.hoj.utils.Constants; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/2/19 22:11 + * @Description:项目启动后,初始化运行该run方法 + */ +@Component +@Slf4j(topic = "hoj") +public class StartupRunner implements CommandLineRunner { + + @Autowired + private ConfigVo configVo; + + @Autowired + private ConfigManager configManager; + + @Autowired + private RemoteJudgeAccountEntityService remoteJudgeAccountEntityService; + + @Autowired + private LanguageEntityService languageEntityService; + + @Value("${open-remote-judge}") + private String openRemoteJudge; + + // jwt配置 + @Value("${jwt-token-secret}") + private String tokenSecret; + + @Value("${jwt-token-expire}") + private String tokenExpire; + + @Value("${jwt-token-fresh-expire}") + private String checkRefreshExpire; + + // 数据库配置 + @Value("${mysql-username}") + private String mysqlUsername; + + @Value("${mysql-password}") + private String mysqlPassword; + + @Value("${mysql-name}") + private String mysqlDBName; + + @Value("${mysql-host}") + private String mysqlHost; + + @Value("${mysql-public-host}") + private String mysqlPublicHost; + + @Value("${mysql-port}") + private Integer mysqlPort; + + @Value("${mysql-public-port}") + private Integer mysqlPublicPort; + + // 缓存配置 + @Value("${redis-host}") + private String redisHost; + + @Value("${redis-port}") + private Integer redisPort; + + @Value("${redis-password}") + private String redisPassword; + // 判题服务token + @Value("${judge-token}") + private String judgeToken; + + // 邮箱配置 + @Value("${email-username}") + private String emailUsername; + + @Value("${email-password}") + private String emailPassword; + + @Value("${email-host}") + private String emailHost; + + @Value("${email-port}") + private Integer emailPort; + + @Value("${hdu-username-list}") + private List hduUsernameList; + + @Value("${hdu-password-list}") + private List hduPasswordList; + + @Value("${cf-username-list}") + private List cfUsernameList; + + @Value("${cf-password-list}") + private List cfPasswordList; + + @Value("${poj-username-list}") + private List pojUsernameList; + + @Value("${poj-password-list}") + private List pojPasswordList; + + @Value("${atcoder-username-list}") + private List atcoderUsernameList; + + @Value("${atcoder-password-list}") + private List atcoderPasswordList; + + @Value("${spoj-username-list}") + private List spojUsernameList; + + @Value("${spoj-password-list}") + private List spojPasswordList; + + @Value("${forced-update-remote-judge-account}") + private Boolean forcedUpdateRemoteJudgeAccount; + + @Override + public void run(String... args) throws Exception { + + // 动态修改nacos上的配置文件 + if (judgeToken.equals("default")) { + configVo.setJudgeToken(IdUtil.fastSimpleUUID()); + } else { + configVo.setJudgeToken(judgeToken); + } + + if (tokenSecret.equals("default")) { + configVo.setTokenSecret(IdUtil.fastSimpleUUID()); + } else { + configVo.setTokenSecret(tokenSecret); + } + configVo.setTokenExpire(tokenExpire); + configVo.setCheckRefreshExpire(checkRefreshExpire); + + configVo.setMysqlUsername(mysqlUsername); + configVo.setMysqlPassword(mysqlPassword); + configVo.setMysqlHost(mysqlHost); + configVo.setMysqlPublicHost(mysqlPublicHost); + configVo.setMysqlPort(mysqlPort); + configVo.setMysqlPublicPort(mysqlPublicPort); + configVo.setMysqlDBName(mysqlDBName); + + configVo.setRedisHost(redisHost); + configVo.setRedisPort(redisPort); + configVo.setRedisPassword(redisPassword); + + if (configVo.getEmailHost() == null || !"your_email_host".equals(emailHost)) { + configVo.setEmailHost(emailHost); + } + if (configVo.getEmailPort() == null || emailPort != 456) { + configVo.setEmailPort(emailPort); + } + if (configVo.getEmailUsername() == null || !"your_email_username".equals(emailUsername)) { + configVo.setEmailUsername(emailUsername); + } + if (configVo.getEmailPassword() == null || !"your_email_password".equals(emailPassword)) { + configVo.setEmailPassword(emailPassword); + } + + if (CollectionUtils.isEmpty(configVo.getHduUsernameList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setHduUsernameList(hduUsernameList); + }else { + hduUsernameList = configVo.getHduUsernameList(); + } + + if (CollectionUtils.isEmpty(configVo.getHduPasswordList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setHduPasswordList(hduPasswordList); + }else { + hduPasswordList = configVo.getHduPasswordList(); + } + + if (CollectionUtils.isEmpty(configVo.getCfUsernameList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setCfUsernameList(cfUsernameList); + }else { + cfUsernameList = configVo.getCfUsernameList(); + } + + if (CollectionUtils.isEmpty(configVo.getCfPasswordList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setCfPasswordList(cfPasswordList); + }else { + cfPasswordList = configVo.getCfPasswordList(); + } + + if (CollectionUtils.isEmpty(configVo.getPojUsernameList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setPojUsernameList(pojUsernameList); + }else { + pojUsernameList = configVo.getPojUsernameList(); + } + + if (CollectionUtils.isEmpty(configVo.getPojPasswordList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setPojPasswordList(pojPasswordList); + }else { + pojPasswordList = configVo.getPojPasswordList(); + } + + if (CollectionUtils.isEmpty(configVo.getAtcoderUsernameList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setAtcoderUsernameList(atcoderUsernameList); + }else { + atcoderUsernameList = configVo.getAtcoderUsernameList(); + } + + if (CollectionUtils.isEmpty(configVo.getAtcoderPasswordList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setAtcoderPasswordList(atcoderPasswordList); + }else { + atcoderPasswordList = configVo.getAtcoderPasswordList(); + } + + if (CollectionUtils.isEmpty(configVo.getSpojUsernameList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setSpojUsernameList(spojUsernameList); + }else { + spojUsernameList = configVo.getSpojUsernameList(); + } + + if (CollectionUtils.isEmpty(configVo.getSpojPasswordList()) || forcedUpdateRemoteJudgeAccount) { + configVo.setSpojPasswordList(spojPasswordList); + }else { + spojPasswordList = configVo.getSpojPasswordList(); + } + + configManager.sendNewConfigToNacos(); + + upsertHOJLanguage("PHP", "PyPy2", "PyPy3", "JavaScript Node", "JavaScript V8"); + + checkAllLanguageUpdate(); + + if (openRemoteJudge.equals("true")) { + // 初始化清空表 + remoteJudgeAccountEntityService.remove(new QueryWrapper<>()); + addRemoteJudgeAccountToMySQL(Constants.RemoteOJ.HDU.getName(), hduUsernameList, hduPasswordList); + addRemoteJudgeAccountToMySQL(Constants.RemoteOJ.POJ.getName(), pojUsernameList, pojPasswordList); + addRemoteJudgeAccountToMySQL(Constants.RemoteOJ.CODEFORCES.getName(), cfUsernameList, cfPasswordList); + addRemoteJudgeAccountToMySQL(Constants.RemoteOJ.SPOJ.getName(), spojUsernameList, spojPasswordList); + addRemoteJudgeAccountToMySQL(Constants.RemoteOJ.ATCODER.getName(), atcoderUsernameList, atcoderPasswordList); + + checkRemoteOJLanguage(Constants.RemoteOJ.SPOJ, Constants.RemoteOJ.ATCODER); + } + + } + + /** + * @param oj + * @param usernameList + * @param passwordList + * @MethodName addRemoteJudgeAccountToRedis + * @Description 将传入的对应oj账号写入到mysql + * @Return + * @Since 2021/5/18 + */ + private void addRemoteJudgeAccountToMySQL(String oj, List usernameList, List passwordList) { + + + if (CollectionUtils.isEmpty(usernameList) || CollectionUtils.isEmpty(passwordList) || usernameList.size() != passwordList.size()) { + log.error("[Init System Config] [{}]: There is no account or password configured for remote judge, " + + "username list:{}, password list:{}", oj, Arrays.toString(usernameList.toArray()), + Arrays.toString(passwordList.toArray())); + } + + List remoteAccountList = new LinkedList<>(); + for (int i = 0; i < usernameList.size(); i++) { + + remoteAccountList.add(new RemoteJudgeAccount() + .setUsername(usernameList.get(i)) + .setPassword(passwordList.get(i)) + .setStatus(true) + .setVersion(0L) + .setOj(oj)); + + } + + if (remoteAccountList.size() > 0) { + boolean addOk = remoteJudgeAccountEntityService.saveOrUpdateBatch(remoteAccountList); + if (!addOk) { + log.error("[Init System Config] Remote judge initialization failed. Failed to add account for: [{}]. Please check the configuration file and restart!", oj); + } + } + } + + + private void upsertHOJLanguage(String... languageList) { + /** + * 2022.02.25 新增js、pypy、php语言 + */ + for (String language : languageList) { + QueryWrapper languageQueryWrapper = new QueryWrapper<>(); + languageQueryWrapper.eq("oj", "ME") + .eq("name", language); + int count = languageEntityService.count(languageQueryWrapper); + if (count == 0) { + Language newLanguage = buildHOJLanguage(language); + boolean isOk = languageEntityService.save(newLanguage); + if (!isOk) { + log.error("[Init System Config] [HOJ] Failed to add new language [{}]! Please check whether the language table corresponding to the database has the language!", language); + } + } + } + } + + private void checkAllLanguageUpdate() { + + /** + * 2022.02.25 更新原有的python3.6.9为python3.7.5 + */ + UpdateWrapper languageUpdateWrapper = new UpdateWrapper<>(); + languageUpdateWrapper.eq("oj", "ME") + .eq("name", "Python3") + .set("description", "Python 3.7.5"); + languageEntityService.update(languageUpdateWrapper); + + /** + * 2022.02.25 删除cf的Microsoft Visual C++ 2010 + */ + UpdateWrapper deleteWrapper = new UpdateWrapper<>(); + deleteWrapper.eq("name", "Microsoft Visual C++ 2010") + .eq("oj", "CF"); + languageEntityService.remove(deleteWrapper); + } + + private void checkRemoteOJLanguage(Constants.RemoteOJ... remoteOJList) { + for (Constants.RemoteOJ remoteOJ : remoteOJList) { + QueryWrapper languageQueryWrapper = new QueryWrapper<>(); + languageQueryWrapper.eq("oj", remoteOJ.getName()); + int count = languageEntityService.count(languageQueryWrapper); + if (count == 0) { + List languageList = new LanguageContext(remoteOJ).buildLanguageList(); + boolean isOk = languageEntityService.saveBatch(languageList); + if (!isOk) { + log.error("[Init System Config] [{}] Failed to initialize language list! Please check whether the language table corresponding to the database has the OJ language!", remoteOJ.getName()); + } + } + } + } + + + private Language buildHOJLanguage(String lang) { + Language language = new Language(); + switch (lang) { + case "PHP": + language.setName("PHP") + .setCompileCommand("/usr/bin/php {src_path}") + .setContentType("text/x-php") + .setDescription("PHP 7.3.33") + .setTemplate(" parseInt(n, 10));\n" + + "print((a + b).toString());") + .setIsSpj(false) + .setOj("ME"); + return language; + case "PyPy2": + language.setName("PyPy2") + .setContentType("text/x-python") + .setCompileCommand("/usr/bin/pypy -m py_compile {src_path}") + .setDescription("PyPy 2.7.18 (7.3.8)") + .setTemplate("print sum(int(x) for x in raw_input().split(' '))") + .setCodeTemplate("//PREPEND BEGIN\n" + + "//PREPEND END\n" + + "\n" + + "//TEMPLATE BEGIN\n" + + "def add(a, b):\n" + + " return a + b\n" + + "//TEMPLATE END\n" + + "\n" + + "\n" + + "if __name__ == '__main__': \n" + + " //APPEND BEGIN\n" + + " a, b = 1, 1\n" + + " print add(a, b)\n" + + " //APPEND END") + .setIsSpj(false) + .setOj("ME"); + return language; + case "PyPy3": + language.setName("PyPy3") + .setContentType("text/x-python") + .setDescription("PyPy 3.8.12 (7.3.8)") + .setCompileCommand("/usr/bin/pypy3 -m py_compile {src_path}") + .setTemplate("print(sum(int(x) for x in input().split(' ')))") + .setCodeTemplate("//PREPEND BEGIN\n" + + "//PREPEND END\n" + + "\n" + + "//TEMPLATE BEGIN\n" + + "def add(a, b):\n" + + " return a + b\n" + + "//TEMPLATE END\n" + + "\n" + + "\n" + + "if __name__ == '__main__': \n" + + " //APPEND BEGIN\n" + + " a, b = 1, 1\n" + + " print(add(a, b))\n" + + " //APPEND END") + .setIsSpj(false) + .setOj("ME"); + return language; + } + return null; + } + +} + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/SwaggerConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/SwaggerConfig.java new file mode 100644 index 0000000..f0af785 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/SwaggerConfig.java @@ -0,0 +1,56 @@ +package top.hcode.hoj.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; +import org.springframework.core.env.Profiles; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.ArrayList; + +/** + * @Author: Himit_ZH + * @Date: 2020/5/29 22:28 + * @Description: + */ +//@Configuration +//@EnableSwagger2 //开启swagger2 +public class SwaggerConfig { + @Bean //配置swagger的docket的bean势力 + public Docket docket(Environment environment){ + //设置要显示的swagger环境 + Profiles profiles = Profiles.of("dev","test"); //线下环境 + //通过环境判断是否在自己所设定的环境当中 + boolean flag = environment.acceptsProfiles(profiles); + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .groupName("Himit_ZH") //分组 + .enable(flag) //开启 + .select() + //RequestHandlerSelectors扫描方式 + //any()全部 + //none 都不扫描 + //path 过滤什么路径 + .apis(RequestHandlerSelectors.basePackage("top.hcode")) + .build(); + } + //配置swagger信息 + private ApiInfo apiInfo(){ + //作者信息 + Contact contact = new Contact("Himit_ZH", "https://blog.csdn.net/weixin_43853097", "372347736@qq.com"); + return new ApiInfo( + "Himit_ZH的swaggerAPI文档", + "网站作者是个大帅哥!", + "v1.0", + "https://blog.csdn.net/weixin_43853097", + contact, + "Apache 2.0", + "http://www.apache.org/licenses/LICENSE-2.0", + new ArrayList()); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/TomcatConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/TomcatConfig.java new file mode 100644 index 0000000..ba24d93 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/TomcatConfig.java @@ -0,0 +1,30 @@ +package top.hcode.hoj.config; + +import org.apache.catalina.connector.Connector; +import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Author Himit_ZH + * @Date 2022/6/11 + * 允许请求路径出现[] \ 等特殊字符 + */ +@Configuration +public class TomcatConfig { + + @Bean + public TomcatServletWebServerFactory webServerFactory() { + TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); + factory.addConnectorCustomizers(new TomcatConnectorCustomizer() { + @Override + public void customize(Connector connector) { + connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}"); + connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}"); + connector.setProperty("rejectIllegalHeader", "false"); + } + }); + return factory; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/WebMvcConfig.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/WebMvcConfig.java new file mode 100644 index 0000000..a97c8a4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/config/WebMvcConfig.java @@ -0,0 +1,56 @@ +package top.hcode.hoj.config; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import top.hcode.hoj.interceptor.AccessInterceptor; +import top.hcode.hoj.utils.Constants; + +import java.io.File; + +/** + * 解决跨域问题以及增加注解拦截类 + */ +@Configuration +public class WebMvcConfig implements WebMvcConfigurer { + + private static final String[] EXCLUDE_PATH_PATTERNS = new String[]{ + "/api/admin/**", "/api/file/**", "/api/msg/**", "/api/public/**" + }; + + @Autowired + private AccessInterceptor accessInterceptor; + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOrigins("*") + .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS") + .allowCredentials(true) + .maxAge(3600) + .allowedHeaders("*"); + } + + // 前端直接通过/public/img/图片名称即可拿到 + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + // /api/public/img/** /api/public/file/** + registry.addResourceHandler(Constants.File.IMG_API.getPath() + "**", Constants.File.FILE_API.getPath() + "**") + .addResourceLocations("file:" + Constants.File.USER_AVATAR_FOLDER.getPath() + File.separator, + "file:" + Constants.File.GROUP_AVATAR_FOLDER.getPath() + File.separator, + "file:" + Constants.File.MARKDOWN_FILE_FOLDER.getPath() + File.separator, + "file:" + Constants.File.HOME_CAROUSEL_FOLDER.getPath() + File.separator, + "file:" + Constants.File.PROBLEM_FILE_FOLDER.getPath() + File.separator); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(accessInterceptor) + .addPathPatterns("/api/**") + .excludePathPatterns(EXCLUDE_PATH_PATTERNS); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminAccountController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminAccountController.java new file mode 100644 index 0000000..50b3a56 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminAccountController.java @@ -0,0 +1,42 @@ +package top.hcode.hoj.controller.admin; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; + +import top.hcode.hoj.pojo.dto.LoginDto; + +import top.hcode.hoj.pojo.vo.UserInfoVo; +import top.hcode.hoj.service.admin.account.AdminAccountService; + + + +/** + * @Author: Himit_ZH + * @Date: 2020/12/2 21:23 + * @Description: + */ +@RestController +@RequestMapping("/api/admin") +public class AdminAccountController { + + @Autowired + private AdminAccountService adminAccountService; + + @PostMapping("/login") + public CommonResult login(@Validated @RequestBody LoginDto loginDto){ + return adminAccountService.login(loginDto); + } + + @GetMapping("/logout") + @RequiresAuthentication + @RequiresRoles(value = {"root","admin","problem_admin"},logical = Logical.OR) + public CommonResult logout() { + return adminAccountService.logout(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminContestController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminContestController.java new file mode 100644 index 0000000..00c4346 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminContestController.java @@ -0,0 +1,236 @@ +package top.hcode.hoj.controller.admin; + + +import com.baomidou.mybatisplus.core.metadata.IPage; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.AnnouncementDto; +import top.hcode.hoj.pojo.dto.ContestProblemDto; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; + +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.vo.AdminContestVo; +import top.hcode.hoj.pojo.vo.AnnouncementVo; + +import top.hcode.hoj.service.admin.contest.AdminContestAnnouncementService; +import top.hcode.hoj.service.admin.contest.AdminContestProblemService; +import top.hcode.hoj.service.admin.contest.AdminContestService; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; + + +/** + * @Author: Himit_ZH + * @Date: 2020/12/19 22:28 + * @Description: + */ +@RestController +@RequestMapping("/api/admin/contest") +public class AdminContestController { + + + @Autowired + private AdminContestService adminContestService; + + @Autowired + private AdminContestProblemService adminContestProblemService; + + @Autowired + private AdminContestAnnouncementService adminContestAnnouncementService; + + @GetMapping("/get-contest-list") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult> getContestList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword) { + + return adminContestService.getContestList(limit, currentPage, keyword); + } + + @GetMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult getContest(@RequestParam("cid") Long cid) { + + return adminContestService.getContest(cid); + } + + @DeleteMapping("") + @RequiresAuthentication + @RequiresRoles(value = "root") // 只有超级管理员能删除比赛 + public CommonResult deleteContest(@RequestParam("cid") Long cid) { + + return adminContestService.deleteContest(cid); + } + + @PostMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult addContest(@RequestBody AdminContestVo adminContestVo) { + + return adminContestService.addContest(adminContestVo); + } + + @GetMapping("/clone") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult cloneContest(@RequestParam("cid") Long cid) { + return adminContestService.cloneContest(cid); + } + + @PutMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + @Transactional(rollbackFor = Exception.class) + public CommonResult updateContest(@RequestBody AdminContestVo adminContestVo) { + + return adminContestService.updateContest(adminContestVo); + } + + @PutMapping("/change-contest-visible") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult changeContestVisible(@RequestParam(value = "cid", required = true) Long cid, + @RequestParam(value = "uid", required = true) String uid, + @RequestParam(value = "visible", required = true) Boolean visible) { + + return adminContestService.changeContestVisible(cid, uid, visible); + } + + /** + * 以下为比赛的题目的增删改查操作接口 + */ + + @GetMapping("/get-problem-list") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + @Transactional(rollbackFor = Exception.class) + public CommonResult> getProblemList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "cid", required = true) Long cid, + @RequestParam(value = "problemType", required = false) Integer problemType, + @RequestParam(value = "oj", required = false) String oj) { + + return adminContestProblemService.getProblemList(limit, currentPage, keyword, cid, problemType, oj); + } + + @GetMapping("/problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult getProblem(@RequestParam("pid") Long pid, HttpServletRequest request) { + return adminContestProblemService.getProblem(pid); + } + + @DeleteMapping("/problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + @Transactional(rollbackFor = Exception.class) + public CommonResult deleteProblem(@RequestParam("pid") Long pid, + @RequestParam(value = "cid", required = false) Long cid) { + return adminContestProblemService.deleteProblem(pid, cid); + } + + @PostMapping("/problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + @Transactional(rollbackFor = Exception.class) + public CommonResult> addProblem(@RequestBody ProblemDto problemDto) { + + return adminContestProblemService.addProblem(problemDto); + } + + @PutMapping("/problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + @Transactional(rollbackFor = Exception.class) + public CommonResult updateProblem(@RequestBody ProblemDto problemDto) { + + return adminContestProblemService.updateProblem(problemDto); + } + + @GetMapping("/contest-problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult getContestProblem(@RequestParam(value = "cid", required = true) Long cid, + @RequestParam(value = "pid", required = true) Long pid) { + + return adminContestProblemService.getContestProblem(cid, pid); + } + + @PutMapping("/contest-problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult setContestProblem(@RequestBody ContestProblem contestProblem) { + + return adminContestProblemService.setContestProblem(contestProblem); + } + + @PostMapping("/add-problem-from-public") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult addProblemFromPublic(@RequestBody ContestProblemDto contestProblemDto) { + + return adminContestProblemService.addProblemFromPublic(contestProblemDto); + } + + @GetMapping("/import-remote-oj-problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + @Transactional(rollbackFor = Exception.class) + public CommonResult importContestRemoteOJProblem(@RequestParam("name") String name, + @RequestParam("problemId") String problemId, + @RequestParam("cid") Long cid, + @RequestParam("displayId") String displayId) { + + return adminContestProblemService.importContestRemoteOJProblem(name, problemId, cid, displayId); + } + + /** + * 以下处理比赛公告的操作请求 + */ + + @GetMapping("/announcement") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult> getAnnouncementList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "cid", required = true) Long cid) { + + return adminContestAnnouncementService.getAnnouncementList(limit, currentPage, cid); + } + + @DeleteMapping("/announcement") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult deleteAnnouncement(@RequestParam("aid") Long aid) { + + return adminContestAnnouncementService.deleteAnnouncement(aid); + } + + @PostMapping("/announcement") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult addAnnouncement(@RequestBody AnnouncementDto announcementDto) { + + return adminContestAnnouncementService.addAnnouncement(announcementDto); + } + + @PutMapping("/announcement") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult updateAnnouncement(@RequestBody AnnouncementDto announcementDto) { + + return adminContestAnnouncementService.updateAnnouncement(announcementDto); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminDiscussionController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminDiscussionController.java new file mode 100644 index 0000000..d35802d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminDiscussionController.java @@ -0,0 +1,60 @@ +package top.hcode.hoj.controller.admin; + +import com.baomidou.mybatisplus.core.metadata.IPage; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; + +import top.hcode.hoj.pojo.vo.DiscussionReportVo; +import top.hcode.hoj.service.admin.discussion.AdminDiscussionService; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/15 20:35 + * @Description: + */ +@RestController +@RequestMapping("/api/admin") +public class AdminDiscussionController { + + @Autowired + private AdminDiscussionService adminDiscussionService; + + @PutMapping("/discussion") + @RequiresRoles(value = {"root", "admin","problem_admin"}, logical = Logical.OR) + @RequiresAuthentication + public CommonResult updateDiscussion(@RequestBody Discussion discussion) { + return adminDiscussionService.updateDiscussion(discussion); + } + + @DeleteMapping("/discussion") + @RequiresRoles(value = {"root", "admin","problem_admin"}, logical = Logical.OR) + @RequiresAuthentication + public CommonResult removeDiscussion(@RequestBody List didList) { + return adminDiscussionService.removeDiscussion(didList); + } + + @GetMapping("/discussion-report") + @RequiresRoles(value = {"root", "admin","problem_admin"}, logical = Logical.OR) + @RequiresAuthentication + public CommonResult> getDiscussionReport(@RequestParam(value = "limit", defaultValue = "10") Integer limit, + @RequestParam(value = "currentPage", defaultValue = "1") Integer currentPage) { + return adminDiscussionService.getDiscussionReport(limit, currentPage); + } + + @PutMapping("/discussion-report") + @RequiresRoles(value = {"root", "admin","problem_admin"}, logical = Logical.OR) + @RequiresAuthentication + public CommonResult updateDiscussionReport(@RequestBody DiscussionReport discussionReport) { + return adminDiscussionService.updateDiscussionReport(discussionReport); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminGroupProblemController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminGroupProblemController.java new file mode 100644 index 0000000..2e3afd3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminGroupProblemController.java @@ -0,0 +1,40 @@ +package top.hcode.hoj.controller.admin; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ChangeGroupProblemProgressDto; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.service.admin.problem.AdminGroupProblemService; + +import javax.annotation.Resource; + +/** + * @Author Himit_ZH + * @Date 2022/4/13 + */ +@RestController +@RequestMapping("/api/admin/group-problem") +@RequiresAuthentication +@RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) +public class AdminGroupProblemController { + + @Resource + private AdminGroupProblemService adminGroupProblemService; + + @GetMapping("/list") + public CommonResult> getProblemList(@RequestParam(value = "currentPage", defaultValue = "1") Integer currentPage, + @RequestParam(value = "limit", defaultValue = "10") Integer limit, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "gid", required = false) Long gid) { + return adminGroupProblemService.getProblemList(currentPage, limit, keyword, gid); + } + + @PutMapping("/change-progress") + public CommonResult changeProgress(@RequestBody ChangeGroupProblemProgressDto changeGroupProblemProgressDto) { + return adminGroupProblemService.changeProgress(changeGroupProblemProgressDto); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminJudgeController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminJudgeController.java new file mode 100644 index 0000000..b80f713 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminJudgeController.java @@ -0,0 +1,64 @@ +package top.hcode.hoj.controller.admin; + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.service.admin.rejudge.RejudgeService; + + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/3 14:09 + * @Description: 超管重判提交 + */ + +@RestController +@RequestMapping("/api/admin/judge") +public class AdminJudgeController { + + @Resource + private RejudgeService rejudgeService; + + @GetMapping("/rejudge") + @RequiresAuthentication + @RequiresRoles("root") // 只有超级管理员能操作 + @RequiresPermissions("rejudge") + public CommonResult rejudge(@RequestParam("submitId") Long submitId) { + return rejudgeService.rejudge(submitId); + } + + @GetMapping("/rejudge-contest-problem") + @RequiresAuthentication + @RequiresRoles("root") // 只有超级管理员能操作 + @RequiresPermissions("rejudge") + public CommonResult rejudgeContestProblem(@RequestParam("cid") Long cid, @RequestParam("pid") Long pid) { + return rejudgeService.rejudgeContestProblem(cid, pid); + } + + + @GetMapping("/manual-judge") + @RequiresAuthentication + @RequiresRoles("root") // 只有超级管理员能操作 + @RequiresPermissions("rejudge") + public CommonResult manualJudge(@RequestParam("submitId") Long submitId, + @RequestParam("status") Integer status, + @RequestParam(value = "score", required = false) Integer score) { + return rejudgeService.manualJudge(submitId, status, score); + } + + @GetMapping("/cancel-judge") + @RequiresAuthentication + @RequiresRoles("root") // 只有超级管理员能操作 + @RequiresPermissions("rejudge") + public CommonResult cancelJudge(@RequestParam("submitId") Long submitId) { + return rejudgeService.cancelJudge(submitId); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminProblemController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminProblemController.java new file mode 100644 index 0000000..51daa4a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminProblemController.java @@ -0,0 +1,108 @@ +package top.hcode.hoj.controller.admin; + + +import com.baomidou.mybatisplus.core.metadata.IPage; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.service.admin.problem.AdminProblemService; + +import java.util.*; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/11 21:45 + * @Description: + */ +@RestController +@RequestMapping("/api/admin/problem") +public class AdminProblemController { + + @Autowired + private AdminProblemService adminProblemService; + + @GetMapping("/get-problem-list") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult> getProblemList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "auth", required = false) Integer auth, + @RequestParam(value = "oj", required = false) String oj) { + return adminProblemService.getProblemList(limit, currentPage, keyword, auth, oj); + } + + @GetMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult getProblem(@RequestParam("pid") Long pid) { + return adminProblemService.getProblem(pid); + } + + @DeleteMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult deleteProblem(@RequestParam("pid") Long pid) { + return adminProblemService.deleteProblem(pid); + } + + @PostMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult addProblem(@RequestBody ProblemDto problemDto) { + return adminProblemService.addProblem(problemDto); + } + + @PutMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult updateProblem(@RequestBody ProblemDto problemDto) { + return adminProblemService.updateProblem(problemDto); + } + + @GetMapping("/get-problem-cases") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult> getProblemCases(@RequestParam("pid") Long pid, + @RequestParam(value = "isUpload", defaultValue = "true") Boolean isUpload) { + return adminProblemService.getProblemCases(pid, isUpload); + } + + @PostMapping("/compile-spj") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult compileSpj(@RequestBody CompileDTO compileDTO) { + return adminProblemService.compileSpj(compileDTO); + } + + @PostMapping("/compile-interactive") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult compileInteractive(@RequestBody CompileDTO compileDTO) { + return adminProblemService.compileInteractive(compileDTO); + } + + @GetMapping("/import-remote-oj-problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult importRemoteOJProblem(@RequestParam("name") String name, + @RequestParam("problemId") String problemId) { + return adminProblemService.importRemoteOJProblem(name, problemId); + } + + @PutMapping("/change-problem-auth") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin", "admin"}, logical = Logical.OR) + public CommonResult changeProblemAuth(@RequestBody Problem problem) { + return adminProblemService.changeProblemAuth(problem); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTagController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTagController.java new file mode 100644 index 0000000..d01aaf7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTagController.java @@ -0,0 +1,78 @@ +package top.hcode.hoj.controller.admin; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.entity.problem.TagClassification; +import top.hcode.hoj.service.admin.tag.AdminTagService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/2 23:24 + * @Description: 处理tag的增删改 + */ + +@RestController +@RequestMapping("/api/admin/tag") +public class AdminTagController { + + + @Resource + private AdminTagService adminTagService; + + @PostMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult addTag(@RequestBody Tag tag) { + return adminTagService.addTag(tag); + } + + @PutMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult updateTag(@RequestBody Tag tag) { + return adminTagService.updateTag(tag); + } + + @DeleteMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult deleteTag(@RequestParam("tid") Long tid) { + return adminTagService.deleteTag(tid); + } + + + @GetMapping("/classification") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult> getTagClassification(@RequestParam(value = "oj", defaultValue = "ME") String oj) { + return adminTagService.getTagClassification(oj); + } + + @PostMapping("/classification") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult addTagClassification(@RequestBody TagClassification tagClassification) { + return adminTagService.addTagClassification(tagClassification); + } + + @PutMapping("/classification") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult updateTagClassification(@RequestBody TagClassification tagClassification) { + return adminTagService.updateTagClassification(tagClassification); + } + + @DeleteMapping("/classification") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult deleteTagClassification(@RequestParam("tcid") Long tcid) { + return adminTagService.deleteTagClassification(tcid); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTrainingCategoryController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTrainingCategoryController.java new file mode 100644 index 0000000..b49dfe6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTrainingCategoryController.java @@ -0,0 +1,48 @@ +package top.hcode.hoj.controller.admin; + + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; + +import top.hcode.hoj.pojo.entity.training.TrainingCategory; +import top.hcode.hoj.service.admin.training.AdminTrainingCategoryService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/27 15:11 + * @Description: + */ + +@RestController +@RequestMapping("/api/admin/training/category") +public class AdminTrainingCategoryController { + + @Resource + private AdminTrainingCategoryService adminTrainingCategoryService; + + @PostMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult addTrainingCategory(@RequestBody TrainingCategory trainingCategory) { + return adminTrainingCategoryService.addTrainingCategory(trainingCategory); + } + + @PutMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult updateTrainingCategory(@RequestBody TrainingCategory trainingCategory) { + return adminTrainingCategoryService.updateTrainingCategory(trainingCategory); + } + + @DeleteMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult deleteTrainingCategory(@RequestParam("cid") Long cid) { + return adminTrainingCategoryService.deleteTrainingCategory(cid); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTrainingController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTrainingController.java new file mode 100644 index 0000000..c8e0c0e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminTrainingController.java @@ -0,0 +1,128 @@ +package top.hcode.hoj.controller.admin; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.TrainingDto; +import top.hcode.hoj.pojo.dto.TrainingProblemDto; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.service.admin.training.AdminTrainingProblemService; +import top.hcode.hoj.service.admin.training.AdminTrainingService; + +import javax.annotation.Resource; +import java.util.HashMap; + +/** + * @Author Himit_ZH + * @Since 2022/01/23 20:22 + * @Description + */ +@RestController +@RequestMapping("/api/admin/training") +public class AdminTrainingController { + + @Resource + private AdminTrainingService adminTrainingService; + + @Resource + private AdminTrainingProblemService adminTrainingProblemService; + + + @GetMapping("/get-training-list") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult> getTrainingList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword) { + return adminTrainingService.getTrainingList(limit, currentPage, keyword); + } + + @GetMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult getTraining(@RequestParam("tid") Long tid) { + return adminTrainingService.getTraining(tid); + } + + @DeleteMapping("") + @RequiresAuthentication + @RequiresRoles(value = "root") // 只有超级管理员能删除训练 + public CommonResult deleteTraining(@RequestParam("tid") Long tid) { + return adminTrainingService.deleteTraining(tid); + } + + @PostMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult addTraining(@RequestBody TrainingDto trainingDto) { + return adminTrainingService.addTraining(trainingDto); + } + + @PutMapping("") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult updateTraining(@RequestBody TrainingDto trainingDto) { + return adminTrainingService.updateTraining(trainingDto); + } + + + @PutMapping("/change-training-status") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult changeTrainingStatus(@RequestParam(value = "tid", required = true) Long tid, + @RequestParam(value = "author", required = true) String author, + @RequestParam(value = "status", required = true) Boolean status) { + return adminTrainingService.changeTrainingStatus(tid, author, status); + } + + @GetMapping("/get-problem-list") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult> getProblemList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "queryExisted", defaultValue = "false") Boolean queryExisted, + @RequestParam(value = "tid", required = true) Long tid) { + return adminTrainingProblemService.getProblemList(limit, currentPage, keyword, queryExisted, tid); + } + + + @PutMapping("/problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult updateProblem(@RequestBody TrainingProblem trainingProblem) { + return adminTrainingProblemService.updateProblem(trainingProblem); + } + + @DeleteMapping("/problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "problem_admin"}, logical = Logical.OR) + public CommonResult deleteProblem(@RequestParam("pid") Long pid, + @RequestParam(value = "tid", required = false) Long tid) { + + return adminTrainingProblemService.deleteProblem(pid, tid); + } + + @PostMapping("/add-problem-from-public") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + public CommonResult addProblemFromPublic(@RequestBody TrainingProblemDto trainingProblemDto) { + return adminTrainingProblemService.addProblemFromPublic(trainingProblemDto); + } + + @GetMapping("/import-remote-oj-problem") + @RequiresAuthentication + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + @Transactional(rollbackFor = Exception.class) + public CommonResult importTrainingRemoteOJProblem(@RequestParam("name") String name, + @RequestParam("problemId") String problemId, + @RequestParam("tid") Long tid) { + return adminTrainingProblemService.importTrainingRemoteOJProblem(name, problemId, tid); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminUserController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminUserController.java new file mode 100644 index 0000000..48b80d2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AdminUserController.java @@ -0,0 +1,69 @@ +package top.hcode.hoj.controller.admin; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.AdminEditUserDto; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.service.admin.user.AdminUserService; + +import java.util.List; +import java.util.Map; + + +/** + * @Author: Himit_ZH + * @Date: 2020/12/6 15:18 + * @Description: + */ +@RestController +@RequestMapping("/api/admin/user") +public class AdminUserController { + + @Autowired + private AdminUserService adminUserService; + + + @GetMapping("/get-user-list") + @RequiresAuthentication + @RequiresPermissions("user_admin") + public CommonResult> getUserList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "onlyAdmin", defaultValue = "false") Boolean onlyAdmin, + @RequestParam(value = "keyword", required = false) String keyword) { + return adminUserService.getUserList(limit, currentPage, onlyAdmin, keyword); + } + + @PutMapping("/edit-user") + @RequiresPermissions("user_admin") + @RequiresAuthentication + public CommonResult editUser(@RequestBody AdminEditUserDto adminEditUserDto) { + return adminUserService.editUser(adminEditUserDto); + } + + @DeleteMapping("/delete-user") + @RequiresPermissions("user_admin") + @RequiresAuthentication + public CommonResult deleteUser(@RequestBody Map params) { + return adminUserService.deleteUser((List) params.get("ids")); + } + + @PostMapping("/insert-batch-user") + @RequiresPermissions("user_admin") + @RequiresAuthentication + public CommonResult insertBatchUser(@RequestBody Map params) { + return adminUserService.insertBatchUser((List>) params.get("users")); + } + + @PostMapping("/generate-user") + @RequiresPermissions("user_admin") + @RequiresAuthentication + public CommonResult> generateUser(@RequestBody Map params) { + return adminUserService.generateUser(params); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AnnouncementController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AnnouncementController.java new file mode 100644 index 0000000..1ceb1a0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/AnnouncementController.java @@ -0,0 +1,53 @@ +package top.hcode.hoj.controller.admin; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.service.admin.announcement.AdminAnnouncementService; + + +/** + * @Author: Himit_ZH + * @Date: 2020/12/10 19:53 + * @Description: + */ +@RestController +@RequiresAuthentication +@RequestMapping("/api/admin") +public class AnnouncementController { + + @Autowired + private AdminAnnouncementService adminAnnouncementService; + + @GetMapping("/announcement") + @RequiresPermissions("announcement_admin") + public CommonResult> getAnnouncementList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage) { + return adminAnnouncementService.getAnnouncementList(limit, currentPage); + } + + @DeleteMapping("/announcement") + @RequiresPermissions("announcement_admin") + public CommonResult deleteAnnouncement(@RequestParam("aid") Long aid) { + return adminAnnouncementService.deleteAnnouncement(aid); + } + + @PostMapping("/announcement") + @RequiresRoles("root") // 只有超级管理员能操作 + @RequiresPermissions("announcement_admin") + public CommonResult addAnnouncement(@RequestBody Announcement announcement) { + return adminAnnouncementService.addAnnouncement(announcement); + } + + @PutMapping("/announcement") + @RequiresPermissions("announcement_admin") + public CommonResult updateAnnouncement(@RequestBody Announcement announcement) { + return adminAnnouncementService.updateAnnouncement(announcement); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/ConfigController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/ConfigController.java new file mode 100644 index 0000000..73337be --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/ConfigController.java @@ -0,0 +1,105 @@ +package top.hcode.hoj.controller.admin; + + +import cn.hutool.json.JSONObject; +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.DBAndRedisConfigDto; +import top.hcode.hoj.pojo.dto.EmailConfigDto; +import top.hcode.hoj.pojo.dto.TestEmailDto; +import top.hcode.hoj.pojo.dto.WebConfigDto; +import top.hcode.hoj.service.admin.system.ConfigService; + + +import javax.mail.MessagingException; +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/2 21:42 + * @Description: + */ +@RestController +@RequestMapping("/api/admin/config") +public class ConfigController { + + @Autowired + private ConfigService configService; + + /** + * @MethodName getServiceInfo + * @Params * @param null + * @Description 获取当前服务的相关信息以及当前系统的cpu情况,内存使用情况 + * @Return CommonResult + * @Since 2020/12/3 + */ + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + @RequestMapping("/get-service-info") + public CommonResult getServiceInfo() { + return configService.getServiceInfo(); + } + + @RequiresRoles(value = {"root", "admin", "problem_admin"}, logical = Logical.OR) + @RequestMapping("/get-judge-service-info") + public CommonResult> getJudgeServiceInfo() { + return configService.getJudgeServiceInfo(); + } + + @RequiresPermissions("system_info_admin") + @RequestMapping("/get-web-config") + public CommonResult getWebConfig() { + return configService.getWebConfig(); + } + + + @RequiresPermissions("system_info_admin") + @DeleteMapping("/home-carousel") + public CommonResult deleteHomeCarousel(@RequestParam("id") Long id) { + + return configService.deleteHomeCarousel(id); + } + + @RequiresPermissions("system_info_admin") + @RequestMapping(value = "/set-web-config", method = RequestMethod.PUT) + public CommonResult setWebConfig(@RequestBody WebConfigDto config) { + + return configService.setWebConfig(config); + } + + @RequiresPermissions("system_info_admin") + @RequestMapping("/get-email-config") + public CommonResult getEmailConfig() { + + return configService.getEmailConfig(); + } + + @RequiresPermissions("system_info_admin") + @PutMapping("/set-email-config") + public CommonResult setEmailConfig(@RequestBody EmailConfigDto config) { + return configService.setEmailConfig(config); + } + + @RequiresPermissions("system_info_admin") + @PostMapping("/test-email") + public CommonResult testEmail(@RequestBody TestEmailDto testEmailDto) { + return configService.testEmail(testEmailDto); + } + + @RequiresPermissions("system_info_admin") + @RequestMapping("/get-db-and-redis-config") + public CommonResult getDBAndRedisConfig() { + return configService.getDBAndRedisConfig(); + } + + @RequiresPermissions("system_info_admin") + @PutMapping("/set-db-and-redis-config") + public CommonResult setDBAndRedisConfig(@RequestBody DBAndRedisConfigDto config) { + return configService.setDBAndRedisConfig(config); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/DashboardController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/DashboardController.java new file mode 100644 index 0000000..bd41ea8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/DashboardController.java @@ -0,0 +1,46 @@ +package top.hcode.hoj.controller.admin; + +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.user.Session; +import top.hcode.hoj.service.admin.system.DashboardService; + + +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/6 15:10 + * @Description: + */ +@RestController +@RequestMapping("/api/admin/dashboard") +public class DashboardController { + + @Autowired + private DashboardService dashboardService; + + + @PostMapping("/get-sessions") + @RequiresAuthentication + @RequiresRoles(value = {"root","admin","problem_admin"},logical = Logical.OR) + public CommonResult getRecentSession(){ + + return dashboardService.getRecentSession(); + } + + @GetMapping("/get-dashboard-info") + @RequiresAuthentication + @RequiresRoles(value = {"root","admin","problem_admin"},logical = Logical.OR) + public CommonResult> getDashboardInfo(){ + + return dashboardService.getDashboardInfo(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/SwitchController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/SwitchController.java new file mode 100644 index 0000000..1a1d90d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/admin/SwitchController.java @@ -0,0 +1,37 @@ +package top.hcode.hoj.controller.admin; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.SwitchConfigDto; +import top.hcode.hoj.service.admin.system.ConfigService; + +import javax.annotation.Resource; + +/** + * @Author Himit_ZH + * @Date 2022/5/9 + */ +@RestController +@RequestMapping("/api/admin/switch") +public class SwitchController { + + @Resource + private ConfigService configService; + + @RequiresPermissions("system_info_admin") + @RequestMapping("/info") + public CommonResult getSwitchConfig() { + + return configService.getSwitchConfig(); + } + + @RequiresPermissions("system_info_admin") + @PutMapping("/update") + public CommonResult setSwitchConfig(@RequestBody SwitchConfigDto config) { + return configService.setSwitchConfig(config); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ContestFileController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ContestFileController.java new file mode 100644 index 0000000..fcfde26 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ContestFileController.java @@ -0,0 +1,57 @@ +package top.hcode.hoj.controller.file; + + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.service.file.ContestFileService; +import javax.servlet.http.HttpServletResponse; +import java.io.*; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/5 19:55 + * @Description: + */ +@Controller +@RequestMapping("/api/file") +public class ContestFileController { + + @Autowired + private ContestFileService contestFileService; + + + @GetMapping("/download-contest-rank") + @RequiresAuthentication + public void downloadContestRank(@RequestParam("cid") Long cid, + @RequestParam("forceRefresh") Boolean forceRefresh, + @RequestParam(value = "removeStar", defaultValue = "false") Boolean removeStar, + HttpServletResponse response) throws StatusFailException, IOException, StatusForbiddenException { + contestFileService.downloadContestRank(cid, forceRefresh, removeStar, response); + } + + @GetMapping("/download-contest-ac-submission") + @RequiresAuthentication + public void downloadContestACSubmission(@RequestParam("cid") Long cid, + @RequestParam(value = "excludeAdmin", defaultValue = "false") Boolean excludeAdmin, + @RequestParam(value = "splitType", defaultValue = "user") String splitType, + HttpServletResponse response) throws StatusFailException, StatusForbiddenException { + + contestFileService.downloadContestACSubmission(cid, excludeAdmin, splitType, response); + } + + + @GetMapping("/download-contest-print-text") + @RequiresAuthentication + public void downloadContestPrintText(@RequestParam("id") Long id, HttpServletResponse response) throws StatusForbiddenException{ + contestFileService.downloadContestPrintText(id, response); + } + + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImageController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImageController.java new file mode 100644 index 0000000..aa988e0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImageController.java @@ -0,0 +1,55 @@ +package top.hcode.hoj.controller.file; + + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.service.file.ImageService; + +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/5 19:46 + * @Description: + */ +@Controller +@RequestMapping("/api/file") +public class ImageController { + + @Autowired + private ImageService imageService; + + + @RequestMapping(value = "/upload-avatar", method = RequestMethod.POST) + @RequiresAuthentication + @ResponseBody + public CommonResult> uploadAvatar(@RequestParam("image") MultipartFile image) { + return imageService.uploadAvatar(image); + } + + @RequestMapping(value = "/upload-group-avatar", method = RequestMethod.POST) + @RequiresAuthentication + @ResponseBody + public CommonResult uploadGroupAvatar(@RequestParam(value = "image", required = true) MultipartFile image, + @RequestParam(value = "gid", required = true) Long gid) { + return imageService.uploadGroupAvatar(image, gid); + } + + @RequestMapping(value = "/upload-carouse-img", method = RequestMethod.POST) + @RequiresAuthentication + @ResponseBody + @RequiresRoles("root") + public CommonResult> uploadCarouselImg(@RequestParam("file") MultipartFile image) { + return imageService.uploadCarouselImg(image); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImportFpsProblemController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImportFpsProblemController.java new file mode 100644 index 0000000..ca20a25 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImportFpsProblemController.java @@ -0,0 +1,46 @@ +package top.hcode.hoj.controller.file; + + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.service.file.ImportFpsProblemService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/5 19:45 + * @Description: + */ +@Controller +@RequestMapping("/api/file") +public class ImportFpsProblemController { + + + @Resource + private ImportFpsProblemService importFpsProblemService; + + /** + * @param file + * @MethodName importFpsProblem + * @Description zip文件导入题目 仅超级管理员可操作 + * @Return + * @Since 2021/10/06 + */ + @RequiresRoles("root") + @RequiresAuthentication + @ResponseBody + @PostMapping("/import-fps-problem") + public CommonResult importFPSProblem(@RequestParam("file") MultipartFile file) { + return importFpsProblemService.importFPSProblem(file); + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImportQDUOJProblemController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImportQDUOJProblemController.java new file mode 100644 index 0000000..9fccb2d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ImportQDUOJProblemController.java @@ -0,0 +1,45 @@ +package top.hcode.hoj.controller.file; + + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.service.file.ImportQDUOJProblemService; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/5 19:44 + * @Description: + */ + +@Controller +@RequestMapping("/api/file") +public class ImportQDUOJProblemController { + + @Autowired + private ImportQDUOJProblemService importQDUOJProblemService; + + /** + * @param file + * @MethodName importQDOJProblem + * @Description zip文件导入题目 仅超级管理员可操作 + * @Return + * @Since 2021/5/27 + */ + @RequiresRoles("root") + @RequiresAuthentication + @ResponseBody + @PostMapping("/import-qdoj-problem") + public CommonResult importQDOJProblem(@RequestParam("file") MultipartFile file) { + return importQDUOJProblemService.importQDOJProblem(file); + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/MarkDownFileController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/MarkDownFileController.java new file mode 100644 index 0000000..1b60b2e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/MarkDownFileController.java @@ -0,0 +1,54 @@ +package top.hcode.hoj.controller.file; + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.service.file.MarkDownFileService; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/5 20:01 + * @Description: + */ +@Controller +@RequestMapping("/api/file") +public class MarkDownFileController { + + + @Resource + private MarkDownFileService markDownFileService; + + @RequestMapping(value = "/upload-md-img", method = RequestMethod.POST) + @RequiresAuthentication + @ResponseBody + public CommonResult> uploadMDImg(@RequestParam("image") MultipartFile image, + @RequestParam(value = "gid", required = false) Long gid) { + return markDownFileService.uploadMDImg(image, gid); + } + + + @RequestMapping(value = "/delete-md-img", method = RequestMethod.GET) + @RequiresAuthentication + @ResponseBody + public CommonResult deleteMDImg(@RequestParam("fileId") Long fileId) { + return markDownFileService.deleteMDImg(fileId); + } + + + @RequestMapping(value = "/upload-md-file", method = RequestMethod.POST) + @RequiresAuthentication + @ResponseBody + public CommonResult> uploadMd(@RequestParam("file") MultipartFile file, + @RequestParam(value = "gid", required = false) Long gid) { + return markDownFileService.uploadMd(file, gid); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ProblemFileController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ProblemFileController.java new file mode 100644 index 0000000..8ea143c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/ProblemFileController.java @@ -0,0 +1,59 @@ +package top.hcode.hoj.controller.file; + + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.service.file.ProblemFileService; +import javax.servlet.http.HttpServletResponse; +import java.util.*; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/5 20:05 + * @Description: + */ +@Controller +@RequestMapping("/api/file") +public class ProblemFileController { + + @Autowired + private ProblemFileService problemFileService; + + + /** + * @param file + * @MethodName importProblem + * @Description zip文件导入题目 仅超级管理员可操作 + * @Return + * @Since 2021/5/27 + */ + @RequiresRoles("root") + @RequiresAuthentication + @ResponseBody + @PostMapping("/import-problem") + public CommonResult importProblem(@RequestParam("file") MultipartFile file) { + return problemFileService.importProblem(file); + } + + + /** + * @param pidList + * @param response + * @MethodName exportProblem + * @Description 导出指定的题目包括测试数据生成zip 仅超级管理员可操作 + * @Return + * @Since 2021/5/28 + */ + @GetMapping("/export-problem") + @RequiresAuthentication + @RequiresRoles("root") + public void exportProblem(@RequestParam("pid") List pidList, HttpServletResponse response) { + problemFileService.exportProblem(pidList, response); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/TestCaseController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/TestCaseController.java new file mode 100644 index 0000000..63347f1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/TestCaseController.java @@ -0,0 +1,42 @@ +package top.hcode.hoj.controller.file; + +import top.hcode.hoj.common.exception.StatusForbiddenException; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.service.file.TestCaseService; + +import javax.servlet.http.HttpServletResponse; +import java.util.*; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/5 19:51 + * @Description: + */ +@Controller +@RequestMapping("/api/file") +public class TestCaseController { + + @Autowired + private TestCaseService testCaseService; + + + @PostMapping("/upload-testcase-zip") + @ResponseBody + public CommonResult> uploadTestcaseZip(@RequestParam("file") MultipartFile file, + @RequestParam(value = "gid", required = false) Long gid) { + return testCaseService.uploadTestcaseZip(file, gid); + } + + + @GetMapping("/download-testcase") + @RequiresAuthentication + public void downloadTestcase(@RequestParam("pid") Long pid, HttpServletResponse response) throws StatusFailException, StatusForbiddenException { + testCaseService.downloadTestcase(pid, response); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/UserFileController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/UserFileController.java new file mode 100644 index 0000000..121a8a7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/file/UserFileController.java @@ -0,0 +1,34 @@ +package top.hcode.hoj.controller.file; + + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import top.hcode.hoj.service.file.UserFileService; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/5 19:48 + * @Description: + */ +@Controller +@RequestMapping("/api/file") +public class UserFileController { + + @Autowired + private UserFileService userFileService; + + @RequestMapping("/generate-user-excel") + @RequiresAuthentication + @RequiresRoles("root") + public void generateUserExcel(@RequestParam("key") String key, HttpServletResponse response) throws IOException { + userFileService.generateUserExcel(key, response); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupAnnouncementController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupAnnouncementController.java new file mode 100644 index 0000000..5e0183c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupAnnouncementController.java @@ -0,0 +1,54 @@ +package top.hcode.hoj.controller.group; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.service.group.announcement.GroupAnnouncementService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@RestController +@RequiresAuthentication +@RequestMapping("/api/group") +public class GroupAnnouncementController { + + @Autowired + private GroupAnnouncementService groupAnnouncementService; + + @GetMapping("/get-announcement-list") + public CommonResult> getAnnouncementList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid) { + return groupAnnouncementService.getAnnouncementList(limit, currentPage, gid); + } + + @GetMapping("/get-admin-announcement-list") + public CommonResult> getAdminAnnouncementList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid) { + return groupAnnouncementService.getAdminAnnouncementList(limit, currentPage, gid); + } + + @PostMapping("/announcement") + public CommonResult addAnnouncement(@RequestBody Announcement announcement) { + return groupAnnouncementService.addAnnouncement(announcement); + } + + @PutMapping("/announcement") + public CommonResult updateAnnouncement(@RequestBody Announcement announcement) { + return groupAnnouncementService.updateAnnouncement(announcement); + } + + @DeleteMapping("/announcement") + public CommonResult deleteAnnouncement(@RequestParam(value = "aid", required = true) Long aid) { + return groupAnnouncementService.deleteAnnouncement(aid); + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupContestController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupContestController.java new file mode 100644 index 0000000..ffe074b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupContestController.java @@ -0,0 +1,151 @@ +package top.hcode.hoj.controller.group; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.AnnouncementDto; +import top.hcode.hoj.pojo.dto.ContestProblemDto; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.pojo.vo.AdminContestVo; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.pojo.vo.ContestVo; +import top.hcode.hoj.service.group.contest.GroupContestAnnouncementService; +import top.hcode.hoj.service.group.contest.GroupContestProblemService; +import top.hcode.hoj.service.group.contest.GroupContestService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@RestController +@RequiresAuthentication +@RequestMapping("/api/group") +public class GroupContestController { + + @Autowired + private GroupContestService groupContestService; + + @Autowired + private GroupContestProblemService groupContestProblemService; + + @Autowired + private GroupContestAnnouncementService groupContestAnnouncementService; + + @GetMapping("/get-contest-list") + public CommonResult> getContestList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid) { + return groupContestService.getContestList(limit, currentPage, gid); + } + + @GetMapping("/get-admin-contest-list") + public CommonResult> getAdminContestList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid) { + return groupContestService.getAdminContestList(limit, currentPage, gid); + } + + @GetMapping("/contest") + public CommonResult getContest(@RequestParam("cid") Long cid) { + return groupContestService.getContest(cid); + } + + @PostMapping("/contest") + public CommonResult addContest(@RequestBody AdminContestVo adminContestVo) { + return groupContestService.addContest(adminContestVo); + } + + @PutMapping("/contest") + public CommonResult updateContest(@RequestBody AdminContestVo adminContestVo) { + return groupContestService.updateContest(adminContestVo); + } + + @DeleteMapping("/contest") + public CommonResult deleteContest(@RequestParam(value = "cid", required = true) Long cid) { + return groupContestService.deleteContest(cid); + } + + @PutMapping("/change-contest-visible") + public CommonResult changeContestVisible(@RequestParam(value = "cid", required = true) Long cid, + @RequestParam(value = "visible", required = true) Boolean visible) { + return groupContestService.changeContestVisible(cid, visible); + } + + @GetMapping("/get-contest-problem-list") + public CommonResult> getContestProblemList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "cid", required = true) Long cid, + @RequestParam(value = "problemType", required = false) Integer problemType, + @RequestParam(value = "oj", required = false) String oj) { + return groupContestProblemService.getContestProblemList(limit, currentPage, keyword, cid, problemType, oj); + } + + @PostMapping("/contest-problem") + public CommonResult> addProblem(@RequestBody ProblemDto problemDto) { + + return groupContestProblemService.addProblem(problemDto); + } + + @GetMapping("/contest-problem") + public CommonResult getContestProblem(@RequestParam(value = "pid", required = true) Long pid, + @RequestParam(value = "cid", required = true) Long cid) { + + return groupContestProblemService.getContestProblem(pid, cid); + } + + @PutMapping("/contest-problem") + public CommonResult updateContestProblem(@RequestBody ContestProblem contestProblem) { + + return groupContestProblemService.updateContestProblem(contestProblem); + } + + @DeleteMapping("/contest-problem") + public CommonResult deleteContestProblem(@RequestParam(value = "pid", required = true) Long pid, + @RequestParam(value = "cid", required = true) Long cid) { + return groupContestProblemService.deleteContestProblem(pid, cid); + } + + @PostMapping("/add-contest-problem-from-public") + public CommonResult addProblemFromPublic(@RequestBody ContestProblemDto contestProblemDto) { + return groupContestProblemService.addProblemFromPublic(contestProblemDto); + } + + @PostMapping("/add-contest-problem-from-group") + public CommonResult addProblemFromGroup(@RequestParam(value = "problemId", required = true) String problemId, + @RequestParam(value = "cid", required = true) Long cid, + @RequestParam(value = "displayId", required = true) String displayId) { + return groupContestProblemService.addProblemFromGroup(problemId, cid, displayId); + } + + @GetMapping("/get-contest-announcement-list") + public CommonResult> getContestAnnouncementList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "cid", required = true) Long cid) { + return groupContestAnnouncementService.getContestAnnouncementList(limit, currentPage, cid); + } + + @PostMapping("/contest-announcement") + public CommonResult addContestAnnouncement(@RequestBody AnnouncementDto announcementDto) { + return groupContestAnnouncementService.addContestAnnouncement(announcementDto); + } + + @PutMapping("/contest-announcement") + public CommonResult updateContestAnnouncement(@RequestBody AnnouncementDto announcementDto) { + return groupContestAnnouncementService.updateContestAnnouncement(announcementDto); + } + + @DeleteMapping("/contest-announcement") + public CommonResult deleteContestAnnouncement(@RequestParam(value = "aid", required = true) Long aid, + @RequestParam(value = "cid", required = true) Long cid) { + return groupContestAnnouncementService.deleteContestAnnouncement(aid, cid); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupController.java new file mode 100644 index 0000000..c28db14 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupController.java @@ -0,0 +1,71 @@ +package top.hcode.hoj.controller.group; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.AccessVo; +import top.hcode.hoj.pojo.vo.GroupVo; +import top.hcode.hoj.service.group.GroupService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@RestController +@RequestMapping("/api") +public class GroupController { + + @Autowired + private GroupService groupService; + + @GetMapping("/get-group-list") + public CommonResult> getGroupList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "auth", required = false) Integer auth, + @RequestParam(value = "onlyMine", required = false) Boolean onlyMine) { + return groupService.getGroupList(limit, currentPage, keyword, auth, onlyMine); + } + + @GetMapping("/get-group-detail") + public CommonResult getGroup(@RequestParam(value = "gid", required = true) Long gid) { + return groupService.getGroup(gid); + } + + @RequiresAuthentication + @GetMapping("/get-group-access") + public CommonResult getGroupAccess(@RequestParam(value = "gid", required = true) Long gid) { + return groupService.getGroupAccess(gid); + } + + @RequiresAuthentication + @GetMapping("/get-group-auth") + public CommonResult getGroupAuth(@RequestParam(value = "gid", required = true) Long gid) { + return groupService.getGroupAuth(gid); + } + + @PostMapping("/group") + @RequiresAuthentication + @RequiresPermissions("group_add") + public CommonResult addGroup(@RequestBody Group group) { + return groupService.addGroup(group); + } + + @PutMapping("/group") + @RequiresAuthentication + public CommonResult updateGroup(@RequestBody Group group) { + return groupService.updateGroup(group); + } + + @DeleteMapping("/group") + @RequiresAuthentication + @RequiresPermissions("group_del") + public CommonResult deleteGroup(@RequestParam(value = "gid", required = true) Long gid) { + return groupService.deleteGroup(gid); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupDiscussionController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupDiscussionController.java new file mode 100644 index 0000000..d8f2c4b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupDiscussionController.java @@ -0,0 +1,57 @@ +package top.hcode.hoj.controller.group; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.annotation.HOJAccess; +import top.hcode.hoj.annotation.HOJAccessEnum; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.service.group.discussion.GroupDiscussionService; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@RestController +@RequiresAuthentication +@RequestMapping("/api/group") +@HOJAccess({HOJAccessEnum.GROUP_DISCUSSION}) +public class GroupDiscussionController { + + @Autowired + private GroupDiscussionService groupDiscussionService; + + @GetMapping("/get-discussion-list") + public CommonResult> getDiscussionList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid, + @RequestParam(value = "pid", required = false) String pid) { + return groupDiscussionService.getDiscussionList(limit, currentPage, gid, pid); + } + + @GetMapping("/get-admin-discussion-list") + public CommonResult> getAdminDiscussionList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid) { + return groupDiscussionService.getAdminDiscussionList(limit, currentPage, gid); + } + + @PostMapping("/discussion") + public CommonResult addDiscussion(@RequestBody Discussion discussion) { + return groupDiscussionService.addDiscussion(discussion); + } + + @PutMapping("/discussion") + public CommonResult updateDiscussion(@RequestBody Discussion discussion) { + return groupDiscussionService.updateDiscussion(discussion); + } + + @DeleteMapping("/discussion") + public CommonResult deleteDiscussion(@RequestParam(value = "did", required = true) Long did) { + return groupDiscussionService.deleteDiscussion(did); + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupMemberController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupMemberController.java new file mode 100644 index 0000000..afe99e9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupMemberController.java @@ -0,0 +1,71 @@ +package top.hcode.hoj.controller.group; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.group.GroupMember; +import top.hcode.hoj.pojo.vo.GroupMemberVo; +import top.hcode.hoj.service.group.member.GroupMemberService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@RestController +@RequiresAuthentication +@RequestMapping("/api/group") +public class GroupMemberController { + + @Autowired + private GroupMemberService groupMemberService; + + @GetMapping("/get-member-list") + public CommonResult> getMemberList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "auth", required = false) Integer auth, + @RequestParam(value = "gid", required = true) Long gid) { + return groupMemberService.getMemberList(limit, currentPage, keyword, auth, gid); + } + + @GetMapping("/get-apply-list") + public CommonResult> getApplyList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "auth", required = false) Integer auth, + @RequestParam(value = "gid", required = true) Long gid) { + return groupMemberService.getApplyList(limit, currentPage, keyword, auth, gid); + } + + @PostMapping("/member") + @RequiresAuthentication + public CommonResult addGroupMember(@RequestParam(value = "gid", required = true) Long gid, + @RequestParam(value = "code", required = false) String code, + @RequestParam(value = "reason", required = false) String reason) { + return groupMemberService.addMember(gid, code, reason); + } + + @PutMapping("/member") + @RequiresAuthentication + public CommonResult updateMember(@RequestBody GroupMember groupMember) { + return groupMemberService.updateMember(groupMember); + } + + @DeleteMapping("/member") + @RequiresAuthentication + public CommonResult deleteMember(@RequestParam(value = "uid", required = true) String uid, + @RequestParam(value = "gid", required = true) Long gid) { + return groupMemberService.deleteMember(uid, gid); + } + + @DeleteMapping("/member/exit") + @RequiresAuthentication + public CommonResult exitGroup(@RequestParam(value = "gid", required = true) Long gid) { + return groupMemberService.exitGroup(gid); + } + + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupProblemController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupProblemController.java new file mode 100644 index 0000000..d8234ca --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupProblemController.java @@ -0,0 +1,100 @@ +package top.hcode.hoj.controller.group; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.service.group.problem.GroupProblemService; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@RestController +@RequiresAuthentication +@RequestMapping("/api/group") +public class GroupProblemController { + + @Autowired + private GroupProblemService groupProblemService; + + @GetMapping("/get-problem-list") + public CommonResult> getProblemList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid) { + return groupProblemService.getProblemList(limit, currentPage, gid); + } + + @GetMapping("/get-admin-problem-list") + public CommonResult> getAdminProblemList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid) { + return groupProblemService.getAdminProblemList(limit, currentPage, gid); + } + + @GetMapping("/problem") + public CommonResult getProblem(@RequestParam("pid") Long pid) { + return groupProblemService.getProblem(pid); + } + + @PostMapping("/problem") + public CommonResult addProblem(@RequestBody ProblemDto problemDto) { + return groupProblemService.addProblem(problemDto); + } + + @PutMapping("/problem") + public CommonResult updateProblem(@RequestBody ProblemDto problemDto) { + return groupProblemService.updateProblem(problemDto); + } + + @DeleteMapping("/problem") + public CommonResult deleteProblem(@RequestParam(value = "pid", required = true) Long pid) { + return groupProblemService.deleteProblem(pid); + } + + @GetMapping("/get-problem-cases") + public CommonResult> getProblemCases(@RequestParam("pid") Long pid, + @RequestParam(value = "isUpload", defaultValue = "true") Boolean isUpload) { + return groupProblemService.getProblemCases(pid, isUpload); + } + + @GetMapping("/get-all-problem-tags") + public CommonResult> getAllProblemTagsList(@RequestParam("gid") Long gid) { + return groupProblemService.getAllProblemTagsList(gid); + } + + @PostMapping("/compile-spj") + public CommonResult compileSpj(@RequestBody CompileDTO compileDTO, + @RequestParam("gid") Long gid) { + return groupProblemService.compileSpj(compileDTO, gid); + } + + @PostMapping("/compile-interactive") + public CommonResult compileInteractive(@RequestBody CompileDTO compileDTO, + @RequestParam("gid") Long gid) { + return groupProblemService.compileInteractive(compileDTO, gid); + } + + @PutMapping("/change-problem-auth") + public CommonResult changeProblemAuth(@RequestParam(value = "pid", required = true) Long pid, + @RequestParam(value = "auth", required = true) Integer auth) { + return groupProblemService.changeProblemAuth(pid, auth); + } + + + @PutMapping("/apply-public") + public CommonResult applyPublic(@RequestParam(value = "pid", required = true) Long pid, + @RequestParam(value = "isApplied", required = true) Boolean isApplied) { + return groupProblemService.applyPublic(pid, isApplied); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupRankController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupRankController.java new file mode 100644 index 0000000..6c99fdf --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupRankController.java @@ -0,0 +1,32 @@ +package top.hcode.hoj.controller.group; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.vo.OIRankVo; +import top.hcode.hoj.service.group.GroupRankService; + +/** + * @Author Himit_ZH + * @Date 2022/4/22 + */ +@RestController +@RequestMapping("/api") +public class GroupRankController { + + @Autowired + private GroupRankService groupRankService; + + @GetMapping("/get-group-rank-list") + public CommonResult> getRankList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "searchUser", required = false) String searchUser, + @RequestParam(value = "gid", required = true) Long gid, + @RequestParam(value = "type", required = true) Integer type) { + return groupRankService.getGroupRankList(limit, currentPage, searchUser, type, gid); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupTrainingController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupTrainingController.java new file mode 100644 index 0000000..154f2bc --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/group/GroupTrainingController.java @@ -0,0 +1,104 @@ +package top.hcode.hoj.controller.group; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.TrainingDto; +import top.hcode.hoj.pojo.dto.TrainingProblemDto; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.pojo.vo.TrainingVo; +import top.hcode.hoj.service.group.training.GroupTrainingProblemService; +import top.hcode.hoj.service.group.training.GroupTrainingService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@RestController +@RequiresAuthentication +@RequestMapping("/api/group") +public class GroupTrainingController { + + @Autowired + private GroupTrainingService groupTrainingService; + + @Autowired + private GroupTrainingProblemService groupTrainingProblemService; + + @GetMapping("/get-training-list") + public CommonResult> getTrainingList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid) { + return groupTrainingService.getTrainingList(limit, currentPage, gid); + } + + @GetMapping("/get-admin-training-list") + public CommonResult> getAdminTrainingList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "gid", required = true) Long gid) { + return groupTrainingService.getAdminTrainingList(limit, currentPage, gid); + } + + @GetMapping("/training") + public CommonResult getTraining(@RequestParam("tid") Long tid) { + return groupTrainingService.getTraining(tid); + } + + @PostMapping("/training") + public CommonResult addTraining(@RequestBody TrainingDto trainingDto) { + return groupTrainingService.addTraining(trainingDto); + } + + @PutMapping("/training") + public CommonResult updateTraining(@RequestBody TrainingDto trainingDto) { + return groupTrainingService.updateTraining(trainingDto); + } + + @DeleteMapping("/training") + public CommonResult deleteTraining(@RequestParam(value = "tid", required = true) Long tid) { + return groupTrainingService.deleteTraining(tid); + } + + @PutMapping("/change-training-status") + public CommonResult changeTrainingStatus(@RequestParam(value = "tid", required = true) Long tid, + @RequestParam(value = "status", required = true) Boolean status) { + return groupTrainingService.changeTrainingStatus(tid, status); + } + + @GetMapping("/get-training-problem-list") + public CommonResult> getTrainingProblemList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "queryExisted", required = false, defaultValue = "true") Boolean queryExisted, + @RequestParam(value = "tid", required = true) Long tid) { + return groupTrainingProblemService.getTrainingProblemList(limit, currentPage, keyword, queryExisted, tid); + } + + @PutMapping("/training-problem") + public CommonResult updateTrainingProblem(@RequestBody TrainingProblem trainingProblem) { + return groupTrainingProblemService.updateTrainingProblem(trainingProblem); + } + + @DeleteMapping("/training-problem") + public CommonResult deleteTrainingProblem(@RequestParam(value = "pid", required = true) Long pid, + @RequestParam(value = "tid", required = true) Long tid) { + return groupTrainingProblemService.deleteTrainingProblem(pid, tid); + } + + @PostMapping("/add-training-problem-from-public") + public CommonResult addProblemFromPublic(@RequestBody TrainingProblemDto trainingProblemDto) { + return groupTrainingProblemService.addProblemFromPublic(trainingProblemDto); + } + + @PostMapping("/add-training-problem-from-group") + public CommonResult addProblemFromGroup(@RequestParam(value = "problemId", required = true) String problemId, + @RequestParam(value = "tid", required = true) Long tid) { + return groupTrainingProblemService.addProblemFromGroup(problemId, tid); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/AdminNoticeController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/AdminNoticeController.java new file mode 100644 index 0000000..0a69997 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/AdminNoticeController.java @@ -0,0 +1,61 @@ +package top.hcode.hoj.controller.msg; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.vo.AdminSysNoticeVo; +import top.hcode.hoj.service.msg.AdminNoticeService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:38 + * @Description: 负责管理员发送系统通知 + */ +@RestController +@RequestMapping("/api/admin/msg") +public class AdminNoticeController { + + @Resource + private AdminNoticeService adminNoticeService; + + @GetMapping("/notice") + @RequiresAuthentication + @RequiresRoles("root") + public CommonResult> getSysNotice(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "type", required = false) String type) { + + return adminNoticeService.getSysNotice(limit, currentPage, type); + } + + @PostMapping("/notice") + @RequiresAuthentication + @RequiresRoles("root") + public CommonResult addSysNotice(@RequestBody AdminSysNotice adminSysNotice) { + + return adminNoticeService.addSysNotice(adminSysNotice); + } + + + @DeleteMapping("/notice") + @RequiresAuthentication + @RequiresRoles("root") + public CommonResult deleteSysNotice(@RequestParam("id") Long id) { + + return adminNoticeService.deleteSysNotice(id); + } + + + @PutMapping("/notice") + @RequiresAuthentication + @RequiresRoles("root") + public CommonResult updateSysNotice(@RequestBody AdminSysNotice adminSysNotice) { + + return adminNoticeService.updateSysNotice(adminSysNotice); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/NoticeController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/NoticeController.java new file mode 100644 index 0000000..687d19e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/NoticeController.java @@ -0,0 +1,43 @@ +package top.hcode.hoj.controller.msg; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.vo.SysMsgVo; +import top.hcode.hoj.service.msg.NoticeService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:42 + * @Description: 负责用户的 系统消息模块、我的消息模块 + */ +@RestController +@RequestMapping("/api/msg") +public class NoticeController { + + @Resource + private NoticeService noticeService; + + @RequestMapping(value = "/sys", method = RequestMethod.GET) + @RequiresAuthentication + public CommonResult> getSysNotice(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage) { + + return noticeService.getSysNotice(limit, currentPage); + } + + + @RequestMapping(value = "/mine", method = RequestMethod.GET) + @RequiresAuthentication + public CommonResult> getMineNotice(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage) { + + return noticeService.getMineNotice(limit, currentPage); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/UserMessageController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/UserMessageController.java new file mode 100644 index 0000000..6ad9e26 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/msg/UserMessageController.java @@ -0,0 +1,103 @@ +package top.hcode.hoj.controller.msg; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.vo.UserMsgVo; +import top.hcode.hoj.pojo.vo.UserUnreadMsgCountVo; +import top.hcode.hoj.service.msg.UserMessageService; + +import javax.annotation.Resource; + + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:40 + * @Description: 获取用户 评论我的、回复我的、收到的赞的消息 + */ +@RestController +@RequestMapping("/api/msg") +public class UserMessageController { + + @Resource + private UserMessageService userMessageService; + + /** + * @MethodName getUnreadMsgCount + * @Description 获取用户的未读消息数量,包括评论我的、回复我的、收到的赞、系统通知、我的消息 + * @Return + * @Since 2021/10/1 + */ + @RequestMapping(value = "/unread", method = RequestMethod.GET) + @RequiresAuthentication + public CommonResult getUnreadMsgCount() { + return userMessageService.getUnreadMsgCount(); + } + + + /** + * @param type Discuss Reply Like Sys Mine + * @MethodName cleanMsg + * @Description 根据type,清空各个消息模块的消息或单个消息 + * @Return + * @Since 2021/10/3 + */ + @RequestMapping(value = "/clean", method = RequestMethod.DELETE) + @RequiresAuthentication + public CommonResult cleanMsg(@RequestParam("type") String type, + @RequestParam(value = "id", required = false) Long id) { + return userMessageService.cleanMsg(type, id); + } + + + /** + * @param limit + * @param currentPage + * @MethodName getCommentMsg + * @Description 获取评论我的讨论贴的消息,按未读的在前、时间晚的在前进行排序 + * @Return + * @Since 2021/10/1 + */ + @RequestMapping(value = "/comment", method = RequestMethod.GET) + @RequiresAuthentication + public CommonResult> getCommentMsg(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage) { + return userMessageService.getCommentMsg(limit, currentPage); + } + + /** + * @param limit + * @param currentPage + * @MethodName getReplyMsg + * @Description 获取回复我的评论的消息,按未读的在前、时间晚的在前进行排序 + * @Return + * @Since 2021/10/1 + */ + @RequestMapping(value = "/reply", method = RequestMethod.GET) + @RequiresAuthentication + public CommonResult> getReplyMsg(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage) { + return userMessageService.getReplyMsg(limit, currentPage); + } + + + /** + * @param limit + * @param currentPage + * @MethodName getLikeMsg + * @Description 获取点赞我的的消息,按未读的在前、时间晚的在前进行排序 + * @Return + * @Since 2021/10/1 + */ + @RequestMapping(value = "/like", method = RequestMethod.GET) + @RequiresAuthentication + public CommonResult> getLikeMsg(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage) { + return userMessageService.getLikeMsg(limit, currentPage); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/AccountController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/AccountController.java new file mode 100644 index 0000000..f18f08f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/AccountController.java @@ -0,0 +1,95 @@ +package top.hcode.hoj.controller.oj; + + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.pojo.dto.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.service.oj.AccountService; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/23 12:00 + * @Description: 主要负责处理账号的相关操作 + */ +@RestController +@RequestMapping("/api") +public class AccountController { + + @Autowired + private AccountService accountService; + + /** + * @MethodName checkUsernameOrEmail + * @Description 检验用户名和邮箱是否存在 + * @Return + * @Since 2020/11/5 + */ + @RequestMapping(value = "/check-username-or-email", method = RequestMethod.POST) + public CommonResult checkUsernameOrEmail(@RequestBody CheckUsernameOrEmailDto checkUsernameOrEmailDto) { + return accountService.checkUsernameOrEmail(checkUsernameOrEmailDto); + } + + /** + * @param uid + * @MethodName getUserHomeInfo + * @Description 前端userHome用户个人主页的数据请求,主要是返回解决题目数,AC的题目列表,提交总数,AC总数,Rating分, + * @Return CommonResult + * @Since 2021/01/07 + */ + @GetMapping("/get-user-home-info") + public CommonResult getUserHomeInfo(@RequestParam(value = "uid", required = false) String uid, + @RequestParam(value = "username", required = false) String username) { + return accountService.getUserHomeInfo(uid, username); + } + + + /** + * @param uid + * @param username + * @return + * @Description 获取用户最近一年的提交热力图数据 + */ + @GetMapping("/get-user-calendar-heatmap") + public CommonResult getUserCalendarHeatmap(@RequestParam(value = "uid", required = false) String uid, + @RequestParam(value = "username", required = false) String username) { + return accountService.getUserCalendarHeatmap(uid, username); + } + + + /** + * @MethodName changePassword + * @Params * @param null + * @Description 修改密码的操作,连续半小时内修改密码错误5次,则需要半个小时后才可以再次尝试修改密码 + * @Return + * @Since 2021/1/8 + */ + + @PostMapping("/change-password") + @RequiresAuthentication + public CommonResult changePassword(@RequestBody ChangePasswordDto changePasswordDto) { + return accountService.changePassword(changePasswordDto); + } + + /** + * @MethodName changeEmail + * @Params * @param null + * @Description 修改邮箱的操作,连续半小时内密码错误5次,则需要半个小时后才可以再次尝试修改 + * @Return + * @Since 2021/1/9 + */ + @PostMapping("/change-email") + @RequiresAuthentication + public CommonResult changeEmail(@RequestBody ChangeEmailDto changeEmailDto) { + return accountService.changeEmail(changeEmailDto); + } + + @PostMapping("/change-userInfo") + @RequiresAuthentication + public CommonResult changeUserInfo(@RequestBody UserInfoVo userInfoVo) { + return accountService.changeUserInfo(userInfoVo); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/CommentController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/CommentController.java new file mode 100644 index 0000000..83f29d4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/CommentController.java @@ -0,0 +1,81 @@ +package top.hcode.hoj.controller.oj; + +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ReplyDto; +import top.hcode.hoj.pojo.entity.discussion.Comment; +import top.hcode.hoj.pojo.entity.discussion.Reply; +import top.hcode.hoj.pojo.vo.CommentListVo; +import top.hcode.hoj.pojo.vo.CommentVo; +import top.hcode.hoj.pojo.vo.ReplyVo; +import top.hcode.hoj.service.oj.CommentService; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/5 15:41 + * @Description: + */ +@RestController +@RequestMapping("/api") +public class CommentController { + + @Autowired + private CommentService commentService; + + + @GetMapping("/comments") + public CommonResult getComments(@RequestParam(value = "cid", required = false) Long cid, + @RequestParam(value = "did", required = false) Integer did, + @RequestParam(value = "limit", required = false, defaultValue = "20") Integer limit, + @RequestParam(value = "currentPage", required = false, defaultValue = "1") Integer currentPage) { + return commentService.getComments(cid, did, limit, currentPage); + } + + + @PostMapping("/comment") + @RequiresPermissions("comment_add") + @RequiresAuthentication + public CommonResult addComment(@RequestBody Comment comment) { + return commentService.addComment(comment); + } + + @DeleteMapping("/comment") + @RequiresAuthentication + public CommonResult deleteComment(@RequestBody Comment comment) { + return commentService.deleteComment(comment); + } + + @GetMapping("/comment-like") + @RequiresAuthentication + public CommonResult addCommentLike(@RequestParam("cid") Integer cid, + @RequestParam("toLike") Boolean toLike, + @RequestParam("sourceId") Integer sourceId, + @RequestParam("sourceType") String sourceType) { + return commentService.addCommentLike(cid, toLike, sourceId, sourceType); + } + + @GetMapping("/reply") + public CommonResult> getAllReply(@RequestParam("commentId") Integer commentId, + @RequestParam(value = "cid", required = false) Long cid) { + return commentService.getAllReply(commentId, cid); + } + + @PostMapping("/reply") + @RequiresPermissions("reply_add") + @RequiresAuthentication + public CommonResult addReply(@RequestBody ReplyDto replyDto) { + return commentService.addReply(replyDto); + } + + @DeleteMapping("/reply") + @RequiresAuthentication + public CommonResult deleteReply(@RequestBody ReplyDto replyDto) { + return commentService.deleteReply(replyDto); + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/CommonController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/CommonController.java new file mode 100644 index 0000000..fa41784 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/CommonController.java @@ -0,0 +1,77 @@ +package top.hcode.hoj.controller.oj; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.problem.CodeTemplate; +import top.hcode.hoj.pojo.entity.problem.Language; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; +import top.hcode.hoj.pojo.vo.CaptchaVo; +import top.hcode.hoj.pojo.vo.ProblemTagVo; +import top.hcode.hoj.service.oj.CommonService; + +import java.util.Collection; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/12 23:25 + * @Description: 通用的请求控制处理类 + */ +@RestController +@RequestMapping("/api") +public class CommonController { + + @Autowired + private CommonService commonService; + + + @GetMapping("/captcha") + public CommonResult getCaptcha() { + return commonService.getCaptcha(); + } + + + @GetMapping("/get-training-category") + public CommonResult> getTrainingCategory() { + return commonService.getTrainingCategory(); + } + + @GetMapping("/get-all-problem-tags") + public CommonResult> getAllProblemTagsList(@RequestParam(value = "oj", defaultValue = "ME") String oj) { + return commonService.getAllProblemTagsList(oj); + } + + @GetMapping("/get-problem-tags-and-classification") + public CommonResult> getProblemTagsAndClassification(@RequestParam(value = "oj", defaultValue = "ME") String oj) { + return commonService.getProblemTagsAndClassification(oj); + } + + @GetMapping("/get-problem-tags") + public CommonResult> getProblemTags(Long pid) { + return commonService.getProblemTags(pid); + } + + + @GetMapping("/languages") + public CommonResult> getLanguages(@RequestParam(value = "pid", required = false) Long pid, + @RequestParam(value = "all", required = false) Boolean all) { + return commonService.getLanguages(pid, all); + } + + @GetMapping("/get-problem-languages") + public CommonResult> getProblemLanguages(@RequestParam("pid") Long pid) { + return commonService.getProblemLanguages(pid); + } + + @GetMapping("/get-problem-code-template") + public CommonResult> getProblemCodeTemplate(@RequestParam("pid") Long pid) { + return commonService.getProblemCodeTemplate(pid); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestAdminController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestAdminController.java new file mode 100644 index 0000000..0edef0c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestAdminController.java @@ -0,0 +1,83 @@ +package top.hcode.hoj.controller.oj; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.CheckACDto; +import top.hcode.hoj.pojo.entity.contest.ContestPrint; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.service.oj.ContestAdminService; + +/** + * @Author: Himit_ZH + * @Date: 2021/9/20 13:15 + * @Description: 处理比赛管理模块的相关数据请求 + */ +@RestController +@RequestMapping("/api") +public class ContestAdminController { + + @Autowired + private ContestAdminService contestAdminService; + + /** + * @MethodName getContestACInfo + * @Params * @param null + * @Description 获取各个用户的ac情况,仅限于比赛管理者可查看 + * @Return + * @Since 2021/1/17 + */ + @GetMapping("/get-contest-ac-info") + @RequiresAuthentication + public CommonResult> getContestACInfo(@RequestParam("cid") Long cid, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "limit", required = false) Integer limit) { + + return contestAdminService.getContestACInfo(cid, currentPage, limit); + } + + + /** + * @MethodName checkContestACInfo + * @Params * @param null + * @Description 比赛管理员确定该次提交的ac情况 + * @Return + * @Since 2021/1/17 + */ + @PutMapping("/check-contest-ac-info") + @RequiresAuthentication + public CommonResult checkContestACInfo(@RequestBody CheckACDto checkACDto) { + + return contestAdminService.checkContestACInfo(checkACDto); + } + + + @GetMapping("/get-contest-print") + @RequiresAuthentication + public CommonResult> getContestPrint(@RequestParam("cid") Long cid, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "limit", required = false) Integer limit) { + + return contestAdminService.getContestPrint(cid, currentPage, limit); + } + + /** + * @param id + * @param cid + * @MethodName checkContestStatus + * @Description 更新该打印为确定状态 + * @Return + * @Since 2021/9/20 + */ + @PutMapping("/check-contest-print-status") + @RequiresAuthentication + public CommonResult checkContestPrintStatus(@RequestParam("id") Long id, + @RequestParam("cid") Long cid) { + + return contestAdminService.checkContestPrintStatus(id, cid); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestController.java new file mode 100644 index 0000000..1431155 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestController.java @@ -0,0 +1,193 @@ +package top.hcode.hoj.controller.oj; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ContestPrintDto; +import top.hcode.hoj.pojo.dto.ContestRankDto; +import top.hcode.hoj.pojo.dto.RegisterContestDto; +import top.hcode.hoj.pojo.dto.UserReadContestAnnouncementDto; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.service.oj.ContestService; + +import java.util.*; + + +/** + * @Author: Himit_ZH + * @Date: 2020/10/27 21:40 + * @Description: 处理比赛模块的相关数据请求 + */ +@RestController +@RequestMapping("/api") +public class ContestController { + + @Autowired + private ContestService contestService; + + + /** + * @MethodName getContestList + * @Params * @param null + * @Description 获取比赛列表分页数据 + * @Return CommonResult + * @Since 2020/10/27 + */ + @GetMapping("/get-contest-list") + public CommonResult> getContestList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "status", required = false) Integer status, + @RequestParam(value = "type", required = false) Integer type, + @RequestParam(value = "keyword", required = false) String keyword) { + return contestService.getContestList(limit, currentPage, status, type, keyword); + } + + /** + * @MethodName getContestInfo + * @Description 获得指定比赛的详细信息 + * @Return + * @Since 2020/10/28 + */ + @GetMapping("/get-contest-info") + @RequiresAuthentication + public CommonResult getContestInfo(@RequestParam(value = "cid", required = true) Long cid) { + + return contestService.getContestInfo(cid); + } + + /** + * @MethodName toRegisterContest + * @Description 注册比赛 + * @Return + * @Since 2020/10/28 + */ + @PostMapping("/register-contest") + @RequiresAuthentication + public CommonResult toRegisterContest(@RequestBody RegisterContestDto registerContestDto) { + return contestService.toRegisterContest(registerContestDto); + } + + /** + * @MethodName getContestAccess + * @Description 获得指定私有比赛的访问权限或保护比赛的提交权限 + * @Return + * @Since 2020/10/28 + */ + @RequiresAuthentication + @GetMapping("/get-contest-access") + public CommonResult getContestAccess(@RequestParam(value = "cid") Long cid) { + + return contestService.getContestAccess(cid); + } + + + /** + * @MethodName getContestProblem + * @Description 获得指定比赛的题目列表 + * @Return + * @Since 2020/10/28 + */ + @GetMapping("/get-contest-problem") + @RequiresAuthentication + public CommonResult> getContestProblem(@RequestParam(value = "cid", required = true) Long cid) { + + return contestService.getContestProblem(cid); + } + + @GetMapping("/get-contest-problem-details") + @RequiresAuthentication + public CommonResult getContestProblemDetails(@RequestParam(value = "cid", required = true) Long cid, + @RequestParam(value = "displayId", required = true) String displayId) { + + return contestService.getContestProblemDetails(cid, displayId); + } + + + @GetMapping("/contest-submissions") + @RequiresAuthentication + public CommonResult> getContestSubmissionList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "onlyMine", required = false) Boolean onlyMine, + @RequestParam(value = "problemID", required = false) String displayId, + @RequestParam(value = "status", required = false) Integer searchStatus, + @RequestParam(value = "username", required = false) String searchUsername, + @RequestParam(value = "contestID", required = true) Long searchCid, + @RequestParam(value = "beforeContestSubmit", required = true) Boolean beforeContestSubmit, + @RequestParam(value = "completeProblemID", defaultValue = "false") Boolean completeProblemID) { + + return contestService.getContestSubmissionList(limit, + currentPage, + onlyMine, + displayId, + searchStatus, + searchUsername, + searchCid, + beforeContestSubmit, + completeProblemID); + } + + + /** + * @MethodName getContestRank + * @Description 获得比赛做题记录以用来排名 + * @Return + * @Since 2020/10/28 + */ + @PostMapping("/get-contest-rank") + @RequiresAuthentication + public CommonResult getContestRank(@RequestBody ContestRankDto contestRankDto) { + + return contestService.getContestRank(contestRankDto); + } + + + /** + * @MethodName getContestAnnouncement + * @Description 获得比赛的通知列表 + * @Return CommonResult + * @Since 2020/10/28 + */ + @GetMapping("/get-contest-announcement") + @RequiresAuthentication + public CommonResult> getContestAnnouncement(@RequestParam(value = "cid", required = true) Long cid, + @RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage) { + + return contestService.getContestAnnouncement(cid, limit, currentPage); + } + + + /** + * @param userReadContestAnnouncementDto + * @MethodName getContestUserNotReadAnnouncement + * @Description 根据前端传过来的比赛id以及已阅读的公告提示id列表,排除后获取未阅读的公告 + * @Return + * @Since 2021/7/17 + */ + @PostMapping("/get-contest-not-read-announcement") + @RequiresAuthentication + public CommonResult> getContestUserNotReadAnnouncement(@RequestBody UserReadContestAnnouncementDto userReadContestAnnouncementDto) { + return contestService.getContestUserNotReadAnnouncement(userReadContestAnnouncementDto); + } + + + /** + * @param contestPrintDto + * @MethodName submitPrintText + * @Description 提交比赛文本打印内容 + * @Return + * @Since 2021/9/20 + */ + @PostMapping("/submit-print-text") + @RequiresAuthentication + public CommonResult submitPrintText(@RequestBody ContestPrintDto contestPrintDto) { + + return contestService.submitPrintText(contestPrintDto); + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestScoreboardController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestScoreboardController.java new file mode 100644 index 0000000..2f4e9ab --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ContestScoreboardController.java @@ -0,0 +1,47 @@ +package top.hcode.hoj.controller.oj; + +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ContestRankDto; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.service.oj.ContestScoreboardService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 22:11 + * @Description: 处理比赛外榜的相关请求 + */ + +@RestController +@RequestMapping("/api") +public class ContestScoreboardController { + + @Resource + private ContestScoreboardService contestScoreboardService; + + /** + * @param cid 比赛id + * @MethodName getContestOutsideInfo + * @Description 提供比赛外榜所需的比赛信息和题目信息 + * @Return + * @Since 2021/12/8 + */ + @GetMapping("/get-contest-outsize-info") + public CommonResult getContestOutsideInfo(@RequestParam(value = "cid", required = true) Long cid) { + return contestScoreboardService.getContestOutsideInfo(cid); + } + + /** + * @MethodName getContestScoreBoard + * @Description 提供比赛外榜排名数据 + * @Return + * @Since 2021/12/07 + */ + @PostMapping("/get-contest-outside-scoreboard") + public CommonResult getContestOutsideScoreboard(@RequestBody ContestRankDto contestRankDto) { + return contestScoreboardService.getContestOutsideScoreboard(contestRankDto); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/DiscussionController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/DiscussionController.java new file mode 100644 index 0000000..d5248e3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/DiscussionController.java @@ -0,0 +1,93 @@ +package top.hcode.hoj.controller.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.annotation.HOJAccess; +import top.hcode.hoj.annotation.HOJAccessEnum; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.problem.Category; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.vo.DiscussionVo; +import top.hcode.hoj.service.oj.DiscussionService; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/05/04 10:14 + * @Description: 负责讨论与评论模块的数据接口 + */ +@RestController +@RequestMapping("/api") +public class DiscussionController { + + @Autowired + private DiscussionService discussionService; + + + @GetMapping("/get-discussion-list") + @HOJAccess({HOJAccessEnum.PUBLIC_DISCUSSION}) + public CommonResult> getDiscussionList(@RequestParam(value = "limit", required = false, defaultValue = "10") Integer limit, + @RequestParam(value = "currentPage", required = false, defaultValue = "1") Integer currentPage, + @RequestParam(value = "cid", required = false) Integer categoryId, + @RequestParam(value = "pid", required = false) String pid, + @RequestParam(value = "onlyMine", required = false, defaultValue = "false") Boolean onlyMine, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "admin", defaultValue = "false") Boolean admin) { + + return discussionService.getDiscussionList(limit, currentPage, categoryId, pid, onlyMine, keyword, admin); + + } + + @GetMapping("/get-discussion-detail") + public CommonResult getDiscussion(@RequestParam(value = "did", required = true) Integer did) { + return discussionService.getDiscussion(did); + } + + @PostMapping("/discussion") + @RequiresPermissions("discussion_add") + @RequiresAuthentication + @HOJAccess({HOJAccessEnum.PUBLIC_DISCUSSION}) + public CommonResult addDiscussion(@RequestBody Discussion discussion) { + return discussionService.addDiscussion(discussion); + } + + @PutMapping("/discussion") + @RequiresPermissions("discussion_edit") + @RequiresAuthentication + @HOJAccess({HOJAccessEnum.PUBLIC_DISCUSSION}) + public CommonResult updateDiscussion(@RequestBody Discussion discussion) { + return discussionService.updateDiscussion(discussion); + } + + @DeleteMapping("/discussion") + @RequiresPermissions("discussion_del") + @RequiresAuthentication + @HOJAccess({HOJAccessEnum.PUBLIC_DISCUSSION}) + public CommonResult removeDiscussion(@RequestParam("did") Integer did) { + return discussionService.removeDiscussion(did); + } + + @GetMapping("/discussion-like") + @RequiresAuthentication + public CommonResult addDiscussionLike(@RequestParam("did") Integer did, + @RequestParam("toLike") Boolean toLike) { + return discussionService.addDiscussionLike(did, toLike); + } + + @GetMapping("/discussion-category") + public CommonResult> getDiscussionCategory() { + return discussionService.getDiscussionCategory(); + } + + @PostMapping("/discussion-report") + @RequiresAuthentication + public CommonResult addDiscussionReport(@RequestBody DiscussionReport discussionReport) { + return discussionService.addDiscussionReport(discussionReport); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/HomeController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/HomeController.java new file mode 100644 index 0000000..a55ce19 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/HomeController.java @@ -0,0 +1,113 @@ +package top.hcode.hoj.controller.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.vo.ACMRankVo; +import top.hcode.hoj.pojo.vo.AnnouncementVo;; +import top.hcode.hoj.pojo.vo.ContestVo; +import top.hcode.hoj.service.oj.HomeService; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/26 14:12 + * @Description: 处理首页的请求 + */ +@RestController +@RequestMapping("/api") +public class HomeController { + + @Autowired + private HomeService homeService; + + /** + * @MethodName getRecentContest + * @Params * @param null + * @Description 获取最近14天的比赛信息列表 + * @Return CommonResult + * @Since 2020/12/29 + */ + + @GetMapping("/get-recent-contest") + public CommonResult> getRecentContest() { + return homeService.getRecentContest(); + } + + + /** + * @MethodName getHomeCarousel + * @Params + * @Description 获取主页轮播图 + * @Return + * @Since 2021/9/4 + */ + @GetMapping("/home-carousel") + public CommonResult>> getHomeCarousel() { + return homeService.getHomeCarousel(); + } + + + /** + * @MethodName getRecentSevenACRank + * @Params * @param null + * @Description 获取最近7天用户做题榜单 + * @Return + * @Since 2021/1/15 + */ + @GetMapping("/get-recent-seven-ac-rank") + public CommonResult> getRecentSevenACRank() { + return homeService.getRecentSevenACRank(); + } + + + /** + * @MethodName getRecentOtherContest + * @Params * @param null + * @Description 获取最近其他OJ的比赛信息列表 + * @Return CommonResult + * @Since 2020/1/15 + */ + + @GetMapping("/get-recent-other-contest") + public CommonResult>> getRecentOtherContest() { + return homeService.getRecentOtherContest(); + } + + + /** + * @MethodName getCommonAnnouncement + * @Params * @param null + * @Description 获取主页公告列表 + * @Return CommonResult + * @Since 2020/12/29 + */ + + @GetMapping("/get-common-announcement") + + public CommonResult> getCommonAnnouncement(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage) { + return homeService.getCommonAnnouncement(limit, currentPage); + } + + /** + * @MethodName getWebConfig + * @Params * @param null + * @Description 获取网站的基础配置。例如名字,缩写名字等等。 + * @Return CommonResult + * @Since 2020/12/29 + */ + + @GetMapping("/get-website-config") + public CommonResult> getWebConfig() { + return homeService.getWebConfig(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/JudgeController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/JudgeController.java new file mode 100644 index 0000000..66a0e12 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/JudgeController.java @@ -0,0 +1,160 @@ +package top.hcode.hoj.controller.oj; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.SubmitIdListDto; +import top.hcode.hoj.pojo.dto.TestJudgeDto; +import top.hcode.hoj.pojo.dto.SubmitJudgeDto; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import top.hcode.hoj.pojo.vo.JudgeVo; +import top.hcode.hoj.pojo.vo.SubmissionInfoVo; +import top.hcode.hoj.pojo.vo.TestJudgeVo; +import top.hcode.hoj.service.oj.JudgeService; + +import java.util.HashMap; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/27 20:52 + * @Description: 处理代码评判相关业务 + */ +@RestController +@RequestMapping("/api") +public class JudgeController { + + + @Autowired + private JudgeService judgeService; + + /** + * @param limit + * @param currentPage + * @param onlyMine + * @param searchPid + * @param searchStatus + * @param searchUsername + * @param completeProblemID + * @MethodName getJudgeList + * @Description 通用查询判题记录列表 + * @Return CommonResult + * @Since 2020/10/29 + */ + @GetMapping("/get-submission-list") + public CommonResult> getJudgeList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "onlyMine", required = false) Boolean onlyMine, + @RequestParam(value = "problemID", required = false) String searchPid, + @RequestParam(value = "status", required = false) Integer searchStatus, + @RequestParam(value = "username", required = false) String searchUsername, + @RequestParam(value = "completeProblemID", defaultValue = "false") Boolean completeProblemID, + @RequestParam(value = "gid", required = false) Long gid) { + + return judgeService.getJudgeList(limit, currentPage, onlyMine, searchPid, searchStatus, searchUsername, completeProblemID, gid); + } + + /** + * @MethodName getSubmission + * @Description 获取单个提交记录的详情 + * @Return CommonResult + * @Since 2021/1/2 + */ + @GetMapping("/get-submission-detail") + public CommonResult getSubmission(@RequestParam(value = "submitId", required = true) Long submitId) { + return judgeService.getSubmission(submitId); + } + + /** + * @MethodName submitProblemJudge + * @Description 核心方法 判题就此开始 + * @Return CommonResult + * @Since 2020/10/30 + */ + @RequiresAuthentication + @RequiresPermissions("submit") + @RequestMapping(value = "/submit-problem-judge", method = RequestMethod.POST) + public CommonResult submitProblemJudge(@RequestBody SubmitJudgeDto judgeDto) { + return judgeService.submitProblemJudge(judgeDto); + } + + @RequiresAuthentication + @RequiresPermissions("submit") + @RequestMapping(value = "/submit-problem-test-judge", method = RequestMethod.POST) + public CommonResult submitProblemTestJudge(@RequestBody TestJudgeDto testJudgeDto) { + return judgeService.submitProblemTestJudge(testJudgeDto); + } + + + @RequiresAuthentication + @GetMapping("/get-test-judge-result") + public CommonResult getTestJudgeResult(@RequestParam("testJudgeKey") String testJudgeKey) { + return judgeService.getTestJudgeResult(testJudgeKey); + } + + /** + * @MethodName resubmit + * @Description 调用判题服务器提交失败超过60s后,用户点击按钮重新提交判题进入的方法 + * @Return + * @Since 2021/2/12 + */ + @RequiresAuthentication + @GetMapping(value = "/resubmit") + public CommonResult resubmit(@RequestParam("submitId") Long submitId) { + return judgeService.resubmit(submitId); + } + + /** + * @MethodName updateSubmission + * @Description 修改单个提交详情的分享权限 + * @Return CommonResult + * @Since 2021/1/2 + */ + @PutMapping("/submission") + @RequiresAuthentication + public CommonResult updateSubmission(@RequestBody Judge judge) { + return judgeService.updateSubmission(judge); + } + + /** + * @MethodName checkJudgeResult + * @Description 对提交列表状态为Pending和Judging的提交进行更新检查 + * @Return + * @Since 2021/1/3 + */ + @RequestMapping(value = "/check-submissions-status", method = RequestMethod.POST) + public CommonResult> checkCommonJudgeResult(@RequestBody SubmitIdListDto submitIdListDto) { + return judgeService.checkCommonJudgeResult(submitIdListDto); + } + + /** + * @param submitIdListDto + * @MethodName checkContestJudgeResult + * @Description 需要检查是否为封榜,是否可以查询结果,避免有人恶意查询 + * @Return + * @Since 2021/6/11 + */ + @RequestMapping(value = "/check-contest-submissions-status", method = RequestMethod.POST) + @RequiresAuthentication + public CommonResult> checkContestJudgeResult(@RequestBody SubmitIdListDto submitIdListDto) { + return judgeService.checkContestJudgeResult(submitIdListDto); + } + + + /** + * @param submitId + * @MethodName getJudgeCase + * @Description 获得指定提交id的测试样例结果,暂不支持查看测试数据,只可看测试点结果,时间,空间,或者IO得分 + * @Return + * @Since 2020/10/29 + */ + @GetMapping("/get-all-case-result") + public CommonResult> getALLCaseResult(@RequestParam(value = "submitId", required = true) Long submitId) { + return judgeService.getALLCaseResult(submitId); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/PassportController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/PassportController.java new file mode 100644 index 0000000..d027b75 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/PassportController.java @@ -0,0 +1,109 @@ +package top.hcode.hoj.controller.oj; + +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.LoginDto; +import top.hcode.hoj.pojo.dto.RegisterDto; +import top.hcode.hoj.pojo.dto.ApplyResetPasswordDto; +import top.hcode.hoj.pojo.dto.ResetPasswordDto; +import top.hcode.hoj.pojo.vo.RegisterCodeVo; +import top.hcode.hoj.pojo.vo.UserInfoVo; +import top.hcode.hoj.service.oj.PassportService; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 17:00 + * @Description: 处理登录、注册、重置密码 + */ +@RestController +@RequestMapping("/api") +public class PassportController { + + + @Autowired + private PassportService passportService; + + /** + * @param loginDto + * @MethodName login + * @Description 处理登录逻辑 + * @Return CommonResult + * @Since 2020/10/24 + */ + @PostMapping("/login") + public CommonResult login(@Validated @RequestBody LoginDto loginDto, HttpServletResponse response, HttpServletRequest request) { + return passportService.login(loginDto, response, request); + } + + /** + * @MethodName getRegisterCode + * @Description 调用邮件服务,发送注册流程的6位随机验证码 + * @Return + * @Since 2020/10/26 + */ + @RequestMapping(value = "/get-register-code", method = RequestMethod.GET) + public CommonResult getRegisterCode(@RequestParam(value = "email", required = true) String email) { + return passportService.getRegisterCode(email); + } + + + /** + * @param registerDto + * @MethodName register + * @Description 注册逻辑,具体参数请看RegisterDto类 + * @Return + * @Since 2020/10/24 + */ + @PostMapping("/register") + public CommonResult register(@Validated @RequestBody RegisterDto registerDto) { + return passportService.register(registerDto); + } + + + /** + * @param applyResetPasswordDto + * @MethodName applyResetPassword + * @Description 发送重置密码的链接邮件 + * @Return + * @Since 2020/11/6 + */ + @PostMapping("/apply-reset-password") + public CommonResult applyResetPassword(@RequestBody ApplyResetPasswordDto applyResetPasswordDto) { + return passportService.applyResetPassword(applyResetPasswordDto); + } + + + /** + * @param resetPasswordDto + * @MethodName resetPassword + * @Description 用户重置密码 + * @Return + * @Since 2020/11/6 + */ + @PostMapping("/reset-password") + public CommonResult resetPassword(@RequestBody ResetPasswordDto resetPasswordDto) { + return passportService.resetPassword(resetPasswordDto); + } + + + /** + * @MethodName logout + * @Description 退出逻辑,将jwt在redis中清除,下次需要再次登录。 + * @Return CommonResult + * @Since 2020/10/24 + */ + @GetMapping("/logout") + @RequiresAuthentication + public CommonResult logout() { + SecurityUtils.getSubject().logout(); + return CommonResult.successResponse("登出成功!"); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ProblemController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ProblemController.java new file mode 100644 index 0000000..c5626cd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/ProblemController.java @@ -0,0 +1,88 @@ +package top.hcode.hoj.controller.oj; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.PidListDto; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.service.oj.ProblemService; + +import java.util.*; + + +/** + * @Author: Himit_ZH + * @Date: 2020/10/27 13:24 + * @Description: 问题数据控制类,处理题目列表请求,题目内容请求。 + */ +@RestController +@RequestMapping("/api") +public class ProblemController { + + @Autowired + private ProblemService problemService; + + /** + * @param currentPage + * @param keyword + * @param tagId + * @param difficulty + * @param oj + * @MethodName getProblemList + * @Description 获取题目列表分页 + * @Return CommonResult + * @Since 2020/10/27 + */ + @RequestMapping(value = "/get-problem-list", method = RequestMethod.GET) + public CommonResult> getProblemList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "tagId", required = false) List tagId, + @RequestParam(value = "difficulty", required = false) Integer difficulty, + @RequestParam(value = "oj", required = false) String oj) { + + return problemService.getProblemList(limit, currentPage, keyword, tagId, difficulty, oj); + } + + /** + * @MethodName getRandomProblem + * @Description 随机选取一道题目 + * @Return CommonResult + * @Since 2020/10/27 + */ + @GetMapping("/get-random-problem") + public CommonResult getRandomProblem() { + return problemService.getRandomProblem(); + } + + /** + * @param pidListDto + * @MethodName getUserProblemStatus + * @Description 获取用户对应该题目列表中各个题目的做题情况 + * @Return CommonResult + * @Since 2020/12/29 + */ + @RequiresAuthentication + @PostMapping("/get-user-problem-status") + public CommonResult> getUserProblemStatus(@Validated @RequestBody PidListDto pidListDto) { + return problemService.getUserProblemStatus(pidListDto); + } + + /** + * @param problemId + * @MethodName getProblemInfo + * @Description 获取指定题目的详情信息,标签,所支持语言,做题情况(只能查询公开题目 也就是auth为1) + * @Return CommonResult + * @Since 2020/10/27 + */ + @RequestMapping(value = "/get-problem-detail", method = RequestMethod.GET) + public CommonResult getProblemInfo(@RequestParam(value = "problemId", required = true) String problemId, + @RequestParam(value = "gid", required = false) Long gid) { + return problemService.getProblemInfo(problemId,gid); + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/RankController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/RankController.java new file mode 100644 index 0000000..3fa0711 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/RankController.java @@ -0,0 +1,38 @@ +package top.hcode.hoj.controller.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.service.oj.RankService; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/27 20:53 + * @Description: 处理排行榜数据 + */ +@RestController +@RequestMapping("/api") +public class RankController { + + @Autowired + private RankService rankService; + + /** + * @MethodName get-rank-list + * @Params * @param null + * @Description 获取排行榜数据 + * @Return CommonResult + * @Since 2020/10/27 + */ + @GetMapping("/get-rank-list") + public CommonResult getRankList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "searchUser", required = false) String searchUser, + @RequestParam(value = "type", required = true) Integer type) { + return rankService.getRankList(limit, currentPage, searchUser, type); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/TrainingController.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/TrainingController.java new file mode 100644 index 0000000..b5a6d59 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/controller/oj/TrainingController.java @@ -0,0 +1,121 @@ +package top.hcode.hoj.controller.oj; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.authz.annotation.RequiresAuthentication; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.RegisterTrainingDto; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.service.oj.TrainingService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/19 21:42 + * @Description: 处理训练题单的请求 + */ + +@RestController +@RequestMapping("/api") +public class TrainingController { + + @Resource + private TrainingService trainingService; + + /** + * @param limit + * @param currentPage + * @param keyword + * @param categoryId + * @param auth + * @MethodName getTrainingList + * @Description 获取训练题单列表,可根据关键词、类别、权限、类型过滤 + * @Return + * @Since 2021/11/20 + */ + @GetMapping("/get-training-list") + public CommonResult> getTrainingList(@RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage, + @RequestParam(value = "keyword", required = false) String keyword, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "auth", required = false) String auth) { + + return trainingService.getTrainingList(limit, currentPage, keyword, categoryId, auth); + } + + + /** + * @param tid + * @MethodName getTraining + * @Description 根据tid获取指定训练详情 + * @Return + * @Since 2021/11/20 + */ + @GetMapping("/get-training-detail") + @RequiresAuthentication + public CommonResult getTraining(@RequestParam(value = "tid") Long tid) { + return trainingService.getTraining(tid); + } + + /** + * @param tid + * @MethodName getTrainingProblemList + * @Description 根据tid获取指定训练的题单题目列表 + * @Return + * @Since 2021/11/20 + */ + @GetMapping("/get-training-problem-list") + @RequiresAuthentication + public CommonResult> getTrainingProblemList(@RequestParam(value = "tid") Long tid) { + return trainingService.getTrainingProblemList(tid); + } + + /** + * @param registerTrainingDto + * @MethodName toRegisterTraining + * @Description 注册校验私有权限的训练 + * @Return + * @Since 2021/11/20 + */ + @PostMapping("/register-training") + @RequiresAuthentication + public CommonResult toRegisterTraining(@RequestBody RegisterTrainingDto registerTrainingDto) { + return trainingService.toRegisterTraining(registerTrainingDto); + } + + + /** + * @param tid + * @MethodName getTrainingAccess + * @Description 私有权限的训练需要获取当前用户是否有进入训练的权限 + * @Return + * @Since 2021/11/20 + */ + @RequiresAuthentication + @GetMapping("/get-training-access") + public CommonResult getTrainingAccess(@RequestParam(value = "tid") Long tid) { + return trainingService.getTrainingAccess(tid); + } + + + /** + * @param tid + * @param limit + * @param currentPage + * @MethodName getTrainingRank + * @Description 获取训练的排行榜分页 + * @Return + * @Since 2021/11/22 + */ + @GetMapping("/get-training-rank") + @RequiresAuthentication + public CommonResult> getTrainingRank(@RequestParam(value = "tid", required = true) Long tid, + @RequestParam(value = "limit", required = false) Integer limit, + @RequestParam(value = "currentPage", required = false) Integer currentPage) { + return trainingService.getTrainingRank(tid, limit, currentPage); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/AtCoderLanguageStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/AtCoderLanguageStrategy.java new file mode 100644 index 0000000..ca92566 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/AtCoderLanguageStrategy.java @@ -0,0 +1,326 @@ +package top.hcode.hoj.crawler.language; + +import cn.hutool.core.util.ReUtil; +import top.hcode.hoj.pojo.entity.problem.Language; + +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.regex.Pattern; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/28 21:48 + * @Description: + */ +public class AtCoderLanguageStrategy extends LanguageStrategy { + + @Override + public String getLanguageNameById(String id) { + return null; + } + + @Override + public List buildLanguageListByIds(List allLanguageList, List langIdList) { + return null; + } + + @Override + public Collection getLangList() { + HashMap languageMap = new HashMap<>(); + languageMap.put("C (GCC 9.2.1)", "4001"); + languageMap.put("C (Clang 10.0.0)", "4002"); + languageMap.put("C++ (GCC 9.2.1)", "4003"); + languageMap.put("C++ (Clang 10.0.0)", "4004"); + languageMap.put("Java (OpenJDK 11.0.6)", "4005"); + languageMap.put("Python (3.8.2)", "4006"); + languageMap.put("Bash (5.0.11)", "4007"); + languageMap.put("bc (1.07.1)", "4008"); + languageMap.put("Awk (GNU Awk 4.1.4)", "4009"); + languageMap.put("C# (.NET Core 3.1.201)", "4010"); + languageMap.put("C# (Mono-mcs 6.8.0.105)", "4011"); + languageMap.put("C# (Mono-csc 3.5.0)", "4012"); + languageMap.put("Clojure (1.10.1.536)", "4013"); + languageMap.put("Crystal (0.33.0)", "4014"); + languageMap.put("D (DMD 2.091.0)", "4015"); + languageMap.put("D (GDC 9.2.1)", "4016"); + languageMap.put("D (LDC 1.20.1)", "4017"); + languageMap.put("Dart (2.7.2)", "4018"); + languageMap.put("dc (1.4.1)", "4019"); + languageMap.put("Erlang (22.3)", "4020"); + languageMap.put("Elixir (1.10.2)", "4021"); + languageMap.put("F# (.NET Core 3.1.201)", "4022"); + languageMap.put("F# (Mono 10.2.3)", "4023"); + languageMap.put("Forth (gforth 0.7.3)", "4024"); + languageMap.put("Fortran (GNU Fortran 9.2.1)", "4025"); + languageMap.put("Go (1.14.1)", "4026"); + languageMap.put("Haskell (GHC 8.8.3)", "4027"); + languageMap.put("Haxe (4.0.3); js", "4028"); + languageMap.put("Haxe (4.0.3); Java", "4029"); + languageMap.put("JavaScript (Node.js 12.16.1)", "4030"); + languageMap.put("Julia (1.4.0)", "4031"); + languageMap.put("Kotlin (1.3.71)", "4032"); + languageMap.put("Lua (Lua 5.3.5)", "4033"); + languageMap.put("Lua (LuaJIT 2.1.0)", "4034"); + languageMap.put("Dash (0.5.8)", "4035"); + languageMap.put("Nim (1.0.6)", "4036"); + languageMap.put("Objective-C (Clang 10.0.0)", "4037"); + languageMap.put("Common Lisp (SBCL 2.0.3)", "4038"); + languageMap.put("OCaml (4.10.0)", "4039"); + languageMap.put("Octave (5.2.0)", "4040"); + languageMap.put("Pascal (FPC 3.0.4)", "4041"); + languageMap.put("Perl (5.26.1)", "4042"); + languageMap.put("Raku (Rakudo 2020.02.1)", "4043"); + languageMap.put("PHP (7.4.4)", "4044"); + languageMap.put("Prolog (SWI-Prolog 8.0.3)", "4045"); + languageMap.put("PyPy2 (7.3.0)", "4046"); + languageMap.put("PyPy3 (7.3.0)", "4047"); + languageMap.put("Racket (7.6)", "4048"); + languageMap.put("Ruby (2.7.1)", "4049"); + languageMap.put("Rust (1.42.0)", "4050"); + languageMap.put("Scala (2.13.1)", "4051"); + languageMap.put("Java (OpenJDK 1.8.0)", "4052"); + languageMap.put("Scheme (Gauche 0.9.9)", "4053"); + languageMap.put("Standard ML (MLton 20130715)", "4054"); + languageMap.put("Swift (5.2.1)", "4055"); + languageMap.put("Text (cat 8.28)", "4056"); + languageMap.put("TypeScript (3.8)", "4057"); + languageMap.put("Visual Basic (.NET Core 3.1.101)", "4058"); + languageMap.put("Zsh (5.4.2)", "4059"); + languageMap.put("COBOL - Fixed (OpenCOBOL 1.1.0)", "4060"); + languageMap.put("COBOL - Free (OpenCOBOL 1.1.0)", "4061"); + languageMap.put("Brainfuck (bf 20041219)", "4062"); + languageMap.put("Ada2012 (GNAT 9.2.1)", "4063"); + languageMap.put("Unlambda (2.0.0)", "4064"); + languageMap.put("Cython (0.29.16)", "4065"); + languageMap.put("Sed (4.4)", "4066"); + languageMap.put("Vim (8.2.0460)", "4067"); + return languageMap.keySet(); + } + + @Override + public String getOJName() { + return "AC"; + } + + @Override + protected String getLangContentType(String name) { + HashMap nameMapContestType = new HashMap<>(); + nameMapContestType.put("C (GCC 9.2.1)", "text/x-csrc"); + nameMapContestType.put("C (Clang 10.0.0)", "text/x-csrc"); + nameMapContestType.put("C++ (GCC 9.2.1)", "text/x-c++src"); + nameMapContestType.put("C++ (Clang 10.0.0)", "text/x-c++src"); + nameMapContestType.put("Java (OpenJDK 11.0.6)", "text/x-java"); + nameMapContestType.put("Python (3.8.2)", "text/x-python"); + nameMapContestType.put("Bash (5.0.11)", "text/x-sh"); + nameMapContestType.put("bc (1.07.1)", "text/x-bc"); + nameMapContestType.put("Awk (GNU Awk 4.1.4)", "text/x-sh"); + nameMapContestType.put("C# (.NET Core 3.1.201)", "text/x-csharp"); + nameMapContestType.put("C# (Mono-mcs 6.8.0.105)", "text/x-csharp"); + nameMapContestType.put("C# (Mono-csc 3.5.0)", "text/x-csharp"); + nameMapContestType.put("Clojure (1.10.1.536)", "text/x-clojure"); + nameMapContestType.put("Crystal (0.33.0)", "text/x-crystal"); + nameMapContestType.put("D (DMD 2.091.0)", "text/x-d"); + nameMapContestType.put("D (GDC 9.2.1)", "text/x-d"); + nameMapContestType.put("D (LDC 1.20.1)", "text/x-d"); + nameMapContestType.put("Dart (2.7.2)", "application/dart"); + nameMapContestType.put("dc (1.4.1)", "text/x-dc"); + nameMapContestType.put("Erlang (22.3)", "text/x-erlang"); + nameMapContestType.put("Elixir (1.10.2)", "elixir"); + nameMapContestType.put("F# (.NET Core 3.1.201)", "text/x-fsharp"); + nameMapContestType.put("F# (Mono 10.2.3)", "text/x-fsharp"); + nameMapContestType.put("Forth (gforth 0.7.3)", "text/x-forth"); + nameMapContestType.put("Fortran (GNU Fortran 9.2.1)", "text/x-fortran"); + nameMapContestType.put("Go (1.14.1)", "text/x-go"); + nameMapContestType.put("Haskell (GHC 8.8.3)", "text/x-haskell"); + nameMapContestType.put("Haxe (4.0.3); js", "text/x-haxe"); + nameMapContestType.put("Haxe (4.0.3); Java", "text/x-haxe"); + nameMapContestType.put("JavaScript (Node.js 12.16.1)", "text/javascript"); + nameMapContestType.put("Julia (1.4.0)", "text/x-julia"); + nameMapContestType.put("Kotlin (1.3.71)", "text/x-kotlin"); + nameMapContestType.put("Lua (Lua 5.3.5)", "text/x-lua"); + nameMapContestType.put("Lua (LuaJIT 2.1.0)", "text/x-lua"); + nameMapContestType.put("Dash (0.5.8)", "text/x-sh"); + nameMapContestType.put("Nim (1.0.6)", "text/x-nim"); + nameMapContestType.put("Objective-C (Clang 10.0.0)", "text/x-objectivec"); + nameMapContestType.put("Common Lisp (SBCL 2.0.3)", "text/x-common-lisp"); + nameMapContestType.put("OCaml (4.10.0)", "text/x-ocaml"); + nameMapContestType.put("Octave (5.2.0)", "text/x-octave"); + nameMapContestType.put("Pascal (FPC 3.0.4)", "text/x-pascal"); + nameMapContestType.put("Perl (5.26.1)", "text/x-perl"); + nameMapContestType.put("Raku (Rakudo 2020.02.1)", "text/x-perl"); + nameMapContestType.put("PHP (7.4.4)", "text/x-php"); + nameMapContestType.put("Prolog (SWI-Prolog 8.0.3)", "text/x-prolog"); + nameMapContestType.put("PyPy2 (7.3.0)", "text/x-python"); + nameMapContestType.put("PyPy3 (7.3.0)", "text/x-python"); + nameMapContestType.put("Racket (7.6)", "text/x-racket"); + nameMapContestType.put("Ruby (2.7.1)", "text/x-ruby"); + nameMapContestType.put("Rust (1.42.0)", "text/x-rustsrc"); + nameMapContestType.put("Scala (2.13.1)", "text/x-scala"); + nameMapContestType.put("Java (OpenJDK 1.8.0)", "text/x-java"); + nameMapContestType.put("Scheme (Gauche 0.9.9)", "text/x-scheme"); + nameMapContestType.put("Standard ML (MLton 20130715)", "text/x-sml"); + nameMapContestType.put("Swift (5.2.1)", "text/x-swift"); + nameMapContestType.put("Text (cat 8.28)", "text/plain"); + nameMapContestType.put("TypeScript (3.8)", "text/typescript"); + nameMapContestType.put("Visual Basic (.NET Core 3.1.101)", "text/x-vb"); + nameMapContestType.put("Zsh (5.4.2)", "text/x-sh"); + nameMapContestType.put("COBOL - Fixed (OpenCOBOL 1.1.0)", "text/x-cobol"); + nameMapContestType.put("COBOL - Free (OpenCOBOL 1.1.0)", "text/x-cobol"); + nameMapContestType.put("Brainfuck (bf 20041219)", "text/x-brainfuck"); + nameMapContestType.put("Ada2012 (GNAT 9.2.1)", "text/x-ada"); + nameMapContestType.put("Unlambda (2.0.0)", "text/x-unlambda"); + nameMapContestType.put("Cython (0.29.16)", "text/x-python"); + nameMapContestType.put("Sed (4.4)", "text/x-sh"); + nameMapContestType.put("Vim (8.2.0460)", "text/x-vim"); + return nameMapContestType.get(name); + } + + public static void main(String[] args) { + String body = "\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t"; + Pattern pattern1 = Pattern.compile(""); + Pattern pattern2 = Pattern.compile(""); + Pattern pattern3 = Pattern.compile(""); + List allGroups1 = ReUtil.findAll(pattern1, body, 1); + List allGroups2 = ReUtil.findAll(pattern2, body, 1); + List allGroups3 = ReUtil.findAll(pattern3, body, 1); + for (int i = 0; i < allGroups1.size(); i++) { + System.out.println("nameMapContestType.put(\"" + allGroups2.get(i) + "\", \"" + allGroups3.get(i) + "\");"); + } + for (int i = 0; i < allGroups1.size(); i++) { + System.out.println("languageMap.put(\"" + allGroups2.get(i) + "\", \"" + allGroups1.get(i) + "\");"); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/LanguageContext.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/LanguageContext.java new file mode 100644 index 0000000..7c16b29 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/LanguageContext.java @@ -0,0 +1,45 @@ +package top.hcode.hoj.crawler.language; + +import top.hcode.hoj.pojo.entity.problem.Language; +import top.hcode.hoj.utils.Constants; + +;import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/27 21:15 + * @Description: + */ +public class LanguageContext { + + private LanguageStrategy languageStrategy; + + public LanguageContext(LanguageStrategy languageStrategy) { + this.languageStrategy = languageStrategy; + } + + public LanguageContext(Constants.RemoteOJ remoteOJ) { + switch (remoteOJ) { + case SPOJ: + languageStrategy = new SPOJLanguageStrategy(); + break; + case ATCODER: + languageStrategy = new AtCoderLanguageStrategy(); + break; + default: + throw new RuntimeException("未知的OJ的名字,暂时不支持!"); + } + } + + public List buildLanguageList(){ + return languageStrategy.buildLanguageList(); + } + + public String getLanguageNameById(String id) { + return languageStrategy.getLanguageNameById(id); + } + + public List buildLanguageListByIds(List allLanguageList, List langIdList) { + return languageStrategy.buildLanguageListByIds(allLanguageList, langIdList); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/LanguageStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/LanguageStrategy.java new file mode 100644 index 0000000..7f0cab6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/LanguageStrategy.java @@ -0,0 +1,119 @@ +package top.hcode.hoj.crawler.language; + +import top.hcode.hoj.pojo.entity.problem.Language; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/27 21:14 + * @Description: + */ +public abstract class LanguageStrategy { + + + public abstract String getLanguageNameById(String id); + + public abstract List buildLanguageListByIds(List allLanguageList, List langIdList); + + public abstract Collection getLangList(); + + public abstract String getOJName(); + + public List buildLanguageList() { + List languageList = new ArrayList<>(); + for (String lang : getLangList()) { + languageList.add(new Language() + .setName(lang) + .setDescription(lang) + .setOj(getOJName()) + .setContentType(getLangContentType(lang))); + } + return languageList; + } + + private final static List CLang = Arrays.asList("c", "gcc", "clang"); + private final static List CPPLang = Arrays.asList("c++", "g++", "clang++"); + private final static List PythonLang = Arrays.asList("python", "pypy"); + private final static List JSLang = Arrays.asList("node", "javascript"); + + protected String getLangContentType(String name) { + String lowerName = name.toLowerCase(); + + for (String lang : CPPLang) { + if (lowerName.contains(lang)) { + return "text/x-c++src"; + } + } + + if (lowerName.contains("c#")) { + return "text/x-csharp"; + } + + for (String lang : CLang) { + if (lowerName.contains(lang)) { + return "text/x-csrc"; + } + } + + for (String lang : PythonLang) { + if (lowerName.contains(lang)) { + return "text/x-python"; + } + } + for (String lang : JSLang) { + if (lowerName.contains(lang)) { + return "text/javascript"; + } + } + if (lowerName.contains("scala")) { + return "text/x-scala"; + } + + if (lowerName.contains("java")) { + return "text/x-java"; + } + + if (lowerName.contains("pascal")) { + return "text/x-pascal"; + } + + if (lowerName.contains("go")) { + return "text/x-go"; + } + + if (lowerName.contains("ruby")) { + return "text/x-ruby"; + } + + if (lowerName.contains("rust")) { + return "text/x-rustsrc"; + } + + if (lowerName.contains("php")) { + return "text/x-php"; + } + + if (lowerName.contains("perl")) { + return "text/x-perl"; + } + + if (lowerName.contains("fortran")) { + return "text/x-fortran"; + } + + if (lowerName.contains("haskell")) { + return "text/x-haskell"; + } + + if (lowerName.contains("ocaml")) { + return "text/x-ocaml"; + } + + return null; + + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/SPOJLanguageStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/SPOJLanguageStrategy.java new file mode 100644 index 0000000..d2a8280 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/language/SPOJLanguageStrategy.java @@ -0,0 +1,143 @@ +package top.hcode.hoj.crawler.language; + +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HttpUtil; +import top.hcode.hoj.pojo.entity.problem.Language; + +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/27 21:21 + * @Description: + */ +public class SPOJLanguageStrategy extends LanguageStrategy { + + private static final HashMap languageMap = new HashMap<>(); + + static { + languageMap.put("7", "Ada95 (gnat 8.3)"); + languageMap.put("45", "Assembler 32 (gcc 8.3)"); + languageMap.put("13", "Assembler 32 (nasm 2.14)"); + languageMap.put("42", "Assembler 64 (nasm 2.14)"); + languageMap.put("104", "AWK (gawk 4.2.1)"); + languageMap.put("105", "AWK (mawk 1.3.3)"); + languageMap.put("28", "Bash (bash 5.0.3)"); + languageMap.put("110", "BC (bc 1.07.1)"); + languageMap.put("12", "Brainf**k (bff 1.0.6)"); + languageMap.put("81", "C (clang 8.0)"); + languageMap.put("11", "C (gcc 8.3)"); + languageMap.put("27", "C# (gmcs 5.20.1)"); + languageMap.put("41", "C++ (g++ 4.3.2)"); + languageMap.put("1", "C++ (gcc 8.3)"); + languageMap.put("44", "C++14 (gcc 8.3)"); + languageMap.put("82", "C++14 (clang 8.0)"); + languageMap.put("34", "C99 (gcc 8.3)"); + languageMap.put("14", "Clips (clips 6.30)"); + languageMap.put("111", "Clojure (clojure 1.10.0)"); + languageMap.put("118", "Cobol (gnucobol 2.2.0)"); + languageMap.put("91", "CoffeeScript (coffee 2.4.1)"); + languageMap.put("31", "Common Lisp (sbcl 1.4.16)"); + languageMap.put("32", "Common Lisp (clisp 2.49.92)"); + languageMap.put("102", "D (dmd 2.085.0)"); + languageMap.put("84", "D (ldc 1.12.0)"); + languageMap.put("20", "D (gdc 8.3)"); + languageMap.put("48", "Dart (dart 2.3.0)"); + languageMap.put("96", "Elixir (elixir 1.8.2)"); + languageMap.put("36", "Erlang (erl 21.3.8)"); + languageMap.put("124", "F# (mono 4.1)"); + languageMap.put("92", "Fantom (fantom 1.0.72)"); + languageMap.put("107", "Forth (gforth 0.7.3)"); + languageMap.put("5", "Fortran (gfortran 8.3)"); + languageMap.put("114", "Go (go 1.12.1)"); + languageMap.put("98", "Gosu (gosu 1.14.9)"); + languageMap.put("121", "Groovy (groovy 2.5.6)"); + languageMap.put("21", "Haskell (ghc 8.4.4)"); + languageMap.put("16", "Icon (iconc 9.5.1)"); + languageMap.put("9", "Intercal (ick 0.3)"); + languageMap.put("24", "JAR (JavaSE 6)"); + languageMap.put("10", "Java (HotSpot 12)"); + languageMap.put("35", "JavaScript (rhino 1.7.9)"); + languageMap.put("112", "JavaScript (SMonkey 60.2.3)"); + languageMap.put("47", "Kotlin (kotlin 1.3.21)"); + languageMap.put("26", "Lua (luac 5.3.3)"); + languageMap.put("30", "Nemerle (ncc 1.2.547)"); + languageMap.put("25", "Nice (nicec 0.9.13)"); + languageMap.put("122", "Nim (nim 0.19.4)"); + languageMap.put("56", "Node.js (node 11.12.0)"); + languageMap.put("43", "Objective-C (gcc 8.3)"); + languageMap.put("83", "Objective-C (clang 8.0)"); + languageMap.put("8", "Ocaml (ocamlopt 4.05.0)"); + languageMap.put("127", "Octave (octave 4.4.1)"); + languageMap.put("2", "Pascal (gpc 20070904)"); + languageMap.put("22", "Pascal (fpc 3.0.4)"); + languageMap.put("54", "Perl (perl 2018.12)"); + languageMap.put("3", "Perl (perl 5.28.1)"); + languageMap.put("29", "PHP (php 7.3.5)"); + languageMap.put("94", "Pico Lisp (pico 18.12.27)"); + languageMap.put("19", "Pike (pike 8.0)"); + languageMap.put("15", "Prolog (swi 7.6.4)"); + languageMap.put("108", "Prolog (gprolog 1.4.5)"); + languageMap.put("4", "Python (cpython 2.7.16)"); + languageMap.put("99", "Python (PyPy 2.7.13)"); + languageMap.put("116", "Python 3 (python 3.7.3)"); + languageMap.put("126", "Python 3 nbc (python 3.7.3)"); + languageMap.put("117", "R (R 3.5.2)"); + languageMap.put("95", "Racket (racket 7.0)"); + languageMap.put("17", "Ruby (ruby 2.5.5)"); + languageMap.put("93", "Rust (rust 1.33.0)"); + languageMap.put("39", "Scala (scala 2.12.8)"); + languageMap.put("18", "Scheme (stalin 0.11)"); + languageMap.put("33", "Scheme (guile 2.2.4)"); + languageMap.put("97", "Scheme (chicken 4.13)"); + languageMap.put("46", "Sed (sed 4.7)"); + languageMap.put("23", "Smalltalk (gst 3.2.5)"); + languageMap.put("40", "SQLite (sqlite 3.27.2)"); + languageMap.put("85", "Swift (swift 4.2.2)"); + languageMap.put("38", "TCL (tcl 8.6)"); + languageMap.put("62", "Text (plain text)"); + languageMap.put("115", "Unlambda (unlambda 0.1.4.2)"); + languageMap.put("50", "VB.net (mono 4.7)"); + languageMap.put("6", "Whitespace (wspace 0.3)"); + } + + + @Override + public String getLanguageNameById(String id) { + return languageMap.get(id); + } + + @Override + public List buildLanguageListByIds(List allLanguageList, List langIdList) { + + List langNameList = langIdList.stream().map(this::getLanguageNameById).collect(Collectors.toList()); + + return allLanguageList.stream().filter(language -> langNameList.contains(language.getName())).collect(Collectors.toList()); + } + + @Override + public Collection getLangList() { + return languageMap.values(); + } + + @Override + public String getOJName() { + return "SPOJ"; + } + + public static void main(String[] args) { + String url = "https://www.spoj.com/submit/HOTLINE/"; + String body = HttpUtil.get(url); + Pattern pattern1 = Pattern.compile(""); + Pattern pattern2 = Pattern.compile(""); + List allGroups1 = ReUtil.findAll(pattern1, body, 1); + List allGroups2 = ReUtil.findAll(pattern2, body, 1); + for (int i = 0; i < allGroups1.size(); i++) { + System.out.println("languageMap.put(\"" + allGroups2.get(i) + "\", \"" + allGroups1.get(i) + "\");"); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/AtCoderProblemStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/AtCoderProblemStrategy.java new file mode 100644 index 0000000..9cd2ae3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/AtCoderProblemStrategy.java @@ -0,0 +1,128 @@ +package top.hcode.hoj.crawler.problem; + +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HttpUtil; +import org.apache.commons.lang.Validate; +import org.jsoup.Jsoup; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.utils.Constants; + +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/28 21:23 + * @Description: + */ +public class AtCoderProblemStrategy extends ProblemStrategy { + + public static final String JUDGE_NAME = "AC"; + public static final String HOST = "https://atcoder.jp"; + public static final String PROBLEM_URL = "/contests/%s/tasks/%s"; + + public String getJudgeName() { + return JUDGE_NAME; + } + + public String getProblemUrl(String problemId, String contestId) { + return HOST + String.format(PROBLEM_URL, contestId, problemId); + } + + public String getProblemSource(String problemId, String contestId) { + return String.format("%s", "AtCoder-" + problemId); + } + + @Override + public RemoteProblemInfo getProblemInfo(String problemId, String author) throws Exception { + + problemId = problemId.toLowerCase(); + boolean isMatch = ReUtil.isMatch("[a-z]+[0-9]+_[a-z]*[0-9]*", problemId); + if (!isMatch){ + throw new IllegalArgumentException("AtCoder: Incorrect problem id format! Must be like `abc110_a`"); + } + + String contestId = problemId.split("_")[0]; + + String body = HttpUtil.get(getProblemUrl(problemId, contestId)); + Pattern pattern = Pattern.compile("Time Limit: (\\d+) sec / Memory Limit: (\\d+) MB"); + Matcher matcher = pattern.matcher(body); + Validate.isTrue(matcher.find()); + String timeLimit = matcher.group(1).trim(); + String memoryLimit = matcher.group(2).trim(); + String title = ReUtil.get("[\\s\\S]*? - ([\\s\\S]*?)", body, 1); + + + Problem problem = new Problem(); + problem.setProblemId(getJudgeName() + "-" + problemId) + .setAuthor(author) + .setTitle(title) + .setType(0) + .setTimeLimit(Integer.parseInt(timeLimit) * 1000) + .setMemoryLimit(Integer.parseInt(memoryLimit)) + .setIsRemote(true) + .setSource(getProblemSource(problemId, contestId)) + .setAuth(1) + .setOpenCaseResult(false) + .setIsRemoveEndBlank(false) + .setIsGroup(false) + .setDifficulty(1); // 默认为中等 + + if (body.contains("Problem Statement")) { + String desc = ReUtil.get("

Problem Statement

([\\s\\S]*?)[\\s\\S]*?", body, 1); + + desc = desc.replaceAll("", "\\$").replaceAll("", "\\$"); + desc = desc.replaceAll("
", "
");
+            desc = desc.replaceAll("src=\"/img", "src=\"" + HOST + "/img");
+
+            StringBuilder sb = new StringBuilder();
+            String rawInput = ReUtil.get("

Input

([\\s\\S]*?)[\\s\\S]*?", body, 1); + sb.append(rawInput); + String constrains = ReUtil.get("

Constraints

([\\s\\S]*?)[\\s\\S]*?", body, 1); + sb.append(constrains); + String input = sb.toString().replaceAll("", "\\$").replaceAll("", "\\$"); + input = input.replaceAll("
", "
");
+
+
+            String rawOutput = ReUtil.get("

Output

([\\s\\S]*?)[\\s\\S]*?", body, 1); + String output = rawOutput.replaceAll("", "\\$").replaceAll("", "\\$"); + output = output.replaceAll("
", "
");
+
+            List sampleInput = ReUtil.findAll("

Sample Input \\d+

([\\s\\S]*?)
[\\s\\S]*?[\\s\\S]*?", body, 1); + List sampleOutput = ReUtil.findAll("

Sample Output \\d+

([\\s\\S]*?)
[\\s\\S]*?[\\s\\S]*?", body, 1); + + + StringBuilder examples = new StringBuilder(); + + for (int i = 0; i < sampleInput.size() && i < sampleOutput.size(); i++) { + examples.append(""); + String exampleInput = sampleInput.get(i).trim(); + examples.append(exampleInput).append(""); + examples.append(""); + String exampleOutput = sampleOutput.get(i).trim(); + examples.append(exampleOutput).append(""); + } + + problem.setInput(input.trim()) + .setOutput(output.trim()) + .setDescription(desc.trim()) + .setExamples(examples.toString()); + + + } else { + org.jsoup.nodes.Element element = Jsoup.parse(body).getElementById("task-statement"); + String desc = element.html(); + desc = desc.replaceAll("src=\"/img", "src=\"https://atcoder.jp/img"); + desc = desc.replaceAll("
", "
");
+            desc = desc.replaceAll("", "\\$").replaceAll("", "\\$");
+            desc = desc.replaceAll("
", ""); + problem.setDescription(desc); + } + return new RemoteProblemInfo() + .setProblem(problem) + .setTagList(null) + .setLangIdList(null) + .setRemoteOJ(Constants.RemoteOJ.ATCODER); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/CFProblemStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/CFProblemStrategy.java new file mode 100644 index 0000000..779c69a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/CFProblemStrategy.java @@ -0,0 +1,197 @@ +package top.hcode.hoj.crawler.problem; + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HtmlUtil; +import cn.hutool.http.HttpRequest; +import org.springframework.util.StringUtils; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.utils.CodeForcesUtils; +import top.hcode.hoj.utils.Constants; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.regex.Pattern; + +/** + * @Author: Himit_ZH + * @Date: 2021/3/3 15:00 + * @Description: + */ +public class CFProblemStrategy extends ProblemStrategy { + + public static final String JUDGE_NAME = "CF"; + public static final String HOST = "https://codeforces.com"; + public static final String PROBLEM_URL = "/problemset/problem/%s/%s"; + + public String getJudgeName() { + return JUDGE_NAME; + } + + public String getProblemUrl(String contestId, String problemNum) { + return HOST + String.format(PROBLEM_URL, contestId, problemNum); + } + + public String getProblemSource(String html, String problemId, String contestId, String problemNum) { + return String.format("

Problem:%s

" + + "Contest:" + ReUtil.get("(]+/contest/\\d+\">.+?)", html, 1) + .replace("/contest", HOST + "/contest") + .replace("color: black", "color: #009688;") + "

", + contestId, problemNum, getJudgeName() + "-" + problemId); + } + + @Override + public RemoteProblemInfo getProblemInfo(String problemId, String author) throws Exception { + + String contestId; + String problemNum; + if (NumberUtil.isInteger(problemId)) { + contestId = ReUtil.get("([0-9]+)[0-9]{2}", problemId, 1); + problemNum = ReUtil.get("[0-9]+([0-9]{2})", problemId, 1); + } else { + contestId = ReUtil.get("([0-9]+)[A-Z]{1}[0-9]{0,1}", problemId, 1); + problemNum = ReUtil.get("[0-9]+([A-Z]{1}[0-9]{0,1})", problemId, 1); + } + + if (contestId == null || problemNum == null) { + throw new IllegalArgumentException("Codeforces: Incorrect problem id format!"); + } + + String html = HttpRequest.get(getProblemUrl(contestId, problemNum)) + .header("cookie", "RCPC=" + CodeForcesUtils.getRCPC()) + .timeout(20000) + .execute() + .body(); + + // 重定向失效,更新RCPC + if (html.contains("Redirecting... Please, wait.")) { + List list = ReUtil.findAll("[a-z0-9]+[a-z0-9]{31}", html, 0, new ArrayList<>()); + CodeForcesUtils.updateRCPC(list); + html = HttpRequest.get(getProblemUrl(contestId, problemNum)) + .header("cookie", "RCPC=" + CodeForcesUtils.getRCPC()) + .timeout(20000) + .execute() + .body(); + } + + Problem info = new Problem(); + info.setProblemId(getJudgeName() + "-" + problemId); + + info.setTitle(ReUtil.get("
\\s*" + problemNum + "\\. ([\\s\\S]*?)
", html, 1).trim()); + + String timeLimitStr = ReUtil.get("\\s*([\\d\\.]+) (seconds?|s)\\s*", html, 1); + if (StringUtils.isEmpty(timeLimitStr)) { + timeLimitStr = ReUtil.get("\\s*(\\d+) (seconds?|s)\\s*\\s*", html, 1); + } + + double timeLimit = 1000 * Double.parseDouble(timeLimitStr); + info.setTimeLimit((int) timeLimit); + + String memoryLimitStr = ReUtil.get("\\s*(\\d+) (megabytes|MB)\\s*", html, 1); + if (StringUtils.isEmpty(memoryLimitStr)) { + memoryLimitStr = ReUtil.get("\\s*(\\d+) (megabytes|MB)\\s*\\s*", html, 1); + } + + info.setMemoryLimit(Integer.parseInt(memoryLimitStr)); + + String tmpDesc = ReUtil.get("standard output\\s*\\s*\\s*
([\\s\\S]*?)
\\s*
([\\s\\S]*?)
\\s*
\\s*
([\\s\\S]*?)
\\s*
\\s*
\\s*
\\s*
([\\s\\S]*?)
", + html, 1); + } + + if (!StringUtils.isEmpty(tmpDesc)) { + tmpDesc = tmpDesc.replaceAll("\\$\\$\\$", "\\$") + .replaceAll("src=\"../../", "src=\"" + HOST + "/") + .trim(); + } + + info.setDescription(tmpDesc); + + String inputDesc = ReUtil.get("
\\s*Input\\s*
([\\s\\S]*?)
\\s*
", html, 1); + + if (StringUtils.isEmpty(inputDesc)) { + inputDesc = ReUtil.get("
\\s*Interaction\\s*
([\\s\\S]*?)
\\s*
", html, 1); + } + if (StringUtils.isEmpty(inputDesc)) { + inputDesc = ReUtil.get("
\\s*
\\s*Input\\s*
([\\s\\S]*?)
", html, 1); + } + if (!StringUtils.isEmpty(inputDesc)) { + inputDesc = inputDesc.replaceAll("\\$\\$\\$", "\\$").trim(); + } + + info.setInput(inputDesc); + + String outputDesc = ReUtil.get("
\\s*Output\\s*
([\\s\\S]*?)
\\s*
", html, 1); + if (!StringUtils.isEmpty(outputDesc)) { + outputDesc = outputDesc.replaceAll("\\$\\$\\$", "\\$").trim(); + } + info.setOutput(outputDesc); + + List inputExampleList = ReUtil.findAll(Pattern.compile("
\\s*
\\s*Input\\s*
\\s*
([\\s\\S]*?)
\\s*
"), html, 1); + + List outputExampleList = ReUtil.findAll(Pattern.compile("
\\s*
\\s*Output\\s*
\\s*
([\\s\\S]*?)
\\s*
"), html, 1); + + + StringBuilder sb = new StringBuilder(); + + for (int i = 0; i < inputExampleList.size() && i < outputExampleList.size(); i++) { + sb.append(""); + String input = inputExampleList.get(i) + .replaceAll("
", "\n") + .replaceAll("
", "\n") + .trim(); + sb.append(HtmlUtil.unescape(input)).append(""); + sb.append(""); + String output = outputExampleList.get(i) + .replaceAll("
", "\n") + .replaceAll("
", "\n") + .trim(); + sb.append(HtmlUtil.unescape(output)).append("
"); + } + + info.setExamples(sb.toString()); + + String tmpHint = ReUtil.get("
\\s*Note\\s*
([\\s\\S]*?)
\\s*", html, 1); + if (tmpHint != null) { + info.setHint(tmpHint.replaceAll("\\$\\$\\$", "\\$").trim()); + } + + info.setIsRemote(true); + + info.setSource(getProblemSource(html, problemId, contestId, problemNum)); + + info.setType(0) + .setAuth(1) + .setAuthor(author) + .setOpenCaseResult(true) + .setIsRemoveEndBlank(false) + .setIsGroup(false) + .setDifficulty(1); // 默认为中等 + + List allTags = ReUtil.findAll(Pattern.compile("([\\s\\S]*?)"), html, 1); + List tagList = new LinkedList<>(); + for (String tmp : allTags) { + tagList.add(new Tag().setName(tmp.trim())); + } + return new RemoteProblemInfo() + .setProblem(info) + .setTagList(tagList) + .setRemoteOJ(Constants.RemoteOJ.CODEFORCES); + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/GYMProblemStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/GYMProblemStrategy.java new file mode 100644 index 0000000..6f8578c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/GYMProblemStrategy.java @@ -0,0 +1,134 @@ +package top.hcode.hoj.crawler.problem; + +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.utils.CodeForcesUtils; +import top.hcode.hoj.utils.Constants; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/6 11:35 + * @Description: + */ + +public class GYMProblemStrategy extends CFProblemStrategy { + + public static final String IMAGE_HOST = "https://codeforces.com"; + + @Override + public String getJudgeName() { + return "GYM"; + } + + @Override + public String getProblemUrl(String contestId, String problemNum) { + String problemUrl = "/gym/%s/problem/%s"; + return HOST + String.format(problemUrl, contestId, problemNum); + } + + @Override + public String getProblemSource(String html, String problemId, String contestNum, String problemNum) { + return String.format("

Problem:%s

" + + "Contest:" + ReUtil.get("(]+/gym/\\d+\">.+?)", html, 1) + .replace("/gym", HOST + "/gym") + .replace("color: black", "color: #009688;") + "

", + contestNum, problemNum, getJudgeName() + "-" + problemId); + } + + @Override + public RemoteProblemInfo getProblemInfo(String problemId, String author) { + try { + return super.getProblemInfo(problemId, author); + } catch (Exception ignored) { + String contestNum = ReUtil.get("([0-9]+)[A-Z]{1}[0-9]{0,1}", problemId, 1); + String problemNum = ReUtil.get("[0-9]+([A-Z]{1}[0-9]{0,1})", problemId, 1); + return getPDFHtml(problemId, contestNum, problemNum, author); + } + } + + private RemoteProblemInfo getPDFHtml(String problemId, String contestNum, String problemNum, String author) { + + Problem problem = new Problem(); + + String url = HOST + "/gym/" + contestNum; + String html = HttpRequest.get(url) + .header("cookie", "RCPC=" + CodeForcesUtils.getRCPC()) + .timeout(20000) + .execute() + .body(); + + // 重定向失效,更新RCPC + if (html.contains("Redirecting... Please, wait.")) { + List list = ReUtil.findAll("[a-z0-9]+[a-z0-9]{31}", html, 0, new ArrayList<>()); + CodeForcesUtils.updateRCPC(list); + html = HttpRequest.get(url) + .header("cookie", "RCPC=" + CodeForcesUtils.getRCPC()) + .timeout(20000) + .execute() + .body(); + } + + String regex = "([^<]+)(?:(?:.|\\s)*?]*>\\s*([^<]+)<\\/div>\\s*([\\d.]+)\\D*(\\d+)"; + + Matcher matcher = Pattern.compile(regex).matcher(html); + matcher.find(); + + problem.setProblemId(getJudgeName() + "-" + problemId); + problem.setTitle(matcher.group(1)); + problem.setTimeLimit((int) (Double.parseDouble(matcher.group(3)) * 1000)); + problem.setMemoryLimit(Integer.parseInt(matcher.group(4))); + + problem.setSource(String.format("

Problem:%s

" + + "Contest:" + ReUtil.get("(]+/gym/\\d+\">.+?)", html, 1) + .replace("/gym", HOST + "/gym") + .replace("color: black", "color: #009688;") + "

", + contestNum, getJudgeName() + "-" + problemId)); + + + regex = "\\/gym\\/" + contestNum + "\\/attachments\\/download\\S*?\\.pdf"; + + matcher = Pattern.compile(regex).matcher(html); + matcher.find(); + + String pdfURI; + try { + String fileName = IdUtil.fastSimpleUUID() + ".pdf"; + String filePath = Constants.File.PROBLEM_FILE_FOLDER.getPath() + File.separator + fileName; + HttpUtil.downloadFile(IMAGE_HOST + matcher.group(0), filePath); + pdfURI = Constants.File.FILE_API.getPath() + fileName; + } catch (Exception e1) { + try { + pdfURI = HOST + matcher.group(0); + } catch (Exception e2) { + String fileName = IdUtil.fastSimpleUUID() + ".pdf"; + String filePath = Constants.File.PROBLEM_FILE_FOLDER.getPath() + File.separator + fileName; + CodeForcesUtils.downloadPDF(HOST + "/gym/" + contestNum + "/problem/" + problemNum, filePath); + pdfURI = Constants.File.FILE_API.getPath() + fileName; + } + } + String description = "

Click here to download the PDF file.

"; + problem.setDescription(description); + problem.setType(0) + .setIsRemote(true) + .setAuth(1) + .setAuthor(author) + .setOpenCaseResult(true) + .setIsRemoveEndBlank(false) + .setIsGroup(false) + .setDifficulty(1); // 默认为中等 + return new RemoteProblemInfo() + .setProblem(problem) + .setTagList(null) + .setRemoteOJ(Constants.RemoteOJ.GYM); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/HDUProblemStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/HDUProblemStrategy.java new file mode 100644 index 0000000..274d89f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/HDUProblemStrategy.java @@ -0,0 +1,66 @@ +package top.hcode.hoj.crawler.problem; + +import cn.hutool.core.util.ReUtil; +import com.baomidou.mybatisplus.extension.api.R; +import org.jsoup.Connection; +import org.jsoup.nodes.Document; +import org.springframework.util.Assert; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.JsoupUtils; + +/** + * @Author: Himit_ZH + * @Date: 2021/2/17 22:42 + * @Description: + */ +public class HDUProblemStrategy extends ProblemStrategy { + public static final String JUDGE_NAME = "HDU"; + public static final String HOST = "http://acm.hdu.edu.cn"; + public static final String PROBLEM_URL = "/showproblem.php?pid=%s"; + + /** + * @param problemId String的原因是因为某些题库题号不是纯数字 + * @param author 导入该题目的管理员用户名 + * @return 返回Problem对象 + * @throws Exception + */ + @Override + public RemoteProblemInfo getProblemInfo(String problemId, String author) throws Exception { + // 验证题号是否符合规范 + Assert.isTrue(problemId.matches("[1-9]\\d*"), "HDU题号格式错误!"); + Problem info = new Problem(); + String url = HOST + String.format(PROBLEM_URL, problemId); + Connection connection = JsoupUtils.getConnectionFromUrl(url, null, null); + Document document = JsoupUtils.getDocument(connection, null); + String html = document.html(); + info.setProblemId(JUDGE_NAME + "-" + problemId); + info.setTitle(ReUtil.get("color:#1A5CC8\">([\\s\\S]*?)", html, 1).trim()); + info.setTimeLimit(Integer.parseInt(ReUtil.get("(\\d*) MS", html, 1))); + info.setMemoryLimit(Integer.parseInt(ReUtil.get("/(\\d*) K", html, 1)) / 1024); + info.setDescription(ReUtil.get(">Problem Description
([\\s\\S]*?)
", html, 1) + .replaceAll("src=\"[../]*", "src=\"" + HOST + "/")); + info.setInput(ReUtil.get(">Input
([\\s\\S]*?)
", html, 1)); + info.setOutput(ReUtil.get(">Output
([\\s\\S]*?)
", html, 1)); + StringBuilder sb = new StringBuilder(""); + sb.append(ReUtil.get(">Sample Input
([\\s\\S]*?)
", html, 1)); + sb.append(""); + sb.append(ReUtil.get(">Sample Output
([\\s\\S]*?)(
)*?
", html, 1)).append(""); + info.setExamples(sb.toString()); + info.setHint(ReUtil.get("Hint([\\s\\S]*?)<[^<>]*?panel_title[^<>]*?>", html, 1)); + info.setIsRemote(true); + info.setSource(String.format("%s", problemId, JUDGE_NAME + "-" + problemId)); + info.setType(0) + .setAuth(1) + .setAuthor(author) + .setOpenCaseResult(false) + .setIsRemoveEndBlank(false) + .setIsGroup(false) + .setDifficulty(1); // 默认为简单 + + return new RemoteProblemInfo() + .setProblem(info) + .setTagList(null) + .setRemoteOJ(Constants.RemoteOJ.HDU); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/POJProblemStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/POJProblemStrategy.java new file mode 100644 index 0000000..9581b4e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/POJProblemStrategy.java @@ -0,0 +1,63 @@ +package top.hcode.hoj.crawler.problem; + +import cn.hutool.core.util.ReUtil; +import org.jsoup.Connection; +import org.jsoup.nodes.Document; +import org.springframework.util.Assert; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.JsoupUtils; + +/** + * @Author: Himit_ZH + * @Date: 2021/6/24 23:27 + * @Description: + */ +public class POJProblemStrategy extends ProblemStrategy { + + public static final String JUDGE_NAME = "POJ"; + public static final String HOST = "http://poj.org"; + public static final String PROBLEM_URL = "/problem?id=%s"; + + @Override + public RemoteProblemInfo getProblemInfo(String problemId, String author) throws Exception { + + // 验证题号是否符合规范 + Assert.isTrue(problemId.matches("[1-9]\\d*"), "POJ题号格式错误!"); + Problem info = new Problem(); + String url = HOST + String.format(PROBLEM_URL, problemId); + Connection connection = JsoupUtils.getConnectionFromUrl(url, null, null); + Document document = JsoupUtils.getDocument(connection, null); + String html = document.html(); + html = html.replaceAll("
", "\n"); + info.setProblemId(JUDGE_NAME + "-" + problemId); + info.setTitle(ReUtil.get("\\d{3,} -- ([\\s\\S]*?)", html, 1).trim()); + info.setTimeLimit(Integer.parseInt(ReUtil.get("Time Limit: (\\d{3,})MS", html, 1))); + info.setMemoryLimit(Integer.parseInt(ReUtil.get("Memory Limit: (\\d{2,})K", html, 1)) / 1024); + info.setDescription(ReUtil.get("

Description

([\\s\\S]*?)

", html, 1) + .replaceAll("src=\"[../]*", "src=\"" + HOST + "/")); + + info.setInput(ReUtil.get("

Input

([\\s\\S]*?)

", html, 1)); + info.setOutput(ReUtil.get("

Output

([\\s\\S]*?)

", html, 1)); + StringBuilder sb = new StringBuilder(""); + sb.append(ReUtil.get("

Sample Input

([\\s\\S]*?)

", html, 1)); + sb.append(""); + sb.append(ReUtil.get("

Sample Output

([\\s\\S]*?)

", html, 1)) + .append(""); + info.setExamples(sb.toString()); + info.setHint(ReUtil.get("

Hint

([\\s\\S]*?)

", html, 1)); + info.setIsRemote(true); + info.setSource(String.format("%s", problemId, JUDGE_NAME + "-" + problemId)); + info.setType(0) + .setAuth(1) + .setAuthor(author) + .setOpenCaseResult(false) + .setIsRemoveEndBlank(false) + .setIsGroup(false) + .setDifficulty(1); // 默认为简单 + return new RemoteProblemInfo() + .setProblem(info) + .setTagList(null) + .setRemoteOJ(Constants.RemoteOJ.POJ); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/ProblemContext.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/ProblemContext.java new file mode 100644 index 0000000..5c29165 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/ProblemContext.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.crawler.problem; + +import lombok.extern.slf4j.Slf4j; + +/** + * @Author: Himit_ZH + * @Date: 2021/2/17 22:40 + * @Description: + */ +@Slf4j(topic = "hoj") +public class ProblemContext { + + ProblemStrategy problemStrategy; + + public ProblemContext(ProblemStrategy problemStrategy) { + this.problemStrategy = problemStrategy; + } + + //上下文接口 + public ProblemStrategy.RemoteProblemInfo getProblemInfo(String problemId, String author) throws Exception { + + try { + return problemStrategy.getProblemInfo(problemId, author); + }catch (IllegalArgumentException e){ + throw e; + } catch (Exception e) { + log.error("获取题目详情失败---------------->{}", e); + } + return null; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/ProblemStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/ProblemStrategy.java new file mode 100644 index 0000000..ed4acd4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/ProblemStrategy.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.crawler.problem; + +import lombok.Data; +import lombok.experimental.Accessors; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.utils.Constants; + +import java.util.List; + +public abstract class ProblemStrategy { + + public abstract RemoteProblemInfo getProblemInfo(String problemId,String author) throws Exception; + + @Data + @Accessors(chain = true) + public static + class RemoteProblemInfo { + private Problem problem; + private List tagList; + private List langIdList; + private Constants.RemoteOJ remoteOJ; + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/SPOJProblemStrategy.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/SPOJProblemStrategy.java new file mode 100644 index 0000000..debcbeb --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/crawler/problem/SPOJProblemStrategy.java @@ -0,0 +1,89 @@ +package top.hcode.hoj.crawler.problem; + +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HttpUtil; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.utils.Constants; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.regex.Pattern; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/25 14:11 + * @Description: + */ +public class SPOJProblemStrategy extends ProblemStrategy { + + public static final String JUDGE_NAME = "SPOJ"; + public static final String HOST = "https://www.spoj.com"; + public static final String PROBLEM_URL = "/problems/%s/"; + public static final String SUBMIT_URL = "/submit/%s/"; + + public String getJudgeName() { + return JUDGE_NAME; + } + + public String getProblemUrl(String problemId) { + return HOST + String.format(PROBLEM_URL, problemId); + } + + public String getSubmitUrl(String problemId) { + return HOST + String.format(SUBMIT_URL, problemId); + } + + public String getProblemSource(String problemId) { + return String.format("%s", getJudgeName() + "-" + problemId); + } + + @Override + public RemoteProblemInfo getProblemInfo(String problemId, String author) throws Exception { + problemId = problemId.toUpperCase(); + String body = HttpUtil.get(getProblemUrl(problemId)); + String title = ReUtil.get("

[\\s\\S]*? - ([\\s\\S]*?)

", body, 1); + String timeLimit = ReUtil.get("Time limit:([\\s\\S]*?)s", body, 1); + String memoryLimit = ReUtil.get("Memory limit:([\\s\\S]*?)MB", body, 1); + String desc = ReUtil.get("
([\\s\\S]*?)
", body, 1); + desc = desc.replaceAll("src=\"/", "src=\"" + HOST + "/") + .replaceAll("
", "
");
+        desc = desc.replaceAll("", "");
+
+        Pattern tagPattern = Pattern.compile("([\\s\\S]*?)");
+        List allTags = ReUtil.findAll(tagPattern, body, 1);
+
+        Problem problem = new Problem();
+        problem.setProblemId(getJudgeName() + "-" + problemId)
+                .setAuthor(author)
+                .setTitle(title)
+                .setType(0)
+                .setTimeLimit((int) (Double.parseDouble(timeLimit) * 1000))
+                .setMemoryLimit(Integer.parseInt(memoryLimit))
+                .setDescription(desc.trim())
+                .setIsRemote(true)
+                .setSource(getProblemSource(problemId))
+                .setAuth(1)
+                .setOpenCaseResult(false)
+                .setIsGroup(false)
+                .setIsRemoveEndBlank(false)
+                .setDifficulty(1); // 默认为中等
+
+        List tagList = new ArrayList<>();
+        for (String tmp : allTags) {
+            tagList.add(new Tag().setName(tmp.trim()));
+        }
+
+        String submitPageBody = HttpUtil.get(getSubmitUrl(problemId));
+        Pattern pattern = Pattern.compile("");
+        List langIdList = ReUtil.findAll(pattern, submitPageBody, 1);
+
+        return new RemoteProblemInfo()
+                .setProblem(problem)
+                .setTagList(tagList)
+                .setLangIdList(langIdList)
+                .setRemoteOJ(Constants.RemoteOJ.SPOJ);
+
+    }
+}
\ No newline at end of file
diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/AnnouncementEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/AnnouncementEntityService.java
new file mode 100644
index 0000000..2d77c1d
--- /dev/null
+++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/AnnouncementEntityService.java
@@ -0,0 +1,21 @@
+package top.hcode.hoj.dao.common;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import top.hcode.hoj.pojo.entity.common.Announcement;
+import com.baomidou.mybatisplus.extension.service.IService;
+import top.hcode.hoj.pojo.vo.AnnouncementVo;
+
+/**
+ * 

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface AnnouncementEntityService extends IService { + + IPage getAnnouncementList(int limit, int currentPage, Boolean notAdmin); + + IPage getContestAnnouncement(Long cid,Boolean notAdmin,int limit, int currentPage); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/FileEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/FileEntityService.java new file mode 100644 index 0000000..04135e3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/FileEntityService.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.dao.common; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.common.File; +import top.hcode.hoj.pojo.vo.ACMContestRankVo; +import top.hcode.hoj.pojo.vo.OIContestRankVo; + +import java.util.List; + +public interface FileEntityService extends IService { + int updateFileToDeleteByUidAndType(String uid, String type); + + int updateFileToDeleteByGidAndType(Long gid, String type); + + List queryDeleteAvatarList(); + + List queryCarouselFileList(); + + List> getContestRankExcelHead(List contestProblemDisplayIDList, Boolean isACM); + + List> changeACMContestRankToExcelRowList(List acmContestRankVoList, + List contestProblemDisplayIDList, + String rankShowName); + + List> changOIContestRankToExcelRowList(List oiContestRankVoList, + List contestProblemDisplayIDList, + String rankShowName); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/impl/AnnouncementEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/impl/AnnouncementEntityServiceImpl.java new file mode 100644 index 0000000..969a9a9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/impl/AnnouncementEntityServiceImpl.java @@ -0,0 +1,39 @@ +package top.hcode.hoj.dao.common.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.mapper.AnnouncementMapper; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.dao.common.AnnouncementEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class AnnouncementEntityServiceImpl extends ServiceImpl implements AnnouncementEntityService { + + @Autowired + private AnnouncementMapper announcementMapper; + + @Override + public IPage getAnnouncementList(int limit, int currentPage,Boolean notAdmin) { + //新建分页 + Page page = new Page<>(currentPage, limit); + return announcementMapper.getAnnouncementList(page,notAdmin); + } + + @Override + public IPage getContestAnnouncement(Long cid,Boolean notAdmin,int limit, int currentPage) { + Page page = new Page<>(currentPage, limit); + return announcementMapper.getContestAnnouncement(page,cid,notAdmin); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/impl/FileEntityEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/impl/FileEntityEntityServiceImpl.java new file mode 100644 index 0000000..e14cb51 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/common/impl/FileEntityEntityServiceImpl.java @@ -0,0 +1,184 @@ +package top.hcode.hoj.dao.common.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.FileMapper; +import top.hcode.hoj.pojo.entity.common.File; +import top.hcode.hoj.pojo.vo.ACMContestRankVo; +import top.hcode.hoj.pojo.vo.OIContestRankVo; +import top.hcode.hoj.dao.common.FileEntityService; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/11 14:05 + * @Description: + */ +@Service +public class FileEntityEntityServiceImpl extends ServiceImpl implements FileEntityService { + @Autowired + private FileMapper fileMapper; + + @Override + public int updateFileToDeleteByUidAndType(String uid, String type) { + return fileMapper.updateFileToDeleteByUidAndType(uid, type); + } + + @Override + public int updateFileToDeleteByGidAndType(Long gid, String type) { + return fileMapper.updateFileToDeleteByGidAndType(gid, type); + } + + @Override + public List queryDeleteAvatarList() { + return fileMapper.queryDeleteAvatarList(); + } + + @Override + public List queryCarouselFileList() { + return fileMapper.queryCarouselFileList(); + } + + @Override + public List> getContestRankExcelHead(List contestProblemDisplayIDList, Boolean isACM) { + List> headList = new LinkedList<>(); + + List head0 = new LinkedList<>(); + head0.add("Rank"); + + List head1 = new LinkedList<>(); + head1.add("Username"); + List head2 = new LinkedList<>(); + head2.add("ShowName"); + List head3 = new LinkedList<>(); + head3.add("Real Name"); + List head4 = new LinkedList<>(); + head4.add("School"); + + headList.add(head0); + headList.add(head1); + headList.add(head2); + headList.add(head3); + headList.add(head4); + + List head5 = new LinkedList<>(); + if (isACM) { + head5.add("AC"); + List head6 = new LinkedList<>(); + head6.add("Total Submission"); + List head7 = new LinkedList<>(); + head7.add("Total Penalty Time"); + headList.add(head5); + headList.add(head6); + headList.add(head7); + } else { + head5.add("Total Score"); + headList.add(head5); + } + + // 添加题目头 + for (String displayID : contestProblemDisplayIDList) { + List tmp = new LinkedList<>(); + tmp.add(displayID); + headList.add(tmp); + } + return headList; + } + + @Override + public List> changeACMContestRankToExcelRowList(List acmContestRankVoList, + List contestProblemDisplayIDList, + String rankShowName) { + List> allRowDataList = new LinkedList<>(); + for (ACMContestRankVo acmContestRankVo : acmContestRankVoList) { + List rowData = new LinkedList<>(); + rowData.add(acmContestRankVo.getRank() == -1 ? "*" : acmContestRankVo.getRank().toString()); + rowData.add(acmContestRankVo.getUsername()); + if ("username".equals(rankShowName)) { + rowData.add(acmContestRankVo.getUsername()); + } else if ("realname".equals(rankShowName)) { + rowData.add(acmContestRankVo.getRealname()); + } else if ("nickname".equals(rankShowName)) { + rowData.add(acmContestRankVo.getNickname()); + } else { + rowData.add(""); + } + rowData.add(acmContestRankVo.getRealname()); + rowData.add(acmContestRankVo.getSchool()); + rowData.add(acmContestRankVo.getAc()); + rowData.add(acmContestRankVo.getTotal()); + rowData.add(acmContestRankVo.getTotalTime()); + HashMap> submissionInfo = acmContestRankVo.getSubmissionInfo(); + for (String displayID : contestProblemDisplayIDList) { + HashMap problemInfo = submissionInfo.getOrDefault(displayID, null); + if (problemInfo != null) { // 如果是有提交记录的 + boolean isAC = (boolean) problemInfo.getOrDefault("isAC", false); + String info = ""; + int errorNum = (int) problemInfo.getOrDefault("errorNum", 0); + int tryNum = (int) problemInfo.getOrDefault("tryNum", 0); + if (isAC) { + if (errorNum == 0) { + info = "+(1)"; + } else { + info = "-(" + (errorNum + 1) + ")"; + } + } else { + if (tryNum != 0 && errorNum != 0) { + info = "-(" + errorNum + "+" + tryNum + ")"; + } else if (errorNum != 0) { + info = "-(" + errorNum + ")"; + } else if (tryNum != 0) { + info = "?(" + tryNum + ")"; + } + } + rowData.add(info); + } else { + rowData.add(""); + } + } + allRowDataList.add(rowData); + } + return allRowDataList; + } + + @Override + public List> changOIContestRankToExcelRowList(List oiContestRankVoList, + List contestProblemDisplayIDList, + String rankShowName) { + List> allRowDataList = new LinkedList<>(); + for (OIContestRankVo oiContestRankVo : oiContestRankVoList) { + List rowData = new LinkedList<>(); + rowData.add(oiContestRankVo.getRank() == -1 ? "*" : oiContestRankVo.getRank().toString()); + rowData.add(oiContestRankVo.getUsername()); + if ("username".equals(rankShowName)) { + rowData.add(oiContestRankVo.getUsername()); + } else if ("realname".equals(rankShowName)) { + rowData.add(oiContestRankVo.getRealname()); + } else if ("nickname".equals(rankShowName)) { + rowData.add(oiContestRankVo.getNickname()); + } else { + rowData.add(""); + } + rowData.add(oiContestRankVo.getRealname()); + rowData.add(oiContestRankVo.getSchool()); + rowData.add(oiContestRankVo.getTotalScore()); + HashMap submissionInfo = oiContestRankVo.getSubmissionInfo(); + for (String displayID : contestProblemDisplayIDList) { + Integer score = submissionInfo.getOrDefault(displayID, null); + if (score != null) { // 如果是有提交记录的就写最后一次提交的分数,没有的就写空 + rowData.add(score); + } else { + rowData.add(""); + } + } + allRowDataList.add(rowData); + } + return allRowDataList; + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestAnnouncementEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestAnnouncementEntityService.java new file mode 100644 index 0000000..517579f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestAnnouncementEntityService.java @@ -0,0 +1,8 @@ +package top.hcode.hoj.dao.contest; + + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.contest.ContestAnnouncement; + +public interface ContestAnnouncementEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestEntityService.java new file mode 100644 index 0000000..b24793d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestEntityService.java @@ -0,0 +1,25 @@ +package top.hcode.hoj.dao.contest; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.pojo.vo.ContestVo; +import top.hcode.hoj.pojo.entity.contest.Contest; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestEntityService extends IService { + + List getWithinNext14DaysContests(); + + IPage getContestList(Integer limit, Integer currentPage, Integer type, Integer status, String keyword); + + ContestVo getContestInfoById(long cid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestExplanationEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestExplanationEntityService.java new file mode 100644 index 0000000..5d7a11a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestExplanationEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.contest; + +import top.hcode.hoj.pojo.entity.contest.ContestExplanation; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestExplanationEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestPrintEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestPrintEntityService.java new file mode 100644 index 0000000..5508e37 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestPrintEntityService.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.dao.contest; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.contest.ContestPrint; + +/** + * @Author: Himit_ZH + * @Date: 2021/9/19 21:05 + * @Description: + */ +public interface ContestPrintEntityService extends IService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestProblemEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestProblemEntityService.java new file mode 100644 index 0000000..72f3470 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestProblemEntityService.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.dao.contest; + +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.vo.ContestProblemVo; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestProblemEntityService extends IService { + List getContestProblemList(Long cid, + Date startTime, + Date endTime, + Date sealTime, + Boolean isAdmin, + String contestAuthorUid, + List groupRootUidList); + + void syncContestRecord(Long pid, Long cid, String displayId); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestRecordEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestRecordEntityService.java new file mode 100644 index 0000000..9c3d5d3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestRecordEntityService.java @@ -0,0 +1,32 @@ +package top.hcode.hoj.dao.contest; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.vo.ContestRecordVo; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestRecordEntityService extends IService { + + IPage getACInfo(Integer currentPage, + Integer limit, + Integer status, + Long cid, + String contestCreatorId); + + List getOIContestRecord(Contest contest,List externalCidList, Boolean isOpenSealRank); + + List getACMContestRecord(String contestCreatorUid, Long cid, List externalCidList, Date startTime); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestRegisterEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestRegisterEntityService.java new file mode 100644 index 0000000..f0e53a8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestRegisterEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.contest; + +import top.hcode.hoj.pojo.entity.contest.ContestRegister; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestRegisterEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestScoreEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestScoreEntityService.java new file mode 100644 index 0000000..a2e9a47 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/ContestScoreEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.contest; + +import top.hcode.hoj.pojo.entity.contest.ContestScore; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestScoreEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestAnnouncementEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestAnnouncementEntityServiceImpl.java new file mode 100644 index 0000000..39df774 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestAnnouncementEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.contest.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.ContestAnnouncementMapper; +import top.hcode.hoj.pojo.entity.contest.ContestAnnouncement; +import top.hcode.hoj.dao.contest.ContestAnnouncementEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/21 22:59 + * @Description: + */ +@Service +public class ContestAnnouncementEntityServiceImpl extends ServiceImpl implements ContestAnnouncementEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestEntityServiceImpl.java new file mode 100644 index 0000000..cb3fc7c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestEntityServiceImpl.java @@ -0,0 +1,83 @@ +package top.hcode.hoj.dao.contest.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.pojo.vo.ContestRegisterCountVo; +import top.hcode.hoj.pojo.vo.ContestVo; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.mapper.ContestMapper; +import top.hcode.hoj.dao.contest.ContestEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ContestEntityServiceImpl extends ServiceImpl implements ContestEntityService { + + @Autowired + private ContestMapper contestMapper; + + @Override + public List getWithinNext14DaysContests() { + List contestList = contestMapper.getWithinNext14DaysContests(); + setRegisterCount(contestList); + + return contestList; + } + + @Override + public IPage getContestList(Integer limit, Integer currentPage, Integer type, Integer status, String keyword) { + //新建分页 + IPage page = new Page<>(currentPage, limit); + + List contestList = contestMapper.getContestList(page, type, status, keyword); + setRegisterCount(contestList); + + return page.setRecords(contestList); + } + + @Override + public ContestVo getContestInfoById(long cid) { + List cidList = Collections.singletonList(cid); + ContestVo contestVo = contestMapper.getContestInfoById(cid); + if (contestVo != null) { + List contestRegisterCountVoList = contestMapper.getContestRegisterCount(cidList); + if(!CollectionUtils.isEmpty(contestRegisterCountVoList)) { + ContestRegisterCountVo contestRegisterCountVo = contestRegisterCountVoList.get(0); + contestVo.setCount(contestRegisterCountVo.getCount()); + } + } + return contestVo; + } + + + private void setRegisterCount(List contestList){ + List cidList = contestList.stream().map(ContestVo::getId).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(cidList)) { + List contestRegisterCountVoList = contestMapper.getContestRegisterCount(cidList); + for (ContestRegisterCountVo contestRegisterCountVo : contestRegisterCountVoList) { + for (ContestVo contestVo : contestList) { + if (contestRegisterCountVo.getCid().equals(contestVo.getId())) { + contestVo.setCount(contestRegisterCountVo.getCount()); + break; + } + } + } + } + } + + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestExplanationEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestExplanationEntityServiceImpl.java new file mode 100644 index 0000000..f1ba4a8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestExplanationEntityServiceImpl.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.contest.impl; + +import top.hcode.hoj.pojo.entity.contest.ContestExplanation; +import top.hcode.hoj.mapper.ContestExplanationMapper; +import top.hcode.hoj.dao.contest.ContestExplanationEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ContestExplanationEntityServiceImpl extends ServiceImpl implements ContestExplanationEntityService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestPrintEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestPrintEntityServiceImpl.java new file mode 100644 index 0000000..c407551 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestPrintEntityServiceImpl.java @@ -0,0 +1,17 @@ +package top.hcode.hoj.dao.contest.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import top.hcode.hoj.mapper.ContestPrintMapper; +import top.hcode.hoj.pojo.entity.contest.ContestPrint; +import top.hcode.hoj.dao.contest.ContestPrintEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2021/9/19 21:05 + * @Description: + */ +@Service +public class ContestPrintEntityServiceImpl extends ServiceImpl implements ContestPrintEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestProblemEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestProblemEntityServiceImpl.java new file mode 100644 index 0000000..5a62755 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestProblemEntityServiceImpl.java @@ -0,0 +1,71 @@ +package top.hcode.hoj.dao.contest.impl; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.mapper.ContestProblemMapper; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.entity.user.UserInfo; +import top.hcode.hoj.pojo.vo.ContestProblemVo; +import top.hcode.hoj.dao.contest.ContestProblemEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; + +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ContestProblemEntityServiceImpl extends ServiceImpl implements ContestProblemEntityService { + + @Autowired + private ContestProblemMapper contestProblemMapper; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private ContestRecordEntityService contestRecordEntityService; + + @Override + public List getContestProblemList(Long cid, + Date startTime, + Date endTime, + Date sealTime, + Boolean isAdmin, + String contestAuthorUid, + List groupRootUidList) { + // 筛去 比赛管理员和超级管理员的提交 + List superAdminUidList = userInfoEntityService.getSuperAdminUidList(); + superAdminUidList.add(contestAuthorUid); + + if (!CollectionUtils.isEmpty(groupRootUidList)) { + superAdminUidList.addAll(groupRootUidList); + } + + return contestProblemMapper.getContestProblemList(cid, startTime, endTime, sealTime, isAdmin, superAdminUidList); + } + + @Async + @Override + public void syncContestRecord(Long pid, Long cid, String displayId) { + + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("pid", pid) + .eq("cid", cid) + .set("display_id", displayId); + contestRecordEntityService.update(updateWrapper); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestRecordEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestRecordEntityServiceImpl.java new file mode 100644 index 0000000..a923cec --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestRecordEntityServiceImpl.java @@ -0,0 +1,170 @@ +package top.hcode.hoj.dao.contest.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.mapper.ContestRecordMapper; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.vo.ContestRecordVo; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import java.util.*; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ContestRecordEntityServiceImpl extends ServiceImpl implements ContestRecordEntityService { + + @Autowired + private ContestRecordMapper contestRecordMapper; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private RedisUtils redisUtils; + + @Override + public IPage getACInfo(Integer currentPage, Integer limit, Integer status, Long cid, String contestCreatorId) { + + List acInfo = contestRecordMapper.getACInfo(status, cid); + + HashMap pidMapUidAndPid = new HashMap<>(12); + HashMap UidAndPidMapTime = new HashMap<>(12); + + List superAdminUidList = userInfoEntityService.getSuperAdminUidList(); + + List userACInfo = new LinkedList<>(); + + for (ContestRecord contestRecord : acInfo) { + + if (contestRecord.getUid().equals(contestCreatorId) + || superAdminUidList.contains(contestRecord.getUid())) { // 超级管理员和比赛创建者的提交跳过 + continue; + } + + contestRecord.setFirstBlood(false); + String uidAndPid = pidMapUidAndPid.get(contestRecord.getPid()); + if (uidAndPid == null) { + pidMapUidAndPid.put(contestRecord.getPid(), contestRecord.getUid() + contestRecord.getPid()); + UidAndPidMapTime.put(contestRecord.getUid() + contestRecord.getPid(), contestRecord.getTime()); + } else { + Long firstTime = UidAndPidMapTime.get(uidAndPid); + Long tmpTime = contestRecord.getTime(); + if (tmpTime < firstTime) { + pidMapUidAndPid.put(contestRecord.getPid(), contestRecord.getUid() + contestRecord.getPid()); + UidAndPidMapTime.put(contestRecord.getUid() + contestRecord.getPid(), tmpTime); + } + } + userACInfo.add(contestRecord); + } + + + List pageList = new ArrayList<>(); + + int count = userACInfo.size(); + + //计算当前页第一条数据的下标 + int currId = currentPage > 1 ? (currentPage - 1) * limit : 0; + for (int i = 0; i < limit && i < count - currId; i++) { + ContestRecord contestRecord = userACInfo.get(currId + i); + if (pidMapUidAndPid.get(contestRecord.getPid()).equals(contestRecord.getUid() + contestRecord.getPid())) { + contestRecord.setFirstBlood(true); + } + pageList.add(contestRecord); + } + + + Page page = new Page<>(currentPage, limit); + page.setSize(limit); + page.setCurrent(currentPage); + page.setTotal(count); + page.setRecords(pageList); + + return page; + } + + + @Override + public List getOIContestRecord(Contest contest, List externalCidList, Boolean isOpenSealRank) { + + String oiRankScoreType = contest.getOiRankScoreType(); + Long cid = contest.getId(); + String contestCreatorUid = contest.getUid(); + + if (!isOpenSealRank) { + // 封榜解除 获取最新数据 + // 获取每个用户每道题最近一次提交 + Long endTime = contest.getDuration(); + if (Objects.equals(Constants.Contest.OI_RANK_RECENT_SCORE.getName(), oiRankScoreType)) { + return contestRecordMapper.getOIContestRecordByRecentSubmission(cid, + externalCidList, + contestCreatorUid, + false, + null, + endTime); + } else { + return contestRecordMapper.getOIContestRecordByHighestSubmission(cid, + externalCidList, + contestCreatorUid, + false, + null, + endTime); + } + + } else { + String key = Constants.Contest.OI_CONTEST_RANK_CACHE.getName() + "_" + oiRankScoreType + "_" + cid; + List oiContestRecordList = (List) redisUtils.get(key); + if (oiContestRecordList == null) { + Long sealTime = DateUtil.between(contest.getStartTime(), contest.getSealRankTime(), DateUnit.SECOND); + if (sealTime > 0) { + sealTime --; + } + if (Objects.equals(Constants.Contest.OI_RANK_RECENT_SCORE.getName(), oiRankScoreType)) { + oiContestRecordList = contestRecordMapper.getOIContestRecordByRecentSubmission(cid, + externalCidList, + contestCreatorUid, + true, + sealTime, + null); + } else { + oiContestRecordList = contestRecordMapper.getOIContestRecordByHighestSubmission(cid, + externalCidList, + contestCreatorUid, + true, + sealTime, + null); + } + redisUtils.set(key, oiContestRecordList, 2 * 3600); + } + return oiContestRecordList; + } + + } + + @Override + public List getACMContestRecord(String contestCreatorUid, Long cid, List externalCidList, Date startTime) { + if (CollectionUtil.isEmpty(externalCidList)) { + return contestRecordMapper.getACMContestRecord(contestCreatorUid, cid, null, null); + } else { + long time = DateUtil.between(startTime, new Date(), DateUnit.SECOND); + return contestRecordMapper.getACMContestRecord(contestCreatorUid, cid, externalCidList, time); + } + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestRegisterEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestRegisterEntityServiceImpl.java new file mode 100644 index 0000000..4b20a07 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestRegisterEntityServiceImpl.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.contest.impl; + +import top.hcode.hoj.pojo.entity.contest.ContestRegister; +import top.hcode.hoj.mapper.ContestRegisterMapper; +import top.hcode.hoj.dao.contest.ContestRegisterEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ContestRegisterEntityServiceImpl extends ServiceImpl implements ContestRegisterEntityService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestScoreEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestScoreEntityServiceImpl.java new file mode 100644 index 0000000..15e289f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/contest/impl/ContestScoreEntityServiceImpl.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.contest.impl; + +import top.hcode.hoj.pojo.entity.contest.ContestScore; +import top.hcode.hoj.mapper.ContestScoreMapper; +import top.hcode.hoj.dao.contest.ContestScoreEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ContestScoreEntityServiceImpl extends ServiceImpl implements ContestScoreEntityService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentEntityService.java new file mode 100644 index 0000000..6efa661 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentEntityService.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.dao.discussion; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.pojo.entity.discussion.Comment; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.discussion.Reply; +import top.hcode.hoj.pojo.vo.CommentVo; +import top.hcode.hoj.pojo.vo.ReplyVo; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface CommentEntityService extends IService { + + IPage getCommentList(int limit, int currentPage, Long cid, Integer did, Boolean isRoot, String uid); + + void updateCommentMsg(String recipientId, String senderId, String content, Integer discussionId, Long gid); + + void updateCommentLikeMsg(String recipientId, String senderId, Integer sourceId, String sourceType); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentLikeEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentLikeEntityService.java new file mode 100644 index 0000000..80ee99a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/CommentLikeEntityService.java @@ -0,0 +1,8 @@ +package top.hcode.hoj.dao.discussion; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.discussion.CommentLike; + + +public interface CommentLikeEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionEntityService.java new file mode 100644 index 0000000..02e5b37 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionEntityService.java @@ -0,0 +1,13 @@ +package top.hcode.hoj.dao.discussion; + +import com.baomidou.mybatisplus.extension.service.IService; + +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.vo.DiscussionVo; + +public interface DiscussionEntityService extends IService { + + DiscussionVo getDiscussion(Integer did, String uid); + + void updatePostLikeMsg(String recipientId, String senderId, Integer discussionId, Long gid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionLikeEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionLikeEntityService.java new file mode 100644 index 0000000..44bf2e1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionLikeEntityService.java @@ -0,0 +1,7 @@ +package top.hcode.hoj.dao.discussion; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.discussion.DiscussionLike; + +public interface DiscussionLikeEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionReportEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionReportEntityService.java new file mode 100644 index 0000000..29abf2b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/DiscussionReportEntityService.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.dao.discussion; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.vo.DiscussionReportVo; + +public interface DiscussionReportEntityService extends IService { + + IPage getDiscussionReportList(Integer limit, Integer currentPage); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/ReplyEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/ReplyEntityService.java new file mode 100644 index 0000000..8bb4efb --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/ReplyEntityService.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.discussion; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.discussion.Reply; +import top.hcode.hoj.pojo.vo.ReplyVo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/5 22:08 + * @Description: + */ +public interface ReplyEntityService extends IService { + + public List getAllReplyByCommentId(Long cid, String uid, Boolean isRoot, Integer commentId); + + public void updateReplyMsg(Integer sourceId, String sourceType, String content, + Integer quoteId, String quoteType, String recipientId,String senderId); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/CommentEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/CommentEntityServiceImpl.java new file mode 100644 index 0000000..75f7d96 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/CommentEntityServiceImpl.java @@ -0,0 +1,142 @@ +package top.hcode.hoj.dao.discussion.impl; + +import top.hcode.hoj.dao.discussion.DiscussionEntityService; +import top.hcode.hoj.dao.group.GroupMemberEntityService; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.group.GroupMember; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import top.hcode.hoj.mapper.CommentMapper; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.discussion.Comment; +import top.hcode.hoj.pojo.entity.msg.MsgRemind; +import top.hcode.hoj.pojo.vo.CommentVo; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.discussion.CommentEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.dao.msg.MsgRemindEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class CommentEntityServiceImpl extends ServiceImpl implements CommentEntityService { + + @Autowired + private CommentMapper commentMapper; + + @Autowired + private DiscussionEntityService discussionEntityService; + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Resource + private MsgRemindEntityService msgRemindEntityService; + + @Autowired + private GroupMemberEntityService groupMemberEntityService; + + @Override + public IPage getCommentList(int limit, int currentPage, Long cid, Integer did, Boolean isRoot, String uid) { + //新建分页 + Page page = new Page<>(currentPage, limit); + + if (cid != null) { + Contest contest = contestEntityService.getById(cid); + + boolean onlyMineAndAdmin = contest.getStatus().equals(Constants.Contest.STATUS_RUNNING.getCode()) + && !isRoot && !contest.getUid().equals(uid); + if (onlyMineAndAdmin) { // 自己和比赛管理者评论可看 + + List myAndAdminUidList = userInfoEntityService.getSuperAdminUidList(); + myAndAdminUidList.add(uid); + myAndAdminUidList.add(contest.getUid()); + Long gid = contest.getGid(); + if (gid != null) { + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid).eq("auth", 5); + List groupAdminUidList = groupMemberEntityService.list(groupMemberQueryWrapper); + + for (GroupMember groupMember : groupAdminUidList) { + myAndAdminUidList.add(groupMember.getUid()); + } + } + return commentMapper.getCommentList(page, cid, did, true, myAndAdminUidList); + } + + } + return commentMapper.getCommentList(page, cid, did, false, null); + } + + @Async + @Override + public void updateCommentMsg(String recipientId, String senderId, String content, Integer discussionId, Long gid) { + + if (content.length() > 200) { + content = content.substring(0, 200) + "..."; + } + + MsgRemind msgRemind = new MsgRemind(); + msgRemind.setAction("Discuss") + .setRecipientId(recipientId) + .setSenderId(senderId) + .setSourceContent(content) + .setSourceId(discussionId) + .setSourceType("Discussion") + .setUrl("/discussion-detail/" + discussionId); + + if (gid != null) { + msgRemind.setUrl("/group/" + gid + "/discussion-detail/" + discussionId); + } else { + msgRemind.setUrl("/discussion-detail/" + discussionId); + } + msgRemindEntityService.saveOrUpdate(msgRemind); + } + + + @Async + @Override + public void updateCommentLikeMsg(String recipientId, String senderId, Integer sourceId, String sourceType) { + + MsgRemind msgRemind = new MsgRemind(); + msgRemind.setAction("Like_Discuss") + .setRecipientId(recipientId) + .setSenderId(senderId) + .setSourceId(sourceId) + .setSourceType(sourceType); + + if (sourceType.equals("Discussion")) { + + Discussion discussion = discussionEntityService.getById(sourceId); + if (discussion != null) { + if (discussion.getGid() != null) { + msgRemind.setUrl("/group/" + discussion.getGid() + "/discussion-detail/" + sourceId); + } else { + msgRemind.setUrl("/discussion-detail/" + sourceId); + } + } + } else if (sourceType.equals("Contest")) { + msgRemind.setUrl("/contest/" + sourceId + "/comment"); + } + + msgRemindEntityService.saveOrUpdate(msgRemind); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/CommentLikeEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/CommentLikeEntityServiceImpl.java new file mode 100644 index 0000000..67abf99 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/CommentLikeEntityServiceImpl.java @@ -0,0 +1,17 @@ +package top.hcode.hoj.dao.discussion.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.CommentLikeMapper; +import top.hcode.hoj.pojo.entity.discussion.CommentLike; +import top.hcode.hoj.dao.discussion.CommentLikeEntityService; + + +/** + * @Author: Himit_ZH + * @Date: 2021/5/4 22:31 + * @Description: + */ +@Service +public class CommentLikeEntityServiceImpl extends ServiceImpl implements CommentLikeEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionEntityServiceImpl.java new file mode 100644 index 0000000..7ec882b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionEntityServiceImpl.java @@ -0,0 +1,54 @@ +package top.hcode.hoj.dao.discussion.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.DiscussionMapper; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.msg.MsgRemind; +import top.hcode.hoj.pojo.vo.DiscussionVo; +import top.hcode.hoj.dao.discussion.DiscussionEntityService; +import top.hcode.hoj.dao.msg.MsgRemindEntityService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/4 22:31 + * @Description: + */ +@Service +public class DiscussionEntityServiceImpl extends ServiceImpl implements DiscussionEntityService { + + @Autowired + private DiscussionMapper discussionMapper; + + @Override + public DiscussionVo getDiscussion(Integer did, String uid) { + return discussionMapper.getDiscussion(did, uid); + } + + @Resource + private MsgRemindEntityService msgRemindEntityService; + + @Async + public void updatePostLikeMsg(String recipientId, String senderId, Integer discussionId, Long gid) { + + MsgRemind msgRemind = new MsgRemind(); + msgRemind.setAction("Like_Post") + .setRecipientId(recipientId) + .setSenderId(senderId) + .setSourceId(discussionId) + .setSourceType("Discussion") + .setUrl("/discussion-detail/" + discussionId); + + if (gid != null) { + msgRemind.setUrl("/group/" + gid + "/discussion-detail/" + discussionId); + } else { + msgRemind.setUrl("/discussion-detail/" + discussionId); + } + + msgRemindEntityService.saveOrUpdate(msgRemind); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionLikeEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionLikeEntityServiceImpl.java new file mode 100644 index 0000000..100fbc3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionLikeEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.discussion.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.DiscussionLikeMapper; +import top.hcode.hoj.pojo.entity.discussion.DiscussionLike; +import top.hcode.hoj.dao.discussion.DiscussionLikeEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/4 22:31 + * @Description: + */ +@Service +public class DiscussionLikeEntityServiceImpl extends ServiceImpl implements DiscussionLikeEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionReportEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionReportEntityServiceImpl.java new file mode 100644 index 0000000..964bf76 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/DiscussionReportEntityServiceImpl.java @@ -0,0 +1,30 @@ +package top.hcode.hoj.dao.discussion.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.dao.discussion.DiscussionReportEntityService; +import top.hcode.hoj.mapper.DiscussionReportMapper; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.vo.DiscussionReportVo; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/11 21:46 + * @Description: + */ +@Service +public class DiscussionReportEntityServiceImpl extends ServiceImpl implements DiscussionReportEntityService { + + @Resource + private DiscussionReportMapper discussionReportMapper; + + @Override + public IPage getDiscussionReportList(Integer limit, Integer currentPage) { + Page page = new Page<>(currentPage, limit); + return discussionReportMapper.getDiscussionReportList(page); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/ReplyEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/ReplyEntityServiceImpl.java new file mode 100644 index 0000000..5f5cd84 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/discussion/impl/ReplyEntityServiceImpl.java @@ -0,0 +1,100 @@ +package top.hcode.hoj.dao.discussion.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.discussion.DiscussionEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.mapper.ReplyMapper; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.msg.MsgRemind; +import top.hcode.hoj.pojo.entity.discussion.Reply; +import top.hcode.hoj.dao.discussion.ReplyEntityService; +import top.hcode.hoj.dao.msg.MsgRemindEntityService; +import top.hcode.hoj.pojo.vo.ReplyVo; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/5 22:09 + * @Description: + */ +@Service +public class ReplyEntityServiceImpl extends ServiceImpl implements ReplyEntityService { + + @Resource + private MsgRemindEntityService msgRemindEntityService; + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private DiscussionEntityService discussionEntityService; + + @Autowired + private ReplyMapper replyMapper; + + @Override + public List getAllReplyByCommentId(Long cid, String uid, Boolean isRoot, Integer commentId) { + + + if (cid != null) { + Contest contest = contestEntityService.getById(cid); + boolean onlyMineAndAdmin = contest.getStatus().equals(Constants.Contest.STATUS_RUNNING.getCode()) + && !isRoot && !contest.getUid().equals(uid); + if (onlyMineAndAdmin) { // 自己和比赛管理者评论可看 + + List myAndAdminUidList = userInfoEntityService.getSuperAdminUidList(); + myAndAdminUidList.add(uid); + myAndAdminUidList.add(contest.getUid()); + return replyMapper.getAllReplyByCommentId(commentId, myAndAdminUidList); + } + + } + return replyMapper.getAllReplyByCommentId(commentId, null); + } + + @Async + @Override + public void updateReplyMsg(Integer sourceId, String sourceType, String content, + Integer quoteId, String quoteType, String recipientId, String senderId) { + if (content.length() > 200) { + content = content.substring(0, 200) + "..."; + } + + MsgRemind msgRemind = new MsgRemind(); + msgRemind.setAction("Reply") + .setSourceId(sourceId) + .setSourceType(sourceType) + .setSourceContent(content) + .setQuoteId(quoteId) + .setQuoteType(quoteType) + .setRecipientId(recipientId) + .setSenderId(senderId); + + + if (sourceType.equals("Discussion")) { + Discussion discussion = discussionEntityService.getById(sourceId); + if (discussion != null) { + if (discussion.getGid() != null) { + msgRemind.setUrl("/group/" + discussion.getGid() + "/discussion-detail/" + sourceId); + } else { + msgRemind.setUrl("/discussion-detail/" + sourceId); + } + } + } else if (sourceType.equals("Contest")) { + msgRemind.setUrl("/contest/" + sourceId + "/comment"); + } + + msgRemindEntityService.saveOrUpdate(msgRemind); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupAnnouncementEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupAnnouncementEntityService.java new file mode 100644 index 0000000..fe8770e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupAnnouncementEntityService.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.dao.group; + +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupAnnouncementEntityService extends IService { + + IPage getAnnouncementList(int limit, int currentPage, Long gid); + + IPage getAdminAnnouncementList(int limit, int currentPage, Long gid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupContestEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupContestEntityService.java new file mode 100644 index 0000000..2c09413 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupContestEntityService.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.dao.group; + +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.vo.ContestVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupContestEntityService extends IService { + + IPage getContestList(int limit, int currentPage, Long gid); + + IPage getAdminContestList(int limit, int currentPage, Long gid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupDiscussionEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupDiscussionEntityService.java new file mode 100644 index 0000000..c60a327 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupDiscussionEntityService.java @@ -0,0 +1,13 @@ +package top.hcode.hoj.dao.group; + +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupDiscussionEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupEntityService.java new file mode 100644 index 0000000..073db0d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupEntityService.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.dao.group; + +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.GroupVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupEntityService extends IService { + IPage getGroupList(int limit, + int currentPage, + String keyword, + Integer auth, + String uid, + Boolean onlyMine, + Boolean isRoot); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupMemberEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupMemberEntityService.java new file mode 100644 index 0000000..dca35ee --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupMemberEntityService.java @@ -0,0 +1,30 @@ +package top.hcode.hoj.dao.group; + +import top.hcode.hoj.pojo.entity.group.GroupMember; +import top.hcode.hoj.pojo.vo.GroupMemberVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupMemberEntityService extends IService { + + IPage getMemberList(int limit, int currentPage, String keyword, Integer auth, Long gid); + + IPage getApplyList(int limit, int currentPage, String keyword, Integer auth, Long gid); + + List getGroupRootUidList(Long gid); + + void addApplyNoticeToGroupRoot(Long gid, String groupName, String newMemberUid); + + void addWelcomeNoticeToGroupNewMember(Long gid, String groupName,String memberUid); + + void addRemoveNoticeToGroupMember(Long gid, String groupName, String operator, String memberUid); + + void addDissolutionNoticeToGroupMember(Long gid, String groupName, List groupMemberUidList, String operator); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupProblemEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupProblemEntityService.java new file mode 100644 index 0000000..b9fcd33 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupProblemEntityService.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.dao.group; + +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.vo.ProblemVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupProblemEntityService extends IService { + + IPage getProblemList(int limit, int currentPage, Long gid); + + IPage getAdminProblemList(int limit, int currentPage, Long gid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupTrainingEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupTrainingEntityService.java new file mode 100644 index 0000000..acb008b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/GroupTrainingEntityService.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.dao.group; + +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.vo.TrainingVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupTrainingEntityService extends IService { + + IPage getTrainingList(int limit, int currentPage, Long gid); + + IPage getAdminTrainingList(int limit, int currentPage, Long gid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupAnnouncementEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupAnnouncementEntityServiceImpl.java new file mode 100644 index 0000000..a4ecbbb --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupAnnouncementEntityServiceImpl.java @@ -0,0 +1,44 @@ +package top.hcode.hoj.dao.group.impl; + +import top.hcode.hoj.dao.group.GroupAnnouncementEntityService; +import top.hcode.hoj.mapper.GroupAnnouncementMapper; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupAnnouncementEntityServiceImpl extends ServiceImpl implements GroupAnnouncementEntityService { + + @Autowired + private GroupAnnouncementMapper groupAnnouncementMapper; + + @Override + public IPage getAnnouncementList(int limit, int currentPage, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + + List announcementList = groupAnnouncementMapper.getAnnouncementList(iPage, gid); + + return iPage.setRecords(announcementList); + } + + @Override + public IPage getAdminAnnouncementList(int limit, int currentPage, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + + List announcementList = groupAnnouncementMapper.getAdminAnnouncementList(iPage, gid); + + return iPage.setRecords(announcementList); + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupContestEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupContestEntityServiceImpl.java new file mode 100644 index 0000000..5a614b5 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupContestEntityServiceImpl.java @@ -0,0 +1,43 @@ +package top.hcode.hoj.dao.group.impl; + +import top.hcode.hoj.dao.group.GroupContestEntityService; +import top.hcode.hoj.mapper.GroupContestMapper; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.vo.ContestVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupContestEntityServiceImpl extends ServiceImpl implements GroupContestEntityService { + + @Autowired + private GroupContestMapper groupContestMapper; + + @Override + public IPage getContestList(int limit, int currentPage, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + + List contestList = groupContestMapper.getContestList(iPage, gid); + + return iPage.setRecords(contestList); + } + + @Override + public IPage getAdminContestList(int limit, int currentPage, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + + List contestList = groupContestMapper.getAdminContestList(iPage, gid); + + return iPage.setRecords(contestList); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupDiscussionEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupDiscussionEntityServiceImpl.java new file mode 100644 index 0000000..1892753 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupDiscussionEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.group.impl; + +import top.hcode.hoj.dao.group.GroupDiscussionEntityService; +import top.hcode.hoj.mapper.GroupDiscussionMapper; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupDiscussionEntityServiceImpl extends ServiceImpl implements GroupDiscussionEntityService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupEntityServiceImpl.java new file mode 100644 index 0000000..27dfea2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupEntityServiceImpl.java @@ -0,0 +1,39 @@ +package top.hcode.hoj.dao.group.impl; + +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.mapper.GroupMapper; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.GroupVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupEntityServiceImpl extends ServiceImpl implements GroupEntityService { + + @Autowired + private GroupMapper groupMapper; + + @Override + public IPage getGroupList(int limit, + int currentPage, + String keyword, + Integer auth, + String uid, + Boolean onlyMine, + Boolean isRoot) { + IPage iPage = new Page<>(currentPage, limit); + List groupList = groupMapper.getGroupList(iPage, keyword, auth, uid, onlyMine,isRoot); + + return iPage.setRecords(groupList); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupMemberEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupMemberEntityServiceImpl.java new file mode 100644 index 0000000..8ae26f2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupMemberEntityServiceImpl.java @@ -0,0 +1,138 @@ +package top.hcode.hoj.dao.group.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.scheduling.annotation.Async; +import top.hcode.hoj.dao.group.GroupMemberEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.manager.msg.AdminNoticeManager; +import top.hcode.hoj.mapper.GroupMemberMapper; +import top.hcode.hoj.pojo.entity.group.GroupMember; +import top.hcode.hoj.pojo.entity.user.UserInfo; +import top.hcode.hoj.pojo.vo.GroupMemberVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupMemberEntityServiceImpl extends ServiceImpl implements GroupMemberEntityService { + + @Autowired + private GroupMemberMapper groupMemberMapper; + + @Autowired + private AdminNoticeManager adminNoticeManager; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Override + public IPage getMemberList(int limit, int currentPage, String keyword, Integer auth, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + List memberList = groupMemberMapper.getMemberList(iPage, keyword, auth, gid); + + return iPage.setRecords(memberList); + } + + @Override + public IPage getApplyList(int limit, int currentPage, String keyword, Integer auth, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + List applyList = groupMemberMapper.getApplyList(iPage, keyword, auth, gid); + + return iPage.setRecords(applyList); + } + + @Override + public List getGroupRootUidList(Long gid) { + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid).eq("auth", 5); + List groupMembers = groupMemberMapper.selectList(groupMemberQueryWrapper); + return groupMembers.stream().map(GroupMember::getUid).collect(Collectors.toList()); + } + + @Async + @Override + public void addApplyNoticeToGroupRoot(Long gid, String groupName, String newMemberUid) { + String title = "团队成员申请通知(Group Member Application Notice)"; + UserInfo newMemberUser = userInfoEntityService.getById(newMemberUid); + if (newMemberUser != null) { + String content = getNewMemberApplyGroupContent(gid, groupName, newMemberUser); + List groupRootUidList = getGroupRootUidList(gid); + adminNoticeManager.addSingleNoticeToBatchUser(null, groupRootUidList, title, content, "Mine"); + } + } + + private String getNewMemberApplyGroupContent(Long gid, String groupName, UserInfo newMemberUser) { + return "您好,您作为[" + gid + "]【**" + groupName + + "**】团队的超级管理员,目前有用户【[" + newMemberUser.getUsername() + + "](/user-home?username=" + newMemberUser.getUsername() + ")】正在申请参加该团队," + + "请前往 [" + groupName + "](/group/" + gid + "/member) 查看审批!" + + "\n\n" + + "Hello, as the super administrator of the [" + gid + "]【**" + groupName + + "**】 group, a user 【[" + newMemberUser.getUsername() + + "](/user-home?username=" + newMemberUser.getUsername() + ")】 is applying to join the group. " + + "Please go to [" + groupName + "](/group/" + gid + "/member) check and approve!"; + } + + + @Async + @Override + public void addWelcomeNoticeToGroupNewMember(Long gid, String groupName, String memberUid) { + String title = "欢迎加入团队(Welcome to The Group)"; + String content = getWelcomeNewMember(gid, groupName); + adminNoticeManager.addSingleNoticeToUser(null, memberUid, title, content, "Mine"); + } + + public String getWelcomeNewMember(Long gid, String groupName) { + return "您好,您已经通过了审批,欢迎加入[" + gid + "]【[" + groupName + + "](/group/" + gid + ")】团队!" + + "\n\n" + + "Hello, you have passed the approval. Welcome to join the group [" + gid + + "]【[" + groupName + "](/group/" + gid + ")】!"; + } + + + @Async + @Override + public void addRemoveNoticeToGroupMember(Long gid, String groupName, String operator, String memberUid) { + String title = "移除团队成员通知(Remove Group Member Notice)"; + String content = getRemoveMemberContent(gid, groupName, operator); + adminNoticeManager.addSingleNoticeToUser(null, memberUid, title, content, "Mine"); + } + + public String getRemoveMemberContent(Long gid, String groupName, String operator) { + return "您好,您已经被[" + gid + "]【[" + groupName + "](/group/" + gid + ")】" + + "团队的管理员【[" + operator + "](/user-home?username=" + operator + ")】移除了团队!" + + "\n\n" + + "Hello, You have been removed from the group [" + gid + + "]【[" + groupName + "](/group/" + gid + ")】 by the group admin 【[" + operator + "](/user-home?username=" + operator + ")】!"; + } + + + @Async + @Override + public void addDissolutionNoticeToGroupMember(Long gid, String groupName, List groupMemberUidList, String operator) { + String title = "团队解散通知(Group Dissolution Notice)"; + String content = getDissolutionGroupContent(gid, groupName, operator); + adminNoticeManager.addSingleNoticeToBatchUser(null, groupMemberUidList, title, content, "Mine"); + + } + + private String getDissolutionGroupContent(Long gid, String groupName, String operator) { + return "您好,您所在的团队**[" + gid + "]【" + groupName + + "】**目前已经被管理员【[" + operator + "](/user-home?username=" + operator + ")】解散,请您注意!" + + "\n\n" + + "Hello, your team **[" + gid + "]【" + groupName + + "】** has been dissolved by the administrator【[" + operator + + "](/user-home?username=" + operator + ")】, please pay attention!"; + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupProblemEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupProblemEntityServiceImpl.java new file mode 100644 index 0000000..7e11884 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupProblemEntityServiceImpl.java @@ -0,0 +1,44 @@ +package top.hcode.hoj.dao.group.impl; + +import top.hcode.hoj.dao.group.GroupProblemEntityService; +import top.hcode.hoj.mapper.GroupProblemMapper; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.vo.ProblemVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupProblemEntityServiceImpl extends ServiceImpl implements GroupProblemEntityService { + + @Autowired + private GroupProblemMapper groupProblemMapper; + + @Override + public IPage getProblemList(int limit, int currentPage, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + + List problemList = groupProblemMapper.getProblemList(iPage, gid); + + return iPage.setRecords(problemList); + } + + @Override + public IPage getAdminProblemList(int limit, int currentPage, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + + List problemList = groupProblemMapper.getAdminProblemList(iPage, gid); + + return iPage.setRecords(problemList); + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupTrainingEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupTrainingEntityServiceImpl.java new file mode 100644 index 0000000..ebe5acc --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/group/impl/GroupTrainingEntityServiceImpl.java @@ -0,0 +1,44 @@ +package top.hcode.hoj.dao.group.impl; + +import top.hcode.hoj.dao.group.GroupTrainingEntityService; +import top.hcode.hoj.mapper.GroupTrainingMapper; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.vo.TrainingVo; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupTrainingEntityServiceImpl extends ServiceImpl implements GroupTrainingEntityService { + + @Autowired + private GroupTrainingMapper groupTrainingMapper; + + @Override + public IPage getTrainingList(int limit, int currentPage, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + + List trainingList = groupTrainingMapper.getTrainingList(iPage, gid); + + return iPage.setRecords(trainingList); + } + + @Override + public IPage getAdminTrainingList(int limit, int currentPage, Long gid) { + IPage iPage = new Page<>(currentPage, limit); + + List trainingList = groupTrainingMapper.getAdminTrainingList(iPage, gid); + + return iPage.setRecords(trainingList); + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeCaseEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeCaseEntityService.java new file mode 100644 index 0000000..09ed3ea --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeCaseEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.judge; + +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface JudgeCaseEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeEntityService.java new file mode 100644 index 0000000..4c3b1d2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeEntityService.java @@ -0,0 +1,63 @@ +package top.hcode.hoj.dao.judge; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.pojo.entity.judge.Judge; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.vo.JudgeVo; +import top.hcode.hoj.pojo.vo.ProblemCountVo; + +import java.util.Date; +import java.util.List; + + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ + +public interface JudgeEntityService extends IService { + + IPage getCommonJudgeList(Integer limit, + Integer currentPage, + String searchPid, + Integer status, + String username, + String uid, + Boolean completeProblemID, + Long gid); + + IPage getContestJudgeList(Integer limit, + Integer currentPage, + String displayId, + Long cid, + Integer status, + String username, + String uid, + Boolean beforeContestSubmit, + String rule, + Date startTime, + Date sealRankTime, + String sealTimeUid, + Boolean completeProblemID); + + + void failToUseRedisPublishJudge(Long submitId, Long pid, Boolean isContest); + + ProblemCountVo getContestProblemCount(Long pid, + Long cpid, + Long cid, + Date startTime, + Date sealRankTime, + List adminList); + + ProblemCountVo getProblemCount(Long pid, Long gid); + + public int getTodayJudgeNum(); + + public List getProblemListCount(List pidList); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeServerEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeServerEntityService.java new file mode 100644 index 0000000..888bac0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/JudgeServerEntityService.java @@ -0,0 +1,9 @@ +package top.hcode.hoj.dao.judge; + +import com.baomidou.mybatisplus.extension.service.IService; + +import top.hcode.hoj.pojo.entity.judge.JudgeServer; + +public interface JudgeServerEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/RemoteJudgeAccountEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/RemoteJudgeAccountEntityService.java new file mode 100644 index 0000000..ef28216 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/RemoteJudgeAccountEntityService.java @@ -0,0 +1,7 @@ +package top.hcode.hoj.dao.judge; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; + +public interface RemoteJudgeAccountEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeCaseEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeCaseEntityServiceImpl.java new file mode 100644 index 0000000..9038083 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeCaseEntityServiceImpl.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.judge.impl; + +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import top.hcode.hoj.mapper.JudgeCaseMapper; +import top.hcode.hoj.dao.judge.JudgeCaseEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class JudgeCaseEntityServiceImpl extends ServiceImpl implements JudgeCaseEntityService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeEntityServiceImpl.java new file mode 100644 index 0000000..271012f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeEntityServiceImpl.java @@ -0,0 +1,152 @@ +package top.hcode.hoj.dao.judge.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.mapper.JudgeMapper; +import top.hcode.hoj.mapper.ProblemMapper; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.vo.JudgeVo; +import top.hcode.hoj.pojo.vo.ProblemCountVo; +import top.hcode.hoj.utils.Constants; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; + + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +@Slf4j(topic = "hoj") +public class JudgeEntityServiceImpl extends ServiceImpl implements JudgeEntityService { + + @Autowired + private JudgeMapper judgeMapper; + + @Autowired + private ContestRecordEntityService contestRecordEntityService; + + @Autowired + private ProblemMapper problemMapper; + + + @Override + public IPage getCommonJudgeList(Integer limit, + Integer currentPage, + String searchPid, + Integer status, + String username, + String uid, + Boolean completeProblemID, + Long gid) { + //新建分页 + Page page = new Page<>(currentPage, limit); + + IPage commonJudgeList = judgeMapper.getCommonJudgeList(page, searchPid, status, username, uid, completeProblemID, gid); + List records = commonJudgeList.getRecords(); + if (!CollectionUtils.isEmpty(records)) { + List pidList = records.stream().map(JudgeVo::getPid).collect(Collectors.toList()); + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.select("id", "title") + .in("id", pidList); + List problemList = problemMapper.selectList(problemQueryWrapper); + HashMap storeMap = new HashMap<>(limit); + for (JudgeVo judgeVo : records) { + judgeVo.setTitle(getProblemTitleByPid(judgeVo.getPid(), problemList, storeMap)); + } + } + return commonJudgeList; + } + + private String getProblemTitleByPid(Long pid, List problemList, HashMap storeMap) { + String title = storeMap.get(pid); + if (title != null) { + return title; + } + for (Problem problem : problemList) { + if (problem.getId().equals(pid)) { + storeMap.put(pid, problem.getTitle()); + return problem.getTitle(); + } + } + return ""; + } + + @Override + public IPage getContestJudgeList(Integer limit, + Integer currentPage, + String displayId, + Long cid, + Integer status, + String username, + String uid, + Boolean beforeContestSubmit, + String rule, + Date startTime, + Date sealRankTime, + String sealTimeUid, + Boolean completeProblemID) { + //新建分页 + Page page = new Page<>(currentPage, limit); + + return judgeMapper.getContestJudgeList(page, displayId, cid, status, username, uid, beforeContestSubmit, + rule, startTime, sealRankTime, sealTimeUid, completeProblemID); + } + + + @Override + public void failToUseRedisPublishJudge(Long submitId, Long pid, Boolean isContest) { + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.eq("submit_id", submitId) + .set("error_message", "The something has gone wrong with the data Backup server. Please report this to administrator.") + .set("status", Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()); + judgeMapper.update(null, judgeUpdateWrapper); + // 更新contest_record表 + if (isContest) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("submit_id", submitId) // submit_id一定只有一个 + .set("first_blood", false) + .set("status", Constants.Contest.RECORD_NOT_AC_NOT_PENALTY.getCode()); + contestRecordEntityService.update(updateWrapper); + } + } + + @Override + public ProblemCountVo getContestProblemCount(Long pid, Long cpid, Long cid, Date startTime, Date sealRankTime, List adminList) { + return judgeMapper.getContestProblemCount(pid, cpid, cid, startTime, sealRankTime, adminList); + } + + @Override + public ProblemCountVo getProblemCount(Long pid, Long gid) { + return judgeMapper.getProblemCount(pid, gid); + } + + @Override + public int getTodayJudgeNum() { + return judgeMapper.getTodayJudgeNum(); + } + + @Override + public List getProblemListCount(List pidList) { + return judgeMapper.getProblemListCount(pidList); + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeServerEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeServerEntityServiceImpl.java new file mode 100644 index 0000000..dfc7f72 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/JudgeServerEntityServiceImpl.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.dao.judge.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import top.hcode.hoj.mapper.JudgeServerMapper; + +import top.hcode.hoj.pojo.entity.judge.JudgeServer; +import top.hcode.hoj.dao.judge.JudgeServerEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/15 11:27 + * @Description: + */ +@Service +public class JudgeServerEntityServiceImpl extends ServiceImpl implements JudgeServerEntityService { + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/RemoteJudgeAccountEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/RemoteJudgeAccountEntityServiceImpl.java new file mode 100644 index 0000000..8a4108c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/judge/impl/RemoteJudgeAccountEntityServiceImpl.java @@ -0,0 +1,17 @@ +package top.hcode.hoj.dao.judge.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.RemoteJudgeAccountMapper; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; +import top.hcode.hoj.dao.judge.RemoteJudgeAccountEntityService; + + +/** + * @Author: Himit_ZH + * @Date: 2021/5/18 17:46 + * @Description: + */ +@Service +public class RemoteJudgeAccountEntityServiceImpl extends ServiceImpl implements RemoteJudgeAccountEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/AdminSysNoticeEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/AdminSysNoticeEntityService.java new file mode 100644 index 0000000..1e0258e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/AdminSysNoticeEntityService.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.dao.msg; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.vo.AdminSysNoticeVo; + + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:33 + * @Description: + */ +public interface AdminSysNoticeEntityService extends IService { + + public IPage getSysNotice(int limit,int currentPage,String type); + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/MsgRemindEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/MsgRemindEntityService.java new file mode 100644 index 0000000..b52aec5 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/MsgRemindEntityService.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.dao.msg; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.msg.MsgRemind; +import top.hcode.hoj.pojo.vo.UserMsgVo; +import top.hcode.hoj.pojo.vo.UserUnreadMsgCountVo; + + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:32 + * @Description: + */ +public interface MsgRemindEntityService extends IService { + + UserUnreadMsgCountVo getUserUnreadMsgCount(String uid); + + IPage getUserMsg(Page page, String uid,String action); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/UserSysNoticeEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/UserSysNoticeEntityService.java new file mode 100644 index 0000000..58538b9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/UserSysNoticeEntityService.java @@ -0,0 +1,13 @@ +package top.hcode.hoj.dao.msg; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.msg.UserSysNotice; +import top.hcode.hoj.pojo.vo.SysMsgVo; + +public interface UserSysNoticeEntityService extends IService { + + IPage getSysNotice(int limit, int currentPage, String uid); + + IPage getMineNotice(int limit, int currentPage, String uid); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/AdminSysNoticeEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/AdminSysNoticeEntityServiceImpl.java new file mode 100644 index 0000000..a130d2b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/AdminSysNoticeEntityServiceImpl.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.dao.msg.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.AdminSysNoticeMapper; + +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.vo.AdminSysNoticeVo; +import top.hcode.hoj.dao.msg.AdminSysNoticeEntityService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:34 + * @Description: + */ +@Service +public class AdminSysNoticeEntityServiceImpl extends ServiceImpl implements AdminSysNoticeEntityService { + + @Resource + private AdminSysNoticeMapper adminSysNoticeMapper; + + @Override + public IPage getSysNotice(int limit, int currentPage, String type) { + Page page = new Page<>(currentPage, limit); + return adminSysNoticeMapper.getAdminSysNotice(page, type); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/MsgRemindEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/MsgRemindEntityServiceImpl.java new file mode 100644 index 0000000..599a92a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/MsgRemindEntityServiceImpl.java @@ -0,0 +1,37 @@ +package top.hcode.hoj.dao.msg.impl; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.MsgRemindMapper; +import top.hcode.hoj.pojo.entity.msg.MsgRemind; +import top.hcode.hoj.pojo.vo.UserMsgVo; +import top.hcode.hoj.pojo.vo.UserUnreadMsgCountVo; +import top.hcode.hoj.dao.msg.MsgRemindEntityService; + +import javax.annotation.Resource; + + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:36 + * @Description: + */ +@Service +public class MsgRemindEntityServiceImpl extends ServiceImpl implements MsgRemindEntityService { + + @Resource + private MsgRemindMapper msgRemindMapper; + @Override + public UserUnreadMsgCountVo getUserUnreadMsgCount(String uid) { + return msgRemindMapper.getUserUnreadMsgCount(uid); + } + + @Override + public IPage getUserMsg(Page page, String uid, String action) { + return msgRemindMapper.getUserMsg(page, uid, action); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/UserSysNoticeEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/UserSysNoticeEntityServiceImpl.java new file mode 100644 index 0000000..1e70a36 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/msg/impl/UserSysNoticeEntityServiceImpl.java @@ -0,0 +1,36 @@ +package top.hcode.hoj.dao.msg.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.UserSysNoticeMapper; +import top.hcode.hoj.pojo.entity.msg.UserSysNotice; +import top.hcode.hoj.pojo.vo.SysMsgVo; +import top.hcode.hoj.dao.msg.UserSysNoticeEntityService; + +import javax.annotation.Resource; +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:35 + * @Description: + */ +@Service +public class UserSysNoticeEntityServiceImpl extends ServiceImpl implements UserSysNoticeEntityService { + + @Resource + private UserSysNoticeMapper userSysNoticeMapper; + + @Override + public IPage getSysNotice(int limit, int currentPage, String uid) { + Page page = new Page<>(currentPage, limit); + return userSysNoticeMapper.getSysOrMineNotice(page, uid, "Sys"); + } + + @Override + public IPage getMineNotice(int limit, int currentPage, String uid) { + Page page = new Page<>(currentPage, limit); + return userSysNoticeMapper.getSysOrMineNotice(page, uid, "Mine"); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CategoryEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CategoryEntityService.java new file mode 100644 index 0000000..d01b3e8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CategoryEntityService.java @@ -0,0 +1,8 @@ +package top.hcode.hoj.dao.problem; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.Category; + + +public interface CategoryEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CodeTemplateEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CodeTemplateEntityService.java new file mode 100644 index 0000000..20e0ecc --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/CodeTemplateEntityService.java @@ -0,0 +1,7 @@ +package top.hcode.hoj.dao.problem; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.CodeTemplate; + +public interface CodeTemplateEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/LanguageEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/LanguageEntityService.java new file mode 100644 index 0000000..70e8c90 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/LanguageEntityService.java @@ -0,0 +1,7 @@ +package top.hcode.hoj.dao.problem; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.Language; + +public interface LanguageEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCaseEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCaseEntityService.java new file mode 100644 index 0000000..30dd23f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCaseEntityService.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.dao.problem; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/14 19:58 + * @Description: + */ +public interface ProblemCaseEntityService extends IService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCountEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCountEntityService.java new file mode 100644 index 0000000..204ad50 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemCountEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.problem; + +import top.hcode.hoj.pojo.entity.problem.ProblemCount; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ProblemCountEntityService extends IService { + ProblemCount getContestProblemCount(Long pid, Long cpid, Long cid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemEntityService.java new file mode 100644 index 0000000..f7cbb62 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemEntityService.java @@ -0,0 +1,32 @@ +package top.hcode.hoj.dao.problem; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.vo.ImportProblemVo; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.pojo.entity.problem.Problem; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.HashMap; +import java.util.List; + + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ + +public interface ProblemEntityService extends IService { + Page getProblemList(int limit, int currentPage, Long pid, String title, + Integer difficulty, List tid, String oj); + + boolean adminUpdateProblem(ProblemDto problemDto); + + boolean adminAddProblem(ProblemDto problemDto); + + ImportProblemVo buildExportProblem(Long pid, List> problemCaseList, HashMap languageMap, HashMap tagMap); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemLanguageEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemLanguageEntityService.java new file mode 100644 index 0000000..2ba5cce --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemLanguageEntityService.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.dao.problem; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.ProblemLanguage; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/13 00:03 + * @Description: + */ +public interface ProblemLanguageEntityService extends IService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemTagEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemTagEntityService.java new file mode 100644 index 0000000..c54ab15 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/ProblemTagEntityService.java @@ -0,0 +1,7 @@ +package top.hcode.hoj.dao.problem; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.ProblemTag; + +public interface ProblemTagEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagClassificationEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagClassificationEntityService.java new file mode 100644 index 0000000..acea06b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagClassificationEntityService.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.dao.problem; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.TagClassification; + +/** + * @Author Himit_ZH + * @Date 2022/8/3 + */ +public interface TagClassificationEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagEntityService.java new file mode 100644 index 0000000..a4788a4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/TagEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.problem; + +import top.hcode.hoj.pojo.entity.problem.Tag; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface TagEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CategoryEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CategoryEntityServiceImpl.java new file mode 100644 index 0000000..76858d0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CategoryEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.problem.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.CategoryMapper; +import top.hcode.hoj.pojo.entity.problem.Category; +import top.hcode.hoj.dao.problem.CategoryEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/4 22:30 + * @Description: + */ +@Service +public class CategoryEntityServiceImpl extends ServiceImpl implements CategoryEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CodeTemplateEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CodeTemplateEntityServiceImpl.java new file mode 100644 index 0000000..18bb366 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/CodeTemplateEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.problem.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.CodeTemplateMapper; +import top.hcode.hoj.pojo.entity.problem.CodeTemplate; +import top.hcode.hoj.dao.problem.CodeTemplateEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/24 10:27 + * @Description: + */ +@Service +public class CodeTemplateEntityServiceImpl extends ServiceImpl implements CodeTemplateEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/LanguageEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/LanguageEntityServiceImpl.java new file mode 100644 index 0000000..75ef54b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/LanguageEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.problem.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.LanguageMapper; +import top.hcode.hoj.pojo.entity.problem.Language; +import top.hcode.hoj.dao.problem.LanguageEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/12 23:23 + * @Description: + */ +@Service +public class LanguageEntityServiceImpl extends ServiceImpl implements LanguageEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemCaseEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemCaseEntityServiceImpl.java new file mode 100644 index 0000000..74d3a23 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemCaseEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.problem.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.ProblemCaseMapper; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.dao.problem.ProblemCaseEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/14 19:59 + * @Description: + */ +@Service +public class ProblemCaseEntityServiceImpl extends ServiceImpl implements ProblemCaseEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemCountServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemCountServiceImpl.java new file mode 100644 index 0000000..ad0b386 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemCountServiceImpl.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.dao.problem.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import top.hcode.hoj.pojo.entity.problem.ProblemCount; +import top.hcode.hoj.mapper.ProblemCountMapper; +import top.hcode.hoj.dao.problem.ProblemCountEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ProblemCountServiceImpl extends ServiceImpl implements ProblemCountEntityService { + + @Autowired + private ProblemCountMapper problemCountMapper; + + @Override + public ProblemCount getContestProblemCount(Long pid, Long cpid, Long cid) { + return problemCountMapper.getContestProblemCount(pid,cpid, cid); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemEntityServiceImpl.java new file mode 100644 index 0000000..094b326 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemEntityServiceImpl.java @@ -0,0 +1,690 @@ +package top.hcode.hoj.dao.problem.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileReader; +import cn.hutool.core.io.file.FileWriter; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.DigestUtils; +import org.springframework.util.StringUtils; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.*; +import top.hcode.hoj.mapper.ProblemMapper; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.problem.*; +import top.hcode.hoj.pojo.vo.ImportProblemVo; +import top.hcode.hoj.pojo.vo.ProblemCountVo; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.utils.Constants; + +import java.io.File; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ProblemEntityServiceImpl extends ServiceImpl implements ProblemEntityService { + + @Autowired + private ProblemMapper problemMapper; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private ProblemCaseEntityService problemCaseEntityService; + + @Autowired + private ProblemLanguageEntityService problemLanguageEntityService; + + @Autowired + private TagEntityService tagEntityService; + + @Autowired + private ProblemTagEntityService problemTagEntityService; + + @Autowired + private ApplicationContext applicationContext; + + @Autowired + private CodeTemplateEntityService codeTemplateEntityService; + + @Override + public Page getProblemList(int limit, int currentPage, Long pid, String title, Integer difficulty, + List tid, String oj) { + + //新建分页 + Page page = new Page<>(currentPage, limit); + Integer tagListSize = null; + if (tid != null) { + tid = tid.stream().distinct().collect(Collectors.toList()); + tagListSize = tid.size(); + } + + List problemList = problemMapper.getProblemList(page, pid, title, difficulty, tid, tagListSize, oj); + + if (problemList.size() > 0) { + List pidList = problemList.stream().map(ProblemVo::getPid).collect(Collectors.toList()); + List problemListCount = judgeEntityService.getProblemListCount(pidList); + for (ProblemVo problemVo : problemList) { + for (ProblemCountVo problemCountVo : problemListCount) { + if (problemVo.getPid().equals(problemCountVo.getPid())) { + problemVo.setProblemCountVo(problemCountVo); + break; + } + } + } + } + + return page.setRecords(problemList); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean adminUpdateProblem(ProblemDto problemDto) { + + Problem problem = problemDto.getProblem(); + if (Constants.JudgeMode.DEFAULT.getMode().equals(problemDto.getJudgeMode())) { + problem.setSpjLanguage(null).setSpjCode(null); + } + + String ojName = "ME"; + if (problem.getIsRemote()) { + String problemId = problem.getProblemId(); + ojName = problemId.split("-")[0]; + } + + /** + * problem_id唯一性检查 + */ + String problemId = problem.getProblemId().toUpperCase(); + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("problem_id", problemId); + Problem existedProblem = problemMapper.selectOne(problemQueryWrapper); + + problem.setProblemId(problem.getProblemId().toUpperCase()); + if (problem.getIsGroup() == null) { + problem.setIsGroup(false); + } + // 后面许多表的更新或删除需要用到题目id + long pid = problemDto.getProblem().getId(); + + if (existedProblem != null && existedProblem.getId() != pid) { + throw new RuntimeException("The problem_id [" + problemId + "] already exists. Do not reuse it!"); + } + + Map map = new HashMap<>(); + map.put("pid", pid); + //查询出原来题目的关联表数据 + List oldProblemLanguages = (List) problemLanguageEntityService.listByMap(map); + List oldProblemCases = (List) problemCaseEntityService.listByMap(map); + List oldProblemTemplate = (List) codeTemplateEntityService.listByMap(map); + List oldProblemTags = (List) problemTagEntityService.listByMap(map); + + Map mapOldPT = new HashMap<>(); + Map mapOldPL = new HashMap<>(); + Map mapOldPCT = new HashMap<>(); + List needDeleteProblemCases = new LinkedList<>(); + HashMap oldProblemMap = new HashMap<>(); + + // 登记一下原有的tag的id + oldProblemTags.stream().forEach(problemTag -> { + mapOldPT.put(problemTag.getTid(), 0); + }); + // 登记一下原有的language的id + oldProblemLanguages.stream().forEach(problemLanguage -> { + mapOldPL.put(problemLanguage.getLid(), 0); + }); + // 登记一下原有的codeTemplate的id + oldProblemTemplate.stream().forEach(codeTemplate -> { + mapOldPCT.put(codeTemplate.getId(), 0); + }); + // 登记一下原有的case的id + oldProblemCases.stream().forEach(problemCase -> { + needDeleteProblemCases.add(problemCase.getId()); + oldProblemMap.put(problemCase.getId(), problemCase); + }); + + + // 与前端上传的数据进行对比,添加或删除! + /** + * 处理tag表与problem_tag表的删除与更新 + */ + List problemTagList = new LinkedList<>(); // 存储新的problem_tag表数据 + for (Tag tag : problemDto.getTags()) { + if (tag.getId() == null) { // 没有主键表示为新添加的标签 + tag.setOj(ojName); + boolean addTagResult = tagEntityService.save(tag); + if (addTagResult) { + problemTagList.add(new ProblemTag() + .setPid(pid).setTid(tag.getId())); + } + // 已存在tag 但是新添加的 + } else if (mapOldPT.getOrDefault(tag.getId(), null) == null) { + problemTagList.add(new ProblemTag() + .setPid(pid).setTid(tag.getId())); + } else { // 已有主键的需要记录一下,若原先在problem_tag有的,现在不见了,表明需要删除 + mapOldPT.put(tag.getId(), 1); // 更新记录,说明该tag未删除 + } + } + // 放入需要删除的tagId列表 + List needDeleteTids = new LinkedList<>(); + for (Long key : mapOldPT.keySet()) { + if (mapOldPT.get(key) == 0) { // 记录表中没有更新原来的存在Tid,则表明该tag已不被该problem使用 + needDeleteTids.add(key); + } + } + boolean deleteTagsFromProblemResult = true; + if (needDeleteTids.size() > 0) { + QueryWrapper tagWrapper = new QueryWrapper<>(); + tagWrapper.eq("pid", pid).in("tid", needDeleteTids); + // 执行批量删除操作 + deleteTagsFromProblemResult = problemTagEntityService.remove(tagWrapper); + } + // 执行批量插入操作 + boolean addTagsToProblemResult = true; + if (problemTagList.size() > 0) { + addTagsToProblemResult = problemTagEntityService.saveOrUpdateBatch(problemTagList); + } + + /** + * 处理code_template表 + */ + boolean deleteTemplate = true; + boolean saveOrUpdateCodeTemplate = true; + for (CodeTemplate codeTemplate : problemDto.getCodeTemplates()) { + if (codeTemplate.getId() != null) { + mapOldPCT.put(codeTemplate.getId(), 1); + } + } + // 需要删除的模板 + List needDeleteCTs = new LinkedList<>(); + for (Integer key : mapOldPCT.keySet()) { + if (mapOldPCT.get(key) == 0) { + needDeleteCTs.add(key); + } + } + if (needDeleteCTs.size() > 0) { + deleteTemplate = codeTemplateEntityService.removeByIds(needDeleteCTs); + } + if (problemDto.getCodeTemplates().size() > 0) { + saveOrUpdateCodeTemplate = codeTemplateEntityService.saveOrUpdateBatch(problemDto.getCodeTemplates()); + } + + + /** + * 处理problem_language表的更新与删除 + */ + + // 根据上传来的language列表的每一个name字段查询对应的language表的id,更新problem_language + //构建problem_language实体列表 + List problemLanguageList = new LinkedList<>(); + for (Language language : problemDto.getLanguages()) { // 遍历插入 + if (mapOldPL.get(language.getId()) != null) { // 如果记录中有,则表式该language原来已有选中。 + mapOldPL.put(language.getId(), 1); // 记录一下,新数据也有该language + } else { // 没有记录,则表明为新添加的language + problemLanguageList.add(new ProblemLanguage().setLid(language.getId()).setPid(pid)); + } + } + // 放入需要删除的languageId列表 + List needDeleteLids = new LinkedList<>(); + for (Long key : mapOldPL.keySet()) { + if (mapOldPL.get(key) == 0) { // 记录表中没有更新原来的存在Lid,则表明该language已不被该problem使用 + needDeleteLids.add(key); + } + } + boolean deleteLanguagesFromProblemResult = true; + if (needDeleteLids.size() > 0) { + QueryWrapper LangWrapper = new QueryWrapper<>(); + LangWrapper.eq("pid", pid).in("lid", needDeleteLids); + // 执行批量删除操作 + deleteLanguagesFromProblemResult = problemLanguageEntityService.remove(LangWrapper); + } + // 执行批量添加操作 + boolean addLanguagesToProblemResult = true; + if (problemLanguageList.size() > 0) { + addLanguagesToProblemResult = problemLanguageEntityService.saveOrUpdateBatch(problemLanguageList); + } + + + /** + * 处理problem_case表的增加与删除 + */ + + boolean checkProblemCase = true; + + if (!problem.getIsRemote() && problemDto.getSamples().size() > 0) { // 如果是自家的题目才有测试数据 + int sumScore = 0; + // 新增加的case列表 + List newProblemCaseList = new LinkedList<>(); + // 需要修改的case列表 + List needUpdateProblemCaseList = new LinkedList<>(); + // 遍历上传的case列表,如果还存在,则从需要删除的测试样例列表移除该id + for (ProblemCase problemCase : problemDto.getSamples()) { + if (problemCase.getId() != null) { // 已存在的case + needDeleteProblemCases.remove(problemCase.getId()); + // 跟原先的数据做对比,如果变动 则加入需要修改的case列表 + ProblemCase oldProblemCase = oldProblemMap.get(problemCase.getId()); + if (!oldProblemCase.getInput().equals(problemCase.getInput()) || + !oldProblemCase.getOutput().equals(problemCase.getOutput())) { + needUpdateProblemCaseList.add(problemCase); + } else if (problem.getType().intValue() == Constants.Contest.TYPE_OI.getCode()) { + // 分数变动 + if (!Objects.equals(oldProblemCase.getScore(), problemCase.getScore())) { + needUpdateProblemCaseList.add(problemCase); + } + } + } else { + newProblemCaseList.add(problemCase.setPid(pid)); + } + + if (problemCase.getScore() != null) { + sumScore += problemCase.getScore(); + } + } + // 设置oi总分数,根据每个测试点的加和 + if (problem.getType().intValue() == Constants.Contest.TYPE_OI.getCode()) { + problem.setIoScore(sumScore); + } + // 执行批量删除操作 + boolean deleteCasesFromProblemResult = true; + if (needDeleteProblemCases.size() > 0) { + deleteCasesFromProblemResult = problemCaseEntityService.removeByIds(needDeleteProblemCases); + } + // 执行批量添加操作 + boolean addCasesToProblemResult = true; + if (newProblemCaseList.size() > 0) { + addCasesToProblemResult = problemCaseEntityService.saveBatch(newProblemCaseList); + } + // 执行批量修改操作 + boolean updateCasesToProblemResult = true; + if (needUpdateProblemCaseList.size() > 0) { + updateCasesToProblemResult = problemCaseEntityService.saveOrUpdateBatch(needUpdateProblemCaseList); + } + checkProblemCase = addCasesToProblemResult && deleteCasesFromProblemResult && updateCasesToProblemResult; + + // 只要有新添加,修改,删除都需要更新版本号 同时更新测试数据 + String caseVersion = String.valueOf(System.currentTimeMillis()); + String testcaseDir = problemDto.getUploadTestcaseDir(); + if (needDeleteProblemCases.size() > 0 || newProblemCaseList.size() > 0 + || needUpdateProblemCaseList.size() > 0 || !StringUtils.isEmpty(testcaseDir)) { + problem.setCaseVersion(caseVersion); + // 如果是选择上传测试文件的,则需要遍历对应文件夹,读取数据,写入数据库,先前的题目数据一并清空。 + if (problemDto.getIsUploadTestCase()) { + // 获取代理bean对象执行异步方法===》根据测试文件初始info + applicationContext.getBean(ProblemEntityServiceImpl.class).initUploadTestCase(problemDto.getJudgeMode(), caseVersion, pid, testcaseDir, problemDto.getSamples()); + } else { + applicationContext.getBean(ProblemEntityServiceImpl.class).initHandTestCase(problemDto.getJudgeMode(), problem.getCaseVersion(), pid, problemDto.getSamples()); + } + } + // 变化成spj或interactive或者取消 同时更新测试数据 + else if (problemDto.getChangeModeCode() != null && problemDto.getChangeModeCode()) { + problem.setCaseVersion(caseVersion); + if (problemDto.getIsUploadTestCase()) { + // 获取代理bean对象执行异步方法===》根据测试文件初始info + applicationContext.getBean(ProblemEntityServiceImpl.class).initUploadTestCase(problemDto.getJudgeMode(), caseVersion, pid, null, problemDto.getSamples()); + } else { + applicationContext.getBean(ProblemEntityServiceImpl.class).initHandTestCase(problemDto.getJudgeMode(), problem.getCaseVersion(), pid, problemDto.getSamples()); + } + } + } + + // 更新problem表 + boolean problemUpdateResult = problemMapper.updateById(problem) == 1; + + if (problemUpdateResult && checkProblemCase && deleteLanguagesFromProblemResult && deleteTagsFromProblemResult + && addLanguagesToProblemResult && addTagsToProblemResult && deleteTemplate && saveOrUpdateCodeTemplate) { + return true; + } else { + return false; + } + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean adminAddProblem(ProblemDto problemDto) { + + Problem problem = problemDto.getProblem(); + + if (Constants.JudgeMode.DEFAULT.getMode().equals(problemDto.getJudgeMode())) { + problem.setSpjLanguage(null) + .setSpjCode(null); + } + + /** + * problem_id唯一性检查 + */ + String problemId = problem.getProblemId().toUpperCase(); + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("problem_id", problemId); + int existedProblem = problemMapper.selectCount(problemQueryWrapper); + if (existedProblem > 0) { + throw new RuntimeException("The problem_id [" + problemId + "] already exists. Do not reuse it!"); + } + + + // 设置测试样例的版本号 + problem.setCaseVersion(String.valueOf(System.currentTimeMillis())); + if (problem.getIsGroup() == null) { + problem.setIsGroup(false); + } + problem.setProblemId(problemId); + boolean addProblemResult = problemMapper.insert(problem) == 1; + long pid = problem.getId(); + // 为新的题目添加对应的language + List problemLanguageList = new LinkedList<>(); + for (Language language : problemDto.getLanguages()) { + problemLanguageList.add(new ProblemLanguage().setPid(pid).setLid(language.getId())); + } + boolean addLangToProblemResult = problemLanguageEntityService.saveOrUpdateBatch(problemLanguageList); + + // 为新的题目添加对应的codeTemplate + boolean addProblemCodeTemplate = true; + if (problemDto.getCodeTemplates() != null && problemDto.getCodeTemplates().size() > 0) { + for (CodeTemplate codeTemplate : problemDto.getCodeTemplates()) { + codeTemplate.setPid(pid); + } + addProblemCodeTemplate = codeTemplateEntityService.saveOrUpdateBatch(problemDto.getCodeTemplates()); + } + + + boolean addCasesToProblemResult = true; + // 为新的题目添加对应的case + if (problemDto.getIsUploadTestCase()) { // 如果是选择上传测试文件的,则需要遍历对应文件夹,读取数据。。 + int sumScore = 0; + String testcaseDir = problemDto.getUploadTestcaseDir(); + // 如果是io题目统计总分 + List problemCases = problemDto.getSamples(); + if (problemCases.size() == 0) { + throw new RuntimeException("The test cases of problem must not be empty!"); + } + for (ProblemCase problemCase : problemCases) { + if (problemCase.getScore() != null) { + sumScore += problemCase.getScore(); + } + if (StringUtils.isEmpty(problemCase.getOutput())) { + String filePreName = problemCase.getInput().split("\\.")[0]; + problemCase.setOutput(filePreName + ".out"); + } + problemCase.setPid(pid); + } + // 设置oi总分数,根据每个测试点的加和 + if (problem.getType().intValue() == Constants.Contest.TYPE_OI.getCode()) { + UpdateWrapper problemUpdateWrapper = new UpdateWrapper<>(); + problemUpdateWrapper.eq("id", pid) + .set("io_score", sumScore); + problemMapper.update(null, problemUpdateWrapper); + } + addCasesToProblemResult = problemCaseEntityService.saveOrUpdateBatch(problemCases); + // 获取代理bean对象执行异步方法===》根据测试文件初始info + applicationContext.getBean(ProblemEntityServiceImpl.class).initUploadTestCase(problemDto.getJudgeMode(), + problem.getCaseVersion(), pid, testcaseDir, problemDto.getSamples()); + } else { + // oi题目需要求取平均值,给每个测试点初始oi的score值,默认总分100分 + if (problem.getType().intValue() == Constants.Contest.TYPE_OI.getCode()) { + int sumScore = 0; + for (ProblemCase problemCase : problemDto.getSamples()) { + // 设置好新题目的pid和累加总分数 + problemCase.setPid(pid); + if (problemCase.getScore() != null) { + sumScore += problemCase.getScore(); + } + } + addCasesToProblemResult = problemCaseEntityService.saveOrUpdateBatch(problemDto.getSamples()); + UpdateWrapper problemUpdateWrapper = new UpdateWrapper<>(); + problemUpdateWrapper.eq("id", pid) + .set("io_score", sumScore); + problemMapper.update(null, problemUpdateWrapper); + } else { + problemDto.getSamples().forEach(problemCase -> problemCase.setPid(pid)); // 设置好新题目的pid + addCasesToProblemResult = problemCaseEntityService.saveOrUpdateBatch(problemDto.getSamples()); + } + initHandTestCase(problemDto.getJudgeMode(), problem.getCaseVersion(), pid, problemDto.getSamples()); + } + + // 为新的题目添加对应的tag,可能tag是原表已有,也可能是新的,所以需要判断。 + List problemTagList = new LinkedList<>(); + if (problemDto.getTags() != null) { + for (Tag tag : problemDto.getTags()) { + if (tag.getId() == null) { //id为空 表示为原tag表中不存在的 插入后可以获取到对应的tagId + Tag existedTag = tagEntityService.getOne(new QueryWrapper().eq("name", tag.getName()) + .eq("oj", "ME"), false); + if (existedTag == null) { + tag.setOj("ME"); + tagEntityService.save(tag); + } else { + tag = existedTag; + } + } + problemTagList.add(new ProblemTag().setTid(tag.getId()).setPid(pid)); + } + } + boolean addTagsToProblemResult = true; + if (problemTagList.size() > 0) { + addTagsToProblemResult = problemTagEntityService.saveOrUpdateBatch(problemTagList); + } + + + if (addProblemResult && addCasesToProblemResult && addLangToProblemResult + && addTagsToProblemResult && addProblemCodeTemplate) { + return true; + } else { + return false; + } + } + + // 初始化上传文件的测试数据,写成json文件 + @Async + public void initUploadTestCase(String mode, + String version, + Long problemId, + String tmpTestcaseDir, + List problemCaseList) { + + String testCasesDir = Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + problemId; + + // 将之前的临时文件夹里面的评测文件全部复制到指定文件夹(覆盖) + if (!StringUtils.isEmpty(tmpTestcaseDir)) { + FileUtil.clean(testCasesDir); + FileUtil.copyFilesFromDir(new File(tmpTestcaseDir), new File(testCasesDir), true); + } + + JSONObject result = new JSONObject(); + result.set("mode", mode); + result.set("version", version); + result.set("testCasesSize", problemCaseList.size()); + + JSONArray testCaseList = new JSONArray(problemCaseList.size()); + + for (ProblemCase problemCase : problemCaseList) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("caseId", problemCase.getId()); + jsonObject.set("score", problemCase.getScore()); + jsonObject.set("inputName", problemCase.getInput()); + jsonObject.set("outputName", problemCase.getOutput()); + + // 读取输入文件 + FileReader inputFile = new FileReader(testCasesDir + File.separator + problemCase.getInput(), CharsetUtil.UTF_8); + String input = inputFile.readString().replaceAll("\r\n", "\n"); + + FileWriter inputFileWriter = new FileWriter(testCasesDir + File.separator + problemCase.getInput(), CharsetUtil.UTF_8); + inputFileWriter.write(input); + + // 读取输出文件 + FileReader outputFile = new FileReader(testCasesDir + File.separator + problemCase.getOutput(), CharsetUtil.UTF_8); + String output = outputFile.readString().replaceAll("\r\n", "\n"); + + FileWriter outFileWriter = new FileWriter(testCasesDir + File.separator + problemCase.getOutput(), CharsetUtil.UTF_8); + outFileWriter.write(output); + + // spj和interactive是根据特判程序输出判断结果,所以无需初始化测试数据 + if (Constants.JudgeMode.DEFAULT.getMode().equals(mode)) { + // 原数据MD5 + jsonObject.set("outputMd5", DigestUtils.md5DigestAsHex(output.getBytes(StandardCharsets.UTF_8))); + // 原数据大小 + jsonObject.set("outputSize", output.getBytes(StandardCharsets.UTF_8).length); + // 去掉全部空格的MD5,用来判断pe + jsonObject.set("allStrippedOutputMd5", DigestUtils.md5DigestAsHex(output.replaceAll("\\s+", "").getBytes(StandardCharsets.UTF_8))); + // 默认去掉文末空格的MD5 + jsonObject.set("EOFStrippedOutputMd5", DigestUtils.md5DigestAsHex(rtrim(output).getBytes(StandardCharsets.UTF_8))); + } + + testCaseList.add(jsonObject); + } + + result.set("testCases", testCaseList); + + FileWriter infoFile = new FileWriter(testCasesDir + "/info", CharsetUtil.UTF_8); + // 写入记录文件 + infoFile.write(JSONUtil.toJsonStr(result)); + // 删除临时上传文件夹 + FileUtil.del(tmpTestcaseDir); + } + + + // 初始化手动输入上传的测试数据,写成json文件 + @Async + public void initHandTestCase(String mode, + String version, + Long problemId, + List problemCaseList) { + + JSONObject result = new JSONObject(); + result.set("mode", mode); + result.set("version", version); + result.set("testCasesSize", problemCaseList.size()); + + JSONArray testCaseList = new JSONArray(problemCaseList.size()); + + String testCasesDir = Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + problemId; + FileUtil.del(testCasesDir); + for (int index = 0; index < problemCaseList.size(); index++) { + JSONObject jsonObject = new JSONObject(); + String inputName = (index + 1) + ".in"; + jsonObject.set("caseId", problemCaseList.get(index).getId()); + jsonObject.set("score", problemCaseList.get(index).getScore()); + jsonObject.set("inputName", inputName); + // 生成对应文件 + FileWriter infileWriter = new FileWriter(testCasesDir + "/" + inputName, CharsetUtil.UTF_8); + // 将该测试数据的输入写入到文件 + String inputData = problemCaseList.get(index).getInput().replaceAll("\r\n", "\n"); + infileWriter.write(inputData); + + String outputName = (index + 1) + ".out"; + jsonObject.set("outputName", outputName); + // 生成对应文件 + String outputData = problemCaseList.get(index).getOutput().replaceAll("\r\n", "\n"); + FileWriter outFile = new FileWriter(testCasesDir + "/" + outputName, CharsetUtil.UTF_8); + outFile.write(outputData); + + // spj和interactive是根据特判程序输出判断结果,所以无需初始化测试数据 + if (Constants.JudgeMode.DEFAULT.getMode().equals(mode)) { + // 原数据MD5 + jsonObject.set("outputMd5", DigestUtils.md5DigestAsHex(outputData.getBytes(StandardCharsets.UTF_8))); + // 原数据大小 + jsonObject.set("outputSize", outputData.getBytes(StandardCharsets.UTF_8).length); + // 去掉全部空格的MD5,用来判断pe + jsonObject.set("allStrippedOutputMd5", DigestUtils.md5DigestAsHex(outputData.replaceAll("\\s+", "").getBytes(StandardCharsets.UTF_8))); + // 默认去掉文末空格的MD5 + jsonObject.set("EOFStrippedOutputMd5", DigestUtils.md5DigestAsHex(rtrim(outputData).getBytes(StandardCharsets.UTF_8))); + } + + testCaseList.add(jsonObject); + } + + result.set("testCases", testCaseList); + + FileWriter infoFile = new FileWriter(testCasesDir + "/info", CharsetUtil.UTF_8); + // 写入记录文件 + infoFile.write(JSONUtil.toJsonStr(result)); + } + + + @Override + @SuppressWarnings("All") + public ImportProblemVo buildExportProblem(Long pid, List> problemCaseList, + HashMap languageMap, HashMap tagMap) { + // 导出相当于导入 + ImportProblemVo importProblemVo = new ImportProblemVo(); + Problem problem = problemMapper.selectById(pid); + problem.setCaseVersion(null) + .setGmtCreate(null) + .setId(null) + .setAuth(1) + .setIsUploadCase(true) + .setAuthor(null) + .setGmtModified(null); + HashMap problemMap = new HashMap<>(); + BeanUtil.beanToMap(problem, problemMap, false, true); + importProblemVo.setProblem(problemMap); + QueryWrapper codeTemplateQueryWrapper = new QueryWrapper<>(); + codeTemplateQueryWrapper.eq("pid", pid).eq("status", true); + List codeTemplates = codeTemplateEntityService.list(codeTemplateQueryWrapper); + List> codeTemplateList = new LinkedList<>(); + for (CodeTemplate codeTemplate : codeTemplates) { + HashMap tmp = new HashMap<>(); + tmp.put("language", languageMap.get(codeTemplate.getLid())); + tmp.put("code", codeTemplate.getCode()); + codeTemplateList.add(tmp); + } + importProblemVo.setCodeTemplates(codeTemplateList); + importProblemVo.setJudgeMode(problem.getJudgeMode()); + importProblemVo.setSamples(problemCaseList); + + if (!StringUtils.isEmpty(problem.getUserExtraFile())) { + HashMap userExtraFileMap = (HashMap) JSONUtil.toBean(problem.getUserExtraFile(), Map.class); + importProblemVo.setUserExtraFile(userExtraFileMap); + } + + if (!StringUtils.isEmpty(problem.getJudgeExtraFile())) { + HashMap judgeExtraFileMap = (HashMap) JSONUtil.toBean(problem.getJudgeExtraFile(), Map.class); + importProblemVo.setUserExtraFile(judgeExtraFileMap); + } + + QueryWrapper problemTagQueryWrapper = new QueryWrapper<>(); + problemTagQueryWrapper.eq("pid", pid); + List problemTags = problemTagEntityService.list(problemTagQueryWrapper); + importProblemVo.setTags(problemTags.stream().map(problemTag -> tagMap.get(problemTag.getTid())).collect(Collectors.toList())); + + QueryWrapper problemLanguageQueryWrapper = new QueryWrapper<>(); + problemLanguageQueryWrapper.eq("pid", pid); + List problemLanguages = problemLanguageEntityService.list(problemLanguageQueryWrapper); + importProblemVo.setLanguages(problemLanguages.stream().map(problemLanguage -> languageMap.get(problemLanguage.getLid())).collect(Collectors.toList())); + + + return importProblemVo; + } + + // 去除每行末尾的空白符 + public static String rtrim(String value) { + if (value == null) return null; + StringBuilder sb = new StringBuilder(); + String[] strArr = value.split("\n"); + for (String str : strArr) { + sb.append(str.replaceAll("\\s+$", "")).append("\n"); + } + return sb.toString().replaceAll("\\s+$", ""); + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemLanguageEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemLanguageEntityServiceImpl.java new file mode 100644 index 0000000..7347d30 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemLanguageEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.problem.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.ProblemLanguageMapper; +import top.hcode.hoj.pojo.entity.problem.ProblemLanguage; +import top.hcode.hoj.dao.problem.ProblemLanguageEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/13 00:04 + * @Description: + */ +@Service +public class ProblemLanguageEntityServiceImpl extends ServiceImpl implements ProblemLanguageEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemTagEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemTagEntityServiceImpl.java new file mode 100644 index 0000000..a87f5fb --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/ProblemTagEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.problem.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.ProblemTagMapper; +import top.hcode.hoj.pojo.entity.problem.ProblemTag; +import top.hcode.hoj.dao.problem.ProblemTagEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/13 23:22 + * @Description: + */ +@Service +public class ProblemTagEntityServiceImpl extends ServiceImpl implements ProblemTagEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagClassificationEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagClassificationEntityServiceImpl.java new file mode 100644 index 0000000..c57ded3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagClassificationEntityServiceImpl.java @@ -0,0 +1,15 @@ +package top.hcode.hoj.dao.problem.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.dao.problem.TagClassificationEntityService; +import top.hcode.hoj.mapper.TagClassificationMapper; +import top.hcode.hoj.pojo.entity.problem.TagClassification; + +/** + * @Author Himit_ZH + * @Date 2022/8/3 + */ +@Service +public class TagClassificationEntityServiceImpl extends ServiceImpl implements TagClassificationEntityService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagEntityServiceImpl.java new file mode 100644 index 0000000..d73ebec --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/problem/impl/TagEntityServiceImpl.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.problem.impl; + +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.mapper.TagMapper; +import top.hcode.hoj.dao.problem.TagEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class TagEntityServiceImpl extends ServiceImpl implements TagEntityService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/MappingTrainingCategoryEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/MappingTrainingCategoryEntityService.java new file mode 100644 index 0000000..bb97e7a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/MappingTrainingCategoryEntityService.java @@ -0,0 +1,7 @@ +package top.hcode.hoj.dao.training; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.training.MappingTrainingCategory; + +public interface MappingTrainingCategoryEntityService extends IService { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingCategoryEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingCategoryEntityService.java new file mode 100644 index 0000000..38379cb --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingCategoryEntityService.java @@ -0,0 +1,9 @@ +package top.hcode.hoj.dao.training; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; + +public interface TrainingCategoryEntityService extends IService { + + public TrainingCategory getTrainingCategoryByTrainingId(Long tid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingEntityService.java new file mode 100644 index 0000000..2f4a58d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingEntityService.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.dao.training; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.vo.TrainingVo; + +public interface TrainingEntityService extends IService { + public IPage getTrainingList(int limit, int currentPage, + Long categoryId, String auth, String keyword); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingProblemEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingProblemEntityService.java new file mode 100644 index 0000000..bc1c4b3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingProblemEntityService.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.dao.training; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.pojo.vo.ProblemVo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/20 12:24 + * @Description: + */ +public interface TrainingProblemEntityService extends IService { + public List getTrainingProblemIdList(Long tid); + + public List getTrainingProblemList(Long tid); + + public Integer getUserTrainingACProblemCount(String uid, List pidList); + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRecordEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRecordEntityService.java new file mode 100644 index 0000000..3fb4f65 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRecordEntityService.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.dao.training; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.training.TrainingRecord; +import top.hcode.hoj.pojo.vo.TrainingRecordVo; + +import java.util.List; + + +/** + * @Author: Himit_ZH + * @Date: 2021/11/21 23:38 + * @Description: + */ +public interface TrainingRecordEntityService extends IService { + + public List getTrainingRecord(Long tid); + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRegisterEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRegisterEntityService.java new file mode 100644 index 0000000..5a55862 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/TrainingRegisterEntityService.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.dao.training; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.training.TrainingRegister; +import java.util.List; + +public interface TrainingRegisterEntityService extends IService { + + + public List getAlreadyRegisterUidList(Long tid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/MappingTrainingCategoryEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/MappingTrainingCategoryEntityServiceImpl.java new file mode 100644 index 0000000..827003b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/MappingTrainingCategoryEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.training.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.MappingTrainingCategoryMapper; +import top.hcode.hoj.pojo.entity.training.MappingTrainingCategory; +import top.hcode.hoj.dao.training.MappingTrainingCategoryEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 19:53 + * @Description: + */ +@Service +public class MappingTrainingCategoryEntityServiceImpl extends ServiceImpl implements MappingTrainingCategoryEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingCategoryEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingCategoryEntityServiceImpl.java new file mode 100644 index 0000000..404020a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingCategoryEntityServiceImpl.java @@ -0,0 +1,26 @@ +package top.hcode.hoj.dao.training.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.TrainingCategoryMapper; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; +import top.hcode.hoj.dao.training.TrainingCategoryEntityService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/20 12:15 + * @Description: + */ +@Service +public class TrainingCategoryEntityServiceImpl extends ServiceImpl implements TrainingCategoryEntityService { + + @Resource + private TrainingCategoryMapper trainingCategoryMapper; + + @Override + public TrainingCategory getTrainingCategoryByTrainingId(Long tid) { + return trainingCategoryMapper.getTrainingCategoryByTrainingId(tid); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingEntityServiceImpl.java new file mode 100644 index 0000000..1d42d95 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingEntityServiceImpl.java @@ -0,0 +1,49 @@ +package top.hcode.hoj.dao.training.impl; + +; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.TrainingMapper; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.vo.TrainingVo; +import top.hcode.hoj.dao.training.TrainingEntityService; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/19 22:01 + * @Description: + */ +@Service +public class TrainingEntityServiceImpl extends ServiceImpl implements TrainingEntityService { + + @Resource + private TrainingMapper trainingMapper; + + + @Override + public IPage getTrainingList(int limit, int currentPage, Long categoryId, String auth, String keyword) { + List trainingList = trainingMapper.getTrainingList(categoryId, auth, keyword); + Page page = new Page<>(currentPage, limit); + int count = trainingList.size(); + List pageList = new ArrayList<>(); + //计算当前页第一条数据的下标 + int currId = currentPage > 1 ? (currentPage - 1) * limit : 0; + for (int i = 0; i < limit && i < count - currId; i++) { + pageList.add(trainingList.get(currId + i)); + } + page.setSize(limit); + page.setCurrent(currentPage); + page.setTotal(count); + page.setRecords(pageList); + return page; + } + + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingProblemEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingProblemEntityServiceImpl.java new file mode 100644 index 0000000..6cf90a9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingProblemEntityServiceImpl.java @@ -0,0 +1,65 @@ +package top.hcode.hoj.dao.training.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.mapper.TrainingProblemMapper; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.dao.training.TrainingProblemEntityService; + +import javax.annotation.Resource; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/20 12:25 + * @Description: + */ +@Service +public class TrainingProblemEntityServiceImpl extends ServiceImpl implements TrainingProblemEntityService { + + @Resource + private TrainingProblemMapper trainingProblemMapper; + + @Resource + private JudgeEntityService judgeEntityService; + + @Override + public List getTrainingProblemIdList(Long tid) { + return trainingProblemMapper.getTrainingProblemCount(tid); + } + + @Override + public List getTrainingProblemList(Long tid) { + List trainingProblemList = trainingProblemMapper.getTrainingProblemList(tid); + return trainingProblemList.stream().filter(distinctByKey(ProblemVo::getPid)).collect(Collectors.toList()); + } + + static Predicate distinctByKey(Function keyExtractor) { + Map seen = new ConcurrentHashMap<>(); + return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; + } + + @Override + public Integer getUserTrainingACProblemCount(String uid, List pidList) { + if (CollectionUtils.isEmpty(pidList)) { + return 0; + } + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper.select("DISTINCT pid") + .in("pid", pidList) + .eq("cid", 0) + .eq("uid", uid) + .eq("status", 0); + return judgeEntityService.count(judgeQueryWrapper); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingRecordEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingRecordEntityServiceImpl.java new file mode 100644 index 0000000..35984f8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingRecordEntityServiceImpl.java @@ -0,0 +1,29 @@ +package top.hcode.hoj.dao.training.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.TrainingRecordMapper; +import top.hcode.hoj.pojo.entity.training.TrainingRecord; +import top.hcode.hoj.pojo.vo.TrainingRecordVo; +import top.hcode.hoj.dao.training.TrainingRecordEntityService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/21 23:39 + * @Description: + */ +@Service +public class TrainingRecordEntityServiceImpl extends ServiceImpl implements TrainingRecordEntityService { + + @Resource + private TrainingRecordMapper trainingRecordMapper; + + @Override + public List getTrainingRecord(Long tid){ + return trainingRecordMapper.getTrainingRecord(tid); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingRegisterEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingRegisterEntityServiceImpl.java new file mode 100644 index 0000000..b93203d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/training/impl/TrainingRegisterEntityServiceImpl.java @@ -0,0 +1,33 @@ +package top.hcode.hoj.dao.training.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.TrainingRegisterMapper; +import top.hcode.hoj.pojo.entity.training.TrainingRegister; +import top.hcode.hoj.dao.training.TrainingRegisterEntityService; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/20 11:30 + * @Description: + */ +@Service +public class TrainingRegisterEntityServiceImpl extends ServiceImpl implements TrainingRegisterEntityService { + + @Resource + private TrainingRegisterMapper trainingRegisterMapper; + + + @Override + public List getAlreadyRegisterUidList(Long tid){ + QueryWrapper trainingRegisterQueryWrapper = new QueryWrapper<>(); + trainingRegisterQueryWrapper.eq("tid", tid); + return trainingRegisterMapper.selectList(trainingRegisterQueryWrapper).stream().map(TrainingRegister::getUid).collect(Collectors.toList()); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/AuthEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/AuthEntityService.java new file mode 100644 index 0000000..0e8be34 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/AuthEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.user; + +import top.hcode.hoj.pojo.entity.user.Auth; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface AuthEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleAuthEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleAuthEntityService.java new file mode 100644 index 0000000..ea4b30f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleAuthEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.user; + +import top.hcode.hoj.pojo.entity.user.RoleAuth; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface RoleAuthEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleEntityService.java new file mode 100644 index 0000000..22f1f62 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/RoleEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.user; + +import top.hcode.hoj.pojo.entity.user.Role; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface RoleEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/SessionEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/SessionEntityService.java new file mode 100644 index 0000000..5afaeac --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/SessionEntityService.java @@ -0,0 +1,10 @@ +package top.hcode.hoj.dao.user; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.user.Session; + +public interface SessionEntityService extends IService { + + public void checkRemoteLogin(String uid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserAcproblemEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserAcproblemEntityService.java new file mode 100644 index 0000000..ca17dc3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserAcproblemEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.user; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface UserAcproblemEntityService extends IService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserInfoEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserInfoEntityService.java new file mode 100644 index 0000000..1a4cd03 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserInfoEntityService.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.dao.user; + +import top.hcode.hoj.pojo.dto.RegisterDto; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.user.UserInfo; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface UserInfoEntityService extends IService { + + public Boolean addUser(RegisterDto registerDto); + + public List getSuperAdminUidList(); + + public List getProblemAdminUidList(); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserRecordEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserRecordEntityService.java new file mode 100644 index 0000000..7cf73d6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserRecordEntityService.java @@ -0,0 +1,36 @@ +package top.hcode.hoj.dao.user; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.vo.ACMRankVo; +import top.hcode.hoj.pojo.entity.user.UserRecord; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.vo.OIRankVo; +import top.hcode.hoj.pojo.vo.UserHomeVo; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface UserRecordEntityService extends IService { + + List getRecent7ACRank(); + + UserHomeVo getUserHomeInfo(String uid, String username); + + List getLastYearUserJudgeList(String uid, String username); + + IPage getOIRankList(Page page, List uidList); + + IPage getACMRankList(Page page, List uidList); + + IPage getGroupRankList(Page page, Long gid, List uidList, String rankType, Boolean useCache); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserRoleEntityService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserRoleEntityService.java new file mode 100644 index 0000000..c0dae93 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/UserRoleEntityService.java @@ -0,0 +1,25 @@ +package top.hcode.hoj.dao.user; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.pojo.entity.user.UserRole; +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.vo.UserRolesVo; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface UserRoleEntityService extends IService { + + UserRolesVo getUserRoles(String uid,String username); + + IPage getUserList(int limit, int currentPage, String keyword,Boolean onlyAdmin); + + void deleteCache(String uid, boolean isRemoveSession); + + String getAuthChangeContent(int oldType,int newType); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/AuthEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/AuthEntityServiceImpl.java new file mode 100644 index 0000000..bd6b682 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/AuthEntityServiceImpl.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.user.impl; + +import top.hcode.hoj.pojo.entity.user.Auth; +import top.hcode.hoj.mapper.AuthMapper; +import top.hcode.hoj.dao.user.AuthEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class AuthEntityServiceImpl extends ServiceImpl implements AuthEntityService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleAuthEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleAuthEntityServiceImpl.java new file mode 100644 index 0000000..a996b68 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleAuthEntityServiceImpl.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.user.impl; + +import top.hcode.hoj.pojo.entity.user.RoleAuth; +import top.hcode.hoj.mapper.RoleAuthMapper; +import top.hcode.hoj.dao.user.RoleAuthEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class RoleAuthEntityServiceImpl extends ServiceImpl implements RoleAuthEntityService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleEntityServiceImpl.java new file mode 100644 index 0000000..7e1ef4b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/RoleEntityServiceImpl.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.user.impl; + +import top.hcode.hoj.pojo.entity.user.Role; +import top.hcode.hoj.mapper.RoleMapper; +import top.hcode.hoj.dao.user.RoleEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class RoleEntityServiceImpl extends ServiceImpl implements RoleEntityService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/SessionEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/SessionEntityServiceImpl.java new file mode 100644 index 0000000..849a4dc --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/SessionEntityServiceImpl.java @@ -0,0 +1,129 @@ +package top.hcode.hoj.dao.user.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import top.hcode.hoj.mapper.SessionMapper; +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.entity.user.Session; +import top.hcode.hoj.pojo.entity.msg.UserSysNotice; +import top.hcode.hoj.dao.msg.AdminSysNoticeEntityService; +import top.hcode.hoj.dao.msg.UserSysNoticeEntityService; +import top.hcode.hoj.dao.user.SessionEntityService; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/3 22:46 + * @Description: + */ +@Service +public class SessionEntityServiceImpl extends ServiceImpl implements SessionEntityService { + + @Resource + private SessionMapper sessionMapper; + + @Resource + private AdminSysNoticeEntityService adminSysNoticeEntityService; + + @Resource + private UserSysNoticeEntityService userSysNoticeEntityService; + + @Override + @Async + public void checkRemoteLogin(String uid) { + QueryWrapper sessionQueryWrapper = new QueryWrapper<>(); + sessionQueryWrapper.eq("uid", uid) + .orderByDesc("gmt_create") + .last("limit 2"); + List sessionList = sessionMapper.selectList(sessionQueryWrapper); + if (sessionList.size() < 2) { + return; + } + Session nowSession = sessionList.get(0); + Session lastSession = sessionList.get(1); + // 如果两次登录的ip不相同,需要发通知给用户 + if (!nowSession.getIp().equals(lastSession.getIp())) { + String remoteLoginContent = getRemoteLoginContent(lastSession.getIp(), nowSession.getIp(), nowSession.getGmtCreate()); + if (remoteLoginContent == null) { + return; + } + AdminSysNotice adminSysNotice = new AdminSysNotice(); + adminSysNotice + .setType("Single") + .setContent(remoteLoginContent) + .setTitle("账号异地登录通知(Account Remote Login Notice)") + .setAdminId("1") + .setState(false) + .setRecipientId(uid); + boolean isSaveOk = adminSysNoticeEntityService.save(adminSysNotice); + if (isSaveOk) { + UserSysNotice userSysNotice = new UserSysNotice(); + userSysNotice.setType("Sys") + .setSysNoticeId(adminSysNotice.getId()) + .setRecipientId(uid) + .setState(false); + boolean isOk = userSysNoticeEntityService.save(userSysNotice); + if (isOk) { + adminSysNotice.setState(true); + adminSysNoticeEntityService.saveOrUpdate(adminSysNotice); + } + } + } + } + + private String getRemoteLoginContent(String oldIp, String newIp, Date loginDate) { + String dateStr = DateUtil.format(loginDate, "yyyy-MM-dd HH:mm:ss"); + StringBuilder sb = new StringBuilder(); + sb.append("亲爱的用户,您好!您的账号于").append(dateStr); + String addr = null; + try { + String newRes = HttpUtil.get("https://whois.pconline.com.cn/ipJson.jsp?ip=" + newIp + "&json=true"); + JSONObject newResJson = JSONUtil.parseObj(newRes); + addr = newResJson.getStr("addr"); + + String newCityCode = newResJson.getStr("cityCode"); + + String oldRes = HttpUtil.get("https://whois.pconline.com.cn/ipJson.jsp?ip=" + oldIp + "&json=true"); + JSONObject oldResJson = JSONUtil.parseObj(oldRes); + + String oldCityCode = oldResJson.getStr("cityCode"); + + if (newCityCode == null || oldCityCode == null || newCityCode.equals(oldCityCode)) { + return null; + } + + } catch (Exception ignored) { + return null; + } + if (!StringUtils.isEmpty(addr)) { + sb.append("在【") + .append(addr) + .append("】"); + } + sb.append("登录,登录IP为:【") + .append(newIp) + .append("】,若非本人操作,请立即修改密码。") + .append("\n\n") + .append("Hello! Dear user, Your account was logged in in"); + + if (!StringUtils.isEmpty(addr)) { + sb.append(" 【") + .append(addr) + .append("】 on ") + .append(dateStr) + .append(". If you do not operate by yourself, please change your password immediately."); + } + + return sb.toString(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserAcproblemEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserAcproblemEntityServiceImpl.java new file mode 100644 index 0000000..c65aabd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserAcproblemEntityServiceImpl.java @@ -0,0 +1,22 @@ +package top.hcode.hoj.dao.user.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import top.hcode.hoj.mapper.UserAcproblemMapper; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; +import top.hcode.hoj.dao.user.UserAcproblemEntityService; + +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class UserAcproblemEntityServiceImpl extends ServiceImpl implements UserAcproblemEntityService { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserInfoEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserInfoEntityServiceImpl.java new file mode 100644 index 0000000..7ba50b9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserInfoEntityServiceImpl.java @@ -0,0 +1,54 @@ +package top.hcode.hoj.dao.user.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import top.hcode.hoj.pojo.dto.RegisterDto; +import top.hcode.hoj.pojo.entity.user.UserInfo; +import top.hcode.hoj.mapper.UserInfoMapper; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class UserInfoEntityServiceImpl extends ServiceImpl implements UserInfoEntityService { + + @Autowired + private UserInfoMapper userInfoMapper; + + @Autowired + private RedisUtils redisUtils; + + @Override + public Boolean addUser(RegisterDto registerDto) { + return userInfoMapper.addUser(registerDto) == 1; + } + + @Override + public List getSuperAdminUidList() { + + String cacheKey = Constants.Account.SUPER_ADMIN_UID_LIST_CACHE.getCode(); + List superAdminUidList = (List) redisUtils.get(cacheKey); + if (superAdminUidList == null) { + superAdminUidList = userInfoMapper.getSuperAdminUidList(); + redisUtils.set(cacheKey, superAdminUidList, 12 * 3600); + } + return superAdminUidList; + } + + @Override + public List getProblemAdminUidList() { + return userInfoMapper.getProblemAdminUidList(); + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserRecordEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserRecordEntityServiceImpl.java new file mode 100644 index 0000000..fee370e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserRecordEntityServiceImpl.java @@ -0,0 +1,84 @@ +package top.hcode.hoj.dao.user.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import top.hcode.hoj.mapper.JudgeMapper; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.vo.ACMRankVo; +import top.hcode.hoj.pojo.entity.user.UserRecord; +import top.hcode.hoj.mapper.UserRecordMapper; +import top.hcode.hoj.pojo.vo.OIRankVo; +import top.hcode.hoj.pojo.vo.UserHomeVo; +import top.hcode.hoj.dao.user.UserRecordEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class UserRecordEntityServiceImpl extends ServiceImpl implements UserRecordEntityService { + + @Autowired + private UserRecordMapper userRecordMapper; + + @Autowired + private JudgeMapper judgeMapper; + + @Autowired + private RedisUtils redisUtils; + + // 排行榜缓存时间 10s + private static final long cacheRankSecond = 10; + + @Override + public List getRecent7ACRank() { + return userRecordMapper.getRecent7ACRank(); + } + + @Override + public UserHomeVo getUserHomeInfo(String uid, String username) { + return userRecordMapper.getUserHomeInfo(uid, username); + } + + @Override + public List getLastYearUserJudgeList(String uid, String username) { + return judgeMapper.getLastYearUserJudgeList(uid, username); + } + + @Override + public IPage getOIRankList(Page page, List uidList) { + return userRecordMapper.getOIRankList(page, uidList); + } + + @Override + public IPage getACMRankList(Page page, List uidList) { + return userRecordMapper.getACMRankList(page, uidList); + } + + @Override + public IPage getGroupRankList(Page page, Long gid, List uidList, String rankType, Boolean useCache) { + if (useCache) { + IPage data = null; + String key = Constants.Account.GROUP_RANK_CACHE.getCode() + "_" + gid + "_" + rankType + "_" + page.getCurrent() + "_" + page.getSize(); + data = (IPage) redisUtils.get(key); + if (data == null) { + data = userRecordMapper.getGroupRankList(page, gid, uidList, rankType); + redisUtils.set(key, data, cacheRankSecond); + } + return data; + } else { + return userRecordMapper.getGroupRankList(page, gid, uidList, rankType); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserRoleEntityServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserRoleEntityServiceImpl.java new file mode 100644 index 0000000..0b4b1b3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/dao/user/impl/UserRoleEntityServiceImpl.java @@ -0,0 +1,128 @@ +package top.hcode.hoj.dao.user.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.Authenticator; +import org.apache.shiro.authc.LogoutAware; +import org.apache.shiro.session.Session; +import org.apache.shiro.subject.SimplePrincipalCollection; +import org.apache.shiro.subject.support.DefaultSubjectContext; +import org.apache.shiro.web.mgt.DefaultWebSecurityManager; +import org.crazycake.shiro.RedisSessionDAO; +import org.springframework.beans.factory.annotation.Autowired; +import top.hcode.hoj.pojo.entity.user.UserRole; +import top.hcode.hoj.mapper.UserRoleMapper; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.user.UserRoleEntityService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.shiro.AccountProfile; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class UserRoleEntityServiceImpl extends ServiceImpl implements UserRoleEntityService { + @Autowired + private UserRoleMapper userRoleMapper; + + @Autowired + private RedisSessionDAO redisSessionDAO; + + @Override + public UserRolesVo getUserRoles(String uid, String username) { + return userRoleMapper.getUserRoles(uid, username); + } + + @Override + public IPage getUserList(int limit, int currentPage, String keyword, Boolean onlyAdmin) { + //新建分页 + Page page = new Page<>(currentPage, limit); + if (onlyAdmin) { + return userRoleMapper.getAdminUserList(page, limit, currentPage, keyword); + } else { + return userRoleMapper.getUserList(page, limit, currentPage, keyword); + } + } + + /** + * @param uid 当前需要操作的用户id + * @param isRemoveSession 如果为true则会强行删除该用户session,必须重新登陆,false的话 在访问受限接口时会重新授权 + * @MethodName deleteCache + * @Description TODO + * @Return + * @Since 2021/6/12 + */ + @Override + public void deleteCache(String uid, boolean isRemoveSession) { + //从缓存中获取Session + Collection sessions = redisSessionDAO.getActiveSessions(); + for (Session sessionInfo : sessions) { + //遍历Session,找到该用户名称对应的Session + Object attribute = sessionInfo.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY); + if (attribute == null) { + continue; + } + AccountProfile accountProfile = (AccountProfile) ((SimplePrincipalCollection) attribute).getPrimaryPrincipal(); + if (accountProfile == null) { + continue; + } + // 如果该session是指定的uid用户的 + if (Objects.equals(accountProfile.getUid(), uid)) { + deleteSession(isRemoveSession, sessionInfo, attribute); + } + } + + } + + + private void deleteSession(boolean isRemoveSession, Session session, Object attribute) { + //删除session 会强制退出!主要是在禁用用户或角色时,强制用户退出的 + if (isRemoveSession) { + redisSessionDAO.delete(session); + } + + //删除Cache,在访问受限接口时会重新授权 + DefaultWebSecurityManager securityManager = (DefaultWebSecurityManager) SecurityUtils.getSecurityManager(); + Authenticator authc = securityManager.getAuthenticator(); + ((LogoutAware) authc).onLogout((SimplePrincipalCollection) attribute); + } + + + private final static List ChineseRole = Arrays.asList("超级管理员", "普通管理员", + "普通用户(默认)", "普通用户(禁止提交)", "普通用户(禁止发讨论)", "普通用户(禁言)", "普通用户(禁止提交&禁止发讨论)", + "用户(禁止提交&禁言)", "题目管理员"); + + private final static List EnglishRole = Arrays.asList("Super Administrator", "General Administrator", + "Normal User(Default)", "Normal User(No Submission)", "Normal User(No Discussion)", "Normal User(Forbidden Words)", + "Normal User(No Submission & No Discussion)", + "Normal User(No Submission & Forbidden Words)", "Problem Administrator"); + + @Override + public String getAuthChangeContent(int oldType, int newType) { + String msg = "您好,您的权限产生了变更,由【" + + ChineseRole.get(oldType - 1000) + + "】变更为【" + + ChineseRole.get(newType - 1000) + + "】。部分权限可能与之前有所不同,请您注意!" + + "\n\n" + + "Hello, your permission has been changed from 【" + + EnglishRole.get(oldType - 1000) + + "】 to 【" + + EnglishRole.get(newType - 1000) + + "】. Some permissions may be different from before. Please note!"; + return msg; + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/exception/AccessException.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/exception/AccessException.java new file mode 100644 index 0000000..c0cf349 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/exception/AccessException.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.exception; + +/** + * @Author Himit_ZH + * @Date 2022/5/9 + */ +public class AccessException extends Exception{ + public AccessException() { + super(); + } + + public AccessException(String message) { + super(message); + } + + public AccessException(String message, Throwable cause) { + super(message, cause); + } + + public AccessException(Throwable cause) { + super(cause); + } + + protected AccessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/interceptor/AccessInterceptor.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/interceptor/AccessInterceptor.java new file mode 100644 index 0000000..cf25696 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/interceptor/AccessInterceptor.java @@ -0,0 +1,55 @@ +package top.hcode.hoj.interceptor; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.resource.ResourceHttpRequestHandler; +import top.hcode.hoj.annotation.HOJAccess; +import top.hcode.hoj.annotation.HOJAccessEnum; +import top.hcode.hoj.utils.ServiceContextUtils; +import top.hcode.hoj.validator.AccessValidator; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @Author Himit_ZH + * @Date 2022/5/9 + */ +@Component +public class AccessInterceptor implements HandlerInterceptor { + + @Autowired + private AccessValidator accessValidator; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + if(handler instanceof HandlerMethod) { + HandlerMethod handlerMethod = HandlerMethod.class.cast(handler); + HOJAccess hojAccess = ServiceContextUtils.getAnnotation(handlerMethod.getMethod(), handlerMethod.getBeanType(), HOJAccess.class); + if (hojAccess == null || hojAccess.value().length == 0) { + return true; + } + for (HOJAccessEnum value : hojAccess.value()) { + accessValidator.validateAccess(value); + } + return true; + }else if (handler instanceof ResourceHttpRequestHandler){ + // 静态资源的请求不处理 + return true; + } + return false; + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + HandlerInterceptor.super.postHandle(request, response, handler, modelAndView); + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + HandlerInterceptor.super.afterCompletion(request, response, handler, ex); + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/AbstractReceiver.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/AbstractReceiver.java new file mode 100644 index 0000000..a567c0b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/AbstractReceiver.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.judge; + +/** + * @Author: Himit_ZH + * @Date: 2021/12/22 12:40 + * @Description: + */ + +public abstract class AbstractReceiver { + + public void handleWaitingTask(String... queues) { + for (String queue : queues) { + String taskStr = getTaskByRedis(queue); + if (taskStr != null) { + handleJudgeMsg(taskStr, queue); + } + } + } + + public abstract String getTaskByRedis(String queue); + + public abstract void handleJudgeMsg(String taskStr, String queueName); + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/ChooseUtils.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/ChooseUtils.java new file mode 100644 index 0000000..0ee7a4c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/ChooseUtils.java @@ -0,0 +1,214 @@ +package top.hcode.hoj.judge; + +import com.alibaba.cloud.nacos.NacosDiscoveryProperties; +import com.alibaba.nacos.api.exception.NacosException; +import com.alibaba.nacos.api.naming.NamingService; +import com.alibaba.nacos.api.naming.pojo.Instance; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.mapper.RemoteJudgeAccountMapper; +import top.hcode.hoj.dao.judge.JudgeServerEntityService; +import top.hcode.hoj.pojo.entity.judge.JudgeServer; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/24 17:30 + * @Description: 筛选可用判题机 + */ +@Component +@Slf4j(topic = "hoj") +public class ChooseUtils { + + @Autowired + private NacosDiscoveryProperties discoveryProperties; + + @Value("${service-url.name}") + private String JudgeServiceName; + + @Autowired + private JudgeServerEntityService judgeServerEntityService; + + @Autowired + private RemoteJudgeAccountMapper remoteJudgeAccountMapper; + + public static final boolean openCodeforcesFixServer = false; + + /** + * @param + * @MethodName chooseServer + * @Description 选择可以用调用判题的判题服务器 + * @Return + * @Since 2021/4/15 + */ + @Transactional(rollbackFor = Exception.class) + public JudgeServer chooseServer(Boolean isRemote) { + // 获取该微服务的所有健康实例 + List instances = getInstances(JudgeServiceName); + if (instances.size() <= 0) { + return null; + } + List keyList = new ArrayList<>(); + // 获取当前健康实例取出ip和port拼接 + for (Instance instance : instances) { + keyList.add(instance.getIp() + ":" + instance.getPort()); + } + + // 过滤出小于或等于规定最大并发判题任务数的服务实例且健康的判题机 + QueryWrapper judgeServerQueryWrapper = new QueryWrapper<>(); + judgeServerQueryWrapper + .in("url", keyList) + .eq("is_remote", isRemote) + .orderByAsc("task_number") + .last("for update"); // 开启悲观锁 + + /** + * 如果一个条件无法通过索引快速过滤,存储引擎层面就会将所有记录加锁后返回, + * 再由MySQL Server层进行过滤,但在实际使用过程当中,MySQL做了一些改进, + * 在MySQL Server过滤条件,发现不满足后,会调用unlock_row方法, + * 把不满足条件的记录释放锁 (违背了二段锁协议的约束)。 + */ + List judgeServerList = judgeServerEntityService.list(judgeServerQueryWrapper); + + // 获取可用判题机 + for (JudgeServer judgeServer : judgeServerList) { + if (judgeServer.getTaskNumber() < judgeServer.getMaxTaskNumber()) { + judgeServer.setTaskNumber(judgeServer.getTaskNumber() + 1); + boolean isOk = judgeServerEntityService.updateById(judgeServer); + if (isOk) { + return judgeServer; + } + } + } + + return null; + } + + + @Transactional(rollbackFor = Exception.class) + public JudgeServer chooseFixedServer(Boolean isRemote, String fixedTag, Integer index, Integer total) { + // 获取该微服务的所有健康实例 + List instances = getInstances(JudgeServiceName); + if (instances.size() <= 0) { + return null; + } + List keyList = new ArrayList<>(); + // 获取当前健康实例取出ip和port拼接 + for (Instance instance : instances) { + keyList.add(instance.getIp() + ":" + instance.getPort()); + } + + // 过滤出小于或等于规定最大并发判题任务数的服务实例且健康的判题机 + QueryWrapper judgeServerQueryWrapper = new QueryWrapper<>(); + judgeServerQueryWrapper + .in("url", keyList) + .eq("is_remote", isRemote) + .last("for update"); // 开启悲观锁 + + /** + * 如果一个条件无法通过索引快速过滤,存储引擎层面就会将所有记录加锁后返回, + * 再由MySQL Server层进行过滤,但在实际使用过程当中,MySQL做了一些改进, + * 在MySQL Server过滤条件,发现不满足后,会调用unlock_row方法, + * 把不满足条件的记录释放锁 (违背了二段锁协议的约束)。 + */ + List judgeServerList = judgeServerEntityService.list(judgeServerQueryWrapper); + // CF的VJ判題需要一机一题(根据序号保持一定的固定) + int len = judgeServerList.size(); + for (int i = 0; i < len; i++) { + if (i % total == index) { + JudgeServer judgeServer = judgeServerList.get(i); + UpdateWrapper judgeServerUpdateWrapper = new UpdateWrapper<>(); + judgeServerUpdateWrapper.set(fixedTag, false) + .eq("id", judgeServer.getId()) + .eq(fixedTag, true); + boolean isOk = judgeServerEntityService.update(judgeServerUpdateWrapper); + if (isOk) { + return judgeServer; + } + } + } + return null; + } + + + /** + * @param serviceId + * @MethodName getInstances + * @Description 根据服务id获取对应的健康实例列表 + * @Return + * @Since 2021/4/15 + */ + private List getInstances(String serviceId) { + // 获取服务发现的相关API + NamingService namingService = discoveryProperties.namingServiceInstance(); + try { + // 获取该微服务的所有健康实例 + return namingService.selectInstances(serviceId, true); + } catch (NacosException e) { + log.error("获取微服务健康实例发生异常--------->{}", e); + return Collections.emptyList(); + } + } + + @Transactional(rollbackFor = Exception.class) + public RemoteJudgeAccount chooseRemoteAccount(String remoteOJAccountType, String username, Boolean isNeedAccountRejudge) { + + // 过滤出当前远程oj可用的账号列表 悲观锁 + List remoteJudgeAccountList = remoteJudgeAccountMapper.getAvailableAccount(remoteOJAccountType); + + for (RemoteJudgeAccount remoteJudgeAccount : remoteJudgeAccountList) { + // POJ已有submitId的重判需要使用原来的账号获取结果 + if (isNeedAccountRejudge) { + if (remoteJudgeAccount.getUsername().equals(username)) { + int count = remoteJudgeAccountMapper.updateAccountStatusById(remoteJudgeAccount.getId()); + if (count > 0) { + return remoteJudgeAccount; + } + } + } else { + int count = remoteJudgeAccountMapper.updateAccountStatusById(remoteJudgeAccount.getId()); + if (count > 0) { + return remoteJudgeAccount; + } + } + } + + return null; + } + + @Transactional(rollbackFor = Exception.class) + public HashMap chooseFixedAccount(String remoteOJAccountType) { + List instances = getInstances(JudgeServiceName); + // 过滤出当前远程可用的账号列表 悲观锁 + QueryWrapper remoteJudgeAccountQueryWrapper = new QueryWrapper<>(); + remoteJudgeAccountQueryWrapper.eq("oj", remoteOJAccountType) + .last("for update"); + + List remoteJudgeAccountList = remoteJudgeAccountMapper.selectList(remoteJudgeAccountQueryWrapper); + int len = remoteJudgeAccountList.size(); + for (int i = 0; i < len && i < instances.size(); i++) { + RemoteJudgeAccount remoteJudgeAccount = remoteJudgeAccountList.get(i); + int count = remoteJudgeAccountMapper.updateAccountStatusById(remoteJudgeAccount.getId()); + if (count > 0) { + HashMap result = new HashMap<>(); + result.put("index", i); + result.put("size", len); + result.put("account", remoteJudgeAccount); + return result; + } + } + return null; + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/Dispatcher.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/Dispatcher.java new file mode 100644 index 0000000..cc85a49 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/Dispatcher.java @@ -0,0 +1,379 @@ +package top.hcode.hoj.judge; + + +import cn.hutool.core.lang.UUID; +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import org.springframework.web.client.RestTemplate; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.judge.JudgeServerEntityService; +import top.hcode.hoj.dao.judge.impl.RemoteJudgeAccountEntityServiceImpl; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.dto.TestJudgeReq; +import top.hcode.hoj.pojo.dto.TestJudgeRes; +import top.hcode.hoj.pojo.dto.ToJudgeDTO; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.judge.JudgeServer; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import java.util.Map; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/15 17:29 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class Dispatcher { + + @Autowired + private RestTemplate restTemplate; + + @Autowired + private JudgeServerEntityService judgeServerEntityService; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private ChooseUtils chooseUtils; + + @Autowired + private RedisUtils redisUtils; + + private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(20); + + private final static Map futureTaskMap = new ConcurrentHashMap<>(20); + + @Autowired + private RemoteJudgeAccountEntityServiceImpl remoteJudgeAccountService; + + public CommonResult dispatcherJudge(String type, String path, Object data) { + switch (type) { + case "judge": + ToJudgeDTO judgeData = (ToJudgeDTO) data; + toJudge(path, judgeData, judgeData.getJudge().getSubmitId(), judgeData.getRemoteJudgeProblem() != null); + break; + case "compile": + CompileDTO compileDTO = (CompileDTO) data; + return toCompile(path, compileDTO); + default: + throw new IllegalArgumentException("判题机不支持此调用类型"); + } + return null; + } + + public void dispatcherTestJudge(TestJudgeReq testJudgeReq, String path) { + AtomicInteger count = new AtomicInteger(0); + String key = testJudgeReq.getUniqueKey(); + Runnable getResultTask = () -> { + if (count.get() > 300) { // 300次失败则判为提交失败 + Future future = futureTaskMap.get(key); + if (future != null) { + boolean isCanceled = future.cancel(true); + if (isCanceled) { + futureTaskMap.remove(key); + } + } + return; + } + count.getAndIncrement(); + JudgeServer judgeServer = chooseUtils.chooseServer(false); + + if (judgeServer != null) { // 获取到判题机资源 + try { + JSONObject resultJson = restTemplate.postForObject("http://" + judgeServer.getUrl() + path, testJudgeReq, JSONObject.class); + if (resultJson != null) { + if (resultJson.getInt("status") == ResultStatus.SUCCESS.getStatus()) { + TestJudgeRes testJudgeRes = resultJson.getBean("data", TestJudgeRes.class); + testJudgeRes.setInput(testJudgeReq.getTestCaseInput()); + testJudgeRes.setExpectedOutput(testJudgeReq.getExpectedOutput()); + testJudgeRes.setProblemJudgeMode(testJudgeReq.getProblemJudgeMode()); + redisUtils.set(testJudgeReq.getUniqueKey(), testJudgeRes, 60); + } else { + TestJudgeRes testJudgeRes = TestJudgeRes.builder() + .status(Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()) + .time(0L) + .memory(0L) + .stderr(resultJson.getStr("msg")) + .build(); + redisUtils.set(testJudgeReq.getUniqueKey(), testJudgeRes, 60); + } + } + } catch (Exception e) { + log.error("调用判题服务器[" + judgeServer.getUrl() + "]发送异常-------------->", e); + TestJudgeRes testJudgeRes = TestJudgeRes.builder() + .status(Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()) + .time(0L) + .memory(0L) + .stderr("Failed to connect the judgeServer. Please resubmit this submission again!") + .build(); + redisUtils.set(testJudgeReq.getUniqueKey(), testJudgeRes, 60); + } finally { + // 无论成功与否,都要将对应的当前判题机当前判题数减1 + reduceCurrentTaskNum(judgeServer.getId()); + Future future = futureTaskMap.get(key); + if (future != null) { + boolean isCanceled = future.cancel(true); + if (isCanceled) { + futureTaskMap.remove(key); + } + } + } + } + }; + ScheduledFuture scheduledFuture = scheduler.scheduleWithFixedDelay(getResultTask, 0, 1, TimeUnit.SECONDS); + futureTaskMap.put(key, scheduledFuture); + } + + + public void toJudge(String path, ToJudgeDTO data, Long submitId, Boolean isRemote) { + + String oj = null; + if (isRemote) { + oj = data.getRemoteJudgeProblem().split("-")[0]; + if (oj.equals("GYM")) { + oj = "CF"; + } + } + + // 如果是vj判題,同时不是已有提交id的获取结果操作,归属于CF的判題,需要控制判题机的权限,一机一题 + boolean isCFFixServerJudge = isRemote + && ChooseUtils.openCodeforcesFixServer + && !data.getIsHasSubmitIdRemoteReJudge() + && Constants.RemoteOJ.CODEFORCES.getName().equals(oj); + + // 尝试600s + AtomicInteger count = new AtomicInteger(0); + String key = UUID.randomUUID().toString() + submitId; + final String finalOj = oj; + Runnable getResultTask = () -> { + if (count.get() > 300) { // 300次失败则判为提交失败 + if (isRemote) { // 远程判题需要将账号归为可用 + changeRemoteJudgeStatus(finalOj, data.getUsername(), null); + } + checkResult(null, submitId); + Future future = futureTaskMap.get(key); + if (future != null) { + boolean isCanceled = future.cancel(true); + if (isCanceled) { + futureTaskMap.remove(key); + } + } + return; + } + count.getAndIncrement(); + JudgeServer judgeServer = null; + if (!isCFFixServerJudge) { + judgeServer = chooseUtils.chooseServer(isRemote); + } else { + judgeServer = chooseUtils.chooseFixedServer(true, "cf_submittable", data.getIndex(), data.getSize()); + } + + if (judgeServer != null) { // 获取到判题机资源 + data.setJudgeServerIp(judgeServer.getIp()); + data.setJudgeServerPort(judgeServer.getPort()); + CommonResult result = null; + try { + result = restTemplate.postForObject("http://" + judgeServer.getUrl() + path, data, CommonResult.class); + } catch (Exception e) { + log.error("调用判题服务器[" + judgeServer.getUrl() + "]发送异常-------------->", e); + if (isRemote) { + changeRemoteJudgeStatus(finalOj, data.getUsername(), judgeServer); + } + } finally { + checkResult(result, submitId); + if (!isCFFixServerJudge) { + // 无论成功与否,都要将对应的当前判题机当前判题数减1 + reduceCurrentTaskNum(judgeServer.getId()); + } + Future future = futureTaskMap.get(key); + if (future != null) { + boolean isCanceled = future.cancel(true); + if (isCanceled) { + futureTaskMap.remove(key); + } + } + } + } + }; + ScheduledFuture scheduledFuture = scheduler.scheduleWithFixedDelay(getResultTask, 0, 2, TimeUnit.SECONDS); + futureTaskMap.put(key, scheduledFuture); + } + + + public CommonResult toCompile(String path, CompileDTO data) { + CommonResult result = CommonResult.errorResponse("没有可用的判题服务器,请重新尝试!"); + JudgeServer judgeServer = chooseUtils.chooseServer(false); + if (judgeServer != null) { + try { + result = restTemplate.postForObject("http://" + judgeServer.getUrl() + path, data, CommonResult.class); + } catch (Exception e) { + log.error("调用判题服务器[" + judgeServer.getUrl() + "]发送异常-------------->", e.getMessage()); + } finally { + // 无论成功与否,都要将对应的当前判题机当前判题数减1 + reduceCurrentTaskNum(judgeServer.getId()); + } + } + return result; + } + + + private void checkResult(CommonResult result, Long submitId) { + + Judge judge = new Judge(); + if (result == null) { // 调用失败 + judge.setSubmitId(submitId); + judge.setStatus(Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()); + judge.setErrorMessage("Failed to connect the judgeServer. Please resubmit this submission again!"); + judgeEntityService.updateById(judge); + } else { + if (result.getStatus() != ResultStatus.SUCCESS.getStatus()) { // 如果是结果码不是200 说明调用有错误 + // 判为系统错误 + judge.setStatus(Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()) + .setErrorMessage(result.getMsg()); + judgeEntityService.updateById(judge); + } + } + + } + + public void reduceCurrentTaskNum(Integer id) { + UpdateWrapper judgeServerUpdateWrapper = new UpdateWrapper<>(); + judgeServerUpdateWrapper.setSql("task_number = task_number-1").eq("id", id); + boolean isOk = judgeServerEntityService.update(judgeServerUpdateWrapper); + if (!isOk) { // 重试八次 + tryAgainUpdateJudge(judgeServerUpdateWrapper); + } + } + + public void tryAgainUpdateJudge(UpdateWrapper updateWrapper) { + boolean retryable; + int attemptNumber = 0; + do { + boolean success = judgeServerEntityService.update(updateWrapper); + if (success) { + return; + } else { + attemptNumber++; + retryable = attemptNumber < 8; + if (attemptNumber == 8) { + break; + } + try { + Thread.sleep(300); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } while (retryable); + } + + + public void changeRemoteJudgeStatus(String oj, String username, JudgeServer judgeServer) { + changeAccountStatus(oj, username); + if (ChooseUtils.openCodeforcesFixServer) { + if (oj.equals(Constants.RemoteOJ.CODEFORCES.getName()) + || oj.equals(Constants.RemoteOJ.GYM.getName())) { + if (judgeServer != null) { + changeServerSubmitCFStatus(judgeServer.getIp(), judgeServer.getPort()); + } + } + } + } + + + public void changeAccountStatus(String remoteJudge, String username) { + + UpdateWrapper remoteJudgeAccountUpdateWrapper = new UpdateWrapper<>(); + remoteJudgeAccountUpdateWrapper.set("status", true) + .eq("status", false) + .eq("username", username); + if (remoteJudge.equals("GYM")) { + remoteJudge = "CF"; + } + remoteJudgeAccountUpdateWrapper.eq("oj", remoteJudge); + + boolean isOk = remoteJudgeAccountService.update(remoteJudgeAccountUpdateWrapper); + + if (!isOk) { // 重试8次 + tryAgainUpdateAccount(remoteJudgeAccountUpdateWrapper, remoteJudge, username); + } + } + + + private void tryAgainUpdateAccount(UpdateWrapper updateWrapper, String remoteJudge, String username) { + boolean retryable; + int attemptNumber = 0; + do { + boolean success = remoteJudgeAccountService.update(updateWrapper); + if (success) { + return; + } else { + attemptNumber++; + retryable = attemptNumber < 8; + if (attemptNumber == 8) { + log.error("远程判题:修正账号为可用状态失败----------->{}", "oj:" + remoteJudge + ",username:" + username); + break; + } + try { + Thread.sleep(300); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } while (retryable); + } + + + public void changeServerSubmitCFStatus(String ip, Integer port) { + + if (StringUtils.isEmpty(ip) || port == null) { + return; + } + UpdateWrapper judgeServerUpdateWrapper = new UpdateWrapper<>(); + judgeServerUpdateWrapper.set("cf_submittable", true) + .eq("ip", ip) + .eq("is_remote", true) + .eq("port", port); + boolean isOk = judgeServerEntityService.update(judgeServerUpdateWrapper); + + if (!isOk) { // 重试8次 + tryAgainUpdateServer(judgeServerUpdateWrapper, ip, port); + } + } + + private void tryAgainUpdateServer(UpdateWrapper updateWrapper, String ip, Integer port) { + boolean retryable; + int attemptNumber = 0; + do { + boolean success = judgeServerEntityService.update(updateWrapper); + if (success) { + return; + } else { + attemptNumber++; + retryable = attemptNumber < 8; + if (attemptNumber == 8) { + log.error("Remote Judge:Change CF Judge Server Status to `true` Failed! =======>{}", "ip:" + ip + ",port:" + port); + break; + } + try { + Thread.sleep(300); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } while (retryable); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/remote/RemoteJudgeDispatcher.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/remote/RemoteJudgeDispatcher.java new file mode 100644 index 0000000..4714b73 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/remote/RemoteJudgeDispatcher.java @@ -0,0 +1,61 @@ +package top.hcode.hoj.judge.remote; + + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + + +@Component +@Slf4j(topic = "hoj") +@RefreshScope +public class RemoteJudgeDispatcher { + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private RemoteJudgeReceiver remoteJudgeReceiver; + + @Value("${hoj.judge.token}") + private String judgeToken; + + public void sendTask(Long judgeId, Long pid, String remoteJudgeProblem, Boolean isContest, Boolean isHasSubmitIdRemoteReJudge) { + JSONObject task = new JSONObject(); + task.set("judgeId", judgeId); + task.set("remoteJudgeProblem", remoteJudgeProblem); + task.set("token", judgeToken); + task.set("isContest", isContest); + task.set("isHasSubmitIdRemoteReJudge", isHasSubmitIdRemoteReJudge); + try { + boolean isOk; + if (isContest) { + isOk = redisUtils.llPush(Constants.Queue.CONTEST_REMOTE_JUDGE_WAITING_HANDLE.getName(), JSONUtil.toJsonStr(task)); + } else { + isOk = redisUtils.llPush(Constants.Queue.GENERAL_REMOTE_JUDGE_WAITING_HANDLE.getName(), JSONUtil.toJsonStr(task)); + } + if (!isOk) { + judgeEntityService.updateById(new Judge() + .setSubmitId(judgeId) + .setStatus(Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()) + .setErrorMessage("Call Redis to push task error. Please try to submit again!") + ); + } + remoteJudgeReceiver.processWaitingTask(); + } catch (Exception e) { + log.error("调用redis将判题纳入判题等待队列异常,此次判题任务判为系统错误--------------->", e); + judgeEntityService.failToUseRedisPublishJudge(judgeId, pid, isContest); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/remote/RemoteJudgeReceiver.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/remote/RemoteJudgeReceiver.java new file mode 100644 index 0000000..99550ae --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/remote/RemoteJudgeReceiver.java @@ -0,0 +1,329 @@ +package top.hcode.hoj.judge.remote; + +import cn.hutool.core.lang.UUID; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.judge.RemoteJudgeAccountEntityService; +import top.hcode.hoj.judge.AbstractReceiver; +import top.hcode.hoj.judge.ChooseUtils; +import top.hcode.hoj.judge.Dispatcher; +import top.hcode.hoj.pojo.dto.ToJudgeDTO; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; +import top.hcode.hoj.pojo.vo.ConfigVo; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicInteger; + +@Component +public class RemoteJudgeReceiver extends AbstractReceiver { + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private Dispatcher dispatcher; + + @Autowired + private RedisUtils redisUtils; + + @Resource + private ChooseUtils chooseUtils; + + @Autowired + private ConfigVo configVo; + + @Autowired + private ContestRecordEntityService contestRecordEntityService; + + @Autowired + private RemoteJudgeAccountEntityService remoteJudgeAccountEntityService; + + private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(10); + + private final static Map futureTaskMap = new ConcurrentHashMap<>(10); + + @Async("judgeTaskAsyncPool") + public void processWaitingTask() { + // 优先处理比赛的提交 + // 其次处理普通提交的提交 + handleWaitingTask(Constants.Queue.CONTEST_REMOTE_JUDGE_WAITING_HANDLE.getName(), + Constants.Queue.GENERAL_REMOTE_JUDGE_WAITING_HANDLE.getName()); + } + + @Override + public String getTaskByRedis(String queue) { + if (redisUtils.lGetListSize(queue) > 0) { + return (String) redisUtils.lrPop(queue); + } else { + return null; + } + } + + @Override + public void handleJudgeMsg(String taskStr, String queueName) { + JSONObject task = JSONUtil.parseObj(taskStr); + String token = task.getStr("token"); + String remoteJudgeProblem = task.getStr("remoteJudgeProblem"); + Boolean isHasSubmitIdRemoteReJudge = task.getBool("isHasSubmitIdRemoteReJudge"); + String remoteOJName = remoteJudgeProblem.split("-")[0].toUpperCase(); + Long judgeId = task.getLong("judgeId"); + Judge judge = judgeEntityService.getById(judgeId); + if (judge != null) { + if (Objects.equals(judge.getStatus(), Constants.Judge.STATUS_CANCELLED.getStatus())) { + if (judge.getCid() != 0) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + // 取消评测,不罚时也不算得分 + updateWrapper.set("status", Constants.Contest.RECORD_NOT_AC_NOT_PENALTY.getCode()); + updateWrapper.eq("submit_id", judge.getSubmitId()); // submit_id一定只有一个 + contestRecordEntityService.update(updateWrapper); + } + }else { + dispatchRemoteJudge(judge, + token, + remoteJudgeProblem, + isHasSubmitIdRemoteReJudge, + remoteOJName); + } + } + } + + private void dispatchRemoteJudge(Judge judge, String token, String remoteJudgeProblem, + Boolean isHasSubmitIdRemoteReJudge, String remoteOJName) { + + ToJudgeDTO toJudgeDTO = new ToJudgeDTO(); + toJudgeDTO.setJudge(judge) + .setToken(token) + .setRemoteJudgeProblem(remoteJudgeProblem); + Constants.RemoteOJ remoteOJ = Constants.RemoteOJ.getRemoteOJ(remoteOJName); + if (!checkExistedAccountByOJ(remoteOJ)) { + judge.setStatus(Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()); + judge.setErrorMessage("System Error! Cause: The System does not have [" + remoteOJ + "] account configured. " + + "Please report the matter to the administrator!"); + judgeEntityService.updateById(judge); + } else { + if (remoteOJName.equals(Constants.RemoteOJ.CODEFORCES.getName()) + || remoteOJName.equals(Constants.RemoteOJ.GYM.getName())) { + if (ChooseUtils.openCodeforcesFixServer) { + fixServerCFJudge(isHasSubmitIdRemoteReJudge, toJudgeDTO, judge); + } else { + commonJudge(Constants.RemoteOJ.CODEFORCES.getName(), isHasSubmitIdRemoteReJudge, toJudgeDTO, judge); + } + } else if (remoteOJName.equals(Constants.RemoteOJ.POJ.getName())) { + pojJudge(isHasSubmitIdRemoteReJudge, toJudgeDTO, judge); + } else { + commonJudge(remoteOJName, isHasSubmitIdRemoteReJudge, toJudgeDTO, judge); + } + } + // 如果队列中还有任务,则继续处理 + processWaitingTask(); + } + + + private void commonJudge(String OJName, Boolean isHasSubmitIdRemoteReJudge, ToJudgeDTO toJudgeDTO, Judge judge) { + + if (isHasSubmitIdRemoteReJudge) { + toJudgeDTO.setIsHasSubmitIdRemoteReJudge(true); + toJudgeDTO.setUsername(judge.getVjudgeUsername()); + toJudgeDTO.setPassword(judge.getVjudgePassword()); + // 调用判题服务 + dispatcher.dispatcherJudge("judge", "/remote-judge", toJudgeDTO); + return; + } + + // 尝试600s + AtomicInteger tryNum = new AtomicInteger(0); + String key = UUID.randomUUID().toString() + toJudgeDTO.getJudge().getSubmitId(); + Runnable getResultTask = new Runnable() { + @Override + public void run() { + if (tryNum.get() > 200) { + // 获取调用多次失败可能为系统忙碌,判为提交失败 + judge.setStatus(Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()); + judge.setErrorMessage("Submission failed! Please resubmit this submission again!" + + "Cause: Waiting for account scheduling timeout."); + judgeEntityService.updateById(judge); + Future future = futureTaskMap.get(key); + if (future != null) { + boolean isCanceled = future.cancel(true); + if (isCanceled) { + futureTaskMap.remove(key); + } + } + return; + } + tryNum.getAndIncrement(); + RemoteJudgeAccount account = chooseUtils.chooseRemoteAccount(OJName, judge.getVjudgeUsername(), false); + if (account != null) { + toJudgeDTO.setUsername(account.getUsername()) + .setPassword(account.getPassword()); + toJudgeDTO.setIsHasSubmitIdRemoteReJudge(false); + // 调用判题服务 + dispatcher.dispatcherJudge("judge", "/remote-judge", toJudgeDTO); + Future future = futureTaskMap.get(key); + if (future != null) { + future.cancel(true); + futureTaskMap.remove(key); + } + } + } + }; + ScheduledFuture scheduledFuture = scheduler.scheduleWithFixedDelay(getResultTask, 0, 3, TimeUnit.SECONDS); + futureTaskMap.put(key, scheduledFuture); + } + + + private void pojJudge(Boolean isHasSubmitIdRemoteReJudge, ToJudgeDTO toJudgeDTO, Judge judge) { + + + if (StringUtils.isEmpty(judge.getVjudgeUsername())) { + isHasSubmitIdRemoteReJudge = false; + } + + if (isHasSubmitIdRemoteReJudge) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("oj", Constants.RemoteOJ.POJ.getName()) + .eq("username", judge.getVjudgeUsername()); + int count = remoteJudgeAccountEntityService.count(queryWrapper); + if (count == 0) { + // poj以往的账号丢失了,那么只能重新从头到尾提交 + isHasSubmitIdRemoteReJudge = false; + } + } + + // 尝试600s + AtomicInteger tryNum = new AtomicInteger(0); + String key = UUID.randomUUID().toString() + toJudgeDTO.getJudge().getSubmitId(); + boolean finalIsHasSubmitIdRemoteReJudge = isHasSubmitIdRemoteReJudge; + Runnable getResultTask = new Runnable() { + @Override + public void run() { + if (tryNum.get() > 200) { + // 获取调用多次失败可能为系统忙碌,判为提交失败 + judge.setStatus(Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()); + judge.setErrorMessage("Submission failed! Please resubmit this submission again!" + + "Cause: Waiting for account scheduling timeout"); + judgeEntityService.updateById(judge); + Future future = futureTaskMap.get(key); + if (future != null) { + boolean isCanceled = future.cancel(true); + if (isCanceled) { + futureTaskMap.remove(key); + } + } + return; + } + tryNum.getAndIncrement(); + RemoteJudgeAccount account = chooseUtils.chooseRemoteAccount(Constants.RemoteOJ.POJ.getName() + , judge.getVjudgeUsername(), finalIsHasSubmitIdRemoteReJudge); + if (account != null) { + toJudgeDTO.setUsername(account.getUsername()) + .setPassword(account.getPassword()); + toJudgeDTO.setIsHasSubmitIdRemoteReJudge(finalIsHasSubmitIdRemoteReJudge); + // 调用判题服务 + dispatcher.dispatcherJudge("judge", "/remote-judge", toJudgeDTO); + Future future = futureTaskMap.get(key); + if (future != null) { + future.cancel(true); + futureTaskMap.remove(key); + } + } + } + }; + ScheduledFuture scheduledFuture = scheduler.scheduleWithFixedDelay(getResultTask, 0, 3, TimeUnit.SECONDS); + futureTaskMap.put(key, scheduledFuture); + } + + private void fixServerCFJudge(Boolean isHasSubmitIdRemoteReJudge, ToJudgeDTO toJudgeDTO, Judge judge) { + + if (isHasSubmitIdRemoteReJudge) { + toJudgeDTO.setIsHasSubmitIdRemoteReJudge(true); + toJudgeDTO.setUsername(judge.getVjudgeUsername()); + toJudgeDTO.setPassword(judge.getVjudgePassword()); + // 调用判题服务 + dispatcher.dispatcherJudge("judge", "/remote-judge", toJudgeDTO); + return; + } + + // 尝试600s + String key = UUID.randomUUID().toString() + toJudgeDTO.getJudge().getSubmitId(); + AtomicInteger tryNum = new AtomicInteger(0); + Runnable getResultTask = new Runnable() { + @Override + public void run() { + if (tryNum.get() > 200) { + // 获取调用多次失败可能为系统忙碌,判为提交失败 + judge.setStatus(Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()); + judge.setErrorMessage("Submission failed! Please resubmit this submission again!" + + "Cause: Waiting for account scheduling timeout"); + judgeEntityService.updateById(judge); + Future future = futureTaskMap.get(key); + if (future != null) { + boolean isCanceled = future.cancel(true); + if (isCanceled) { + futureTaskMap.remove(key); + } + } + return; + } + tryNum.getAndIncrement(); + HashMap result = chooseUtils.chooseFixedAccount(Constants.RemoteOJ.CODEFORCES.getName()); + if (result != null) { + RemoteJudgeAccount account = (RemoteJudgeAccount) result.get("account"); + int index = (int) result.get("index"); + int size = (int) result.get("size"); + toJudgeDTO.setUsername(account.getUsername()) + .setPassword(account.getPassword()); + toJudgeDTO.setIsHasSubmitIdRemoteReJudge(false); + toJudgeDTO.setIndex(index); + toJudgeDTO.setSize(size); + // 调用判题服务 + dispatcher.dispatcherJudge("judge", "/remote-judge", toJudgeDTO); + Future future = futureTaskMap.get(key); + if (future != null) { + future.cancel(true); + futureTaskMap.remove(key); + } + } + } + }; + ScheduledFuture scheduledFuture = scheduler.scheduleWithFixedDelay(getResultTask, 0, 3, TimeUnit.SECONDS); + futureTaskMap.put(key, scheduledFuture); + } + + private boolean checkExistedAccountByOJ(Constants.RemoteOJ remoteOJ) { + if (remoteOJ == null) { + return false; + } + switch (remoteOJ) { + case GYM: + case CODEFORCES: + return !CollectionUtils.isEmpty(configVo.getCfUsernameList()); + case POJ: + return !CollectionUtils.isEmpty(configVo.getPojUsernameList()); + case HDU: + return !CollectionUtils.isEmpty(configVo.getHduUsernameList()); + case SPOJ: + return !CollectionUtils.isEmpty(configVo.getSpojUsernameList()); + case ATCODER: + return !CollectionUtils.isEmpty(configVo.getAtcoderUsernameList()); + } + return false; + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/self/JudgeDispatcher.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/self/JudgeDispatcher.java new file mode 100644 index 0000000..684ed19 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/self/JudgeDispatcher.java @@ -0,0 +1,81 @@ +package top.hcode.hoj.judge.self; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.pojo.dto.TestJudgeReq; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +/** + * @Author: Himit_ZH + * @Date: 2021/2/5 16:44 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +@RefreshScope +public class JudgeDispatcher { + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private JudgeReceiver judgeReceiver; + + @Value("${hoj.judge.token}") + private String judgeToken; + + public void sendTask(Long judgeId, Long pid, Boolean isContest) { + JSONObject task = new JSONObject(); + task.set("judgeId", judgeId); + task.set("token", judgeToken); + task.set("isContest", isContest); + try { + boolean isOk; + if (isContest) { + isOk = redisUtils.llPush(Constants.Queue.CONTEST_JUDGE_WAITING.getName(), JSONUtil.toJsonStr(task)); + } else { + isOk = redisUtils.llPush(Constants.Queue.GENERAL_JUDGE_WAITING.getName(), JSONUtil.toJsonStr(task)); + } + if (!isOk) { + judgeEntityService.updateById(new Judge() + .setSubmitId(judgeId) + .setStatus(Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()) + .setErrorMessage("Call Redis to push task error. Please try to submit again!") + ); + } + // 调用判题任务处理 + judgeReceiver.processWaitingTask(); + } catch (Exception e) { + log.error("调用redis将判题纳入判题等待队列异常--------------->{}", e.getMessage()); + judgeEntityService.failToUseRedisPublishJudge(judgeId, pid, isContest); + } + } + + public void sendTestJudgeTask(TestJudgeReq testJudgeReq) throws StatusSystemErrorException { + testJudgeReq.setToken(judgeToken); + try { + boolean isOk = redisUtils.llPush(Constants.Queue.TEST_JUDGE_WAITING.getName(), JSONUtil.toJsonStr(testJudgeReq)); + if (!isOk) { + throw new StatusSystemErrorException("系统错误:当前评测任务进入等待队列失败!"); + } + // 调用判题任务处理 + judgeReceiver.processWaitingTask(); + } catch (Exception e) { + log.error("调用redis将判题纳入判题等待队列异常--------------->{}", e.getMessage()); + throw new StatusSystemErrorException("系统错误:当前评测任务进入等待队列失败!"); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/self/JudgeReceiver.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/self/JudgeReceiver.java new file mode 100644 index 0000000..b65e15f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/judge/self/JudgeReceiver.java @@ -0,0 +1,99 @@ +package top.hcode.hoj.judge.self; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.judge.AbstractReceiver; +import top.hcode.hoj.judge.Dispatcher; +import top.hcode.hoj.pojo.dto.TestJudgeReq; +import top.hcode.hoj.pojo.dto.ToJudgeDTO; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import java.util.Objects; + +/** + * @Author: Himit_ZH + * @Date: 2021/2/5 16:43 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class JudgeReceiver extends AbstractReceiver { + + @Autowired + private Dispatcher dispatcher; + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private ContestRecordEntityService contestRecordEntityService; + + @Async("judgeTaskAsyncPool") + public void processWaitingTask() { + // 优先处理比赛的提交任务 + // 其次处理普通提交的提交任务 + // 最后处理在线调试的任务 + handleWaitingTask(Constants.Queue.CONTEST_JUDGE_WAITING.getName(), + Constants.Queue.GENERAL_JUDGE_WAITING.getName(), + Constants.Queue.TEST_JUDGE_WAITING.getName()); + } + + + @Override + public String getTaskByRedis(String queue) { + long size = redisUtils.lGetListSize(queue); + if (size > 0) { + return (String) redisUtils.lrPop(queue); + } else { + return null; + } + } + + @Override + public void handleJudgeMsg(String taskStr, String queueName) { + if (Constants.Queue.TEST_JUDGE_WAITING.getName().equals(queueName)) { + TestJudgeReq testJudgeReq = JSONUtil.toBean(taskStr, TestJudgeReq.class); + dispatcher.dispatcherTestJudge(testJudgeReq, "/test-judge"); + } else { + JSONObject task = JSONUtil.parseObj(taskStr); + Long judgeId = task.getLong("judgeId"); + Judge judge = judgeEntityService.getById(judgeId); + if (judge != null) { + // 调度评测时发现该评测任务被取消,则结束评测 + if (Objects.equals(judge.getStatus(), Constants.Judge.STATUS_CANCELLED.getStatus())) { + if (judge.getCid() != 0) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + // 取消评测,不罚时也不算得分 + updateWrapper.set("status", Constants.Contest.RECORD_NOT_AC_NOT_PENALTY.getCode()); + updateWrapper.eq("submit_id", judge.getSubmitId()); // submit_id一定只有一个 + contestRecordEntityService.update(updateWrapper); + } + } else { + String token = task.getStr("token"); + // 调用判题服务 + dispatcher.dispatcherJudge("judge", "/judge", new ToJudgeDTO() + .setJudge(judge) + .setToken(token) + .setRemoteJudgeProblem(null)); + } + } + + } + // 接着处理任务 + processWaitingTask(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/account/AdminAccountManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/account/AdminAccountManager.java new file mode 100644 index 0000000..9e33fa3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/account/AdminAccountManager.java @@ -0,0 +1,100 @@ +package top.hcode.hoj.manager.admin.account; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.crypto.SecureUtil; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import top.hcode.hoj.common.exception.StatusAccessDeniedException; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.pojo.dto.LoginDto; +import top.hcode.hoj.pojo.entity.user.Role; +import top.hcode.hoj.pojo.entity.user.Session; +import top.hcode.hoj.pojo.vo.UserInfoVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.user.SessionEntityService; +import top.hcode.hoj.dao.user.UserRoleEntityService; +import top.hcode.hoj.utils.IpUtils; +import top.hcode.hoj.utils.JwtUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 10:32 + * @Description: + */ +@Component +public class AdminAccountManager { + + @Autowired + private SessionEntityService sessionEntityService; + + @Autowired + private JwtUtils jwtUtils; + + @Autowired + private UserRoleEntityService userRoleEntityService; + + public UserInfoVo login(LoginDto loginDto) throws StatusFailException, StatusAccessDeniedException { + + UserRolesVo userRolesVo = userRoleEntityService.getUserRoles(null, loginDto.getUsername()); + + if (userRolesVo == null) { + throw new StatusFailException("用户名不存在"); + } + + if (!userRolesVo.getPassword().equals(SecureUtil.md5(loginDto.getPassword()))) { + throw new StatusFailException("密码不正确"); + } + + if (userRolesVo.getStatus() != 0) { + throw new StatusFailException("该账户已被封禁,请联系管理员进行处理!"); + } + + // 查询用户角色 + List rolesList = new LinkedList<>(); + userRolesVo.getRoles().stream() + .forEach(role -> rolesList.add(role.getRole())); + + + if (rolesList.contains("admin") || rolesList.contains("root") || rolesList.contains("problem_admin")) { // 超级管理员或管理员、题目管理员 + String jwt = jwtUtils.generateToken(userRolesVo.getUid()); + + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = servletRequestAttributes.getRequest(); + HttpServletResponse response = servletRequestAttributes.getResponse(); + + response.setHeader("Authorization", jwt); //放到信息头部 + response.setHeader("Access-Control-Expose-Headers", "Authorization"); + // 会话记录 + sessionEntityService.save(new Session().setUid(userRolesVo.getUid()) + .setIp(IpUtils.getUserIpAddr(request)).setUserAgent(request.getHeader("User-Agent"))); + // 异步检查是否异地登录 + sessionEntityService.checkRemoteLogin(userRolesVo.getUid()); + + UserInfoVo userInfoVo = new UserInfoVo(); + BeanUtil.copyProperties(userRolesVo, userInfoVo, "roles"); + userInfoVo.setRoleList(userRolesVo.getRoles() + .stream() + .map(Role::getRole) + .collect(Collectors.toList())); + + return userInfoVo; + } else { + throw new StatusAccessDeniedException("该账号并非管理员账号,无权登录!"); + } + } + + public void logout(){ + SecurityUtils.getSubject().logout(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/announcement/AdminAnnouncementManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/announcement/AdminAnnouncementManager.java new file mode 100644 index 0000000..82aa69a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/announcement/AdminAnnouncementManager.java @@ -0,0 +1,52 @@ +package top.hcode.hoj.manager.admin.announcement; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.dao.common.AnnouncementEntityService; + + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 21:40 + * @Description: + */ +@Component +public class AdminAnnouncementManager { + + @Autowired + private AnnouncementEntityService announcementEntityService; + + public IPage getAnnouncementList(Integer limit, Integer currentPage) { + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + return announcementEntityService.getAnnouncementList(limit, currentPage, false); + + } + + public void deleteAnnouncement(long aid) throws StatusFailException { + boolean isOk = announcementEntityService.removeById(aid); + if (!isOk) { + throw new StatusFailException("删除失败"); + } + } + + + public void addAnnouncement(Announcement announcement) throws StatusFailException { + boolean isOk = announcementEntityService.save(announcement); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + } + + public void updateAnnouncement(Announcement announcement) throws StatusFailException { + boolean isOk = announcementEntityService.saveOrUpdate(announcement); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestAnnouncementManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestAnnouncementManager.java new file mode 100644 index 0000000..861fc7d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestAnnouncementManager.java @@ -0,0 +1,59 @@ +package top.hcode.hoj.manager.admin.contest; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.pojo.dto.AnnouncementDto; +import top.hcode.hoj.pojo.entity.contest.ContestAnnouncement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.dao.common.AnnouncementEntityService; +import top.hcode.hoj.dao.contest.ContestAnnouncementEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 11:19 + * @Description: + */ +@Component +public class AdminContestAnnouncementManager { + + @Autowired + private AnnouncementEntityService announcementEntityService; + + @Autowired + private ContestAnnouncementEntityService contestAnnouncementEntityService; + + public IPage getAnnouncementList(Integer limit, Integer currentPage, Long cid){ + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + return announcementEntityService.getContestAnnouncement(cid, false, limit, currentPage); + } + + public void deleteAnnouncement(Long aid) throws StatusFailException { + boolean isOk = announcementEntityService.removeById(aid); + if (!isOk) { + throw new StatusFailException("删除失败!"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void addAnnouncement(AnnouncementDto announcementDto) throws StatusFailException { + boolean saveAnnouncement = announcementEntityService.save(announcementDto.getAnnouncement()); + boolean saveContestAnnouncement = contestAnnouncementEntityService.saveOrUpdate(new ContestAnnouncement() + .setAid(announcementDto.getAnnouncement().getId()) + .setCid(announcementDto.getCid())); + if (!saveAnnouncement || !saveContestAnnouncement) { + throw new StatusFailException("添加失败"); + } + } + + public void updateAnnouncement(AnnouncementDto announcementDto) throws StatusFailException { + boolean isOk = announcementEntityService.saveOrUpdate(announcementDto.getAnnouncement()); + if (!isOk) { // 删除成功 + throw new StatusFailException("更新失败!"); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestManager.java new file mode 100644 index 0000000..20d3609 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestManager.java @@ -0,0 +1,179 @@ +package top.hcode.hoj.manager.admin.contest; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestRegister; +import top.hcode.hoj.pojo.vo.AdminContestVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.contest.ContestRegisterEntityService; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.utils.Constants; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 11:20 + * @Description: + */ +@Component +public class AdminContestManager { + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private ContestRegisterEntityService contestRegisterEntityService; + + public IPage getContestList(Integer limit, Integer currentPage, String keyword) { + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + IPage iPage = new Page<>(currentPage, limit); + QueryWrapper queryWrapper = new QueryWrapper<>(); + // 过滤密码 + queryWrapper.select(Contest.class, info -> !info.getColumn().equals("pwd")); + if (!StringUtils.isEmpty(keyword)) { + keyword = keyword.trim(); + queryWrapper + .like("title", keyword).or() + .like("id", keyword); + } + queryWrapper.eq("is_group", false).orderByDesc("start_time"); + return contestEntityService.page(iPage, queryWrapper); + } + + public AdminContestVo getContest(Long cid) throws StatusFailException, StatusForbiddenException { + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(cid); + if (contest == null) { // 查询不存在 + throw new StatusFailException("查询失败:该比赛不存在,请检查参数cid是否准确!"); + } + // 获取当前登录的用户 + UserRolesVo userRolesVo = (UserRolesVo) SecurityUtils.getSubject().getSession().getAttribute("userInfo"); + + // 是否为超级管理员 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + // 只有超级管理员和比赛拥有者才能操作 + if (!isRoot && !userRolesVo.getUid().equals(contest.getUid())) { + throw new StatusForbiddenException("对不起,你无权限操作!"); + } + AdminContestVo adminContestVo = BeanUtil.copyProperties(contest, AdminContestVo.class, "starAccount"); + if (StringUtils.isEmpty(contest.getStarAccount())) { + adminContestVo.setStarAccount(new ArrayList<>()); + } else { + JSONObject jsonObject = JSONUtil.parseObj(contest.getStarAccount()); + List starAccount = jsonObject.get("star_account", List.class); + adminContestVo.setStarAccount(starAccount); + } + return adminContestVo; + } + + public void deleteContest(Long cid) throws StatusFailException { + boolean isOk = contestEntityService.removeById(cid); + /* + contest的id为其他表的外键的表中的对应数据都会被一起删除! + */ + if (!isOk) { // 删除成功 + throw new StatusFailException("删除失败"); + } + } + + public void addContest(AdminContestVo adminContestVo) throws StatusFailException { + Contest contest = BeanUtil.copyProperties(adminContestVo, Contest.class, "starAccount"); + JSONObject accountJson = new JSONObject(); + if (adminContestVo.getStarAccount() == null) { + accountJson.set("star_account", new ArrayList<>()); + } else { + accountJson.set("star_account", adminContestVo.getStarAccount()); + } + contest.setStarAccount(accountJson.toString()); + boolean isOk = contestEntityService.save(contest); + if (!isOk) { // 删除成功 + throw new StatusFailException("添加失败"); + } + } + + public void cloneContest(Long cid) throws StatusSystemErrorException { + Contest contest = contestEntityService.getById(cid); + if (contest == null){ + throw new StatusSystemErrorException("该比赛不存在,无法克隆!"); + } + // 获取当前登录的用户 + UserRolesVo userRolesVo = (UserRolesVo) SecurityUtils.getSubject().getSession().getAttribute("userInfo"); + contest.setUid(userRolesVo.getUid()) + .setAuthor(userRolesVo.getUsername()) + .setSource(cid.intValue()) + .setId(null) + .setGmtCreate(null) + .setGmtModified(null); + contest.setTitle(contest.getTitle()+" [Cloned]"); + boolean isOk = contestEntityService.save(contest); + + } + + public void updateContest(AdminContestVo adminContestVo) throws StatusForbiddenException, StatusFailException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 是否为超级管理员 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + // 只有超级管理员和比赛拥有者才能操作 + if (!isRoot && !userRolesVo.getUid().equals(adminContestVo.getUid())) { + throw new StatusForbiddenException("对不起,你无权限操作!"); + } + Contest contest = BeanUtil.copyProperties(adminContestVo, Contest.class, "starAccount"); + JSONObject accountJson = new JSONObject(); + accountJson.set("star_account", adminContestVo.getStarAccount()); + contest.setStarAccount(accountJson.toString()); + Contest oldContest = contestEntityService.getById(contest.getId()); + boolean isOk = contestEntityService.saveOrUpdate(contest); + if (isOk) { + if (!contest.getAuth().equals(Constants.Contest.AUTH_PUBLIC.getCode())) { + if (!Objects.equals(oldContest.getPwd(), contest.getPwd())) { // 改了比赛密码则需要删掉已有的注册比赛用户 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("cid", contest.getId()); + contestRegisterEntityService.remove(updateWrapper); + } + } + } else { + throw new StatusFailException("修改失败"); + } + } + + public void changeContestVisible(Long cid, String uid, Boolean visible) throws StatusFailException, StatusForbiddenException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 是否为超级管理员 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + // 只有超级管理员和比赛拥有者才能操作 + if (!isRoot && !userRolesVo.getUid().equals(uid)) { + throw new StatusForbiddenException("对不起,你无权限操作!"); + } + + boolean isOK = contestEntityService.saveOrUpdate(new Contest().setId(cid).setVisible(visible)); + + if (!isOK) { + throw new StatusFailException("修改失败"); + } + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestProblemManager.java new file mode 100644 index 0000000..d63f1f6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/contest/AdminContestProblemManager.java @@ -0,0 +1,341 @@ +package top.hcode.hoj.manager.admin.contest; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.map.MapUtil; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.pojo.entity.contest.Contest; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.crawler.problem.ProblemStrategy; +import top.hcode.hoj.manager.admin.problem.RemoteProblemManager; +import top.hcode.hoj.pojo.dto.ContestProblemDto; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.contest.ContestProblemEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.utils.Constants; + +import java.io.File; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 11:20 + * @Description: + */ +@Component +public class AdminContestProblemManager { + + @Autowired + private ContestProblemEntityService contestProblemEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private RemoteProblemManager remoteProblemManager; + + @Autowired + private ContestEntityService contestEntityService; + + public HashMap getProblemList(Integer limit, Integer currentPage, String keyword, + Long cid, Integer problemType, String oj) { + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + IPage iPage = new Page<>(currentPage, limit); + // 根据cid在ContestProblem表中查询到对应pid集合 + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", cid); + List pidList = new LinkedList<>(); + + List contestProblemList = contestProblemEntityService.list(contestProblemQueryWrapper); + HashMap contestProblemMap = new HashMap<>(); + contestProblemList.forEach(contestProblem -> { + contestProblemMap.put(contestProblem.getPid(), contestProblem); + pidList.add(contestProblem.getPid()); + }); + + HashMap contestProblem = new HashMap<>(); + + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + + if (problemType != null) { // 必备条件 隐藏的不可取来做比赛题目 + problemQueryWrapper.eq("is_group", false) + // vj题目不限制赛制 + .and(wrapper -> wrapper.eq("type", problemType) + .or().eq("is_remote", true)) + .ne("auth", 2); // 同时需要与比赛相同类型的题目,权限需要是公开的(隐藏的不可加入!) + Contest contest = contestEntityService.getById(cid); + if (contest.getGid() != null) { //团队比赛不能查看公共题库的隐藏题目 + problemQueryWrapper.ne("auth", 3); + } + } + + // 逻辑判断,如果是查询已有的就应该是in,如果是查询不要重复的,使用not in + if (problemType != null) { + problemQueryWrapper.notIn(pidList.size() > 0, "id", pidList); + } else { + problemQueryWrapper.in(pidList.size() > 0, "id", pidList); + } + + // 根据oj筛选过滤 + if (oj != null && !"All".equals(oj)) { + if (!Constants.RemoteOJ.isRemoteOJ(oj)) { + problemQueryWrapper.eq("is_remote", false); + } else { + problemQueryWrapper.eq("is_remote", true).likeRight("problem_id", oj); + } + } + + if (!StringUtils.isEmpty(keyword)) { + problemQueryWrapper.and(wrapper -> wrapper.like("title", keyword).or() + .like("problem_id", keyword).or() + .like("author", keyword)); + } + + if (pidList.size() == 0 && problemType == null) { + problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("id", null); + } + + IPage problemListPage = problemEntityService.page(iPage, problemQueryWrapper); + + if (pidList.size() > 0 && problemType == null) { + List problemList = problemListPage.getRecords(); + + List sortedProblemList = problemList.stream().sorted(Comparator.comparing(Problem::getId, (a, b) -> { + ContestProblem x = contestProblemMap.get(a); + ContestProblem y = contestProblemMap.get(b); + if (x == null && y != null) { + return 1; + } else if (x != null && y == null) { + return -1; + } else if (x == null) { + return -1; + } else { + return x.getDisplayId().compareTo(y.getDisplayId()); + } + })).collect(Collectors.toList()); + problemListPage.setRecords(sortedProblemList); + } + + contestProblem.put("problemList", problemListPage); + contestProblem.put("contestProblemMap", contestProblemMap); + + return contestProblem; + } + + public Problem getProblem(Long pid) throws StatusFailException, StatusForbiddenException { + + Problem problem = problemEntityService.getById(pid); + + if (problem != null) { // 查询成功 + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + // 只有超级管理员和题目管理员、题目创建者才能操作 + if (!isRoot && !isProblemAdmin && !userRolesVo.getUsername().equals(problem.getAuthor())) { + throw new StatusForbiddenException("对不起,你无权限查看题目!"); + } + + return problem; + } else { + throw new StatusFailException("查询失败!"); + } + } + + public void deleteProblem(Long pid, Long cid) { + // 比赛id不为null,表示就是从比赛列表移除而已 + if (cid != null) { + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", cid).eq("pid", pid); + contestProblemEntityService.remove(contestProblemQueryWrapper); + // 把该题目在比赛的提交全部删掉 + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.eq("cid", cid).eq("pid", pid); + judgeEntityService.remove(judgeUpdateWrapper); + } else { + /* + problem的id为其他表的外键的表中的对应数据都会被一起删除! + */ + problemEntityService.removeById(pid); + } + + if (cid == null) { + FileUtil.del(Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + pid); + } + } + + public Map addProblem(ProblemDto problemDto) throws StatusFailException { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("problem_id", problemDto.getProblem().getProblemId().toUpperCase()); + Problem problem = problemEntityService.getOne(queryWrapper); + if (problem != null) { + throw new StatusFailException("该题目的Problem ID已存在,请更换!"); + } + // 设置为比赛题目 + problemDto.getProblem().setAuth(3); + boolean isOk = problemEntityService.adminAddProblem(problemDto); + if (isOk) { // 添加成功 + // 顺便返回新的题目id,好下一步添加外键操作 + return MapUtil.builder().put("pid", problemDto.getProblem().getId()).map(); + } else { + throw new StatusFailException("添加失败"); + } + } + + public void updateProblem(ProblemDto problemDto) throws StatusForbiddenException, StatusFailException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + // 只有超级管理员和题目管理员、题目创建者才能操作 + if (!isRoot && !isProblemAdmin && !userRolesVo.getUsername().equals(problemDto.getProblem().getAuthor())) { + throw new StatusForbiddenException("对不起,你无权限修改题目!"); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("problem_id", problemDto.getProblem().getProblemId().toUpperCase()); + Problem problem = problemEntityService.getOne(queryWrapper); + + // 如果problem_id不是原来的且已存在该problem_id,则修改失败! + if (problem != null && problem.getId().longValue() != problemDto.getProblem().getId()) { + throw new StatusFailException("当前的Problem ID 已被使用,请重新更换新的!"); + } + + // 记录修改题目的用户 + problemDto.getProblem().setModifiedUser(userRolesVo.getUsername()); + + boolean isOk = problemEntityService.adminUpdateProblem(problemDto); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + public ContestProblem getContestProblem(Long cid, Long pid) throws StatusFailException { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("cid", cid).eq("pid", pid); + ContestProblem contestProblem = contestProblemEntityService.getOne(queryWrapper); + if (contestProblem == null) { + throw new StatusFailException("查询失败"); + } + return contestProblem; + } + + public ContestProblem setContestProblem(ContestProblem contestProblem) throws StatusFailException { + boolean isOk = contestProblemEntityService.saveOrUpdate(contestProblem); + if (isOk) { + contestProblemEntityService.syncContestRecord(contestProblem.getPid(), contestProblem.getCid(), contestProblem.getDisplayId()); + return contestProblem; + } else { + throw new StatusFailException("更新失败"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void addProblemFromPublic(ContestProblemDto contestProblemDto) throws StatusFailException { + + Long pid = contestProblemDto.getPid(); + Long cid = contestProblemDto.getCid(); + String displayId = contestProblemDto.getDisplayId(); + + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", cid) + .and(wrapper -> wrapper.eq("pid", pid) + .or() + .eq("display_id", displayId)); + ContestProblem contestProblem = contestProblemEntityService.getOne(contestProblemQueryWrapper, false); + if (contestProblem != null) { + throw new StatusFailException("添加失败,该题目已添加或者题目的比赛展示ID已存在!"); + } + + // 比赛中题目显示默认为原标题 + Problem problem = problemEntityService.getById(pid); + String displayName = problem.getTitle(); + + // 修改成比赛题目 + boolean updateProblem = problemEntityService.saveOrUpdate(problem.setAuth(3)); + + boolean isOk = contestProblemEntityService.saveOrUpdate(new ContestProblem() + .setCid(cid).setPid(pid).setDisplayTitle(displayName).setDisplayId(displayId)); + if (!isOk || !updateProblem) { + throw new StatusFailException("添加失败"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void importContestRemoteOJProblem(String name, String problemId, Long cid, String displayId) throws StatusFailException { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("problem_id", name.toUpperCase() + "-" + problemId); + Problem problem = problemEntityService.getOne(queryWrapper, false); + + // 如果该题目不存在,需要先导入 + if (problem == null) { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + try { + ProblemStrategy.RemoteProblemInfo otherOJProblemInfo = remoteProblemManager.getOtherOJProblemInfo(name.toUpperCase(), problemId, userRolesVo.getUsername()); + if (otherOJProblemInfo != null) { + problem = remoteProblemManager.adminAddOtherOJProblem(otherOJProblemInfo, name); + if (problem == null) { + throw new StatusFailException("导入新题目失败!请重新尝试!"); + } + } else { + throw new StatusFailException("导入新题目失败!原因:可能是与该OJ链接超时或题号格式错误!"); + } + } catch (Exception e) { + throw new StatusFailException(e.getMessage()); + } + } + + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + Problem finalProblem = problem; + contestProblemQueryWrapper.eq("cid", cid) + .and(wrapper -> wrapper.eq("pid", finalProblem.getId()) + .or() + .eq("display_id", displayId)); + ContestProblem contestProblem = contestProblemEntityService.getOne(contestProblemQueryWrapper, false); + if (contestProblem != null) { + throw new StatusFailException("添加失败,该题目已添加或者题目的比赛展示ID已存在!"); + } + + + // 比赛中题目显示默认为原标题 + String displayName = problem.getTitle(); + + // 修改成比赛题目 + boolean updateProblem = problemEntityService.saveOrUpdate(problem.setAuth(3)); + + boolean isOk = contestProblemEntityService.saveOrUpdate(new ContestProblem() + .setCid(cid).setPid(problem.getId()).setDisplayTitle(displayName).setDisplayId(displayId)); + + if (!isOk || !updateProblem) { + throw new StatusFailException("添加失败"); + } + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/discussion/AdminDiscussionManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/discussion/AdminDiscussionManager.java new file mode 100644 index 0000000..72a8f73 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/discussion/AdminDiscussionManager.java @@ -0,0 +1,54 @@ +package top.hcode.hoj.manager.admin.discussion; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.dao.discussion.DiscussionEntityService; +import top.hcode.hoj.dao.discussion.DiscussionReportEntityService; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.vo.DiscussionReportVo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 16:02 + * @Description: + */ +@Component +public class AdminDiscussionManager { + + @Autowired + private DiscussionEntityService discussionEntityService; + + @Autowired + private DiscussionReportEntityService discussionReportEntityService; + + public void updateDiscussion(Discussion discussion) throws StatusFailException { + boolean isOk = discussionEntityService.updateById(discussion); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + public void removeDiscussion(List didList) throws StatusFailException { + boolean isOk = discussionEntityService.removeByIds(didList); + if (!isOk) { + throw new StatusFailException("删除失败"); + } + } + + public IPage getDiscussionReport(Integer limit, Integer currentPage) { + return discussionReportEntityService.getDiscussionReportList(limit,currentPage); + } + + public void updateDiscussionReport(DiscussionReport discussionReport) throws StatusFailException { + boolean isOk = discussionReportEntityService.updateById(discussionReport); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/AdminGroupProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/AdminGroupProblemManager.java new file mode 100644 index 0000000..67278c1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/AdminGroupProblemManager.java @@ -0,0 +1,74 @@ +package top.hcode.hoj.manager.admin.problem; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.pojo.dto.ChangeGroupProblemProgressDto; +import top.hcode.hoj.pojo.entity.problem.Problem; + +import javax.annotation.Resource; + +/** + * @Author Himit_ZH + * @Date 2022/4/13 + */ +@Component +public class AdminGroupProblemManager { + + @Resource + private ProblemEntityService problemEntityService; + + public IPage list(Integer currentPage, Integer limit, String keyword, Long gid) { + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + IPage iPage = new Page<>(currentPage, limit); + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.select("id", "gid", "apply_public_progress", "problem_id", "title", "author", "type", "judge_mode") + .eq(gid != null, "gid", gid) + .isNotNull("gid") + .isNotNull("apply_public_progress") + .orderByAsc("apply_public_progress", "gid"); + + if (!StringUtils.isEmpty(keyword)) { + problemQueryWrapper.and(wrapper -> wrapper.like("title", keyword).or() + .like("author", keyword).or() + .like("problem_id", keyword)); + } + + return problemEntityService.page(iPage, problemQueryWrapper); + } + + public void changeProgress(ChangeGroupProblemProgressDto changeGroupProblemProgressDto) throws StatusFailException { + Long pid = changeGroupProblemProgressDto.getPid(); + Integer progress = changeGroupProblemProgressDto.getProgress(); + if (pid == null || progress == null) { + throw new StatusFailException("请求参数pid或者progress不能为空!"); + } + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.select("id", "is_group", "gid", "apply_public_progress").eq("id", pid); + Problem problem = problemEntityService.getOne(problemQueryWrapper); + if (problem == null) { + throw new StatusFailException("错误:当前题目已不存在!"); + } + problem.setApplyPublicProgress(progress); + switch (progress) { + case 1: + case 3: + problem.setIsGroup(true); + break; + case 2: + problem.setIsGroup(false); + break; + default: + throw new StatusFailException("请求参数错误:progress请使用1~3"); + } + boolean isOk = problemEntityService.updateById(problem); + if (!isOk) { + throw new StatusFailException("修改失败!"); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/AdminProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/AdminProblemManager.java new file mode 100644 index 0000000..02efd86 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/AdminProblemManager.java @@ -0,0 +1,264 @@ +package top.hcode.hoj.manager.admin.problem; + +import cn.hutool.core.io.FileUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.crawler.problem.ProblemStrategy; +import top.hcode.hoj.judge.Dispatcher; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.*; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.ProblemCaseEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import java.io.File; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 16:32 + * @Description: + */ + +@Component +@RefreshScope +public class AdminProblemManager { + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private ProblemCaseEntityService problemCaseEntityService; + + @Autowired + private Dispatcher dispatcher; + + @Value("${hoj.judge.token}") + private String judgeToken; + + @Resource + private JudgeEntityService judgeEntityService; + + @Autowired + private RemoteProblemManager remoteProblemManager; + + public IPage getProblemList(Integer limit, Integer currentPage, String keyword, Integer auth, String oj) { + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + IPage iPage = new Page<>(currentPage, limit); + IPage problemList; + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("is_group", false) + .orderByDesc("id"); + + // 根据oj筛选过滤 + if (oj != null && !"All".equals(oj)) { + if (!Constants.RemoteOJ.isRemoteOJ(oj)) { + queryWrapper.eq("is_remote", false); + } else { + queryWrapper.eq("is_remote", true).likeRight("problem_id", oj); + } + } + + if (auth != null && auth != 0) { + queryWrapper.eq("auth", auth); + } + + if (!StringUtils.isEmpty(keyword)) { + final String key = keyword.trim(); + queryWrapper.and(wrapper -> wrapper.like("title", key).or() + .like("author", key).or() + .like("problem_id", key)); + problemList = problemEntityService.page(iPage, queryWrapper); + } else { + problemList = problemEntityService.page(iPage, queryWrapper); + } + return problemList; + } + + public Problem getProblem(Long pid) throws StatusForbiddenException, StatusFailException { + Problem problem = problemEntityService.getById(pid); + + if (problem != null) { // 查询成功 + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + // 只有超级管理员和题目管理员、题目创建者才能操作 + if (!isRoot && !isProblemAdmin && !userRolesVo.getUsername().equals(problem.getAuthor())) { + throw new StatusForbiddenException("对不起,你无权限查看题目!"); + } + + return problem; + } else { + throw new StatusFailException("查询失败!"); + } + } + + public void deleteProblem(Long pid) throws StatusFailException { + boolean isOk = problemEntityService.removeById(pid); + /* + problem的id为其他表的外键的表中的对应数据都会被一起删除! + */ + if (isOk) { // 删除成功 + FileUtil.del(Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + pid); + } else { + throw new StatusFailException("删除失败!"); + } + } + + public void addProblem(ProblemDto problemDto) throws StatusFailException { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("problem_id", problemDto.getProblem().getProblemId().toUpperCase()); + Problem problem = problemEntityService.getOne(queryWrapper); + if (problem != null) { + throw new StatusFailException("该题目的Problem ID已存在,请更换!"); + } + + boolean isOk = problemEntityService.adminAddProblem(problemDto); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void updateProblem(ProblemDto problemDto) throws StatusForbiddenException, StatusFailException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + // 只有超级管理员和题目管理员、题目创建者才能操作 + if (!isRoot && !isProblemAdmin && !userRolesVo.getUsername().equals(problemDto.getProblem().getAuthor())) { + throw new StatusForbiddenException("对不起,你无权限修改题目!"); + } + + String problemId = problemDto.getProblem().getProblemId().toUpperCase(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("problem_id", problemId); + Problem problem = problemEntityService.getOne(queryWrapper); + + // 如果problem_id不是原来的且已存在该problem_id,则修改失败! + if (problem != null && problem.getId().longValue() != problemDto.getProblem().getId()) { + throw new StatusFailException("当前的Problem ID 已被使用,请重新更换新的!"); + } + + // 记录修改题目的用户 + problemDto.getProblem().setModifiedUser(userRolesVo.getUsername()); + + boolean result = problemEntityService.adminUpdateProblem(problemDto); + if (result) { // 更新成功 + if (problem == null) { // 说明改了problemId,同步一下judge表 + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.eq("pid", problemDto.getProblem().getId()) + .set("display_pid", problemId); + judgeEntityService.update(judgeUpdateWrapper); + } + + } else { + throw new StatusFailException("修改失败"); + } + } + + public List getProblemCases(Long pid, Boolean isUpload) { + QueryWrapper problemCaseQueryWrapper = new QueryWrapper<>(); + problemCaseQueryWrapper.eq("pid", pid).eq("status", 0); + if (isUpload) { + problemCaseQueryWrapper.last("order by length(input) asc,input asc"); + } + return problemCaseEntityService.list(problemCaseQueryWrapper); + } + + public CommonResult compileSpj(CompileDTO compileDTO) { + if (StringUtils.isEmpty(compileDTO.getCode()) || + StringUtils.isEmpty(compileDTO.getLanguage())) { + return CommonResult.errorResponse("参数不能为空!"); + } + + compileDTO.setToken(judgeToken); + return dispatcher.dispatcherJudge("compile", "/compile-spj", compileDTO); + } + + public CommonResult compileInteractive(CompileDTO compileDTO) { + if (StringUtils.isEmpty(compileDTO.getCode()) || + StringUtils.isEmpty(compileDTO.getLanguage())) { + return CommonResult.errorResponse("参数不能为空!"); + } + + compileDTO.setToken(judgeToken); + return dispatcher.dispatcherJudge("compile", "/compile-interactive", compileDTO); + } + + @Transactional(rollbackFor = Exception.class) + public void importRemoteOJProblem(String name, String problemId) throws StatusFailException { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("problem_id", name.toUpperCase() + "-" + problemId); + Problem problem = problemEntityService.getOne(queryWrapper); + if (problem != null) { + throw new StatusFailException("该题目已添加,请勿重复添加!"); + } + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + try { + ProblemStrategy.RemoteProblemInfo otherOJProblemInfo = remoteProblemManager.getOtherOJProblemInfo(name.toUpperCase(), problemId, userRolesVo.getUsername()); + if (otherOJProblemInfo != null) { + Problem importProblem = remoteProblemManager.adminAddOtherOJProblem(otherOJProblemInfo, name); + if (importProblem == null) { + throw new StatusFailException("导入新题目失败!请重新尝试!"); + } + } else { + throw new StatusFailException("导入新题目失败!原因:可能是与该OJ链接超时或题号格式错误!"); + } + } catch (Exception e) { + throw new StatusFailException(e.getMessage()); + } + } + + public void changeProblemAuth(Problem problem) throws StatusFailException, StatusForbiddenException { + // 普通管理员只能将题目变成隐藏题目和比赛题目 + boolean root = SecurityUtils.getSubject().hasRole("root"); + + boolean problemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + + if (!problemAdmin && !root && problem.getAuth() == 1) { + throw new StatusForbiddenException("修改失败!你无权限公开题目!"); + } + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + UpdateWrapper problemUpdateWrapper = new UpdateWrapper<>(); + problemUpdateWrapper.eq("id", problem.getId()) + .set("auth", problem.getAuth()) + .set("modified_user", userRolesVo.getUsername()); + + boolean isOk = problemEntityService.update(problemUpdateWrapper); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/RemoteProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/RemoteProblemManager.java new file mode 100644 index 0000000..eba4b63 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/problem/RemoteProblemManager.java @@ -0,0 +1,149 @@ +package top.hcode.hoj.manager.admin.problem; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.crawler.language.LanguageContext; +import top.hcode.hoj.crawler.problem.*; +import top.hcode.hoj.pojo.entity.problem.*; +import top.hcode.hoj.dao.problem.*; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 17:33 + * @Description: + */ +@Component +public class RemoteProblemManager { + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private ProblemTagEntityService problemTagEntityService; + + @Autowired + private TagEntityService tagEntityService; + + @Autowired + private LanguageEntityService languageEntityService; + + @Autowired + private ProblemLanguageEntityService problemLanguageEntityService; + + + public ProblemStrategy.RemoteProblemInfo getOtherOJProblemInfo(String OJName, String problemId, String author) throws Exception { + + ProblemStrategy problemStrategy; + switch (OJName) { + case "HDU": + problemStrategy = new HDUProblemStrategy(); + break; + case "CF": + problemStrategy = new CFProblemStrategy(); + break; + case "POJ": + problemStrategy = new POJProblemStrategy(); + break; + case "GYM": + problemStrategy = new GYMProblemStrategy(); + break; + case "SPOJ": + problemStrategy = new SPOJProblemStrategy(); + break; + case "AC": + problemStrategy = new AtCoderProblemStrategy(); + break; + default: + throw new Exception("未知的OJ的名字,暂时不支持!"); + } + + ProblemContext problemContext = new ProblemContext(problemStrategy); + return problemContext.getProblemInfo(problemId, author); + } + + @Transactional(rollbackFor = Exception.class) + public Problem adminAddOtherOJProblem(ProblemStrategy.RemoteProblemInfo remoteProblemInfo, String OJName) { + + Problem problem = remoteProblemInfo.getProblem(); + boolean addProblemResult = problemEntityService.save(problem); + // 为新的其它oj题目添加对应的language + QueryWrapper languageQueryWrapper = new QueryWrapper<>(); + if (OJName.equals("GYM")) { + languageQueryWrapper.eq("oj", "CF"); + } else { + languageQueryWrapper.eq("oj", OJName); + } + List OJLanguageList = languageEntityService.list(languageQueryWrapper); + List problemLanguageList = new LinkedList<>(); + if (!CollectionUtil.isEmpty(remoteProblemInfo.getLangIdList())) { + LanguageContext languageContext = new LanguageContext(remoteProblemInfo.getRemoteOJ()); + List languageList = languageContext.buildLanguageListByIds(OJLanguageList, remoteProblemInfo.getLangIdList()); + for (Language language : languageList) { + problemLanguageList.add(new ProblemLanguage().setPid(problem.getId()).setLid(language.getId())); + } + } else { + for (Language language : OJLanguageList) { + problemLanguageList.add(new ProblemLanguage().setPid(problem.getId()).setLid(language.getId())); + } + } + boolean addProblemLanguageResult = problemLanguageEntityService.saveOrUpdateBatch(problemLanguageList); + + boolean addProblemTagResult = true; + List addTagList = remoteProblemInfo.getTagList(); + + List needAddTagList = new LinkedList<>(); + + HashMap tagFlag = new HashMap<>(); + + if (addTagList != null && addTagList.size() > 0) { + QueryWrapper tagQueryWrapper = new QueryWrapper<>(); + tagQueryWrapper.eq("oj", OJName); + List tagList = tagEntityService.list(tagQueryWrapper); + // 已存在的tag不进行添加 + for (Tag hasTag : tagList) { + tagFlag.put(hasTag.getName().toUpperCase(), hasTag); + } + for (Tag tmp : addTagList) { + Tag tag = tagFlag.get(tmp.getName().toUpperCase()); + if (tag == null) { + tmp.setOj(OJName); + needAddTagList.add(tmp); + } else { + needAddTagList.add(tag); + } + } + tagEntityService.saveOrUpdateBatch(needAddTagList); + + List problemTagList = new LinkedList<>(); + for (Tag tmp : needAddTagList) { + problemTagList.add(new ProblemTag().setTid(tmp.getId()).setPid(problem.getId())); + } + addProblemTagResult = problemTagEntityService.saveOrUpdateBatch(problemTagList); + } else { + QueryWrapper tagQueryWrapper = new QueryWrapper<>(); + tagQueryWrapper.eq("name", OJName); + Tag OJNameTag = tagEntityService.getOne(tagQueryWrapper, false); + if (OJNameTag == null) { + OJNameTag = new Tag(); + OJNameTag.setOj(OJName); + OJNameTag.setName(OJName); + tagEntityService.saveOrUpdate(OJNameTag); + } + addProblemTagResult = problemTagEntityService.saveOrUpdate(new ProblemTag().setTid(OJNameTag.getId()) + .setPid(problem.getId())); + } + + if (addProblemResult && addProblemTagResult && addProblemLanguageResult) { + return problem; + } else { + return null; + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/rejudge/RejudgeManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/rejudge/RejudgeManager.java new file mode 100644 index 0000000..153e87b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/rejudge/RejudgeManager.java @@ -0,0 +1,351 @@ +package top.hcode.hoj.manager.admin.rejudge; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.dao.judge.JudgeCaseEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.user.UserAcproblemEntityService; +import top.hcode.hoj.judge.remote.RemoteJudgeDispatcher; +import top.hcode.hoj.judge.self.JudgeDispatcher; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import java.util.*; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 16:21 + * @Description: + */ +@Component +public class RejudgeManager { + + @Resource + private JudgeEntityService judgeEntityService; + + @Resource + private UserAcproblemEntityService userAcproblemEntityService; + + @Resource + private ContestRecordEntityService contestRecordEntityService; + + @Resource + private JudgeCaseEntityService judgeCaseEntityService; + + @Resource + private ProblemEntityService problemEntityService; + + @Resource + private JudgeDispatcher judgeDispatcher; + + @Resource + private RemoteJudgeDispatcher remoteJudgeDispatcher; + + private static List penaltyStatus = Arrays.asList( + Constants.Judge.STATUS_PRESENTATION_ERROR.getStatus(), + Constants.Judge.STATUS_WRONG_ANSWER.getStatus(), + Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus(), + Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED.getStatus(), + Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()); + + + public Judge rejudge(Long submitId) throws StatusFailException { + Judge judge = judgeEntityService.getById(submitId); + + boolean isContestSubmission = judge.getCid() != 0; + + boolean hasSubmitIdRemoteRejudge = checkAndUpdateJudge(isContestSubmission, judge, submitId); + // 调用判题服务 + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.select("id", "is_remote", "problem_id") + .eq("id", judge.getPid()); + Problem problem = problemEntityService.getOne(problemQueryWrapper); + if (problem.getIsRemote()) { // 如果是远程oj判题 + remoteJudgeDispatcher.sendTask(judge.getSubmitId(), judge.getPid(), problem.getProblemId(), + isContestSubmission, hasSubmitIdRemoteRejudge); + } else { + judgeDispatcher.sendTask(judge.getSubmitId(), judge.getPid(), isContestSubmission); + } + return judge; + } + + @Transactional(rollbackFor = Exception.class) + public void rejudgeContestProblem(Long cid, Long pid) throws StatusFailException { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("cid", cid).eq("pid", pid); + List rejudgeList = judgeEntityService.list(queryWrapper); + + if (rejudgeList.size() == 0) { + throw new StatusFailException("当前该题目无提交,不可重判!"); + } + HashMap idMapStatus = new HashMap<>(); + // 全部设置默认值 + checkAndUpdateJudgeBatch(rejudgeList, idMapStatus); + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.select("id", "is_remote", "problem_id") + .eq("id", pid); + Problem problem = problemEntityService.getOne(problemQueryWrapper); + // 调用重判服务 + if (problem.getIsRemote()) { // 如果是远程oj判题 + for (Judge judge : rejudgeList) { + // 进入重判队列,等待调用判题服务 + remoteJudgeDispatcher.sendTask(judge.getSubmitId(), + pid, + problem.getProblemId(), + judge.getCid() != 0, + isHasSubmitIdRemoteRejudge(judge.getVjudgeSubmitId(), idMapStatus.get(judge.getSubmitId()))); + } + } else { + for (Judge judge : rejudgeList) { + // 进入重判队列,等待调用判题服务 + judgeDispatcher.sendTask(judge.getSubmitId(), judge.getPid(), judge.getCid() != 0); + } + } + + } + + @Transactional(rollbackFor = Exception.class) + public boolean checkAndUpdateJudge(Boolean isContestSubmission, Judge judge, Long submitId) throws StatusFailException { + // 如果是非比赛题目 + boolean resetContestRecordResult = true; + if (!isContestSubmission) { + // 重判前,需要将该题目对应记录表一并更新 + // 如果该题已经是AC通过状态,更新该题目的用户ac做题表 user_acproblem + if (judge.getStatus().intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus().intValue()) { + QueryWrapper userAcproblemQueryWrapper = new QueryWrapper<>(); + userAcproblemQueryWrapper.eq("submit_id", judge.getSubmitId()); + userAcproblemEntityService.remove(userAcproblemQueryWrapper); + } + } else { + // 将对应比赛记录设置成默认值 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("submit_id", submitId).setSql("status=null,score=null"); + resetContestRecordResult = contestRecordEntityService.update(updateWrapper); + } + + // 清除该提交对应的测试点结果 + QueryWrapper judgeCaseQueryWrapper = new QueryWrapper<>(); + judgeCaseQueryWrapper.eq("submit_id", submitId); + judgeCaseEntityService.remove(judgeCaseQueryWrapper); + + boolean hasSubmitIdRemoteRejudge = isHasSubmitIdRemoteRejudge(judge.getVjudgeSubmitId(), judge.getStatus()); + + // 设置默认值 + judge.setStatus(Constants.Judge.STATUS_PENDING.getStatus()); // 开始进入判题队列 + judge.setVersion(judge.getVersion() + 1); + judge.setJudger("") + .setIsManual(false) + .setTime(null) + .setMemory(null) + .setErrorMessage(null) + .setOiRankScore(null) + .setScore(null); + boolean isUpdateJudgeOk = judgeEntityService.updateById(judge); + + if (!resetContestRecordResult || !isUpdateJudgeOk) { + throw new StatusFailException("重判失败!请重新尝试!"); + } + return hasSubmitIdRemoteRejudge; + } + + @Transactional(rollbackFor = Exception.class) + public void checkAndUpdateJudgeBatch(List rejudgeList, HashMap idMapStatus) throws StatusFailException { + List submitIdList = new LinkedList<>(); + // 全部设置默认值 + for (Judge judge : rejudgeList) { + idMapStatus.put(judge.getSubmitId(), judge.getStatus()); + judge.setStatus(Constants.Judge.STATUS_PENDING.getStatus()); // 开始进入判题队列 + judge.setVersion(judge.getVersion() + 1); + judge.setJudger("") + .setTime(null) + .setMemory(null) + .setErrorMessage(null) + .setOiRankScore(null) + .setIsManual(false) + .setScore(null); + submitIdList.add(judge.getSubmitId()); + } + boolean resetJudgeResult = judgeEntityService.updateBatchById(rejudgeList); + // 清除每个提交对应的测试点结果 + QueryWrapper judgeCaseQueryWrapper = new QueryWrapper<>(); + judgeCaseQueryWrapper.in("submit_id", submitIdList); + judgeCaseEntityService.remove(judgeCaseQueryWrapper); + // 将对应比赛记录设置成默认值 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("submit_id", submitIdList).setSql("status=null,score=null"); + boolean resetContestRecordResult = contestRecordEntityService.update(updateWrapper); + + if (!resetContestRecordResult || !resetJudgeResult) { + throw new StatusFailException("重判失败!请重新尝试!"); + } + } + + private boolean isHasSubmitIdRemoteRejudge(Long vjudgeSubmitId, int status) { + boolean isHasSubmitIdRemoteRejudge = false; + if (vjudgeSubmitId != null && + (status == Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus() + || status == Constants.Judge.STATUS_COMPILING.getStatus() + || status == Constants.Judge.STATUS_PENDING.getStatus() + || status == Constants.Judge.STATUS_JUDGING.getStatus() + || status == Constants.Judge.STATUS_SYSTEM_ERROR.getStatus())) { + isHasSubmitIdRemoteRejudge = true; + } + return isHasSubmitIdRemoteRejudge; + } + + @Transactional(rollbackFor = Exception.class) + public Judge manualJudge(Long submitId, Integer status, Integer score) throws StatusFailException { + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper + .select("submit_id", "status", "judger", "cid", "pid", "uid") + .eq("submit_id", submitId); + Judge judge = judgeEntityService.getOne(judgeQueryWrapper); + if (judge == null) { + throw new StatusFailException("错误:该提交数据已不存在!"); + } + if (judge.getStatus().equals(Constants.Judge.STATUS_JUDGING.getStatus()) + || judge.getStatus().equals(Constants.Judge.STATUS_COMPILING.getStatus()) + || judge.getStatus().equals(Constants.Judge.STATUS_PENDING.getStatus())) { + throw new StatusFailException("错误:该提交正在评测中,无法修改,请稍后再尝试!"); + } + if (judge.getStatus().equals(Constants.Judge.STATUS_COMPILE_ERROR.getStatus())) { + throw new StatusFailException("错误:编译失败的提交无法修改!"); + } + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper + .set("status", status) + .set("is_manual", true) + .set("judger", userRolesVo.getUsername()) + .eq("submit_id", judge.getSubmitId()); + Integer oiRankScore = null; + if (score != null) { + Problem problem = problemEntityService.getById(judge.getPid()); + if (problem != null && Objects.equals(problem.getType(), Constants.Contest.TYPE_OI.getCode()) + && problem.getIoScore() != null) { + if (score > problem.getIoScore()) { + score = problem.getIoScore(); + } else if (score < 0) { + score = 0; + } + oiRankScore = (int) Math.round(problem.getDifficulty() * 2 + 0.1 * score); + judgeUpdateWrapper.set("score", score) + .set("oi_rank_score", oiRankScore); + } else { + score = null; + } + } + + boolean isUpdateOK = judgeEntityService.update(judgeUpdateWrapper); + if (!isUpdateOK) { + throw new StatusFailException("错误:该提交正在评测中,无法取消,请稍后再尝试!"); + } + + // 如果原是AC,现在人工评测后不是AC,就移除user_acproblem表对应的记录 + if (Objects.equals(judge.getStatus(), Constants.Judge.STATUS_ACCEPTED.getStatus()) + && !Objects.equals(status, Constants.Judge.STATUS_ACCEPTED.getStatus())) { + QueryWrapper userAcproblemQueryWrapper = new QueryWrapper<>(); + userAcproblemQueryWrapper.eq("submit_id", judge.getSubmitId()); + userAcproblemEntityService.remove(userAcproblemQueryWrapper); + } else if (!Objects.equals(judge.getStatus(), Constants.Judge.STATUS_ACCEPTED.getStatus()) + && Objects.equals(status, Constants.Judge.STATUS_ACCEPTED.getStatus())) { + // 如果原先不是AC,现在人工评测后是AC,就更新user_acproblem表 + if (status.intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus() && judge.getGid() == null) { + userAcproblemEntityService.saveOrUpdate(new UserAcproblem() + .setPid(judge.getPid()) + .setUid(judge.getUid()) + .setSubmitId(submitId) + ); + } + } + + if (judge.getCid() != 0) { + UpdateWrapper contestRecordUpdateWrapper = new UpdateWrapper<>(); + contestRecordUpdateWrapper.eq("submit_id", submitId) + .eq("cid", judge.getCid()); + if (Objects.equals(status, Constants.Judge.STATUS_ACCEPTED.getStatus())) { + contestRecordUpdateWrapper.set("status", Constants.Contest.RECORD_AC.getCode()); + } else if (penaltyStatus.contains(status)) { + contestRecordUpdateWrapper.set("status", Constants.Contest.RECORD_NOT_AC_PENALTY.getCode()); + } else { + contestRecordUpdateWrapper.set("status", Constants.Contest.RECORD_NOT_AC_NOT_PENALTY.getCode()); + } + contestRecordUpdateWrapper.set(score != null, "score", score); + contestRecordEntityService.update(contestRecordUpdateWrapper); + } + Judge res = new Judge(); + res.setSubmitId(submitId) + .setJudger(userRolesVo.getUsername()) + .setStatus(status) + .setScore(score) + .setOiRankScore(oiRankScore); + return res; + } + + @Transactional(rollbackFor = Exception.class) + public Judge cancelJudge(Long submitId) throws StatusFailException { + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper + .select("submit_id", "status", "judger", "cid") + .eq("submit_id", submitId) + .last("for update"); + Judge judge = judgeEntityService.getOne(judgeQueryWrapper); + if (judge == null) { + throw new StatusFailException("错误:该提交数据已不存在!"); + } + if (judge.getStatus().equals(Constants.Judge.STATUS_JUDGING.getStatus()) + || judge.getStatus().equals(Constants.Judge.STATUS_COMPILING.getStatus()) + || (judge.getStatus().equals(Constants.Judge.STATUS_PENDING.getStatus()) + && !StringUtils.isEmpty(judge.getJudger()))) { + throw new StatusFailException("错误:该提交正在评测中,无法取消,请稍后再尝试!"); + } + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper + .setSql("status=-4,score=null,oi_rank_score=null,is_manual=true,judger='" + userRolesVo.getUsername() + "'") + .eq("submit_id", judge.getSubmitId()); + boolean isUpdateOK = judgeEntityService.update(judgeUpdateWrapper); + if (!isUpdateOK) { + throw new StatusFailException("错误:该提交正在评测中,无法取消,请稍后再尝试!"); + } + + // 如果该题已经是AC通过状态,更新该题目的用户ac做题表 user_acproblem + if (judge.getStatus().intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus().intValue()) { + QueryWrapper userAcproblemQueryWrapper = new QueryWrapper<>(); + userAcproblemQueryWrapper.eq("submit_id", judge.getSubmitId()); + userAcproblemEntityService.remove(userAcproblemQueryWrapper); + } + + if (judge.getCid() != 0) { + UpdateWrapper contestRecordUpdateWrapper = new UpdateWrapper<>(); + contestRecordUpdateWrapper.eq("submit_id", submitId) + .eq("cid", judge.getCid()) + .setSql("score=null") + .set("status", Constants.Contest.RECORD_NOT_AC_NOT_PENALTY.getCode()); + contestRecordEntityService.update(contestRecordUpdateWrapper); + } + Judge res = new Judge(); + res.setSubmitId(submitId) + .setJudger(userRolesVo.getUsername()) + .setStatus(Constants.Judge.STATUS_CANCELLED.getStatus()); + return res; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/system/ConfigManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/system/ConfigManager.java new file mode 100644 index 0000000..4a528d2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/system/ConfigManager.java @@ -0,0 +1,514 @@ +package top.hcode.hoj.manager.admin.system; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.text.UnicodeUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import cn.hutool.system.oshi.OshiUtil; +import com.alibaba.nacos.api.NacosFactory; +import com.alibaba.nacos.api.exception.NacosException; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.client.discovery.DiscoveryClient; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.client.RestTemplate; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.dao.common.FileEntityService; +import top.hcode.hoj.dao.judge.RemoteJudgeAccountEntityService; +import top.hcode.hoj.manager.email.EmailManager; +import top.hcode.hoj.pojo.dto.*; +import top.hcode.hoj.pojo.entity.common.File; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; +import top.hcode.hoj.pojo.vo.ConfigVo; +import top.hcode.hoj.utils.ConfigUtils; +import top.hcode.hoj.utils.Constants; + +import java.util.*; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 21:50 + * @Description: 动态修改网站配置,获取后台服务状态及判题服务器的状态 + */ + +@Component +@Slf4j(topic = "hoj") +public class ConfigManager { + @Autowired + private ConfigVo configVo; + + @Autowired + private EmailManager emailManager; + + @Autowired + private FileEntityService fileEntityService; + + @Autowired + private RemoteJudgeAccountEntityService remoteJudgeAccountEntityService; + + @Autowired + private ConfigUtils configUtils; + + @Autowired + private RestTemplate restTemplate; + + @Autowired + private DiscoveryClient discoveryClient; + + @Value("${service-url.name}") + private String judgeServiceName; + + @Value("${spring.application.name}") + private String currentServiceName; + + @Value("${spring.cloud.nacos.url}") + private String NACOS_URL; + + @Value("${spring.cloud.nacos.config.prefix}") + private String prefix; + + @Value("${spring.profiles.active}") + private String active; + + @Value("${spring.cloud.nacos.config.file-extension}") + private String fileExtension; + + @Value("${spring.cloud.nacos.config.group}") + private String GROUP; + + @Value("${spring.cloud.nacos.config.type}") + private String TYPE; + + @Value("${spring.cloud.nacos.config.username}") + private String nacosUsername; + + @Value("${spring.cloud.nacos.config.password}") + private String nacosPassword; + + /** + * @MethodName getServiceInfo + * @Params * @param null + * @Description 获取当前服务的相关信息以及当前系统的cpu情况,内存使用情况 + * @Return CommonResult + * @Since 2020/12/3 + */ + + public JSONObject getServiceInfo() { + + JSONObject result = new JSONObject(); + + List serviceInstances = discoveryClient.getInstances(currentServiceName); + + // 获取nacos中心配置所在的机器环境 + String response = restTemplate.getForObject(NACOS_URL + "/nacos/v1/ns/operator/metrics", String.class); + + JSONObject jsonObject = JSONUtil.parseObj(response); + // 获取当前数据后台所在机器环境 + int cores = OshiUtil.getCpuInfo().getCpuNum(); // 当前机器的cpu核数 + double cpuLoad = 100 - OshiUtil.getCpuInfo().getFree(); + String percentCpuLoad = String.format("%.2f", cpuLoad) + "%"; // 当前服务所在机器cpu使用率 + + double totalVirtualMemory = OshiUtil.getMemory().getTotal(); // 当前服务所在机器总内存 + double freePhysicalMemorySize = OshiUtil.getMemory().getAvailable(); // 当前服务所在机器空闲内存 + double value = freePhysicalMemorySize / totalVirtualMemory; + String percentMemoryLoad = String.format("%.2f", (1 - value) * 100) + "%"; // 当前服务所在机器内存使用率 + + result.put("nacos", jsonObject); + result.put("backupCores", cores); + result.put("backupService", serviceInstances); + result.put("backupPercentCpuLoad", percentCpuLoad); + result.put("backupPercentMemoryLoad", percentMemoryLoad); + return result; + } + + public List getJudgeServiceInfo() { + List serviceInfoList = new LinkedList<>(); + List serviceInstances = discoveryClient.getInstances(judgeServiceName); + for (ServiceInstance serviceInstance : serviceInstances) { + String result = restTemplate.getForObject(serviceInstance.getUri() + "/get-sys-config", String.class); + JSONObject jsonObject = JSONUtil.parseObj(result); + jsonObject.put("service", serviceInstance); + serviceInfoList.add(jsonObject); + } + return serviceInfoList; + } + + + public WebConfigDto getWebConfig() { + + return WebConfigDto.builder() + .baseUrl(UnicodeUtil.toString(configVo.getBaseUrl())) + .name(UnicodeUtil.toString(configVo.getName())) + .shortName(UnicodeUtil.toString(configVo.getShortName())) + .description(UnicodeUtil.toString(configVo.getDescription())) + .register(configVo.getRegister()) + .recordName(UnicodeUtil.toString(configVo.getRecordName())) + .recordUrl(UnicodeUtil.toString(configVo.getRecordUrl())) + .projectName(UnicodeUtil.toString(configVo.getProjectName())) + .projectUrl(UnicodeUtil.toString(configVo.getProjectUrl())) + .build(); + } + + + public void deleteHomeCarousel(Long id) throws StatusFailException { + + File imgFile = fileEntityService.getById(id); + if (imgFile == null) { + throw new StatusFailException("文件id错误,图片不存在"); + } + boolean isOk = fileEntityService.removeById(id); + if (isOk) { + FileUtil.del(imgFile.getFilePath()); + } else { + throw new StatusFailException("删除失败!"); + } + } + + public void setWebConfig(WebConfigDto config) throws StatusFailException { + + if (!StringUtils.isEmpty(config.getBaseUrl())) { + configVo.setBaseUrl(config.getBaseUrl()); + } + if (!StringUtils.isEmpty(config.getName())) { + configVo.setName(config.getName()); + } + if (!StringUtils.isEmpty(config.getShortName())) { + configVo.setShortName(config.getShortName()); + } + if (!StringUtils.isEmpty(config.getDescription())) { + configVo.setDescription(config.getDescription()); + } + if (config.getRegister() != null) { + configVo.setRegister(config.getRegister()); + } + if (!StringUtils.isEmpty(config.getRecordName())) { + configVo.setRecordName(config.getRecordName()); + } + if (!StringUtils.isEmpty(config.getRecordUrl())) { + configVo.setRecordUrl(config.getRecordUrl()); + } + if (!StringUtils.isEmpty(config.getProjectName())) { + configVo.setProjectName(config.getProjectName()); + } + if (!StringUtils.isEmpty(config.getProjectUrl())) { + configVo.setProjectUrl(config.getProjectUrl()); + } + boolean isOk = sendNewConfigToNacos(); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + public EmailConfigDto getEmailConfig() { + return EmailConfigDto.builder() + .emailUsername(configVo.getEmailUsername()) + .emailPassword(configVo.getEmailPassword()) + .emailHost(configVo.getEmailHost()) + .emailPort(configVo.getEmailPort()) + .emailBGImg(configVo.getEmailBGImg()) + .emailSsl(configVo.getEmailSsl()) + .build(); + } + + + public void setEmailConfig(EmailConfigDto config) throws StatusFailException { + + if (!StringUtils.isEmpty(config.getEmailHost())) { + configVo.setEmailHost(config.getEmailHost()); + } + if (!StringUtils.isEmpty(config.getEmailPassword())) { + configVo.setEmailPassword(config.getEmailPassword()); + } + + if (config.getEmailPort() != null) { + configVo.setEmailPort(config.getEmailPort()); + } + + if (!StringUtils.isEmpty(config.getEmailUsername())) { + configVo.setEmailUsername(config.getEmailUsername()); + } + + if (!StringUtils.isEmpty(config.getEmailBGImg())) { + configVo.setEmailBGImg(config.getEmailBGImg()); + } + + if (config.getEmailSsl() != null) { + configVo.setEmailSsl(config.getEmailSsl()); + } + + boolean isOk = sendNewConfigToNacos(); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + + public void testEmail(TestEmailDto testEmailDto) throws StatusFailException { + String email = testEmailDto.getEmail(); + if (StringUtils.isEmpty(email)) { + throw new StatusFailException("测试的邮箱不能为空!"); + } + boolean isEmail = Validator.isEmail(email); + if (isEmail) { + emailManager.testEmail(email); + } else { + throw new StatusFailException("测试的邮箱格式不正确!"); + } + } + + public DBAndRedisConfigDto getDBAndRedisConfig() { + return DBAndRedisConfigDto.builder() + .dbName(configVo.getMysqlDBName()) + .dbHost(configVo.getMysqlHost()) + .dbPort(configVo.getMysqlPort()) + .dbUsername(configVo.getMysqlUsername()) + .dbPassword(configVo.getMysqlPassword()) + .redisHost(configVo.getRedisHost()) + .redisPort(configVo.getRedisPort()) + .redisPassword(configVo.getRedisPassword()) + .build(); + } + + + public void setDBAndRedisConfig(DBAndRedisConfigDto config) throws StatusFailException { + + if (!StringUtils.isEmpty(config.getDbName())) { + configVo.setMysqlDBName(config.getDbName()); + } + + if (!StringUtils.isEmpty(config.getDbHost())) { + configVo.setMysqlHost(config.getDbHost()); + } + if (config.getDbPort() != null) { + configVo.setMysqlPort(config.getDbPort()); + } + if (!StringUtils.isEmpty(config.getDbUsername())) { + configVo.setMysqlUsername(config.getDbUsername()); + } + if (!StringUtils.isEmpty(config.getDbPassword())) { + configVo.setMysqlPassword(config.getDbPassword()); + } + + if (!StringUtils.isEmpty(config.getRedisHost())) { + configVo.setRedisHost(config.getRedisHost()); + } + + if (config.getRedisPort() != null) { + configVo.setRedisPort(config.getRedisPort()); + } + if (!StringUtils.isEmpty(config.getRedisPassword())) { + configVo.setRedisPassword(config.getRedisPassword()); + } + + boolean isOk = sendNewConfigToNacos(); + + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + public SwitchConfigDto getSwitchConfig() { + return SwitchConfigDto.builder() + .openPublicDiscussion(configVo.getOpenPublicDiscussion()) + .openGroupDiscussion(configVo.getOpenGroupDiscussion()) + .openContestComment(configVo.getOpenContestComment()) + .openPublicJudge(configVo.getOpenPublicJudge()) + .openContestJudge(configVo.getOpenContestJudge()) + .openGroupJudge(configVo.getOpenGroupJudge()) + .hideNonContestSubmissionCode(configVo.getHideNonContestSubmissionCode()) + .defaultCreateCommentACInitValue(configVo.getDefaultCreateCommentACInitValue()) + .defaultCreateDiscussionACInitValue(configVo.getDefaultCreateDiscussionACInitValue()) + .defaultCreateDiscussionDailyLimit(configVo.getDefaultCreateDiscussionDailyLimit()) + .defaultCreateGroupACInitValue(configVo.getDefaultCreateGroupACInitValue()) + .defaultSubmitInterval(configVo.getDefaultSubmitInterval()) + .defaultCreateGroupDailyLimit(configVo.getDefaultCreateGroupDailyLimit()) + .defaultCreateGroupLimit(configVo.getDefaultCreateGroupLimit()) + .hduUsernameList(configVo.getHduUsernameList()) + .hduPasswordList(configVo.getHduPasswordList()) + .cfUsernameList(configVo.getCfUsernameList()) + .cfPasswordList(configVo.getCfPasswordList()) + .pojUsernameList(configVo.getPojUsernameList()) + .pojPasswordList(configVo.getPojPasswordList()) + .atcoderUsernameList(configVo.getAtcoderUsernameList()) + .atcoderPasswordList(configVo.getAtcoderPasswordList()) + .spojUsernameList(configVo.getSpojUsernameList()) + .spojPasswordList(configVo.getSpojPasswordList()) + .build(); + } + + @Transactional(rollbackFor = Exception.class) + public void setSwitchConfig(SwitchConfigDto config) throws StatusFailException { + if (config.getOpenPublicDiscussion() != null) { + configVo.setOpenPublicDiscussion(config.getOpenPublicDiscussion()); + } + if (config.getOpenGroupDiscussion() != null) { + configVo.setOpenGroupDiscussion(config.getOpenGroupDiscussion()); + } + if (config.getOpenContestComment() != null) { + configVo.setOpenContestComment(config.getOpenContestComment()); + } + if (config.getOpenPublicJudge() != null) { + configVo.setOpenPublicJudge(config.getOpenPublicJudge()); + } + if (config.getOpenGroupJudge() != null) { + configVo.setOpenGroupJudge(config.getOpenGroupJudge()); + } + if (config.getOpenContestJudge() != null) { + configVo.setOpenContestJudge(config.getOpenContestJudge()); + } + + if (config.getHideNonContestSubmissionCode() != null) { + configVo.setHideNonContestSubmissionCode(config.getHideNonContestSubmissionCode()); + } + + if (config.getDefaultCreateDiscussionACInitValue() != null) { + configVo.setDefaultCreateDiscussionACInitValue(config.getDefaultCreateDiscussionACInitValue()); + } + + if (config.getDefaultCreateDiscussionDailyLimit() != null) { + configVo.setDefaultCreateDiscussionDailyLimit(config.getDefaultCreateDiscussionDailyLimit()); + } + + if (config.getDefaultCreateCommentACInitValue() != null) { + configVo.setDefaultCreateCommentACInitValue(config.getDefaultCreateCommentACInitValue()); + } + + if (config.getDefaultSubmitInterval() != null) { + if (config.getDefaultSubmitInterval() >= 0) { + configVo.setDefaultSubmitInterval(config.getDefaultSubmitInterval()); + } else { + configVo.setDefaultSubmitInterval(0); + } + } + + if (config.getDefaultCreateGroupACInitValue() != null) { + configVo.setDefaultCreateGroupACInitValue(config.getDefaultCreateGroupACInitValue()); + } + + if (config.getDefaultCreateGroupDailyLimit() != null) { + configVo.setDefaultCreateGroupDailyLimit(config.getDefaultCreateGroupDailyLimit()); + } + + if (config.getDefaultCreateGroupLimit() != null) { + configVo.setDefaultCreateGroupLimit(config.getDefaultCreateGroupLimit()); + } + + if (checkListDiff(config.getCfUsernameList(), configVo.getCfUsernameList()) || + checkListDiff(config.getCfPasswordList(), configVo.getCfPasswordList())) { + configVo.setCfUsernameList(config.getCfUsernameList()); + configVo.setCfPasswordList(config.getCfPasswordList()); + changeRemoteJudgeAccount(config.getCfUsernameList(), + config.getCfPasswordList(), + Constants.RemoteOJ.CODEFORCES.getName()); + } + + if (checkListDiff(config.getHduUsernameList(), configVo.getHduUsernameList()) || + checkListDiff(config.getHduPasswordList(), configVo.getHduPasswordList())) { + configVo.setHduUsernameList(config.getHduUsernameList()); + configVo.setHduPasswordList(config.getHduPasswordList()); + changeRemoteJudgeAccount(config.getHduUsernameList(), + config.getHduPasswordList(), + Constants.RemoteOJ.HDU.getName()); + } + + if (checkListDiff(config.getPojUsernameList(), configVo.getPojUsernameList()) || + checkListDiff(config.getPojPasswordList(), configVo.getPojPasswordList())) { + configVo.setPojUsernameList(config.getPojUsernameList()); + configVo.setPojPasswordList(config.getPojPasswordList()); + changeRemoteJudgeAccount(config.getPojUsernameList(), + config.getPojPasswordList(), + Constants.RemoteOJ.POJ.getName()); + } + + if (checkListDiff(config.getSpojUsernameList(), configVo.getSpojUsernameList()) || + checkListDiff(config.getSpojPasswordList(), configVo.getSpojPasswordList())) { + configVo.setSpojUsernameList(config.getSpojUsernameList()); + configVo.setSpojPasswordList(config.getSpojPasswordList()); + changeRemoteJudgeAccount(config.getSpojUsernameList(), + config.getSpojPasswordList(), + Constants.RemoteOJ.SPOJ.getName()); + } + + if (checkListDiff(config.getAtcoderUsernameList(), configVo.getAtcoderUsernameList()) || + checkListDiff(config.getAtcoderPasswordList(), configVo.getAtcoderPasswordList())) { + configVo.setAtcoderUsernameList(config.getAtcoderUsernameList()); + configVo.setAtcoderPasswordList(config.getAtcoderPasswordList()); + changeRemoteJudgeAccount(config.getAtcoderUsernameList(), + config.getAtcoderPasswordList(), + Constants.RemoteOJ.ATCODER.getName()); + } + + boolean isOk = sendNewConfigToNacos(); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + private boolean checkListDiff(List list1, List list2) { + if (list1.size() != list2.size()) { + return true; + } + return !list1.toString().equals(list2.toString()); + } + + private void changeRemoteJudgeAccount(List usernameList, + List passwordList, + String oj) { + + if (CollectionUtils.isEmpty(usernameList) || CollectionUtils.isEmpty(passwordList) || usernameList.size() != passwordList.size()) { + log.error("[Change by Switch] [{}]: There is no account or password configured for remote judge, " + + "username list:{}, password list:{}", oj, Arrays.toString(usernameList.toArray()), + Arrays.toString(passwordList.toArray())); + } + + QueryWrapper remoteJudgeAccountQueryWrapper = new QueryWrapper<>(); + remoteJudgeAccountQueryWrapper.eq("oj", oj); + remoteJudgeAccountEntityService.remove(remoteJudgeAccountQueryWrapper); + + List newRemoteJudgeAccountList = new ArrayList<>(); + + for (int i = 0; i < usernameList.size(); i++) { + newRemoteJudgeAccountList.add(new RemoteJudgeAccount() + .setUsername(usernameList.get(i)) + .setPassword(passwordList.get(i)) + .setStatus(true) + .setVersion(0L) + .setOj(oj)); + } + + if (newRemoteJudgeAccountList.size() > 0) { + boolean addOk = remoteJudgeAccountEntityService.saveOrUpdateBatch(newRemoteJudgeAccountList); + if (!addOk) { + log.error("Remote judge initialization failed. Failed to add account for: [{}]. Please check the configuration file and restart!", oj); + } + } + } + + + public boolean sendNewConfigToNacos() { + + Properties properties = new Properties(); + properties.put("serverAddr", NACOS_URL); + + // if need username and password to login + properties.put("username", nacosUsername); + properties.put("password", nacosPassword); + + com.alibaba.nacos.api.config.ConfigService configService = null; + boolean isOK = false; + try { + configService = NacosFactory.createConfigService(properties); + isOK = configService.publishConfig(prefix + "-" + active + "." + fileExtension, GROUP, configUtils.getConfigContent(), TYPE); + } catch (NacosException e) { + log.error("通过nacos修改网站配置异常--------------->{}", e.getMessage()); + } + return isOK; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/system/DashboardManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/system/DashboardManager.java new file mode 100644 index 0000000..3cd92ae --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/system/DashboardManager.java @@ -0,0 +1,61 @@ +package top.hcode.hoj.manager.admin.system; + +import cn.hutool.core.map.MapUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.pojo.entity.user.Session; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.user.SessionEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; + +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 21:44 + * @Description: + */ +@Component +public class DashboardManager { + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private SessionEntityService sessionEntityService; + + public Session getRecentSession(){ + // 需要获取一下该token对应用户的数据 + org.apache.shiro.session.Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + QueryWrapper wrapper = new QueryWrapper().eq("uid",userRolesVo.getUid()).orderByDesc("gmt_create"); + List sessionList = sessionEntityService.list(wrapper); + if (sessionList.size()>1){ + return sessionList.get(1); + }else{ + return sessionList.get(0); + } + } + + public Map getDashboardInfo(){ + int userNum = userInfoEntityService.count(); + int recentContestNum = contestEntityService.getWithinNext14DaysContests().size(); + int todayJudgeNum = judgeEntityService.getTodayJudgeNum(); + return MapUtil.builder() + .put("userNum",userNum) + .put("recentContestNum",recentContestNum) + .put("todayJudgeNum",todayJudgeNum).map(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/tag/AdminTagManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/tag/AdminTagManager.java new file mode 100644 index 0000000..4a3296a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/tag/AdminTagManager.java @@ -0,0 +1,100 @@ +package top.hcode.hoj.manager.admin.tag; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.dao.problem.TagClassificationEntityService; +import top.hcode.hoj.dao.problem.TagEntityService; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.entity.problem.TagClassification; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 17:47 + * @Description: + */ +@Component +public class AdminTagManager { + + @Autowired + private TagEntityService tagEntityService; + + @Autowired + private TagClassificationEntityService tagClassificationEntityService; + + public Tag addTag(Tag tag) throws StatusFailException { + QueryWrapper tagQueryWrapper = new QueryWrapper<>(); + tagQueryWrapper.eq(tag.getGid() != null, "gid", tag.getGid()) + .eq("name", tag.getName()) + .eq("oj", tag.getOj()); + Tag existTag = tagEntityService.getOne(tagQueryWrapper, false); + + if (existTag != null) { + throw new StatusFailException("该标签名称已存在!请勿重复添加!"); + } + + boolean isOk = tagEntityService.save(tag); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + return tag; + } + + public void updateTag(Tag tag) throws StatusFailException { + boolean isOk = tagEntityService.updateById(tag); + if (!isOk) { + throw new StatusFailException("更新失败"); + } + } + + public void deleteTag(Long tid) throws StatusFailException { + boolean isOk = tagEntityService.removeById(tid); + if (!isOk) { + throw new StatusFailException("删除失败"); + } + } + + public List getTagClassification(String oj) { + oj = oj.toUpperCase(); + if (oj.equals("ALL")) { + return tagClassificationEntityService.list(); + } else { + QueryWrapper tagClassificationQueryWrapper = new QueryWrapper<>(); + tagClassificationQueryWrapper.eq("oj", oj).orderByAsc("`rank`"); + return tagClassificationEntityService.list(tagClassificationQueryWrapper); + } + } + + public TagClassification addTagClassification(TagClassification tagClassification) throws StatusFailException { + QueryWrapper tagClassificationQueryWrapper = new QueryWrapper<>(); + tagClassificationQueryWrapper.eq("name", tagClassification.getName()) + .eq("oj", tagClassification.getOj()); + TagClassification existTagClassification = tagClassificationEntityService.getOne(tagClassificationQueryWrapper, false); + + if (existTagClassification != null) { + throw new StatusFailException("该标签分类名称已存在!请勿重复!"); + } + boolean isOk = tagClassificationEntityService.save(tagClassification); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + return tagClassification; + } + + public void updateTagClassification(TagClassification tagClassification) throws StatusFailException { + boolean isOk = tagClassificationEntityService.updateById(tagClassification); + if (!isOk) { + throw new StatusFailException("更新失败"); + } + } + + public void deleteTagClassification(Long tcid) throws StatusFailException { + boolean isOk = tagClassificationEntityService.removeById(tcid); + if (!isOk) { + throw new StatusFailException("删除失败"); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingCategoryManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingCategoryManager.java new file mode 100644 index 0000000..c4a0ea7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingCategoryManager.java @@ -0,0 +1,55 @@ +package top.hcode.hoj.manager.admin.training; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.dao.training.TrainingCategoryEntityService; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 19:29 + * @Description: + */ + +@Component +public class AdminTrainingCategoryManager { + + @Resource + private TrainingCategoryEntityService trainingCategoryEntityService; + + public TrainingCategory addTrainingCategory(TrainingCategory trainingCategory) throws StatusFailException { + QueryWrapper trainingCategoryQueryWrapper = new QueryWrapper<>(); + trainingCategoryQueryWrapper.eq(trainingCategory.getGid() != null, "gid", trainingCategory.getGid()) + .eq("name", trainingCategory.getName()); + TrainingCategory existedTrainingCategory = trainingCategoryEntityService.getOne(trainingCategoryQueryWrapper, false); + + if (existedTrainingCategory != null) { + throw new StatusFailException("该分类名称已存在!请勿重复添加!"); + } + + boolean isOk = trainingCategoryEntityService.save(trainingCategory); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + return trainingCategory; + } + + public void updateTrainingCategory(TrainingCategory trainingCategory) throws StatusFailException { + boolean isOk = trainingCategoryEntityService.updateById(trainingCategory); + if (!isOk) { + throw new StatusFailException("更新失败!"); + } + } + + public void deleteTrainingCategory(Long cid) throws StatusFailException { + boolean isOk = trainingCategoryEntityService.removeById(cid); + if (!isOk) { + throw new StatusFailException("删除失败!"); + } + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingManager.java new file mode 100644 index 0000000..9cff8d8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingManager.java @@ -0,0 +1,216 @@ +package top.hcode.hoj.manager.admin.training; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.pojo.dto.TrainingDto; +import top.hcode.hoj.pojo.entity.training.MappingTrainingCategory; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; +import top.hcode.hoj.pojo.entity.training.TrainingRegister; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.training.*; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import java.util.Objects; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 19:46 + * @Description: + */ + +@Component +public class AdminTrainingManager { + + @Resource + private TrainingEntityService trainingEntityService; + + @Resource + private MappingTrainingCategoryEntityService mappingTrainingCategoryEntityService; + + @Resource + private TrainingCategoryEntityService trainingCategoryEntityService; + + @Resource + private TrainingRegisterEntityService trainingRegisterEntityService; + + @Resource + private AdminTrainingRecordManager adminTrainingRecordManager; + + public IPage getTrainingList(Integer limit, Integer currentPage, String keyword) { + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + IPage iPage = new Page<>(currentPage, limit); + QueryWrapper queryWrapper = new QueryWrapper<>(); + // 过滤密码 + queryWrapper.select(Training.class, info -> !info.getColumn().equals("private_pwd")); + if (!StringUtils.isEmpty(keyword)) { + keyword = keyword.trim(); + queryWrapper + .like("title", keyword).or() + .like("id", keyword).or() + .like("`rank`", keyword); + } + + queryWrapper.eq("is_group", false).orderByAsc("`rank`"); + + return trainingEntityService.page(iPage, queryWrapper); + } + + + public TrainingDto getTraining(Long tid) throws StatusFailException, StatusForbiddenException { + // 获取本场训练的信息 + Training training = trainingEntityService.getById(tid); + if (training == null) { // 查询不存在 + throw new StatusFailException("查询失败:该训练不存在,请检查参数tid是否准确!"); + } + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 是否为超级管理员 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + // 只有超级管理员和训练拥有者才能操作 + if (!isRoot && !userRolesVo.getUsername().equals(training.getAuthor())) { + throw new StatusForbiddenException("对不起,你无权限操作!"); + } + + TrainingDto trainingDto = new TrainingDto(); + trainingDto.setTraining(training); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("tid", tid); + MappingTrainingCategory mappingTrainingCategory = mappingTrainingCategoryEntityService.getOne(queryWrapper, false); + TrainingCategory trainingCategory = null; + if (mappingTrainingCategory != null) { + trainingCategory = trainingCategoryEntityService.getById(mappingTrainingCategory.getCid()); + } + trainingDto.setTrainingCategory(trainingCategory); + return trainingDto; + } + + + public void deleteTraining(Long tid) throws StatusFailException { + + boolean isOk = trainingEntityService.removeById(tid); + /* + Training的id为其他表的外键的表中的对应数据都会被一起删除! + */ + if (!isOk) { + throw new StatusFailException("删除失败!"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void addTraining(TrainingDto trainingDto) throws StatusFailException { + + Training training = trainingDto.getTraining(); + trainingEntityService.save(training); + TrainingCategory trainingCategory = trainingDto.getTrainingCategory(); + if (trainingCategory.getId() == null) { + try { + trainingCategoryEntityService.save(trainingCategory); + } catch (Exception ignored) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("name", trainingCategory.getName()); + trainingCategory = trainingCategoryEntityService.getOne(queryWrapper, false); + } + } + + boolean isOk = mappingTrainingCategoryEntityService.save(new MappingTrainingCategory() + .setTid(training.getId()) + .setCid(trainingCategory.getId())); + if (!isOk) { + throw new StatusFailException("添加失败!"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void updateTraining(TrainingDto trainingDto) throws StatusForbiddenException, StatusFailException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 是否为超级管理员 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + // 只有超级管理员和训练拥有者才能操作 + if (!isRoot && !userRolesVo.getUsername().equals(trainingDto.getTraining().getAuthor())) { + throw new StatusForbiddenException("对不起,你无权限操作!"); + } + Training training = trainingDto.getTraining(); + Training oldTraining = trainingEntityService.getById(training.getId()); + trainingEntityService.updateById(training); + + // 私有训练 修改密码 需要清空之前注册训练的记录 + if (training.getAuth().equals(Constants.Training.AUTH_PRIVATE.getValue())) { + if (!Objects.equals(training.getPrivatePwd(), oldTraining.getPrivatePwd())) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("tid", training.getId()); + trainingRegisterEntityService.remove(updateWrapper); + } + } + + + TrainingCategory trainingCategory = trainingDto.getTrainingCategory(); + if (trainingCategory.getId() == null) { + try { + trainingCategoryEntityService.save(trainingCategory); + } catch (Exception ignored) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("name", trainingCategory.getName()); + trainingCategory = trainingCategoryEntityService.getOne(queryWrapper, false); + } + } + + MappingTrainingCategory mappingTrainingCategory = mappingTrainingCategoryEntityService + .getOne(new QueryWrapper().eq("tid", training.getId()), + false); + + if (mappingTrainingCategory == null) { + mappingTrainingCategoryEntityService.save(new MappingTrainingCategory() + .setTid(training.getId()).setCid(trainingCategory.getId())); + adminTrainingRecordManager.checkSyncRecord(trainingDto.getTraining()); + } else { + if (!mappingTrainingCategory.getCid().equals(trainingCategory.getId())) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("tid", training.getId()).set("cid", trainingCategory.getId()); + boolean isOk = mappingTrainingCategoryEntityService.update(null, updateWrapper); + if (isOk) { + adminTrainingRecordManager.checkSyncRecord(trainingDto.getTraining()); + } else { + throw new StatusFailException("修改失败"); + } + } + } + + } + + public void changeTrainingStatus(Long tid, String author, Boolean status) throws StatusForbiddenException, StatusFailException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 是否为超级管理员 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + // 只有超级管理员和训练拥有者才能操作 + if (!isRoot && !userRolesVo.getUsername().equals(author)) { + throw new StatusForbiddenException("对不起,你无权限操作!"); + } + + boolean isOk = trainingEntityService.saveOrUpdate(new Training().setId(tid).setStatus(status)); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingProblemManager.java new file mode 100644 index 0000000..1748a35 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingProblemManager.java @@ -0,0 +1,237 @@ +package top.hcode.hoj.manager.admin.training; + +import cn.hutool.core.io.FileUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.crawler.problem.ProblemStrategy; +import top.hcode.hoj.manager.admin.problem.RemoteProblemManager; +import top.hcode.hoj.pojo.dto.TrainingProblemDto; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.training.TrainingProblemEntityService; +import top.hcode.hoj.dao.training.TrainingEntityService; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import java.io.File; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 20:20 + * @Description: + */ +@Component +public class AdminTrainingProblemManager { + + @Resource + private TrainingProblemEntityService trainingProblemEntityService; + + @Resource + private TrainingEntityService trainingEntityService; + + @Resource + private ProblemEntityService problemEntityService; + + @Resource + private AdminTrainingRecordManager adminTrainingRecordManager; + + @Resource + private RemoteProblemManager remoteProblemManager; + + public HashMap getProblemList(Integer limit, Integer currentPage, String keyword, Boolean queryExisted, Long tid) { + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + IPage iPage = new Page<>(currentPage, limit); + // 根据tid在TrainingProblem表中查询到对应pid集合 + QueryWrapper trainingProblemQueryWrapper = new QueryWrapper<>(); + trainingProblemQueryWrapper.eq("tid", tid).orderByAsc("display_id"); + List pidList = new LinkedList<>(); + List trainingProblemList = trainingProblemEntityService.list(trainingProblemQueryWrapper); + HashMap trainingProblemMap = new HashMap<>(); + trainingProblemList.forEach(trainingProblem -> { + if (!trainingProblemMap.containsKey(trainingProblem.getPid())) { + trainingProblemMap.put(trainingProblem.getPid(), trainingProblem); + } + pidList.add(trainingProblem.getPid()); + }); + + HashMap trainingProblem = new HashMap<>(); + + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + + // 逻辑判断,如果是查询已有的就应该是in,如果是查询不要重复的,使用not in + if (queryExisted) { + problemQueryWrapper.in(pidList.size() > 0, "id", pidList); + } else { + // 权限需要是公开的(隐藏的,比赛中不可加入!) + problemQueryWrapper.eq("auth", 1).eq("is_group", false); + problemQueryWrapper.notIn(pidList.size() > 0, "id", pidList); + } + + if (!StringUtils.isEmpty(keyword)) { + problemQueryWrapper.and(wrapper -> wrapper.like("title", keyword).or() + .like("problem_id", keyword).or() + .like("author", keyword)); + } + + if (pidList.size() == 0 && queryExisted) { + problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("id", null); + } + + IPage problemListPage = problemEntityService.page(iPage, problemQueryWrapper); + + if (queryExisted && pidList.size() > 0) { + List problemListPageRecords = problemListPage.getRecords(); + List sortProblemList = problemListPageRecords + .stream() + .sorted(Comparator.comparingInt(problem -> trainingProblemMap.get(problem.getId()).getRank())) + .collect(Collectors.toList()); + problemListPage.setRecords(sortProblemList); + } + + trainingProblem.put("problemList", problemListPage); + trainingProblem.put("trainingProblemMap", trainingProblemMap); + + return trainingProblem; + } + + public void updateProblem(TrainingProblem trainingProblem) throws StatusFailException { + boolean isOk = trainingProblemEntityService.saveOrUpdate(trainingProblem); + + if (!isOk) { + throw new StatusFailException("修改失败!"); + } + } + + public void deleteProblem(Long pid,Long tid) throws StatusFailException { + boolean isOk = false; + // 训练id不为null,表示就是从比赛列表移除而已 + if (tid != null) { + QueryWrapper trainingProblemQueryWrapper = new QueryWrapper<>(); + trainingProblemQueryWrapper.eq("tid", tid).eq("pid", pid); + isOk = trainingProblemEntityService.remove(trainingProblemQueryWrapper); + + } else { + /* + problem的id为其他表的外键的表中的对应数据都会被一起删除! + */ + isOk = problemEntityService.removeById(pid); + } + + if (isOk) { // 删除成功 + if (tid == null) { + FileUtil.del(Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + pid); + } + + // 更新训练最近更新时间 + UpdateWrapper trainingUpdateWrapper = new UpdateWrapper<>(); + trainingUpdateWrapper.set("gmt_modified", new Date()) + .eq("id", tid); + trainingEntityService.update(trainingUpdateWrapper); + + } else { + throw new StatusFailException("删除失败!"); + } + } + + public void addProblemFromPublic(TrainingProblemDto trainingProblemDto) throws StatusFailException { + + Long pid = trainingProblemDto.getPid(); + Long tid = trainingProblemDto.getTid(); + String displayId = trainingProblemDto.getDisplayId(); + + QueryWrapper trainingProblemQueryWrapper = new QueryWrapper<>(); + trainingProblemQueryWrapper.eq("tid", tid) + .and(wrapper -> wrapper.eq("pid", pid) + .or() + .eq("display_id", displayId)); + TrainingProblem trainingProblem = trainingProblemEntityService.getOne(trainingProblemQueryWrapper, false); + if (trainingProblem != null) { + throw new StatusFailException("添加失败,该题目已添加或者题目的训练展示ID已存在!"); + } + + TrainingProblem newTProblem = new TrainingProblem(); + boolean isOk = trainingProblemEntityService.saveOrUpdate(newTProblem + .setTid(tid).setPid(pid).setDisplayId(displayId)); + if (isOk) { // 添加成功 + + // 更新训练最近更新时间 + UpdateWrapper trainingUpdateWrapper = new UpdateWrapper<>(); + trainingUpdateWrapper.set("gmt_modified", new Date()) + .eq("id", tid); + trainingEntityService.update(trainingUpdateWrapper); + + // 异步地同步用户对该题目的提交数据 + adminTrainingRecordManager.syncAlreadyRegisterUserRecord(tid, pid, newTProblem.getId()); + } else { + throw new StatusFailException("添加失败!"); + } + } + + public void importTrainingRemoteOJProblem(String name, String problemId, Long tid) throws StatusFailException { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("problem_id", name.toUpperCase() + "-" + problemId); + Problem problem = problemEntityService.getOne(queryWrapper, false); + + // 如果该题目不存在,需要先导入 + if (problem == null) { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + try { + ProblemStrategy.RemoteProblemInfo otherOJProblemInfo = remoteProblemManager.getOtherOJProblemInfo(name.toUpperCase(), problemId, userRolesVo.getUsername()); + if (otherOJProblemInfo != null) { + problem = remoteProblemManager.adminAddOtherOJProblem(otherOJProblemInfo, name); + if (problem == null) { + throw new StatusFailException("导入新题目失败!请重新尝试!"); + } + } else { + throw new StatusFailException("导入新题目失败!原因:可能是与该OJ链接超时或题号格式错误!"); + } + } catch (Exception e) { + throw new StatusFailException(e.getMessage()); + } + } + + QueryWrapper trainingProblemQueryWrapper = new QueryWrapper<>(); + Problem finalProblem = problem; + trainingProblemQueryWrapper.eq("tid", tid) + .and(wrapper -> wrapper.eq("pid", finalProblem.getId()) + .or() + .eq("display_id", finalProblem.getProblemId())); + TrainingProblem trainingProblem = trainingProblemEntityService.getOne(trainingProblemQueryWrapper, false); + if (trainingProblem != null) { + throw new StatusFailException("添加失败,该题目已添加或者题目的训练展示ID已存在!"); + } + + TrainingProblem newTProblem = new TrainingProblem(); + boolean isOk = trainingProblemEntityService.saveOrUpdate(newTProblem + .setTid(tid).setPid(problem.getId()).setDisplayId(problem.getProblemId())); + if (isOk) { // 添加成功 + + // 更新训练最近更新时间 + UpdateWrapper trainingUpdateWrapper = new UpdateWrapper<>(); + trainingUpdateWrapper.set("gmt_modified", new Date()) + .eq("id", tid); + trainingEntityService.update(trainingUpdateWrapper); + + // 异步地同步用户对该题目的提交数据 + adminTrainingRecordManager.syncAlreadyRegisterUserRecord(tid, problem.getId(), newTProblem.getId()); + } else { + throw new StatusFailException("添加失败!"); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingRecordManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingRecordManager.java new file mode 100644 index 0000000..8fddc58 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/training/AdminTrainingRecordManager.java @@ -0,0 +1,155 @@ +package top.hcode.hoj.manager.admin.training; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.pojo.entity.training.TrainingRecord; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.training.TrainingProblemEntityService; +import top.hcode.hoj.dao.training.TrainingRecordEntityService; +import top.hcode.hoj.dao.training.TrainingRegisterEntityService; +import top.hcode.hoj.dao.training.TrainingEntityService; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 20:09 + * @Description: + */ +@Component +public class AdminTrainingRecordManager { + + @Resource + private TrainingEntityService trainingEntityService; + + @Resource + private TrainingProblemEntityService trainingProblemEntityService; + + @Resource + private TrainingRecordEntityService trainingRecordEntityService; + + @Resource + private TrainingRegisterEntityService trainingRegisterEntityService; + + @Resource + private JudgeEntityService judgeEntityService; + + @Async + public void syncUserSubmissionToRecordByTid(Long tid, String uid) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("tid", tid); + List trainingProblemList = trainingProblemEntityService.list(queryWrapper); + List pidList = new ArrayList<>(); + HashMap pidMapTPid = new HashMap<>(); + for (TrainingProblem trainingProblem : trainingProblemList) { + pidList.add(trainingProblem.getPid()); + pidMapTPid.put(trainingProblem.getPid(), trainingProblem.getId()); + } + if (!CollectionUtils.isEmpty(pidList)) { + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper.in("pid", pidList) + .eq("cid", 0) + .eq("status", Constants.Judge.STATUS_ACCEPTED.getStatus()) // 只同步ac的提交 + .eq("uid", uid); + List judgeList = judgeEntityService.list(judgeQueryWrapper); + saveBatchNewRecordByJudgeList(judgeList, tid, null, pidMapTPid); + } + } + + @Async + public void syncAlreadyRegisterUserRecord(Long tid, Long pid, Long tpId) { + Training training = trainingEntityService.getById(tid); + if (!Constants.Training.AUTH_PRIVATE.getValue().equals(training.getAuth())){ + return; + } + List uidList = trainingRegisterEntityService.getAlreadyRegisterUidList(tid); + syncNewProblemUserSubmissionToRecord(pid, tpId, tid, uidList); + } + + + @Async + public void checkSyncRecord(Training training) { + if (!Constants.Training.AUTH_PRIVATE.getValue().equals(training.getAuth())) { + return; + } + QueryWrapper trainingRecordQueryWrapper = new QueryWrapper<>(); + trainingRecordQueryWrapper.eq("tid", training.getId()); + int count = trainingRecordEntityService.count(trainingRecordQueryWrapper); + if (count <= 0) { + syncAllUserProblemRecord(training.getId()); + } + + } + + private void syncNewProblemUserSubmissionToRecord(Long pid, Long tpId, Long tid, List uidList) { + if (!CollectionUtils.isEmpty(uidList)) { + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper.eq("pid", pid) + .eq("cid", 0) + .eq("status", Constants.Judge.STATUS_ACCEPTED.getStatus()) // 只同步ac的提交 + .in("uid", uidList); + List judgeList = judgeEntityService.list(judgeQueryWrapper); + saveBatchNewRecordByJudgeList(judgeList, tid, tpId, null); + } + } + + + private void syncAllUserProblemRecord(Long tid) { + QueryWrapper trainingProblemQueryWrapper = new QueryWrapper<>(); + trainingProblemQueryWrapper.eq("tid", tid); + List trainingProblemList = trainingProblemEntityService.list(trainingProblemQueryWrapper); + if (trainingProblemList.size() == 0) { + return; + } + List pidList = new ArrayList<>(); + HashMap pidMapTPid = new HashMap<>(); + for (TrainingProblem trainingProblem : trainingProblemList) { + pidList.add(trainingProblem.getPid()); + pidMapTPid.put(trainingProblem.getPid(), trainingProblem.getId()); + } + + List uidList = trainingRegisterEntityService.getAlreadyRegisterUidList(tid); + if (uidList.size() == 0) { + return; + } + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper.in("pid", pidList) + .eq("cid", 0) + .eq("status", Constants.Judge.STATUS_ACCEPTED.getStatus()) // 只同步ac的提交 + .in("uid", uidList); + List judgeList = judgeEntityService.list(judgeQueryWrapper); + saveBatchNewRecordByJudgeList(judgeList, tid, null, pidMapTPid); + } + + + private void saveBatchNewRecordByJudgeList(List judgeList, Long tid, Long tpId, HashMap pidMapTPid) { + if (!CollectionUtils.isEmpty(judgeList)) { + List trainingRecordList = new ArrayList<>(); + for (Judge judge : judgeList) { + TrainingRecord trainingRecord = new TrainingRecord() + .setPid(judge.getPid()) + .setSubmitId(judge.getSubmitId()) + .setTid(tid) + .setUid(judge.getUid()); + if (pidMapTPid != null) { + trainingRecord.setTpid(pidMapTPid.get(judge.getPid())); + } + if (tpId != null) { + trainingRecord.setTpid(tpId); + } + trainingRecordList.add(trainingRecord); + } + trainingRecordEntityService.saveBatch(trainingRecordList); + } + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/user/AdminUserManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/user/AdminUserManager.java new file mode 100644 index 0000000..9a60717 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/admin/user/AdminUserManager.java @@ -0,0 +1,257 @@ +package top.hcode.hoj.manager.admin.user; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.manager.msg.AdminNoticeManager; +import top.hcode.hoj.pojo.dto.AdminEditUserDto; +import top.hcode.hoj.pojo.entity.user.UserInfo; +import top.hcode.hoj.pojo.entity.user.UserRecord; +import top.hcode.hoj.pojo.entity.user.UserRole; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.dao.user.UserRecordEntityService; +import top.hcode.hoj.dao.user.UserRoleEntityService; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 21:05 + * @Description: + */ +@Component +public class AdminUserManager { + + @Autowired + private UserRoleEntityService userRoleEntityService; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private AdminNoticeManager adminNoticeManager; + + @Autowired + private UserRecordEntityService userRecordEntityService; + + @Autowired + private RedisUtils redisUtils; + + public IPage getUserList(Integer limit, Integer currentPage, Boolean onlyAdmin, String keyword) { + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + if (keyword != null) { + keyword = keyword.trim(); + } + return userRoleEntityService.getUserList(limit, currentPage, keyword, onlyAdmin); + } + + public void editUser(AdminEditUserDto adminEditUserDto) throws StatusFailException { + + String username = adminEditUserDto.getUsername(); + String uid = adminEditUserDto.getUid(); + String realname = adminEditUserDto.getRealname(); + String email = adminEditUserDto.getEmail(); + String password = adminEditUserDto.getPassword(); + int type = adminEditUserDto.getType(); + int status = adminEditUserDto.getStatus(); + boolean setNewPwd = adminEditUserDto.getSetNewPwd(); + + String titleName = adminEditUserDto.getTitleName(); + String titleColor = adminEditUserDto.getTitleColor(); + + if (!StringUtils.isEmpty(realname) && realname.length() > 50) { + throw new StatusFailException("真实姓名的长度不能超过50位"); + } + + if (!StringUtils.isEmpty(titleName) && titleName.length() > 20) { + throw new StatusFailException("头衔的长度建议不要超过20位"); + } + + if (!StringUtils.isEmpty(password) && (password.length() < 6 || password.length() > 20)) { + throw new StatusFailException("密码长度建议为6~20位!"); + } + + if (username.length() > 20) { + throw new StatusFailException("用户名长度建议不能超过20位!"); + } + + + UpdateWrapper userInfoUpdateWrapper = new UpdateWrapper<>(); + + userInfoUpdateWrapper.eq("uuid", uid) + .set("username", username) + .set("realname", realname) + .set("email", email) + .set(setNewPwd, "password", SecureUtil.md5(password)) + .set("title_name", titleName) + .set("title_color", titleColor) + .set("status", status); + boolean updateUserInfo = userInfoEntityService.update(userInfoUpdateWrapper); + + QueryWrapper userRoleQueryWrapper = new QueryWrapper<>(); + userRoleQueryWrapper.eq("uid", uid); + UserRole userRole = userRoleEntityService.getOne(userRoleQueryWrapper, false); + boolean changeUserRole = false; + int oldType = userRole.getRoleId().intValue(); + if (userRole.getRoleId().intValue() != type) { + userRole.setRoleId((long) type); + changeUserRole = userRoleEntityService.updateById(userRole); + if (type == 1000 || oldType == 1000) { + // 新增或者去除超级管理员需要删除缓存 + String cacheKey = Constants.Account.SUPER_ADMIN_UID_LIST_CACHE.getCode(); + redisUtils.del(cacheKey); + } + } + if (updateUserInfo && setNewPwd) { + // 需要重新登录 + userRoleEntityService.deleteCache(uid, true); + } else if (changeUserRole) { + // 需要重新授权 + userRoleEntityService.deleteCache(uid, false); + } + + if (changeUserRole) { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + String title = "权限变更通知(Authority Change Notice)"; + String content = userRoleEntityService.getAuthChangeContent(oldType, type); + adminNoticeManager.addSingleNoticeToUser(userRolesVo.getUid(), uid, title, content, "Sys"); + } + + } + + public void deleteUser(List deleteUserIdList) throws StatusFailException { + boolean isOk = userInfoEntityService.removeByIds(deleteUserIdList); + if (!isOk) { + throw new StatusFailException("删除失败!"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void insertBatchUser(List> users) throws StatusFailException { + List userInfoList = new LinkedList<>(); + List userRoleList = new LinkedList<>(); + List userRecordList = new LinkedList<>(); + if (users != null) { + for (List user : users) { + String uuid = IdUtil.simpleUUID(); + UserInfo userInfo = new UserInfo() + .setUuid(uuid) + .setUsername(user.get(0)) + .setPassword(SecureUtil.md5(user.get(1))) + .setEmail(StringUtils.isEmpty(user.get(2)) ? null : user.get(2)); + + if (user.size() >= 4) { + String realname = user.get(3); + if (!StringUtils.isEmpty(realname)) { + userInfo.setRealname(user.get(3)); + } + } + + if (user.size() >= 5) { + String gender = user.get(4); + if ("male".equals(gender.toLowerCase()) || "0".equals(gender)) { + userInfo.setGender("male"); + } else if ("female".equals(gender.toLowerCase()) || "1".equals(gender)) { + userInfo.setGender("female"); + } + } + + if (user.size() >= 6) { + String nickname = user.get(5); + if (!StringUtils.isEmpty(nickname)) { + userInfo.setNickname(nickname); + } + } + + if (user.size() >= 7) { + String school = user.get(6); + if (!StringUtils.isEmpty(school)) { + userInfo.setSchool(school); + } + } + + userInfoList.add(userInfo); + userRoleList.add(new UserRole() + .setRoleId(1002L) + .setUid(uuid)); + userRecordList.add(new UserRecord().setUid(uuid)); + } + boolean result1 = userInfoEntityService.saveBatch(userInfoList); + boolean result2 = userRoleEntityService.saveBatch(userRoleList); + boolean result3 = userRecordEntityService.saveBatch(userRecordList); + if (result1 && result2 && result3) { + // 异步同步系统通知 + List uidList = userInfoList.stream().map(UserInfo::getUuid).collect(Collectors.toList()); + adminNoticeManager.syncNoticeToNewRegisterBatchUser(uidList); + } else { + throw new StatusFailException("删除失败"); + } + } else { + throw new StatusFailException("插入的用户数据不能为空!"); + } + } + + @Transactional(rollbackFor = Exception.class) + public Map generateUser(Map params) throws StatusFailException { + + String prefix = (String) params.getOrDefault("prefix", ""); + String suffix = (String) params.getOrDefault("suffix", ""); + int numberFrom = (int) params.getOrDefault("number_from", 1); + int numberTo = (int) params.getOrDefault("number_to", 10); + int passwordLength = (int) params.getOrDefault("password_length", 6); + + List userInfoList = new LinkedList<>(); + List userRoleList = new LinkedList<>(); + List userRecordList = new LinkedList<>(); + + HashMap userInfo = new HashMap<>(); // 存储账号密码放入redis中,等待导出excel + for (int num = numberFrom; num <= numberTo; num++) { + String uuid = IdUtil.simpleUUID(); + String password = RandomUtil.randomString(passwordLength); + String username = prefix + num + suffix; + userInfoList.add(new UserInfo() + .setUuid(uuid) + .setUsername(username) + .setPassword(SecureUtil.md5(password))); + userInfo.put(username, password); + userRoleList.add(new UserRole() + .setRoleId(1002L) + .setUid(uuid)); + userRecordList.add(new UserRecord().setUid(uuid)); + } + boolean result1 = userInfoEntityService.saveBatch(userInfoList); + boolean result2 = userRoleEntityService.saveBatch(userRoleList); + boolean result3 = userRecordEntityService.saveBatch(userRecordList); + if (result1 && result2 && result3) { + String key = IdUtil.simpleUUID(); + redisUtils.hmset(key, userInfo, 1800); // 存储半小时 + // 异步同步系统通知 + List uidList = userInfoList.stream().map(UserInfo::getUuid).collect(Collectors.toList()); + adminNoticeManager.syncNoticeToNewRegisterBatchUser(uidList); + return MapUtil.builder().put("key", key).map(); + } else { + throw new StatusFailException("生成指定用户失败!"); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/email/EmailManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/email/EmailManager.java new file mode 100644 index 0000000..e85548e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/email/EmailManager.java @@ -0,0 +1,235 @@ +package top.hcode.hoj.manager.email; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.text.UnicodeUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.mail.javamail.JavaMailSenderImpl; +import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import org.thymeleaf.TemplateEngine; +import org.thymeleaf.context.Context; +import top.hcode.hoj.utils.Constants; + +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; +import java.util.Date; +import java.util.Properties; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 22:01 + * @Description: + */ + +@Component +@RefreshScope +@Slf4j(topic = "hoj") +public class EmailManager { + + @Autowired + private TemplateEngine templateEngine; + + @Value("${hoj.web-config.base-url}") + public String ojAddr; + + @Value("${hoj.web-config.name}") + public String ojName; + + @Value("${hoj.web-config.short-name}") + public String ojShortName; + + @Value("${hoj.mail.background-img}") + public String ojEmailBg; + + @Value("${hoj.mail.username}") + public String ojEmailFrom; + + @Value("${hoj.mail.password}") + public String ojEmailPassword; + + @Value("${hoj.mail.host}") + public String ojEmailHost; + + @Value("${hoj.mail.port}") + public Integer ojEmailPort; + + @Value("${hoj.mail.ssl}") + public String ojEmailSsl; + + /** + * @MethodName getMailSender + * @Params * @param + * @Description 获取邮件系统配置 + * @Return + * @Since 2021/5/21 + */ + private JavaMailSenderImpl getMailSender() { + + JavaMailSenderImpl sender = new JavaMailSenderImpl(); + sender.setHost(ojEmailHost); + sender.setPort(ojEmailPort); + sender.setDefaultEncoding("UTF-8"); + sender.setUsername(ojEmailFrom); + sender.setPassword(ojEmailPassword); + + Properties p = new Properties(); + p.setProperty("mail.smtp.ssl.enable", ojEmailSsl); + p.setProperty("mail.smtp.auth", "true"); + p.setProperty("mail.smtp.starttls.enable", ojEmailSsl); + sender.setJavaMailProperties(p); + return sender; + } + + /** + * @MethodName isOk + * @Params * @param null + * @Description 验证当前邮箱系统是否已配置。 + * @Return + * @Since 2021/6/12 + */ + public boolean isOk() { + return ojEmailFrom != null + && ojEmailPassword != null + && !ojEmailFrom.equals("your_email_username") + && !ojEmailPassword.equals("your_email_password") + && Validator.isEmail(ojEmailFrom); + } + + /** + * @param email 用户邮箱 + * @param code 生成的六位随机数字验证码 + * @MethodName sendCode + * @Description 为正在注册的用户发送一份注册验证码。 + * @Return + * @Since 2021/1/14 + */ + + @Async + public void sendCode(String email, String code) { + DateTime expireTime = DateUtil.offsetMinute(new Date(), 10); + JavaMailSenderImpl mailSender = getMailSender(); + MimeMessage mimeMessage = mailSender.createMimeMessage(); + try { + MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, + true); + // 设置渲染到html页面对应的值 + Context context = new Context(); + context.setVariable(Constants.Email.OJ_NAME.name(), UnicodeUtil.toString(ojName)); + context.setVariable(Constants.Email.OJ_SHORT_NAME.name(), UnicodeUtil.toString(ojShortName)); + context.setVariable(Constants.Email.OJ_URL.name(), ojAddr); + context.setVariable(Constants.Email.EMAIL_BACKGROUND_IMG.name(), ojEmailBg); + context.setVariable("CODE", code); + context.setVariable("EXPIRE_TIME", expireTime.toString()); + + //利用模板引擎加载html文件进行渲染并生成对应的字符串 + String emailContent = templateEngine.process("emailTemplate_registerCode", context); + + // 设置邮件标题 + mimeMessageHelper.setSubject(UnicodeUtil.toString(ojShortName)+ "的注册邮件"); + mimeMessageHelper.setText(emailContent, true); + // 收件人 + mimeMessageHelper.setTo(email); + // 发送人 + mimeMessageHelper.setFrom(ojEmailFrom); + + mailSender.send(mimeMessage); + } catch (MessagingException e) { + log.error("用户注册的邮件任务发生异常------------>{}", e.getMessage()); + } + } + + + /** + * @param username 需要重置密码的用户名 + * @param email 用户邮箱 + * @param code 随机生成20位数字与字母的组合 + * @MethodName sendResetPassword + * @Description 给指定的邮箱的用户发送重置密码链接的邮件。 + * @Return + * @Since 2021/1/14 + */ + @Async + public void sendResetPassword(String username, String code, String email) { + DateTime expireTime = DateUtil.offsetMinute(new Date(), 10); + JavaMailSenderImpl mailSender = getMailSender(); + MimeMessage mimeMessage = mailSender.createMimeMessage(); + try { + MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, + true); + // 设置渲染到html页面对应的值 + Context context = new Context(); + context.setVariable(Constants.Email.OJ_NAME.name(), UnicodeUtil.toString(ojName)); + context.setVariable(Constants.Email.OJ_SHORT_NAME.name(), UnicodeUtil.toString(ojShortName)); + context.setVariable(Constants.Email.OJ_URL.name(), ojAddr); + context.setVariable(Constants.Email.EMAIL_BACKGROUND_IMG.name(), ojEmailBg); + + String resetUrl; + if (ojAddr.endsWith("/")) { + resetUrl = ojAddr + "reset-password?username=" + username + "&code=" + code; + } else { + resetUrl = ojAddr + "/reset-password?username=" + username + "&code=" + code; + } + + context.setVariable("RESET_URL", resetUrl); + context.setVariable("EXPIRE_TIME", expireTime.toString()); + context.setVariable("USERNAME", username); + + //利用模板引擎加载html文件进行渲染并生成对应的字符串 + String emailContent = templateEngine.process("emailTemplate_resetPassword", context); + + mimeMessageHelper.setSubject(UnicodeUtil.toString(ojShortName)+ "的重置密码邮件"); + + mimeMessageHelper.setText(emailContent, true); + // 收件人 + mimeMessageHelper.setTo(email); + // 发送人 + mimeMessageHelper.setFrom(ojEmailFrom); + mailSender.send(mimeMessage); + } catch (MessagingException e) { + log.error("用户重置密码的邮件任务发生异常------------>{}", e.getMessage()); + } + } + + + /** + * @param email 用户邮箱 + * @MethodName testEmail + * @Description 超级管理员后台修改邮件系统配置后发送的测试邮箱可用性的测试邮件。 + * @Return + * @Since 2021/1/14 + */ + @Async + public void testEmail(String email) { + JavaMailSenderImpl mailSender = getMailSender(); + MimeMessage mimeMessage = mailSender.createMimeMessage(); + try { + MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, + true); + // 设置渲染到html页面对应的值 + Context context = new Context(); + context.setVariable(Constants.Email.OJ_NAME.name(), UnicodeUtil.toString(ojName)); + context.setVariable(Constants.Email.OJ_SHORT_NAME.name(), UnicodeUtil.toString(ojShortName)); + context.setVariable(Constants.Email.OJ_URL.name(), ojAddr); + context.setVariable(Constants.Email.EMAIL_BACKGROUND_IMG.name(), ojEmailBg); + //利用模板引擎加载html文件进行渲染并生成对应的字符串 + String emailContent = templateEngine.process("emailTemplate_testEmail", context); + + mimeMessageHelper.setSubject(UnicodeUtil.toString(ojShortName) + "的测试邮件"); + + mimeMessageHelper.setText(emailContent, true); + // 收件人 + mimeMessageHelper.setTo(email); + // 发送人 + mimeMessageHelper.setFrom(ojEmailFrom); + mailSender.send(mimeMessage); + } catch (MessagingException e) { + log.error("超级管理员重置邮件系统配置的测试邮箱可用性的任务发生异常------------>{}", e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ContestFileManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ContestFileManager.java new file mode 100644 index 0000000..f601e40 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ContestFileManager.java @@ -0,0 +1,469 @@ +package top.hcode.hoj.manager.file; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileReader; +import cn.hutool.core.io.file.FileWriter; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ZipUtil; +import cn.hutool.json.JSONUtil; +import top.hcode.hoj.validator.GroupValidator; +import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.oj.ContestCalculateRankManager; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestPrint; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.vo.ACMContestRankVo; +import top.hcode.hoj.pojo.vo.OIContestRankVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.common.FileEntityService; +import top.hcode.hoj.dao.contest.ContestPrintEntityService; +import top.hcode.hoj.dao.contest.ContestProblemEntityService; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.validator.ContestValidator; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 14:27 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class ContestFileManager { + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private ContestProblemEntityService contestProblemEntityService; + + @Autowired + private ContestPrintEntityService contestPrintEntityService; + + @Autowired + private FileEntityService fileEntityService; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private ContestCalculateRankManager contestCalculateRankManager; + + @Autowired + private ContestValidator contestValidator; + + @Autowired + private GroupValidator groupValidator; + + public void downloadContestRank(Long cid, Boolean forceRefresh, Boolean removeStar, HttpServletResponse response) throws IOException, StatusFailException, StatusForbiddenException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusFailException("错误:该比赛不存在!"); + } + + // 是否为超级管理员 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long gid = contest.getGid(); + + if (!isRoot + && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), gid))) { + throw new StatusForbiddenException("错误:您并非该比赛的管理员,无权下载榜单!"); + } + + // 检查是否需要开启封榜模式 + Boolean isOpenSealRank = contestValidator.isSealRank(userRolesVo.getUid(), contest, forceRefresh, isRoot); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 + String fileName = URLEncoder.encode("contest_" + contest.getId() + "_rank", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + response.setHeader("Content-Type", "application/xlsx"); + + // 获取题目displayID列表 + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", contest.getId()).select("display_id").orderByAsc("display_id"); + List contestProblemDisplayIDList = contestProblemEntityService.list(contestProblemQueryWrapper) + .stream().map(ContestProblem::getDisplayId).collect(Collectors.toList()); + + if (contest.getType().intValue() == Constants.Contest.TYPE_ACM.getCode()) { // ACM比赛 + + List acmContestRankVoList = contestCalculateRankManager.calcACMRank( + isOpenSealRank, + removeStar, + contest, + null, + null, + null); + EasyExcel.write(response.getOutputStream()) + .head(fileEntityService.getContestRankExcelHead(contestProblemDisplayIDList, true)) + .sheet("rank") + .doWrite(fileEntityService.changeACMContestRankToExcelRowList(acmContestRankVoList, contestProblemDisplayIDList, contest.getRankShowName())); + } else { + List oiContestRankVoList = contestCalculateRankManager.calcOIRank( + isOpenSealRank, + removeStar, + contest, + null, + null, + null); + EasyExcel.write(response.getOutputStream()) + .head(fileEntityService.getContestRankExcelHead(contestProblemDisplayIDList, false)) + .sheet("rank") + .doWrite(fileEntityService.changOIContestRankToExcelRowList(oiContestRankVoList, contestProblemDisplayIDList, contest.getRankShowName())); + } + } + + public void downloadContestACSubmission(Long cid, Boolean excludeAdmin, String splitType, HttpServletResponse response) throws StatusForbiddenException, StatusFailException { + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusFailException("错误:该比赛不存在!"); + } + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + // 除非是root 其它管理员只能下载自己的比赛ac记录 + + Long gid = contest.getGid(); + if (!isRoot + && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), gid))) { + throw new StatusForbiddenException("错误:您并非该比赛的管理员,无权下载AC记录!"); + } + + boolean isACM = contest.getType().intValue() == Constants.Contest.TYPE_ACM.getCode(); + + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", contest.getId()); + List contestProblemList = contestProblemEntityService.list(contestProblemQueryWrapper); + + List superAdminUidList = userInfoEntityService.getSuperAdminUidList(); + + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper.eq("cid", cid) + .eq(isACM, "status", Constants.Judge.STATUS_ACCEPTED.getStatus()) + .isNotNull(!isACM, "score") // OI模式取得分不为null的 + .between("submit_time", contest.getStartTime(), contest.getEndTime()) + .ne(excludeAdmin, "uid", contest.getUid()) // 排除比赛创建者和root + .notIn(excludeAdmin && superAdminUidList.size() > 0, "uid", superAdminUidList) + .orderByDesc("submit_time"); + + List judgeList = judgeEntityService.list(judgeQueryWrapper); + + // 打包文件的临时路径 -> username为文件夹名字 + String tmpFilesDir = Constants.File.CONTEST_AC_SUBMISSION_TMP_FOLDER.getPath() + File.separator + IdUtil.fastSimpleUUID(); + FileUtil.mkdir(tmpFilesDir); + + HashMap recordMap = new HashMap<>(); + if ("user".equals(splitType)) { + /** + * 以用户来分割提交的代码 + */ + List usernameList = judgeList.stream() + .filter(distinctByKey(Judge::getUsername)) // 根据用户名过滤唯一 + .map(Judge::getUsername).collect(Collectors.toList()); // 映射出用户名列表 + + + HashMap cpIdMap = new HashMap<>(); + for (ContestProblem contestProblem : contestProblemList) { + cpIdMap.put(contestProblem.getId(), contestProblem.getDisplayId()); + } + + for (String username : usernameList) { + // 对于每个用户生成对应的文件夹 + String userDir = tmpFilesDir + File.separator + username; + FileUtil.mkdir(userDir); + // 如果是ACM模式,则所有提交代码都要生成,如果同一题多次提交AC,加上提交时间秒后缀 ---> A_(666666).c + // 如果是OI模式就生成最近一次提交即可,且带上分数 ---> A_(666666)_100.c + List userSubmissionList = judgeList.stream() + .filter(judge -> judge.getUsername().equals(username)) // 过滤出对应用户的提交 + .sorted(Comparator.comparing(Judge::getSubmitTime).reversed()) // 根据提交时间进行降序 + .collect(Collectors.toList()); + + for (Judge judge : userSubmissionList) { + String filePath = userDir + File.separator + cpIdMap.getOrDefault(judge.getCpid(), "null"); + + // OI模式只取最后一次提交 + if (!isACM) { + String key = judge.getUsername() + "_" + judge.getPid(); + if (!recordMap.containsKey(key)) { + filePath += "_" + judge.getScore() + "_(" + threadLocalTime.get().format(judge.getSubmitTime()) + ")." + + languageToFileSuffix(judge.getLanguage().toLowerCase()); + FileWriter fileWriter = new FileWriter(filePath); + fileWriter.write(judge.getCode()); + recordMap.put(key, true); + } + + } else { + filePath += "_(" + threadLocalTime.get().format(judge.getSubmitTime()) + ")." + + languageToFileSuffix(judge.getLanguage().toLowerCase()); + FileWriter fileWriter = new FileWriter(filePath); + fileWriter.write(judge.getCode()); + } + + } + } + } else if ("problem".equals(splitType)) { + /** + * 以比赛题目编号来分割提交的代码 + */ + + for (ContestProblem contestProblem : contestProblemList) { + // 对于每题目生成对应的文件夹 + String problemDir = tmpFilesDir + File.separator + contestProblem.getDisplayId(); + FileUtil.mkdir(problemDir); + // 如果是ACM模式,则所有提交代码都要生成,如果同一题多次提交AC,加上提交时间秒后缀 ---> username_(666666).c + // 如果是OI模式就生成最近一次提交即可,且带上分数 ---> username_(666666)_100.c + List problemSubmissionList = judgeList.stream() + .filter(judge -> judge.getPid().equals(contestProblem.getPid())) // 过滤出对应题目的提交 + .sorted(Comparator.comparing(Judge::getSubmitTime).reversed()) // 根据提交时间进行降序 + .collect(Collectors.toList()); + + for (Judge judge : problemSubmissionList) { + String filePath = problemDir + File.separator + judge.getUsername(); + if (!isACM) { + String key = judge.getUsername() + "_" + contestProblem.getDisplayId(); + // OI模式只取最后一次提交 + if (!recordMap.containsKey(key)) { + filePath += "_" + judge.getScore() + "_(" + threadLocalTime.get().format(judge.getSubmitTime()) + ")." + + languageToFileSuffix(judge.getLanguage().toLowerCase()); + FileWriter fileWriter = new FileWriter(filePath); + fileWriter.write(judge.getCode()); + recordMap.put(key, true); + } + } else { + filePath += "_(" + threadLocalTime.get().format(judge.getSubmitTime()) + ")." + + languageToFileSuffix(judge.getLanguage().toLowerCase()); + FileWriter fileWriter = new FileWriter(filePath); + fileWriter.write(judge.getCode()); + } + } + } + } + + String zipFileName = "contest_" + contest.getId() + "_" + System.currentTimeMillis() + ".zip"; + String zipPath = Constants.File.CONTEST_AC_SUBMISSION_TMP_FOLDER.getPath() + File.separator + zipFileName; + ZipUtil.zip(tmpFilesDir, zipPath); + // 将zip变成io流返回给前端 + FileReader zipFileReader = new FileReader(zipPath); + BufferedInputStream bins = new BufferedInputStream(zipFileReader.getInputStream());//放到缓冲流里面 + OutputStream outs = null;//获取文件输出IO流 + BufferedOutputStream bouts = null; + try { + outs = response.getOutputStream(); + bouts = new BufferedOutputStream(outs); + response.setContentType("application/x-download"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(zipFileName, "UTF-8")); + int bytesRead = 0; + byte[] buffer = new byte[1024 * 10]; + //开始向网络传输文件流 + while ((bytesRead = bins.read(buffer, 0, 1024 * 10)) != -1) { + bouts.write(buffer, 0, bytesRead); + } + // 刷新缓存 + bouts.flush(); + } catch (IOException e) { + log.error("下载比赛AC提交代码的压缩文件异常------------>", e); + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + Map map = new HashMap<>(); + map.put("status", ResultStatus.SYSTEM_ERROR); + map.put("msg", "下载文件失败,请重新尝试!"); + map.put("data", null); + try { + response.getWriter().println(JSONUtil.toJsonStr(map)); + } catch (IOException ioException) { + ioException.printStackTrace(); + } + } finally { + try { + bins.close(); + if (outs != null) { + outs.close(); + } + if (bouts != null) { + bouts.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + FileUtil.del(tmpFilesDir); + FileUtil.del(zipPath); + + } + + public void downloadContestPrintText(Long id, HttpServletResponse response) throws StatusForbiddenException { + ContestPrint contestPrint = contestPrintEntityService.getById(id); + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long cid = contestPrint.getCid(); + + Contest contest = contestEntityService.getById(cid); + + Long gid = contest.getGid(); + + if (!isRoot && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), gid))) { + throw new StatusForbiddenException("错误:您并非该比赛的管理员,无权下载打印代码!"); + } + + String filename = contestPrint.getUsername() + "_Contest_Print.txt"; + String filePath = Constants.File.CONTEST_TEXT_PRINT_FOLDER.getPath() + File.separator + id + File.separator + filename; + if (!FileUtil.exist(filePath)) { + + FileWriter fileWriter = new FileWriter(filePath); + fileWriter.write(contestPrint.getContent()); + } + + FileReader zipFileReader = new FileReader(filePath); + BufferedInputStream bins = new BufferedInputStream(zipFileReader.getInputStream());//放到缓冲流里面 + OutputStream outs = null;//获取文件输出IO流 + BufferedOutputStream bouts = null; + try { + outs = response.getOutputStream(); + bouts = new BufferedOutputStream(outs); + response.setContentType("application/x-download"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); + int bytesRead = 0; + byte[] buffer = new byte[1024 * 10]; + //开始向网络传输文件流 + while ((bytesRead = bins.read(buffer, 0, 1024 * 10)) != -1) { + bouts.write(buffer, 0, bytesRead); + } + // 刷新缓存 + bouts.flush(); + } catch (IOException e) { + log.error("下载比赛打印文本文件异常------------>", e); + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + Map map = new HashMap<>(); + map.put("status", ResultStatus.SYSTEM_ERROR); + map.put("msg", "下载文件失败,请重新尝试!"); + map.put("data", null); + try { + response.getWriter().println(JSONUtil.toJsonStr(map)); + } catch (IOException ioException) { + ioException.printStackTrace(); + } + } finally { + try { + bins.close(); + if (outs != null) { + outs.close(); + } + if (bouts != null) { + bouts.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + + private static final ThreadLocal threadLocalTime = new ThreadLocal() { + @Override + protected SimpleDateFormat initialValue() { + return new SimpleDateFormat("yyyyMMddHHmmss"); + } + }; + + private static Predicate distinctByKey(Function keyExtractor) { + Map seen = new ConcurrentHashMap<>(); + return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; + } + + private static String languageToFileSuffix(String language) { + + List CLang = Arrays.asList("c", "gcc", "clang"); + List CPPLang = Arrays.asList("c++", "g++", "clang++"); + List PythonLang = Arrays.asList("python", "pypy"); + + for (String lang : CPPLang) { + if (language.contains(lang)) { + return "cpp"; + } + } + + if (language.contains("c#")) { + return "cs"; + } + + for (String lang : CLang) { + if (language.contains(lang)) { + return "c"; + } + } + + for (String lang : PythonLang) { + if (language.contains(lang)) { + return "py"; + } + } + + if (language.contains("javascript")) { + return "js"; + } + + if (language.contains("java")) { + return "java"; + } + + if (language.contains("pascal")) { + return "pas"; + } + + if (language.contains("go")) { + return "go"; + } + + if (language.contains("php")) { + return "php"; + } + + return "txt"; + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImageManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImageManager.java new file mode 100644 index 0000000..c83ed8f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImageManager.java @@ -0,0 +1,216 @@ +package top.hcode.hoj.manager.file; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.pojo.entity.user.Role; +import top.hcode.hoj.pojo.entity.user.UserInfo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.common.FileEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.utils.Constants; + +import java.io.File; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 14:31 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class ImageManager { + + @Autowired + private FileEntityService fileEntityService; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private GroupValidator groupValidator; + + @Transactional(rollbackFor = Exception.class) + public Map uploadAvatar(MultipartFile image) throws StatusFailException, StatusSystemErrorException { + if (image == null) { + throw new StatusFailException("上传的头像图片文件不能为空!"); + } + if (image.getSize() > 1024 * 1024 * 2) { + throw new StatusFailException("上传的头像图片文件大小不能大于2M!"); + } + //获取文件后缀 + String suffix = image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf(".") + 1); + if (!"jpg,jpeg,gif,png,webp".toUpperCase().contains(suffix.toUpperCase())) { + throw new StatusFailException("请选择jpg,jpeg,gif,png,webp格式的头像图片!"); + } + //若不存在该目录,则创建目录 + FileUtil.mkdir(Constants.File.USER_AVATAR_FOLDER.getPath()); + //通过UUID生成唯一文件名 + String filename = IdUtil.simpleUUID() + "." + suffix; + try { + //将文件保存指定目录 + image.transferTo(FileUtil.file(Constants.File.USER_AVATAR_FOLDER.getPath() + File.separator + filename)); + } catch (Exception e) { + log.error("头像文件上传异常-------------->", e); + throw new StatusSystemErrorException("服务器异常:头像上传失败!"); + } + + // 获取当前登录用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + + // 将当前用户所属的file表中avatar类型的实体的delete设置为1; + fileEntityService.updateFileToDeleteByUidAndType(userRolesVo.getUid(), "avatar"); + + //更新user_info里面的avatar + UpdateWrapper userInfoUpdateWrapper = new UpdateWrapper<>(); + userInfoUpdateWrapper.set("avatar", Constants.File.IMG_API.getPath() + filename) + .eq("uuid", userRolesVo.getUid()); + userInfoEntityService.update(userInfoUpdateWrapper); + + // 插入file表记录 + top.hcode.hoj.pojo.entity.common.File imgFile = new top.hcode.hoj.pojo.entity.common.File(); + imgFile.setName(filename).setFolderPath(Constants.File.USER_AVATAR_FOLDER.getPath()) + .setFilePath(Constants.File.USER_AVATAR_FOLDER.getPath() + File.separator + filename) + .setSuffix(suffix) + .setType("avatar") + .setUid(userRolesVo.getUid()); + fileEntityService.saveOrUpdate(imgFile); + + // 更新session + userRolesVo.setAvatar(Constants.File.IMG_API.getPath() + filename); + session.setAttribute("userInfo", userRolesVo); + return MapUtil.builder() + .put("uid", userRolesVo.getUid()) + .put("username", userRolesVo.getUsername()) + .put("nickname", userRolesVo.getNickname()) + .put("avatar", Constants.File.IMG_API.getPath() + filename) + .put("email", userRolesVo.getEmail()) + .put("number", userRolesVo.getNumber()) + .put("school", userRolesVo.getSchool()) + .put("course", userRolesVo.getCourse()) + .put("signature", userRolesVo.getSignature()) + .put("realname", userRolesVo.getRealname()) + .put("github", userRolesVo.getGithub()) + .put("blog", userRolesVo.getBlog()) + .put("cfUsername", userRolesVo.getCfUsername()) + .put("roleList", userRolesVo.getRoles().stream().map(Role::getRole)) + .map(); + } + + @Transactional(rollbackFor = Exception.class) + public Group uploadGroupAvatar(MultipartFile image, Long gid) throws StatusFailException, StatusSystemErrorException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + if (!isRoot && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (image == null) { + throw new StatusFailException("上传的头像图片文件不能为空!"); + } + if (image.getSize() > 1024 * 1024 * 2) { + throw new StatusFailException("上传的头像图片文件大小不能大于2M!"); + } + + String suffix = image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf(".") + 1); + if (!"jpg,jpeg,gif,png,webp".toUpperCase().contains(suffix.toUpperCase())) { + throw new StatusFailException("请选择jpg,jpeg,gif,png,webp格式的头像图片!"); + } + + FileUtil.mkdir(Constants.File.GROUP_AVATAR_FOLDER.getPath()); + + String filename = IdUtil.simpleUUID() + "." + suffix; + try { + image.transferTo(FileUtil.file(Constants.File.GROUP_AVATAR_FOLDER.getPath() + File.separator + filename)); + } catch (Exception e) { + log.error("头像文件上传异常-------------->", e); + throw new StatusSystemErrorException("服务器异常:头像上传失败!"); + } + + fileEntityService.updateFileToDeleteByGidAndType(gid, "avatar"); + + UpdateWrapper GroupUpdateWrapper = new UpdateWrapper<>(); + GroupUpdateWrapper.set("avatar", Constants.File.IMG_API.getPath() + filename) + .eq("id", gid); + groupEntityService.update(GroupUpdateWrapper); + + top.hcode.hoj.pojo.entity.common.File imgFile = new top.hcode.hoj.pojo.entity.common.File(); + imgFile.setName(filename).setFolderPath(Constants.File.GROUP_AVATAR_FOLDER.getPath()) + .setFilePath(Constants.File.GROUP_AVATAR_FOLDER.getPath() + File.separator + filename) + .setSuffix(suffix) + .setType("avatar") + .setGid(gid); + fileEntityService.saveOrUpdate(imgFile); + + Group group = groupEntityService.getById(gid); + + return group; + } + + @Transactional(rollbackFor = Exception.class) + public Map uploadCarouselImg(MultipartFile image) throws StatusFailException, StatusSystemErrorException { + + if (image == null) { + throw new StatusFailException("上传的图片文件不能为空!"); + } + + //获取文件后缀 + String suffix = image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf(".") + 1); + if (!"jpg,jpeg,gif,png,webp,jfif,svg".toUpperCase().contains(suffix.toUpperCase())) { + throw new StatusFailException("请选择jpg,jpeg,gif,png,webp,jfif,svg格式的头像图片!"); + } + //若不存在该目录,则创建目录 + FileUtil.mkdir(Constants.File.HOME_CAROUSEL_FOLDER.getPath()); + //通过UUID生成唯一文件名 + String filename = IdUtil.simpleUUID() + "." + suffix; + try { + //将文件保存指定目录 + image.transferTo(FileUtil.file(Constants.File.HOME_CAROUSEL_FOLDER.getPath() + File.separator + filename)); + } catch (Exception e) { + log.error("图片文件上传异常-------------->{}", e.getMessage()); + throw new StatusSystemErrorException("服务器异常:图片上传失败!"); + } + + // 获取当前登录用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + + // 插入file表记录 + top.hcode.hoj.pojo.entity.common.File imgFile = new top.hcode.hoj.pojo.entity.common.File(); + imgFile.setName(filename).setFolderPath(Constants.File.HOME_CAROUSEL_FOLDER.getPath()) + .setFilePath(Constants.File.HOME_CAROUSEL_FOLDER.getPath() + File.separator + filename) + .setSuffix(suffix) + .setType("carousel") + .setUid(userRolesVo.getUid()); + fileEntityService.saveOrUpdate(imgFile); + + return MapUtil.builder() + .put("id", imgFile.getId()) + .put("url", Constants.File.IMG_API.getPath() + filename) + .map(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImportFpsProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImportFpsProblemManager.java new file mode 100644 index 0000000..7cb2ae2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImportFpsProblemManager.java @@ -0,0 +1,325 @@ +package top.hcode.hoj.manager.file; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileWriter; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.XmlUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.problem.CodeTemplate; +import top.hcode.hoj.pojo.entity.problem.Language; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.problem.LanguageEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.*; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 14:44 + * @Description: + */ + +@Component +@Slf4j +public class ImportFpsProblemManager { + + private final static List timeUnits = Arrays.asList("ms", "s"); + private final static List memoryUnits = Arrays.asList("kb", "mb"); + private static final Map fpsMapHOJ = new HashMap() { + { + put("Python", "Python3"); + put("Go", "Golang"); + put("C", "C"); + put("C++", "C++"); + put("Java", "Java"); + put("C#", "C#"); + } + }; + + @Resource + private LanguageEntityService languageEntityService; + + @Resource + private ProblemEntityService problemEntityService; + + /** + * @param file + * @MethodName importFpsProblem + * @Description zip文件导入题目 仅超级管理员可操作 + * @Return + * @Since 2021/10/06 + */ + @Transactional(rollbackFor = Exception.class) + public void importFPSProblem(MultipartFile file) throws IOException, StatusFailException { + String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1); + if (!"xml".toUpperCase().contains(suffix.toUpperCase())) { + throw new StatusFailException("请上传xml后缀格式的fps题目文件!"); + } + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + List problemDtoList = parseFps(file.getInputStream(), userRolesVo.getUsername()); + if (problemDtoList.size() == 0) { + throw new StatusFailException("警告:未成功导入一道以上的题目,请检查文件格式是否正确!"); + } else { + for (ProblemDto problemDto : problemDtoList) { + problemEntityService.adminAddProblem(problemDto); + } + } + + } + + private List parseFps(InputStream inputStream, String username) throws StatusFailException { + + Document document = null; + try { + DocumentBuilderFactory documentBuilderFactory = XmlUtil.createDocumentBuilderFactory(); + documentBuilderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + document = documentBuilder.parse(inputStream); + } catch (ParserConfigurationException e) { + log.error("build DocumentBuilder error:", e); + } catch (IOException e) { + log.error("read xml file error:", e); + } catch (SAXException e) { + log.error("parse xml file error:", e); + } + if (document == null) { + throw new StatusFailException("读取xml失败,请检查FPS文件格式是否准确!"); + } + + Element rootElement = XmlUtil.getRootElement(document); + String version = rootElement.getAttribute("version"); + + List problemDtoList = new ArrayList<>(); + + String fileDirId = IdUtil.simpleUUID(); + String fileDir = Constants.File.TESTCASE_TMP_FOLDER.getPath() + File.separator + fileDirId; + long time = System.currentTimeMillis(); + int index = 1; + for (Element item : XmlUtil.getElements(rootElement, "item")) { + + Problem problem = new Problem(); + + problem.setAuthor(username) + .setType(0) + .setIsUploadCase(true) + .setDifficulty(1) + .setIsRemoveEndBlank(true) + .setOpenCaseResult(true) + .setCodeShare(false) + .setIsRemote(false) + .setAuth(1) + .setIsGroup(false) + .setProblemId(String.valueOf(time + index)); + + Element title = XmlUtil.getElement(item, "title"); + // 标题 + problem.setTitle(title.getTextContent()); + + HashMap srcMapUrl = new HashMap<>(); + List images = XmlUtil.getElements(item, "img"); + for (Element img : images) { + Element srcElement = XmlUtil.getElement(img, "src"); + if (srcElement == null) { + continue; + } + String src = srcElement.getTextContent(); + String base64 = XmlUtil.getElement(img, "base64").getTextContent(); + String[] split = src.split("\\."); + + byte[] decode = Base64.getDecoder().decode(base64); + String fileName = IdUtil.fastSimpleUUID() + "." + split[split.length - 1]; + + FileUtil.writeBytes(decode, Constants.File.MARKDOWN_FILE_FOLDER.getPath() + File.separator + fileName); + srcMapUrl.put(src, Constants.File.IMG_API.getPath() + fileName); + } + + Element descriptionElement = XmlUtil.getElement(item, "description"); + String description = descriptionElement.getTextContent(); + for (Map.Entry entry : srcMapUrl.entrySet()) { + description = description.replaceAll(entry.getKey(), entry.getValue()); + } + // 题目描述 + problem.setDescription(description); + + Element inputElement = XmlUtil.getElement(item, "input"); + String input = inputElement.getTextContent(); + for (Map.Entry entry : srcMapUrl.entrySet()) { + input = input.replaceAll(entry.getKey(), entry.getValue()); + } + // 输入描述 + problem.setInput(input); + + Element outputElement = XmlUtil.getElement(item, "output"); + String output = outputElement.getTextContent(); + for (Map.Entry entry : srcMapUrl.entrySet()) { + output = output.replaceAll(entry.getKey(), entry.getValue()); + } + // 输出描述 + problem.setOutput(output); + + // 提示 + Element hintElement = XmlUtil.getElement(item, "hint"); + String hint = hintElement.getTextContent(); + for (Map.Entry entry : srcMapUrl.entrySet()) { + hint = hint.replaceAll(entry.getKey(), entry.getValue()); + } + problem.setHint(hint); + + // 来源 + Element sourceElement = XmlUtil.getElement(item, "source"); + String source = sourceElement.getTextContent(); + problem.setSource(source); + + // ms + Integer timeLimit = getTimeLimit(version, item); + problem.setTimeLimit(timeLimit); + + // mb + Integer memoryLimit = getMemoryLimit(item); + problem.setMemoryLimit(memoryLimit); + + // 题面用例 + List sampleInputs = XmlUtil.getElements(item, "sample_input"); + List sampleOutputs = XmlUtil.getElements(item, "sample_output"); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < sampleInputs.size(); i++) { + sb.append("").append(sampleInputs.get(i).getTextContent()).append(""); + sb.append("").append(sampleOutputs.get(i).getTextContent()).append(""); + } + problem.setExamples(sb.toString()); + + + QueryWrapper languageQueryWrapper = new QueryWrapper<>(); + languageQueryWrapper.eq("oj", "ME"); + List languageList = languageEntityService.list(languageQueryWrapper); + + HashMap languageMap = new HashMap<>(); + for (Language language : languageList) { + languageMap.put(language.getName(), language.getId()); + } + + // 题目模板 + List templateNodes = XmlUtil.getElements(item, "template"); + List codeTemplates = new ArrayList<>(); + for (Element templateNode : templateNodes) { + String templateLanguage = templateNode.getAttribute("language"); + String templateCode = templateNode.getTextContent(); + if (templateLanguage == null || templateCode == null) { + continue; + } + String lang = fpsMapHOJ.get(templateLanguage); + if (lang != null) { + codeTemplates.add(new CodeTemplate() + .setCode(templateCode) + .setLid(languageMap.get(lang))); + } + + } + + // spj + Element spjNode = XmlUtil.getElement(item, "spj"); + if (spjNode != null) { + String spjLanguage = spjNode.getAttribute("language"); + String spjCode = spjNode.getTextContent(); + if (("C".equals(spjLanguage) || "C++".equals(spjLanguage)) && !StringUtils.isEmpty(spjCode)) { + problem.setSpjLanguage(spjLanguage) + .setSpjCode(spjCode); + } + } + + // 题目评测数据 + List testInputs = XmlUtil.getElements(item, "test_input"); + List testOutputs = XmlUtil.getElements(item, "test_output"); + + boolean isNotOutputTestCase = CollectionUtils.isEmpty(testOutputs); + + List problemSamples = new LinkedList<>(); + String problemTestCaseDir = fileDir + File.separator + index; + for (int i = 0; i < testInputs.size(); i++) { + String infileName = (i + 1) + ".in"; + String outfileName = (i + 1) + ".out"; + FileWriter infileWriter = new FileWriter(problemTestCaseDir + File.separator + infileName); + FileWriter outfileWriter = new FileWriter(problemTestCaseDir + File.separator + outfileName); + infileWriter.write(testInputs.get(i).getTextContent()); + outfileWriter.write(isNotOutputTestCase ? "" : testOutputs.get(i).getTextContent()); + problemSamples.add(new ProblemCase() + .setInput(infileName).setOutput(outfileName)); + } + if (CollectionUtils.isEmpty(problemSamples)) { + throw new StatusFailException("[" + problem.getTitle() + "] 题目的评测数据不能为空,请检查FPS文件内该题目是否有test_input和test_output!"); + } + String mode = Constants.JudgeMode.DEFAULT.getMode(); + if (problem.getSpjLanguage() != null) { + mode = Constants.JudgeMode.SPJ.getMode(); + } + ProblemDto problemDto = new ProblemDto(); + problemDto.setSamples(problemSamples) + .setIsUploadTestCase(true) + .setUploadTestcaseDir(problemTestCaseDir) + .setLanguages(languageList) + .setTags(null) + .setJudgeMode(mode) + .setProblem(problem) + .setCodeTemplates(codeTemplates); + + problemDtoList.add(problemDto); + index++; + } + return problemDtoList; + } + + + private Integer getTimeLimit(String version, Element item) { + Element timeLimitNode = XmlUtil.getElement(item, "time_limit"); + String timeUnit = timeLimitNode.getAttribute("unit"); + String timeLimit = timeLimitNode.getTextContent(); + int index = timeUnits.indexOf(timeUnit.toLowerCase()); + if (index == -1) { + throw new RuntimeException("Invalid time limit unit:" + timeUnit); + } + if ("1.1".equals(version)) { + return Integer.parseInt(timeLimit) * (int) Math.pow(1000, index); + } else { + double tmp = (Double.parseDouble(timeLimit) * Math.pow(1000, index)); + return (int) tmp; + } + } + + private Integer getMemoryLimit(Element item) { + Element memoryLimitNode = XmlUtil.getElement(item, "memory_limit"); + String memoryUnit = memoryLimitNode.getAttribute("unit"); + String memoryLimit = memoryLimitNode.getTextContent(); + int index = memoryUnits.indexOf(memoryUnit.toLowerCase()); + if (index == -1) { + throw new RuntimeException("Invalid memory limit unit:" + memoryUnit); + } + + return Integer.parseInt(memoryLimit) * (int) Math.pow(1000, index - 1); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImportQDUOJProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImportQDUOJProblemManager.java new file mode 100644 index 0000000..a445c23 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ImportQDUOJProblemManager.java @@ -0,0 +1,273 @@ +package top.hcode.hoj.manager.file; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileReader; +import cn.hutool.core.text.UnicodeUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ZipUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.dao.problem.LanguageEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.problem.TagEntityService; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.dto.QDOJProblemDto; +import top.hcode.hoj.pojo.entity.problem.Language; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.Constants; + +import java.io.File; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 14:47 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class ImportQDUOJProblemManager { + + @Autowired + private LanguageEntityService languageEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private TagEntityService tagEntityService; + + /** + * @param file + * @MethodName importQDOJProblem + * @Description zip文件导入题目 仅超级管理员可操作 + * @Return + * @Since 2021/5/27 + */ + + @Transactional(rollbackFor = Exception.class) + public void importQDOJProblem(MultipartFile file) throws StatusFailException, StatusSystemErrorException { + + String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1); + if (!"zip".toUpperCase().contains(suffix.toUpperCase())) { + throw new StatusFailException("请上传zip格式的题目文件压缩包!"); + } + + String fileDirId = IdUtil.simpleUUID(); + String fileDir = Constants.File.TESTCASE_TMP_FOLDER.getPath() + File.separator + fileDirId; + String filePath = fileDir + File.separator + file.getOriginalFilename(); + // 文件夹不存在就新建 + FileUtil.mkdir(fileDir); + try { + file.transferTo(new File(filePath)); + } catch (IOException e) { + FileUtil.del(fileDir); + throw new StatusSystemErrorException("服务器异常:qduoj题目上传失败!"); + } + + // 将压缩包压缩到指定文件夹 + ZipUtil.unzip(filePath, fileDir); + + // 删除zip文件 + FileUtil.del(filePath); + + + // 检查文件是否存在 + File testCaseFileList = new File(fileDir); + File[] files = testCaseFileList.listFiles(); + if (files == null || files.length == 0) { + FileUtil.del(fileDir); + throw new StatusFailException("评测数据压缩包里文件不能为空!"); + } + + + HashMap problemInfo = new HashMap<>(); + for (File tmp : files) { + if (tmp.isDirectory()) { + File[] problemAndTestcase = tmp.listFiles(); + if (problemAndTestcase == null || problemAndTestcase.length == 0) { + FileUtil.del(fileDir); + throw new StatusFailException("编号为:" + tmp.getName() + "的文件夹为空!"); + } + for (File problemFile : problemAndTestcase) { + if (problemFile.isFile()) { + // 检查文件是否时json文件 + if (!problemFile.getName().endsWith("json")) { + FileUtil.del(fileDir); + throw new StatusFailException("编号为:" + tmp.getName() + "的文件夹里面的题目数据格式错误,请使用json文件!"); + } + problemInfo.put(tmp.getName(), problemFile); + } + } + } + } + + // 读取json文件生成对象 + HashMap problemVoMap = new HashMap<>(); + for (String key : problemInfo.keySet()) { + try { + FileReader fileReader = new FileReader(problemInfo.get(key)); + JSONObject problemJson = JSONUtil.parseObj(fileReader.readString()); + QDOJProblemDto qdojProblemDto = QDOJProblemToProblemVo(problemJson); + problemVoMap.put(key, qdojProblemDto); + } catch (Exception e) { + FileUtil.del(fileDir); + throw new StatusFailException("请检查编号为:" + key + "的题目json文件的格式:" + e.getLocalizedMessage()); + } + } + + QueryWrapper languageQueryWrapper = new QueryWrapper<>(); + languageQueryWrapper.eq("oj", "ME"); + List languageList = languageEntityService.list(languageQueryWrapper); + + HashMap languageMap = new HashMap<>(); + for (Language language : languageList) { + languageMap.put(language.getName(), language.getId()); + } + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + List tagList = tagEntityService.list(new QueryWrapper().eq("oj", "ME")); + HashMap tagMap = new HashMap<>(); + for (Tag tag : tagList) { + tagMap.put(tag.getName().toUpperCase(), tag); + } + + List problemDtos = new LinkedList<>(); + for (String key : problemInfo.keySet()) { + QDOJProblemDto qdojProblemDto = problemVoMap.get(key); + // 格式化题目语言 + List languages = new LinkedList<>(); + for (String lang : qdojProblemDto.getLanguages()) { + Long lid = languageMap.getOrDefault(lang, null); + languages.add(new Language().setId(lid).setName(lang)); + } + + // 格式化标签 + List tags = new LinkedList<>(); + for (String tagStr : qdojProblemDto.getTags()) { + Tag tag = tagMap.getOrDefault(tagStr.toUpperCase(), null); + if (tag == null) { + tags.add(new Tag().setName(tagStr).setOj("ME")); + } else { + tags.add(tag); + } + } + + Problem problem = qdojProblemDto.getProblem(); + if (problem.getAuthor() == null) { + problem.setAuthor(userRolesVo.getUsername()); + } + ProblemDto problemDto = new ProblemDto(); + + String mode = Constants.JudgeMode.DEFAULT.getMode(); + if (qdojProblemDto.getIsSpj()) { + mode = Constants.JudgeMode.SPJ.getMode(); + } + + problemDto.setJudgeMode(mode) + .setProblem(problem) + .setCodeTemplates(qdojProblemDto.getCodeTemplates()) + .setTags(tags) + .setLanguages(languages) + .setUploadTestcaseDir(fileDir + File.separator + key + File.separator + "testcase") + .setIsUploadTestCase(true) + .setSamples(qdojProblemDto.getSamples()); + + problemDtos.add(problemDto); + } + if (problemDtos.size() == 0) { + throw new StatusFailException("警告:未成功导入一道以上的题目,请检查文件格式是否正确!"); + } else { + for (ProblemDto problemDto : problemDtos) { + problemEntityService.adminAddProblem(problemDto); + } + } + } + + private QDOJProblemDto QDOJProblemToProblemVo(JSONObject problemJson) { + QDOJProblemDto qdojProblemDto = new QDOJProblemDto(); + List tags = (List) problemJson.get("tags"); + qdojProblemDto.setTags(tags.stream().map(UnicodeUtil::toString).collect(Collectors.toList())); + qdojProblemDto.setLanguages(Arrays.asList("C", "C With O2", "C++", "C++ With O2", "Java", "Python3", "Python2", "Golang", "C#")); + Object spj = problemJson.getObj("spj"); + boolean isSpj = !JSONUtil.isNull(spj); + qdojProblemDto.setIsSpj(isSpj); + + Problem problem = new Problem(); + if (isSpj) { + JSONObject spjJson = JSONUtil.parseObj(spj); + problem.setSpjCode(spjJson.getStr("code")) + .setSpjLanguage(spjJson.getStr("language")); + } + problem.setAuth(1) + .setIsGroup(false) + .setIsUploadCase(true) + .setSource(problemJson.getStr("source", null)) + .setDifficulty(1) + .setProblemId(problemJson.getStr("display_id")) + .setIsRemoveEndBlank(true) + .setOpenCaseResult(true) + .setCodeShare(false) + .setType(problemJson.getStr("rule_type").equals("ACM") ? 0 : 1) + .setTitle(problemJson.getStr("title")) + .setDescription(UnicodeUtil.toString(problemJson.getJSONObject("description").getStr("value"))) + .setInput(UnicodeUtil.toString(problemJson.getJSONObject("input_description").getStr("value"))) + .setOutput(UnicodeUtil.toString(problemJson.getJSONObject("output_description").getStr("value"))) + .setHint(UnicodeUtil.toString(problemJson.getJSONObject("hint").getStr("value"))) + .setTimeLimit(problemJson.getInt("time_limit")) + .setMemoryLimit(problemJson.getInt("memory_limit")); + + JSONArray samples = problemJson.getJSONArray("samples"); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < samples.size(); i++) { + JSONObject sample = (JSONObject) samples.get(i); + String input = sample.getStr("input"); + String output = sample.getStr("output"); + sb.append("").append(input).append(""); + sb.append("").append(output).append(""); + } + problem.setExamples(sb.toString()); + + int sumScore = 0; + JSONArray testcaseList = problemJson.getJSONArray("test_case_score"); + List problemSamples = new LinkedList<>(); + for (int i = 0; i < testcaseList.size(); i++) { + JSONObject testcase = (JSONObject) testcaseList.get(i); + String input = testcase.getStr("input_name"); + String output = testcase.getStr("output_name"); + Integer score = testcase.getInt("score", null); + problemSamples.add(new ProblemCase().setInput(input).setOutput(output).setScore(score)); + if (score != null) { + sumScore += score; + } + } + problem.setIsRemote(false); + problem.setIoScore(sumScore); + qdojProblemDto.setSamples(problemSamples); + qdojProblemDto.setProblem(problem); + return qdojProblemDto; + + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/MarkDownFileManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/MarkDownFileManager.java new file mode 100644 index 0000000..02779f7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/MarkDownFileManager.java @@ -0,0 +1,173 @@ +package top.hcode.hoj.manager.file; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import top.hcode.hoj.validator.GroupValidator; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.common.FileEntityService; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import java.io.File; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 14:50 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class MarkDownFileManager { + + @Resource + private FileEntityService fileEntityService; + + @Autowired + private GroupValidator groupValidator; + + public Map uploadMDImg(MultipartFile image, Long gid) throws StatusFailException, StatusSystemErrorException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + + if (!isRoot + && !isProblemAdmin + && !isAdmin + && !(gid != null && groupValidator.isGroupAdmin(userRolesVo.getUid(), gid))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (image == null) { + throw new StatusFailException("上传的图片不能为空!"); + } + if (image.getSize() > 1024 * 1024 * 4) { + throw new StatusFailException("上传的图片文件大小不能大于4M!"); + } + //获取文件后缀 + String suffix = image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf(".") + 1); + if (!"jpg,jpeg,gif,png,webp".toUpperCase().contains(suffix.toUpperCase())) { + throw new StatusFailException("请选择jpg,jpeg,gif,png,webp格式的图片!"); + } + + //若不存在该目录,则创建目录 + FileUtil.mkdir(Constants.File.MARKDOWN_FILE_FOLDER.getPath()); + + //通过UUID生成唯一文件名 + String filename = IdUtil.simpleUUID() + "." + suffix; + try { + //将文件保存指定目录 + image.transferTo(FileUtil.file(Constants.File.MARKDOWN_FILE_FOLDER.getPath() + File.separator + filename)); + } catch (Exception e) { + log.error("图片文件上传异常-------------->", e); + throw new StatusSystemErrorException("服务器异常:图片文件上传失败!"); + } + + top.hcode.hoj.pojo.entity.common.File file = new top.hcode.hoj.pojo.entity.common.File(); + file.setFolderPath(Constants.File.MARKDOWN_FILE_FOLDER.getPath()) + .setName(filename) + .setFilePath(Constants.File.MARKDOWN_FILE_FOLDER.getPath() + File.separator + filename) + .setSuffix(suffix) + .setType("md") + .setUid(userRolesVo.getUid()); + fileEntityService.save(file); + + return MapUtil.builder() + .put("link", Constants.File.IMG_API.getPath() + filename) + .put("fileId", file.getId()).map(); + + } + + public void deleteMDImg(Long fileId) throws StatusFailException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + top.hcode.hoj.pojo.entity.common.File file = fileEntityService.getById(fileId); + + if (file == null) { + throw new StatusFailException("错误:文件不存在!"); + } + + if (!file.getType().equals("md")) { + throw new StatusForbiddenException("错误:不支持删除!"); + } + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + + Long gid = file.getGid(); + + if (!file.getUid().equals(userRolesVo.getUid()) + && !isRoot + && !isProblemAdmin + && !(gid != null && groupValidator.isGroupAdmin(userRolesVo.getUid(), gid))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = FileUtil.del(file.getFilePath()); + if (isOk) { + fileEntityService.removeById(fileId); + } else { + throw new StatusFailException("删除失败"); + } + } + + public Map uploadMd(MultipartFile file, Long gid) throws StatusFailException, StatusSystemErrorException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + + if (!isRoot && !isProblemAdmin && !isAdmin + && !(gid != null && groupValidator.isGroupAdmin(userRolesVo.getUid(), gid))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (file == null) { + throw new StatusFailException("上传的文件不能为空!"); + } + if (file.getSize() >= 1024 * 1024 * 128) { + throw new StatusFailException("上传的文件大小不能大于128M!"); + } + //获取文件后缀 + String suffix = ""; + String filename = ""; + if (file.getOriginalFilename() != null && file.getOriginalFilename().contains(".")) { + suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1); + //通过UUID生成唯一文件名 + filename = IdUtil.simpleUUID() + "." + suffix; + } else { + filename = IdUtil.simpleUUID(); + } + //若不存在该目录,则创建目录 + FileUtil.mkdir(Constants.File.MARKDOWN_FILE_FOLDER.getPath()); + + try { + //将文件保存指定目录 + file.transferTo(FileUtil.file(Constants.File.MARKDOWN_FILE_FOLDER.getPath() + File.separator + filename)); + } catch (Exception e) { + log.error("文件上传异常-------------->", e); + throw new StatusSystemErrorException("服务器异常:文件上传失败!"); + } + + return MapUtil.builder() + .put("link", Constants.File.FILE_API.getPath() + filename) + .map(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ProblemFileManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ProblemFileManager.java new file mode 100644 index 0000000..5bfec45 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/ProblemFileManager.java @@ -0,0 +1,417 @@ +package top.hcode.hoj.manager.file; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileReader; +import cn.hutool.core.io.file.FileWriter; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ZipUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.problem.*; +import top.hcode.hoj.pojo.vo.ImportProblemVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.problem.LanguageEntityService; +import top.hcode.hoj.dao.problem.ProblemCaseEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.problem.TagEntityService; +import top.hcode.hoj.utils.Constants; + + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.*; +import java.util.concurrent.*; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 14:40 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class ProblemFileManager { + @Autowired + private LanguageEntityService languageEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private ProblemCaseEntityService problemCaseEntityService; + + @Autowired + private TagEntityService tagEntityService; + + /** + * @param file + * @MethodName importProblem + * @Description zip文件导入题目 仅超级管理员可操作 + * @Return + * @Since 2021/5/27 + */ + @Transactional(rollbackFor = Exception.class) + public void importProblem(MultipartFile file) throws StatusFailException, StatusSystemErrorException { + + String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1); + if (!"zip".toUpperCase().contains(suffix.toUpperCase())) { + throw new StatusFailException("请上传zip格式的题目文件压缩包!"); + } + + String fileDirId = IdUtil.simpleUUID(); + String fileDir = Constants.File.TESTCASE_TMP_FOLDER.getPath() + File.separator + fileDirId; + String filePath = fileDir + File.separator + file.getOriginalFilename(); + // 文件夹不存在就新建 + FileUtil.mkdir(fileDir); + try { + file.transferTo(new File(filePath)); + } catch (IOException e) { + FileUtil.del(fileDir); + throw new StatusSystemErrorException("服务器异常:评测数据上传失败!"); + } + + // 将压缩包压缩到指定文件夹 + ZipUtil.unzip(filePath, fileDir); + + // 删除zip文件 + FileUtil.del(filePath); + + + // 检查文件是否存在 + File testCaseFileList = new File(fileDir); + File[] files = testCaseFileList.listFiles(); + if (files == null || files.length == 0) { + FileUtil.del(fileDir); + throw new StatusFailException("评测数据压缩包里文件不能为空!"); + } + + + HashMap problemInfo = new HashMap<>(); + HashMap testcaseInfo = new HashMap<>(); + + for (File tmp : files) { + if (tmp.isFile()) { + // 检查文件是否时json文件 + if (!tmp.getName().endsWith("json")) { + FileUtil.del(fileDir); + throw new StatusFailException("编号为:" + tmp.getName() + "的文件格式错误,请使用json文件!"); + } + String tmpPreName = tmp.getName().substring(0, tmp.getName().lastIndexOf(".")); + problemInfo.put(tmpPreName, tmp); + } + if (tmp.isDirectory()) { + testcaseInfo.put(tmp.getName(), tmp); + } + } + + // 读取json文件生成对象 + HashMap problemVoMap = new HashMap<>(); + for (String key : problemInfo.keySet()) { + // 若有名字不对应,直接返回失败 + if (testcaseInfo.getOrDefault(key, null) == null) { + FileUtil.del(fileDir); + throw new StatusFailException("请检查编号为:" + key + "的题目数据文件与测试数据文件夹是否一一对应!"); + } + try { + FileReader fileReader = new FileReader(problemInfo.get(key)); + ImportProblemVo importProblemVo = JSONUtil.toBean(fileReader.readString(), ImportProblemVo.class); + problemVoMap.put(key, importProblemVo); + } catch (Exception e) { + FileUtil.del(fileDir); + throw new StatusFailException("请检查编号为:" + key + "的题目json文件的格式:" + e.getLocalizedMessage()); + } + } + + QueryWrapper languageQueryWrapper = new QueryWrapper<>(); + languageQueryWrapper.eq("oj", "ME"); + List languageList = languageEntityService.list(languageQueryWrapper); + + HashMap languageMap = new HashMap<>(); + for (Language language : languageList) { + languageMap.put(language.getName(), language.getId()); + } + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + List problemDtos = new LinkedList<>(); + List tagList = tagEntityService.list(new QueryWrapper().eq("oj", "ME")); + HashMap tagMap = new HashMap<>(); + for (Tag tag : tagList) { + tagMap.put(tag.getName().toUpperCase(), tag); + } + for (String key : problemInfo.keySet()) { + ImportProblemVo importProblemVo = problemVoMap.get(key); + // 格式化题目语言 + List languages = new LinkedList<>(); + for (String lang : importProblemVo.getLanguages()) { + Long lid = languageMap.getOrDefault(lang, null); + + if (lid == null) { + throw new StatusFailException("请检查编号为:" + key + "的题目的代码语言是否有错,不要添加不支持的语言!"); + } + languages.add(new Language().setId(lid).setName(lang)); + } + + // 格式化题目代码模板 + List codeTemplates = new LinkedList<>(); + for (Map tmp : importProblemVo.getCodeTemplates()) { + String language = tmp.getOrDefault("language", null); + String code = tmp.getOrDefault("code", null); + Long lid = languageMap.getOrDefault(language, null); + if (language == null || code == null || lid == null) { + FileUtil.del(fileDir); + throw new StatusFailException("请检查编号为:" + key + "的题目的代码模板列表是否有错,不要添加不支持的语言!"); + } + codeTemplates.add(new CodeTemplate().setCode(code).setStatus(true).setLid(lid)); + } + + // 格式化标签 + List tags = new LinkedList<>(); + for (String tagStr : importProblemVo.getTags()) { + Tag tag = tagMap.getOrDefault(tagStr.toUpperCase(), null); + if (tag == null) { + tags.add(new Tag().setName(tagStr).setOj("ME")); + } else { + tags.add(tag); + } + } + + Problem problem = BeanUtil.mapToBean(importProblemVo.getProblem(), Problem.class, true); + if (problem.getAuthor() == null) { + problem.setAuthor(userRolesVo.getUsername()); + } + problem.setIsGroup(false); + List problemCaseList = new LinkedList<>(); + for (Map tmp : importProblemVo.getSamples()) { + problemCaseList.add(BeanUtil.mapToBean(tmp, ProblemCase.class, true)); + } + + // 格式化用户额外文件和判题额外文件 + if (importProblemVo.getUserExtraFile() != null) { + JSONObject userExtraFileJson = JSONUtil.parseObj(importProblemVo.getUserExtraFile()); + problem.setUserExtraFile(userExtraFileJson.toString()); + } + if (importProblemVo.getJudgeExtraFile() != null) { + JSONObject judgeExtraFileJson = JSONUtil.parseObj(importProblemVo.getJudgeExtraFile()); + problem.setJudgeExtraFile(judgeExtraFileJson.toString()); + } + + + ProblemDto problemDto = new ProblemDto(); + problemDto.setProblem(problem) + .setCodeTemplates(codeTemplates) + .setTags(tags) + .setLanguages(languages) + .setUploadTestcaseDir(fileDir + File.separator + key) + .setIsUploadTestCase(true) + .setSamples(problemCaseList); + + Constants.JudgeMode judgeMode = Constants.JudgeMode.getJudgeMode(importProblemVo.getJudgeMode()); + if (judgeMode == null) { + problemDto.setJudgeMode(Constants.JudgeMode.DEFAULT.getMode()); + } else { + problemDto.setJudgeMode(judgeMode.getMode()); + } + problemDtos.add(problemDto); + } + + if (problemDtos.size() == 0) { + throw new StatusFailException("警告:未成功导入一道以上的题目,请检查文件格式是否正确!"); + } else { + for (ProblemDto problemDto : problemDtos) { + problemEntityService.adminAddProblem(problemDto); + } + } + } + + + /** + * @param pidList + * @param response + * @MethodName exportProblem + * @Description 导出指定的题目包括测试数据生成zip 仅超级管理员可操作 + * @Return + * @Since 2021/5/28 + */ + public void exportProblem(List pidList, HttpServletResponse response) { + + QueryWrapper languageQueryWrapper = new QueryWrapper<>(); + languageQueryWrapper.eq("oj", "ME"); + List languageList = languageEntityService.list(languageQueryWrapper); + + HashMap languageMap = new HashMap<>(); + for (Language language : languageList) { + languageMap.put(language.getId(), language.getName()); + } + + List tagList = tagEntityService.list(); + + HashMap tagMap = new HashMap<>(); + for (Tag tag : tagList) { + tagMap.put(tag.getId(), tag.getName()); + } + + String workDir = Constants.File.FILE_DOWNLOAD_TMP_FOLDER.getPath() + File.separator + IdUtil.simpleUUID(); + + // 使用线程池 + ExecutorService threadPool = new ThreadPoolExecutor( + 2, // 核心线程数 + 4, // 最大线程数。最多几个线程并发。 + 3,//当非核心线程无任务时,几秒后结束该线程 + TimeUnit.SECONDS,// 结束线程时间单位 + new LinkedBlockingDeque<>(200), //阻塞队列,限制等候线程数 + Executors.defaultThreadFactory(), + new ThreadPoolExecutor.DiscardOldestPolicy());//队列满了,尝试去和最早的竞争,也不会抛出异常! + + List> futureTasks = new ArrayList<>(); + + for (Long pid : pidList) { + + futureTasks.add(new FutureTask<>(new Callable() { + @Override + public Void call() throws Exception { + String testcaseWorkDir = Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + pid; + File file = new File(testcaseWorkDir); + + List> problemCases = new LinkedList<>(); + if (!file.exists() || file.listFiles() == null) { // 本地为空 尝试去数据库查找 + QueryWrapper problemCaseQueryWrapper = new QueryWrapper<>(); + problemCaseQueryWrapper.eq("pid", pid); + List problemCaseList = problemCaseEntityService.list(problemCaseQueryWrapper); + FileUtil.mkdir(testcaseWorkDir); + // 写入本地 + for (int i = 0; i < problemCaseList.size(); i++) { + String filePreName = testcaseWorkDir + File.separator + (i + 1); + String inputName = filePreName + ".in"; + String outputName = filePreName + ".out"; + FileWriter infileWriter = new FileWriter(inputName); + infileWriter.write(problemCaseList.get(i).getInput()); + FileWriter outfileWriter = new FileWriter(outputName); + outfileWriter.write(problemCaseList.get(i).getOutput()); + + ProblemCase problemCase = problemCaseList.get(i).setPid(null) + .setInput(inputName) + .setOutput(outputName) + .setGmtCreate(null) + .setStatus(null) + .setId(null) + .setGmtModified(null); + HashMap problemCaseMap = new HashMap<>(); + BeanUtil.beanToMap(problemCase, problemCaseMap, false, true); + problemCases.add(problemCaseMap); + } + FileUtil.copy(testcaseWorkDir, workDir, true); + + } else { + String infoPath = testcaseWorkDir + File.separator + "info"; + if (FileUtil.exist(infoPath)) { + FileReader reader = new FileReader(infoPath); + JSONObject jsonObject = JSONUtil.parseObj(reader.readString()); + JSONArray testCases = jsonObject.getJSONArray("testCases"); + for (int i = 0; i < testCases.size(); i++) { + JSONObject jsonObject1 = testCases.get(i, JSONObject.class); + HashMap problemCaseMap = new HashMap<>(); + problemCaseMap.put("input", jsonObject1.getStr("inputName")); + problemCaseMap.put("output", jsonObject1.getStr("outputName")); + Integer score = jsonObject1.getInt("score"); + if (score != null && score > 0) { + problemCaseMap.put("score", score); + } + problemCases.add(problemCaseMap); + } + } + FileUtil.copy(testcaseWorkDir, workDir, true); + } + ImportProblemVo importProblemVo = problemEntityService.buildExportProblem(pid, problemCases, languageMap, tagMap); + String content = JSONUtil.toJsonStr(importProblemVo); + FileWriter fileWriter = new FileWriter(workDir + File.separator + "problem_" + pid + ".json"); + fileWriter.write(content); + return null; + } + })); + + } + // 提交到线程池进行执行 + for (FutureTask futureTask : futureTasks) { + threadPool.submit(futureTask); + } + // 所有任务执行完成且等待队列中也无任务关闭线程池 + if (!threadPool.isShutdown()) { + threadPool.shutdown(); + } + // 阻塞主线程, 直至线程池关闭 + try { + threadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); + } catch (InterruptedException e) { + log.error("线程池异常--------------->", e); + } + + String fileName = "problem_export_" + System.currentTimeMillis() + ".zip"; + // 将对应文件夹的文件压缩成zip + ZipUtil.zip(workDir, Constants.File.FILE_DOWNLOAD_TMP_FOLDER.getPath() + File.separator + fileName); + // 将zip变成io流返回给前端 + FileReader fileReader = new FileReader(Constants.File.FILE_DOWNLOAD_TMP_FOLDER.getPath() + File.separator + fileName); + BufferedInputStream bins = new BufferedInputStream(fileReader.getInputStream());//放到缓冲流里面 + OutputStream outs = null;//获取文件输出IO流 + BufferedOutputStream bouts = null; + try { + outs = response.getOutputStream(); + bouts = new BufferedOutputStream(outs); + response.setContentType("application/x-download"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); + int bytesRead = 0; + byte[] buffer = new byte[1024 * 10]; + //开始向网络传输文件流 + while ((bytesRead = bins.read(buffer, 0, 1024 * 10)) != -1) { + bouts.write(buffer, 0, bytesRead); + } + bouts.flush(); + } catch (IOException e) { + log.error("导出题目数据的压缩文件异常------------>", e); + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + Map map = new HashMap<>(); + map.put("status", ResultStatus.SYSTEM_ERROR); + map.put("msg", "导出题目数据失败,请重新尝试!"); + map.put("data", null); + try { + response.getWriter().println(JSONUtil.toJsonStr(map)); + } catch (IOException ioException) { + ioException.printStackTrace(); + } + } finally { + try { + bins.close(); + if (outs != null) { + outs.close(); + } + if (bouts != null) { + bouts.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + // 清空临时文件 + FileUtil.del(workDir); + FileUtil.del(Constants.File.FILE_DOWNLOAD_TMP_FOLDER.getPath() + File.separator + fileName); + } + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/TestCaseManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/TestCaseManager.java new file mode 100644 index 0000000..e2e650f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/TestCaseManager.java @@ -0,0 +1,271 @@ +package top.hcode.hoj.manager.file; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileReader; +import cn.hutool.core.io.file.FileWriter; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ZipUtil; +import cn.hutool.json.JSONUtil; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.dao.problem.ProblemCaseEntityService; +import top.hcode.hoj.utils.Constants; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 14:57 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class TestCaseManager { + + @Autowired + private ProblemCaseEntityService problemCaseEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private GroupValidator groupValidator; + + public Map uploadTestcaseZip(MultipartFile file, Long gid) throws StatusFailException, StatusSystemErrorException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + + if (!isRoot && !isProblemAdmin && !isAdmin + && !(gid != null && groupValidator.isGroupAdmin(userRolesVo.getUid(), gid))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + //获取文件后缀 + String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1); + if (!"zip".toUpperCase().contains(suffix.toUpperCase())) { + throw new StatusFailException("请上传zip格式的测试数据压缩包!"); + } + String fileDirId = IdUtil.simpleUUID(); + String fileDir = Constants.File.TESTCASE_TMP_FOLDER.getPath() + File.separator + fileDirId; + String filePath = fileDir + File.separator + file.getOriginalFilename(); + // 文件夹不存在就新建 + FileUtil.mkdir(fileDir); + try { + file.transferTo(new File(filePath)); + } catch (IOException e) { + log.error("评测数据文件上传异常-------------->{}", e.getMessage()); + throw new StatusSystemErrorException("服务器异常:评测数据上传失败!"); + } + + // 将压缩包压缩到指定文件夹 + ZipUtil.unzip(filePath, fileDir); + // 删除zip文件 + FileUtil.del(filePath); + // 检查文件是否存在 + File testCaseFileList = new File(fileDir); + File[] files = testCaseFileList.listFiles(); + if (files == null || files.length == 0) { + FileUtil.del(fileDir); + throw new StatusFailException("评测数据压缩包里文件不能为空!"); + } + + HashMap inputData = new HashMap<>(); + HashMap outputData = new HashMap<>(); + + // 遍历读取与检查是否in和out文件一一对应,否则报错 + for (File tmp : files) { + String tmpPreName = null; + if (tmp.getName().endsWith(".in")) { + tmpPreName = tmp.getName().substring(0, tmp.getName().lastIndexOf(".in")); + inputData.put(tmpPreName, tmp.getName()); + } else if (tmp.getName().endsWith(".out")) { + tmpPreName = tmp.getName().substring(0, tmp.getName().lastIndexOf(".out")); + outputData.put(tmpPreName, tmp.getName()); + } else if (tmp.getName().endsWith(".ans")) { + tmpPreName = tmp.getName().substring(0, tmp.getName().lastIndexOf(".ans")); + outputData.put(tmpPreName, tmp.getName()); + } else if (tmp.getName().endsWith(".txt")) { + tmpPreName = tmp.getName().substring(0, tmp.getName().lastIndexOf(".txt")); + if (tmpPreName.contains("input")) { + inputData.put(tmpPreName.replaceAll("input", "$*$"), tmp.getName()); + } else if (tmpPreName.contains("output")) { + outputData.put(tmpPreName.replaceAll("output", "$*$"), tmp.getName()); + } + } + } + + // 进行数据对应检查,同时生成返回数据 + List> problemCaseList = new LinkedList<>(); + for (String key : inputData.keySet()) { + HashMap testcaseMap = new HashMap<>(); + String inputFileName = inputData.get(key); + testcaseMap.put("input", inputFileName); + + // 若有名字对应的out文件不存在的,直接生成对应的out文件 + String oriOutputFileName = outputData.getOrDefault(key, null); + if (oriOutputFileName == null) { + oriOutputFileName = key + ".out"; + if (inputFileName.endsWith(".txt")) { + oriOutputFileName = inputFileName.replaceAll("input", "output"); + } + FileWriter fileWriter = new FileWriter(fileDir + File.separator + oriOutputFileName); + fileWriter.write(""); + } + + testcaseMap.put("output", oriOutputFileName); + problemCaseList.add(testcaseMap); + } + + List> fileList = problemCaseList.stream() + .sorted((o1, o2) -> { + String a = o1.get("input").split("\\.")[0]; + String b = o2.get("input").split("\\.")[0]; + if (a.length() > b.length()) { + return 1; + } else if (a.length() < b.length()) { + return -1; + } + return a.compareTo(b); + }) + .collect(Collectors.toList()); + + return MapUtil.builder() + .put("fileList", fileList) + .put("fileListDir", fileDir) + .map(); + } + + + public void downloadTestcase(Long pid, HttpServletResponse response) throws StatusFailException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + + Problem problem = problemEntityService.getById(pid); + + Long gid = problem.getGid(); + + if (gid != null) { + if (!isRoot && !problem.getAuthor().equals(userRolesVo.getUsername()) + && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } else { + if (!isRoot && !isProblemAdmin && !problem.getAuthor().equals(userRolesVo.getUsername())) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } + + String workDir = Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + pid; + File file = new File(workDir); + if (!file.exists()) { // 本地为空 尝试去数据库查找 + QueryWrapper problemCaseQueryWrapper = new QueryWrapper<>(); + problemCaseQueryWrapper.eq("pid", pid); + List problemCaseList = problemCaseEntityService.list(problemCaseQueryWrapper); + + if (CollectionUtils.isEmpty(problemCaseList)) { + throw new StatusFailException("对不起,该题目的评测数据为空!"); + } + + boolean hasTestCase = true; + if (problemCaseList.get(0).getInput().endsWith(".in") && (problemCaseList.get(0).getOutput().endsWith(".out") || + problemCaseList.get(0).getOutput().endsWith(".ans"))) { + hasTestCase = false; + } + if (!hasTestCase) { + throw new StatusFailException("对不起,该题目的评测数据为空!"); + } + + FileUtil.mkdir(workDir); + // 写入本地 + for (int i = 0; i < problemCaseList.size(); i++) { + String filePreName = workDir + File.separator + (i + 1); + String inputName = filePreName + ".in"; + String outputName = filePreName + ".out"; + FileWriter infileWriter = new FileWriter(inputName); + infileWriter.write(problemCaseList.get(i).getInput()); + FileWriter outfileWriter = new FileWriter(outputName); + outfileWriter.write(problemCaseList.get(i).getOutput()); + } + } + + String fileName = "problem_" + pid + "_testcase_" + System.currentTimeMillis() + ".zip"; + // 将对应文件夹的文件压缩成zip + ZipUtil.zip(workDir, Constants.File.FILE_DOWNLOAD_TMP_FOLDER.getPath() + File.separator + fileName); + // 将zip变成io流返回给前端 + FileReader fileReader = new FileReader(Constants.File.FILE_DOWNLOAD_TMP_FOLDER.getPath() + File.separator + fileName); + BufferedInputStream bins = new BufferedInputStream(fileReader.getInputStream());//放到缓冲流里面 + OutputStream outs = null;//获取文件输出IO流 + BufferedOutputStream bouts = null; + try { + outs = response.getOutputStream(); + bouts = new BufferedOutputStream(outs); + response.setContentType("application/x-download"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); + int bytesRead = 0; + byte[] buffer = new byte[1024 * 10]; + //开始向网络传输文件流 + while ((bytesRead = bins.read(buffer, 0, 1024 * 10)) != -1) { + bouts.write(buffer, 0, bytesRead); + } + bouts.flush(); + } catch (IOException e) { + log.error("下载题目测试数据的压缩文件异常------------>{}", e.getMessage()); + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + Map map = new HashMap<>(); + map.put("status", ResultStatus.SYSTEM_ERROR); + map.put("msg", "下载文件失败,请重新尝试!"); + map.put("data", null); + try { + response.getWriter().println(JSONUtil.toJsonStr(map)); + } catch (IOException ioException) { + ioException.printStackTrace(); + } + } finally { + try { + bins.close(); + if (outs != null) { + outs.close(); + } + if (bouts != null) { + bouts.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + // 清空临时文件 + FileUtil.del(Constants.File.FILE_DOWNLOAD_TMP_FOLDER.getPath() + File.separator + fileName); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/UserFileManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/UserFileManager.java new file mode 100644 index 0000000..82e8759 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/file/UserFileManager.java @@ -0,0 +1,49 @@ +package top.hcode.hoj.manager.file; + +import com.alibaba.excel.EasyExcel; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.pojo.vo.ExcelUserVo; +import top.hcode.hoj.utils.RedisUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:02 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class UserFileManager { + + @Autowired + private RedisUtils redisUtils; + + public void generateUserExcel(String key, HttpServletResponse response) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 + String fileName = URLEncoder.encode(key, "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + response.setHeader("Content-Type", "application/xlsx"); + EasyExcel.write(response.getOutputStream(), ExcelUserVo.class).sheet("用户数据").doWrite(getGenerateUsers(key)); + } + + private List getGenerateUsers(String key) { + List result = new LinkedList<>(); + Map userInfo = redisUtils.hmget(key); + for (Object hashKey : userInfo.keySet()) { + String username = (String) hashKey; + String password = (String) userInfo.get(hashKey); + result.add(new ExcelUserVo().setUsername(username).setPassword(password)); + } + return result; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/GroupManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/GroupManager.java new file mode 100644 index 0000000..ca10d13 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/GroupManager.java @@ -0,0 +1,317 @@ +package top.hcode.hoj.manager.group; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.dao.group.GroupMemberEntityService; +import top.hcode.hoj.dao.user.UserAcproblemEntityService; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.entity.group.GroupMember; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; +import top.hcode.hoj.pojo.vo.AccessVo; +import top.hcode.hoj.pojo.vo.ConfigVo; +import top.hcode.hoj.pojo.vo.GroupVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; +import top.hcode.hoj.validator.GroupValidator; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupManager { + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private UserAcproblemEntityService userAcproblemEntityService; + + @Autowired + private GroupMemberEntityService groupMemberEntityService; + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private GroupValidator groupValidator; + + @Autowired + private ConfigVo configVo; + + public IPage getGroupList(Integer limit, Integer currentPage, String keyword, Integer auth, boolean onlyMine) { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + if (auth == null || auth < 1) auth = 0; + + if (!StringUtils.isEmpty(keyword)) { + keyword = keyword.trim(); + } + + String uid = ""; + boolean isRoot = false; + if (userRolesVo != null) { + uid = userRolesVo.getUid(); + isRoot = SecurityUtils.getSubject().hasRole("root"); + } + return groupEntityService.getGroupList(limit, currentPage, keyword, auth, uid, onlyMine, isRoot); + } + + public Group getGroup(Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + if (!group.getVisible() && !isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("该团队并非公开团队,不支持访问!"); + } + + if (!isRoot && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + group.setCode(null); + } + + return group; + } + + public AccessVo getGroupAccess(Long gid) throws StatusFailException, StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + boolean access = false; + + if (groupValidator.isGroupMember(userRolesVo.getUid(), gid) || isRoot) { + access = true; + Group group = groupEntityService.getById(gid); + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + if (!isRoot && !group.getVisible() && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("该团队并非公开团队,不支持访问!"); + } + } + + AccessVo accessVo = new AccessVo(); + accessVo.setAccess(access); + return accessVo; + } + + public Integer getGroupAuth(Long gid) { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid).eq("uid", userRolesVo.getUid()); + + GroupMember groupMember = groupMemberEntityService.getOne(groupMemberQueryWrapper); + + Integer auth = 0; + if (groupMember != null) { + auth = groupMember.getAuth(); + } + return auth; + } + + @Transactional(rollbackFor = Exception.class) + public void addGroup(Group group) throws StatusFailException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + + if (!isRoot && !isAdmin && !isProblemAdmin) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("uid", userRolesVo.getUid()).select("distinct pid"); + int userAcProblemCount = userAcproblemEntityService.count(queryWrapper); + + if (userAcProblemCount < configVo.getDefaultCreateGroupACInitValue()) { + throw new StatusForbiddenException("对不起,您暂时无权限创建团队!请先去提交题目通过" + + configVo.getDefaultCreateGroupACInitValue() + "道以上!"); + } + + String lockKey = Constants.Account.GROUP_ADD_NUM_LOCK.getCode() + userRolesVo.getUid(); + Integer num = (Integer) redisUtils.get(lockKey); + if (num == null) { + redisUtils.set(lockKey, 1, 3600 * 24); + } else if (num >= configVo.getDefaultCreateGroupDailyLimit()) { + throw new StatusForbiddenException("对不起,您今天创建团队次数已超过" + configVo.getDefaultCreateGroupDailyLimit() + "次,已被限制!"); + } else { + redisUtils.incr(lockKey, 1); + } + + QueryWrapper existedGroupQueryWrapper = new QueryWrapper<>(); + existedGroupQueryWrapper.eq("owner", userRolesVo.getUsername()); + int existedGroupNum = groupEntityService.count(existedGroupQueryWrapper); + + if (existedGroupNum >= configVo.getDefaultCreateGroupLimit()) { + throw new StatusForbiddenException("对不起,您总共已创建了" + configVo.getDefaultCreateGroupLimit() + "个团队,不可再创建,已被限制!"); + } + + } + group.setOwner(userRolesVo.getUsername()); + group.setUid(userRolesVo.getUid()); + + if (!StringUtils.isEmpty(group.getName()) && (group.getName().length() < 5 || group.getName().length() > 25)) { + throw new StatusFailException("团队名称的长度应为 5 到 25!"); + } + + if (!StringUtils.isEmpty(group.getShortName()) && (group.getShortName().length() < 5 || group.getShortName().length() > 10)) { + throw new StatusFailException("团队简称的长度应为 5 到 10!"); + } + + if (!StringUtils.isEmpty(group.getBrief()) && (group.getBrief().length() < 5 || group.getBrief().length() > 50)) { + throw new StatusFailException("团队简介的长度应为 5 到 50!"); + } + + if (group.getAuth() == null || group.getAuth() < 1 || group.getAuth() > 3) { + throw new StatusFailException("团队权限不能为空且应为1~3!"); + } + + if (group.getAuth() == 2 || group.getAuth() == 3) { + if (StringUtils.isEmpty(group.getCode()) || group.getCode().length() != 6) { + throw new StatusFailException("团队邀请码不能为空且长度应为 6!"); + } + } + + if (!StringUtils.isEmpty(group.getDescription()) && (group.getDescription().length() < 5 || group.getDescription().length() > 1000)) { + throw new StatusFailException("团队描述的长度应为 5 到 1000!"); + } + + QueryWrapper groupQueryWrapper = new QueryWrapper<>(); + groupQueryWrapper.eq("name", group.getName()); + int sameNameGroupCount = groupEntityService.count(groupQueryWrapper); + if (sameNameGroupCount > 0) { + throw new StatusFailException("团队名称已存在,请修改后重试!"); + } + + groupQueryWrapper = new QueryWrapper<>(); + groupQueryWrapper.eq("short_name", group.getShortName()); + int sameShortNameGroupCount = groupEntityService.count(groupQueryWrapper); + if (sameShortNameGroupCount > 0) { + throw new StatusFailException("团队简称已存在,请修改后重试!"); + } + + boolean isOk = groupEntityService.save(group); + if (!isOk) { + throw new StatusFailException("创建失败,请重新尝试!"); + } else { + groupMemberEntityService.save(new GroupMember() + .setUid(userRolesVo.getUid()) + .setGid(group.getId()) + .setAuth(5)); + } + } + + public void updateGroup(Group group) throws StatusFailException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + if (!groupValidator.isGroupRoot(userRolesVo.getUid(), group.getId()) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (!StringUtils.isEmpty(group.getName()) && (group.getName().length() < 5 || group.getName().length() > 25)) { + throw new StatusFailException("团队名称的长度应为 5 到 25!"); + } + + if (!StringUtils.isEmpty(group.getShortName()) && (group.getShortName().length() < 5 || group.getShortName().length() > 10)) { + throw new StatusFailException("团队简称的长度应为 5 到 10!"); + } + + if (!StringUtils.isEmpty(group.getBrief()) && (group.getBrief().length() < 5 || group.getBrief().length() > 50)) { + throw new StatusFailException("团队简介的长度应为 5 到 50!"); + } + + if (!StringUtils.isEmpty(group.getCode()) && group.getCode().length() != 6) { + throw new StatusFailException("团队邀请码的长度应为 6!"); + } + + if (!StringUtils.isEmpty(group.getDescription()) && (group.getDescription().length() < 5 || group.getDescription().length() > 1000)) { + throw new StatusFailException("团队描述的长度应为 5 到 1000!"); + } + + QueryWrapper groupQueryWrapper = new QueryWrapper<>(); + groupQueryWrapper.eq("name", group.getName()) + .ne("id", group.getId()); + int sameNameGroupCount = groupEntityService.count(groupQueryWrapper); + if (sameNameGroupCount > 0) { + throw new StatusFailException("团队名称已存在,请修改后重试!"); + } + + groupQueryWrapper = new QueryWrapper<>(); + groupQueryWrapper.eq("short_name", group.getShortName()) + .ne("id", group.getId()); + int sameShortNameGroupCount = groupEntityService.count(groupQueryWrapper); + if (sameShortNameGroupCount > 0) { + throw new StatusFailException("团队简称已存在,请修改后重试!"); + } + + boolean isOk = groupEntityService.updateById(group); + if (!isOk) { + throw new StatusFailException("更新失败,请重新尝试!"); + } + } + + public void deleteGroup(Long gid) throws StatusFailException, StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !userRolesVo.getUid().equals(group.getUid())) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid).in("auth", 3, 4, 5); + List groupMemberList = groupMemberEntityService.list(groupMemberQueryWrapper); + List groupMemberUidList = groupMemberList.stream() + .map(GroupMember::getUid) + .collect(Collectors.toList()); + + boolean isOk = groupEntityService.removeById(gid); + if (!isOk) { + throw new StatusFailException("删除失败,请重新尝试!"); + } else { + groupMemberEntityService.addDissolutionNoticeToGroupMember(gid, + group.getName(), + groupMemberUidList, + userRolesVo.getUsername()); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/GroupRankManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/GroupRankManager.java new file mode 100644 index 0000000..7a9e68c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/GroupRankManager.java @@ -0,0 +1,100 @@ +package top.hcode.hoj.manager.group; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.dao.group.GroupMemberEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.dao.user.UserRecordEntityService; +import top.hcode.hoj.pojo.entity.group.GroupMember; +import top.hcode.hoj.pojo.entity.user.UserInfo; +import top.hcode.hoj.pojo.vo.OIRankVo; +import top.hcode.hoj.utils.Constants; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author Himit_ZH + * @Date 2022/4/22 + */ +@Component +public class GroupRankManager { + + @Autowired + private UserRecordEntityService userRecordEntityService; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private GroupMemberEntityService groupMemberEntityService; + + + public IPage getGroupRankList(Integer limit, + Integer currentPage, + String searchUser, + Integer type, + Long gid) throws StatusFailException { + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 30; + + // 根据type查询不同 进行不同排序方式 + String rankType; + if (type.intValue() == Constants.Contest.TYPE_ACM.getCode()) { + rankType = Constants.Contest.TYPE_ACM.getName(); + } else if (type.intValue() == Constants.Contest.TYPE_OI.getCode()) { + rankType = Constants.Contest.TYPE_OI.getName(); + } else { + throw new StatusFailException("排行榜类型代码不正确,请使用0(ACM),1(OI)!"); + } + + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.select("uid") + .eq("gid", gid).in("auth", 3, 4, 5); + + List groupMemberUidList = groupMemberEntityService.list(groupMemberQueryWrapper) + .stream() + .map(GroupMember::getUid) + .collect(Collectors.toList()); + + if (CollectionUtils.isEmpty(groupMemberUidList)) { + return new Page<>(currentPage, limit); + } + + if (!StringUtils.isEmpty(searchUser)) { + QueryWrapper userInfoQueryWrapper = new QueryWrapper<>(); + userInfoQueryWrapper.select("uuid") + .eq("status", 0) + .in("uuid", groupMemberUidList) + .and(wrapper -> wrapper + .like("username", searchUser) + .or() + .like("nickname", searchUser) + .or() + .like("realname", searchUser)); + + List uidList = userInfoEntityService.list(userInfoQueryWrapper) + .stream() + .map(UserInfo::getUuid) + .collect(Collectors.toList()); + + if (CollectionUtils.isEmpty(uidList)) { + return new Page<>(currentPage, limit); + } + Page page = new Page<>(currentPage, limit); + return userRecordEntityService.getGroupRankList(page, gid, uidList, rankType, false); + } else { + Page page = new Page<>(currentPage, limit); + return userRecordEntityService.getGroupRankList(page, gid, groupMemberUidList, rankType, true); + } + + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/announcement/GroupAnnouncementManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/announcement/GroupAnnouncementManager.java new file mode 100644 index 0000000..f2280d8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/announcement/GroupAnnouncementManager.java @@ -0,0 +1,163 @@ +package top.hcode.hoj.manager.group.announcement; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.common.AnnouncementEntityService; +import top.hcode.hoj.dao.group.GroupAnnouncementEntityService; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupAnnouncementManager { + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private GroupAnnouncementEntityService groupAnnouncementEntityService; + + @Autowired + private AnnouncementEntityService announcementEntityService; + + @Autowired + private GroupValidator groupValidator; + + public IPage getAnnouncementList(Integer limit, Integer currentPage, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + return groupAnnouncementEntityService.getAnnouncementList(limit, currentPage, gid); + } + + public IPage getAdminAnnouncementList(Integer limit, Integer currentPage, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + return groupAnnouncementEntityService.getAdminAnnouncementList(limit, currentPage, gid); + } + + public void addAnnouncement(Announcement announcement) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long gid = announcement.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = announcementEntityService.save(announcement); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + } + + public void updateAnnouncement(Announcement announcement) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long gid = announcement.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(announcement.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = announcementEntityService.updateById(announcement); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + public void deleteAnnouncement(Long aid) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Announcement announcement = announcementEntityService.getById(aid); + + if (announcement == null) { + throw new StatusNotFoundException("该公告不存在!"); + } + + Long gid = announcement.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(announcement.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = announcementEntityService.removeById(aid); + if (!isOk) { + throw new StatusFailException("删除失败"); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestAnnouncementManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestAnnouncementManager.java new file mode 100644 index 0000000..b0a4503 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestAnnouncementManager.java @@ -0,0 +1,187 @@ +package top.hcode.hoj.manager.group.contest; + +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.common.AnnouncementEntityService; +import top.hcode.hoj.dao.contest.ContestAnnouncementEntityService; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.pojo.dto.AnnouncementDto; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestAnnouncement; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupContestAnnouncementManager { + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private AnnouncementEntityService announcementEntityService; + + @Autowired + private ContestAnnouncementEntityService contestAnnouncementEntityService; + + @Autowired + private GroupValidator groupValidator; + + public IPage getContestAnnouncementList(Integer limit, Integer currentPage, Long cid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + return announcementEntityService.getContestAnnouncement(cid, false, limit, currentPage); + } + + @Transactional(rollbackFor = Exception.class) + public void addContestAnnouncement(AnnouncementDto announcementDto) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long cid = announcementDto.getCid(); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + announcementDto.getAnnouncement().setGid(gid); + + boolean isOk = announcementEntityService.save(announcementDto.getAnnouncement()); + if (isOk) { + contestAnnouncementEntityService.saveOrUpdate(new ContestAnnouncement() + .setAid(announcementDto.getAnnouncement().getId()) + .setCid(announcementDto.getCid())); + } else { + throw new StatusFailException("添加失败!"); + } + } + + public void updateContestAnnouncement(AnnouncementDto announcementDto) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long cid = announcementDto.getCid(); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = announcementEntityService.updateById(announcementDto.getAnnouncement()); + if (!isOk) { + throw new StatusFailException("更新失败!"); + } + } + + public void deleteContestAnnouncement(Long aid, Long cid) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + Announcement announcement = announcementEntityService.getById(aid); + + if (announcement == null) { + throw new StatusNotFoundException("该公告不存在!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = announcementEntityService.removeById(aid); + if (!isOk) { + throw new StatusFailException("删除失败!"); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestManager.java new file mode 100644 index 0000000..126017f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestManager.java @@ -0,0 +1,276 @@ +package top.hcode.hoj.manager.group.contest; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.contest.ContestRegisterEntityService; +import top.hcode.hoj.dao.group.GroupContestEntityService; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestRegister; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.AdminContestVo; +import top.hcode.hoj.pojo.vo.ContestVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupContestManager { + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private GroupContestEntityService groupContestEntityService; + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private ContestRegisterEntityService contestRegisterEntityService; + + @Autowired + private GroupValidator groupValidator; + + public IPage getContestList(Integer limit, Integer currentPage, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + return groupContestEntityService.getContestList(limit, currentPage, gid); + } + + public IPage getAdminContestList(Integer limit, Integer currentPage, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + return groupContestEntityService.getAdminContestList(limit, currentPage, gid); + } + + public AdminContestVo getContest(Long cid) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + AdminContestVo adminContestVo = BeanUtil.copyProperties(contest, AdminContestVo.class, "starAccount"); + if (StringUtils.isEmpty(contest.getStarAccount())) { + adminContestVo.setStarAccount(new ArrayList<>()); + } else { + JSONObject jsonObject = JSONUtil.parseObj(contest.getStarAccount()); + List starAccount = jsonObject.get("star_account", List.class); + adminContestVo.setStarAccount(starAccount); + } + return adminContestVo; + } + + public void addContest(AdminContestVo adminContestVo) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long gid = adminContestVo.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + Contest contest = BeanUtil.copyProperties(adminContestVo, Contest.class, "starAccount"); + JSONObject accountJson = new JSONObject(); + accountJson.set("star_account", adminContestVo.getStarAccount()); + contest.setStarAccount(accountJson.toString()); + + contest.setIsGroup(true); + + boolean isOk = contestEntityService.save(contest); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + } + + public void updateContest(AdminContestVo adminContestVo) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long cid = adminContestVo.getId(); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + Contest contest1 = BeanUtil.copyProperties(adminContestVo, Contest.class, "starAccount"); + JSONObject accountJson = new JSONObject(); + accountJson.set("star_account", adminContestVo.getStarAccount()); + contest1.setStarAccount(accountJson.toString()); + Contest oldContest = contestEntityService.getById(contest1.getId()); + boolean isOk = contestEntityService.saveOrUpdate(contest1); + if (isOk) { + if (!contest1.getAuth().equals(Constants.Contest.AUTH_PUBLIC.getCode())) { + if (!Objects.equals(oldContest.getPwd(), contest1.getPwd())) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("cid", contest1.getId()); + contestRegisterEntityService.remove(updateWrapper); + } + } + } else { + throw new StatusFailException("修改失败"); + } + } + + public void deleteContest(Long cid) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = contestEntityService.removeById(cid); + if (!isOk) { + throw new StatusFailException("删除失败"); + } + } + + public void changeContestVisible(Long cid, Boolean visible) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + UpdateWrapper contestUpdateWrapper = new UpdateWrapper<>(); + contestUpdateWrapper.eq("id", cid).set("visible", visible); + + boolean isOK = contestEntityService.update(contestUpdateWrapper); + if (!isOK) { + throw new StatusFailException("修改失败"); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestProblemManager.java new file mode 100644 index 0000000..de064e1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/contest/GroupContestProblemManager.java @@ -0,0 +1,365 @@ +package top.hcode.hoj.manager.group.contest; + +import cn.hutool.core.map.MapUtil; +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.contest.ContestProblemEntityService; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.manager.admin.contest.AdminContestProblemManager; +import top.hcode.hoj.pojo.dto.ContestProblemDto; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupContestProblemManager { + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private AdminContestProblemManager adminContestProblemManager; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private ContestProblemEntityService contestProblemEntityService; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private GroupValidator groupValidator; + + public HashMap getContestProblemList(Integer limit, Integer currentPage, String keyword, Long cid, Integer problemType, String oj) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupRoot(userRolesVo.getUid(), gid) && !userRolesVo.getUid().equals(contest.getUid()) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + return adminContestProblemManager.getProblemList(limit, currentPage, keyword, cid, problemType, oj); + } + + public Map addProblem(ProblemDto problemDto) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long gid = problemDto.getProblem().getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + problemDto.getProblem().setProblemId(group.getShortName() + problemDto.getProblem().getProblemId()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("problem_id", problemDto.getProblem().getProblemId().toUpperCase()); + + Problem problem = problemEntityService.getOne(queryWrapper); + if (problem != null) { + throw new StatusFailException("该题目的Problem ID已存在,请更换!"); + } + + problemDto.getProblem().setAuth(3); + problemDto.getProblem().setIsGroup(true); + + List tagList = new LinkedList<>(); + for (Tag tag : problemDto.getTags()) { + if (tag.getGid() != null && !tag.getGid().equals(gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (tag.getId() == null) { + tag.setGid(gid); + } + + tagList.add(tag); + } + + problemDto.setTags(tagList); + + boolean isOk = problemEntityService.adminAddProblem(problemDto); + if (isOk) { + return MapUtil.builder().put("pid", problemDto.getProblem().getId()).map(); + } else { + throw new StatusFailException("添加失败"); + } + } + + public ContestProblem getContestProblem(Long pid, Long cid) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("cid", cid).eq("pid", pid); + + ContestProblem contestProblem = contestProblemEntityService.getOne(queryWrapper); + if (contestProblem == null) { + throw new StatusFailException("该比赛题目不存在!"); + } + return contestProblem; + } + + public void updateContestProblem(ContestProblem contestProblem) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long cid = contestProblem.getCid(); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = contestProblemEntityService.saveOrUpdate(contestProblem); + if (isOk) { + contestProblemEntityService.syncContestRecord(contestProblem.getPid(), contestProblem.getCid(), contestProblem.getDisplayId()); + } else { + throw new StatusFailException("更新失败!"); + } + } + + public void deleteContestProblem(Long pid, Long cid) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", cid).eq("pid", pid); + boolean isOk = contestProblemEntityService.remove(contestProblemQueryWrapper); + if (isOk) { + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.eq("cid", cid).eq("pid", pid); + judgeEntityService.remove(judgeUpdateWrapper); + } else { + throw new StatusFailException("删除失败!"); + } + } + + public void addProblemFromPublic(ContestProblemDto contestProblemDto) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long pid = contestProblemDto.getPid(); + + Problem problem = problemEntityService.getById(pid); + + if (problem == null || problem.getAuth() != 1 || problem.getIsGroup()) { + throw new StatusNotFoundException("该题目不存在或已被隐藏!"); + } + + Long cid = contestProblemDto.getCid(); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该比赛不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + String displayId = contestProblemDto.getDisplayId(); + + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", cid) + .and(wrapper -> wrapper.eq("pid", pid) + .or() + .eq("display_id", displayId)); + ContestProblem contestProblem = contestProblemEntityService.getOne(contestProblemQueryWrapper, false); + if (contestProblem != null) { + throw new StatusFailException("添加失败,该题目已添加或者题目的比赛展示ID已存在!"); + } + + String displayName = problem.getTitle(); + + ContestProblem newCProblem = new ContestProblem(); + + boolean isOk = contestProblemEntityService.saveOrUpdate(newCProblem + .setCid(cid).setPid(pid).setDisplayTitle(displayName).setDisplayId(displayId)); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void addProblemFromGroup(String problemId, Long cid, String displayId) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = contest.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUid().equals(contest.getUid()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("problem_id", problemId).eq("gid", gid); + + Problem problem = problemEntityService.getOne(problemQueryWrapper); + + if (problem == null) { + throw new StatusNotFoundException("该题目不存在或不是团队题目!"); + } + + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", cid) + .and(wrapper -> wrapper.eq("pid", problem.getId()) + .or() + .eq("display_id", displayId)); + + ContestProblem contestProblem = contestProblemEntityService.getOne(contestProblemQueryWrapper); + if (contestProblem != null) { + throw new StatusFailException("添加失败,该题目已添加或者题目的比赛展示ID已存在!"); + } + + ContestProblem newCProblem = new ContestProblem(); + String displayName = problem.getTitle(); + + boolean updateProblem = problemEntityService.saveOrUpdate(problem.setAuth(3)); + + boolean isOk = contestProblemEntityService.saveOrUpdate(newCProblem + .setCid(cid).setPid(problem.getId()).setDisplayTitle(displayName).setDisplayId(displayId)); + if (!isOk || !updateProblem) { + throw new StatusFailException("添加失败"); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/discussion/GroupDiscussionManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/discussion/GroupDiscussionManager.java new file mode 100644 index 0000000..616512a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/discussion/GroupDiscussionManager.java @@ -0,0 +1,241 @@ +package top.hcode.hoj.manager.group.discussion; + +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.discussion.DiscussionEntityService; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.user.UserAcproblemEntityService; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupDiscussionManager { + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private DiscussionEntityService discussionEntityService; + + @Autowired + private GroupValidator groupValidator; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private UserAcproblemEntityService userAcproblemEntityService; + + @Autowired + private RedisUtils redisUtils; + + public IPage getDiscussionList(Integer limit, + Integer currentPage, + Long gid, + String pid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupMember(userRolesVo.getUid(), gid) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper discussionQueryWrapper = new QueryWrapper<>(); + + if (!StringUtils.isEmpty(pid)) { + discussionQueryWrapper.eq("pid", pid); + } + + IPage iPage = new Page<>(currentPage, limit); + + discussionQueryWrapper + .eq("status", 0) + .eq("gid", gid) + .orderByDesc("top_priority") + .orderByDesc("gmt_create") + .orderByDesc("like_num") + .orderByDesc("view_num"); + + return discussionEntityService.page(iPage, discussionQueryWrapper); + } + + public IPage getAdminDiscussionList(Integer limit, Integer currentPage, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper discussionQueryWrapper = new QueryWrapper<>(); + + IPage iPage = new Page<>(currentPage, limit); + + discussionQueryWrapper + .eq("gid", gid) + .orderByDesc("top_priority") + .orderByDesc("gmt_create") + .orderByDesc("like_num") + .orderByDesc("view_num"); + + return discussionEntityService.page(iPage, discussionQueryWrapper); + } + + public void addDiscussion(Discussion discussion) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + + Long gid = discussion.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + String problemId = discussion.getPid(); + if (problemId != null) { + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("problem_id", problemId); + Problem problem = problemEntityService.getOne(problemQueryWrapper); + + if (problem == null) { + throw new StatusNotFoundException("该题目不存在"); + } else if (problem.getIsGroup()) { + discussion.setGid(problem.getGid()); + } + } + + if (!isRoot && !isProblemAdmin && !isAdmin) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("uid", userRolesVo.getUid()).select("distinct pid"); + int userAcProblemCount = userAcproblemEntityService.count(queryWrapper); + + if (userAcProblemCount < 10) { + throw new StatusForbiddenException("对不起,您暂时不能评论!请先去提交题目通过10道以上!"); + } + + String lockKey = Constants.Account.DISCUSSION_ADD_NUM_LOCK.getCode() + userRolesVo.getUid(); + Integer num = (Integer) redisUtils.get(lockKey); + if (num == null) { + redisUtils.set(lockKey, 1, 3600 * 24); + } else if (num >= 5) { + throw new StatusForbiddenException("对不起,您今天发帖次数已超过5次,已被限制!"); + } else { + redisUtils.incr(lockKey, 1); + } + } + + discussion.setAuthor(userRolesVo.getUsername()) + .setAvatar(userRolesVo.getAvatar()) + .setUid(userRolesVo.getUid()); + + if (groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + discussion.setRole("root"); + } else if (groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + discussion.setRole("admin"); + } else { + discussion.setTopPriority(false); + } + + boolean isOk = discussionEntityService.save(discussion); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + } + + public void updateDiscussion(Discussion discussion) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long gid = discussion.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupAdmin(userRolesVo.getUid(), gid) && !discussion.getUid().equals(userRolesVo.getUid()) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = discussionEntityService.updateById(discussion); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + public void deleteDiscussion(Long did) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Discussion discussion = discussionEntityService.getById(did); + + Long gid = discussion.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupAdmin(userRolesVo.getUid(), gid) && !discussion.getUid().equals(userRolesVo.getUid()) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = discussionEntityService.removeById(did); + if (!isOk) { + throw new StatusFailException("删除失败"); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/member/GroupMemberManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/member/GroupMemberManager.java new file mode 100644 index 0000000..f33db07 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/member/GroupMemberManager.java @@ -0,0 +1,297 @@ +package top.hcode.hoj.manager.group.member; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.dao.group.GroupMemberEntityService; +import top.hcode.hoj.pojo.entity.group.GroupMember; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.GroupMemberVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupMemberManager { + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private GroupMemberEntityService groupMemberEntityService; + + + @Autowired + private GroupValidator groupValidator; + + public IPage getMemberList(Integer limit, Integer currentPage, String keyword, Integer auth, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupMember(userRolesVo.getUid(), gid) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + if (auth == null || auth < 1) auth = 0; + + if (!StringUtils.isEmpty(keyword)) { + keyword = keyword.trim(); + } + + return groupMemberEntityService.getMemberList(limit, currentPage, keyword, auth, gid); + } + + public IPage getApplyList(Integer limit, Integer currentPage, String keyword, Integer auth, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupAdmin(userRolesVo.getUid(), gid) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + if (auth == null || auth < 1) auth = 0; + + if (!StringUtils.isEmpty(keyword)) { + keyword = keyword.trim(); + } + + return groupMemberEntityService.getApplyList(limit, currentPage, keyword, auth, gid); + } + + public void addMember(Long gid, String code, String reason) throws StatusFailException, StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null) { + throw new StatusNotFoundException("该团队不存在!"); + } + + if (!isRoot && (group.getStatus() == 1 || !group.getVisible())) { + throw new StatusNotFoundException("该团队已被封禁或未公开显示!"); + } + + if (group.getAuth() == 3 && !code.equals(group.getCode())) { + throw new StatusFailException("邀请码错误,请重新尝试!"); + } + + if (group.getAuth() != 1 && !StringUtils.isEmpty(reason) && (reason.length() < 5 || reason.length() > 100)) { + throw new StatusFailException("申请理由的长度应为 5 到 100!"); + } + + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("uid", userRolesVo.getUid()).eq("gid", gid); + + GroupMember groupMember = groupMemberEntityService.getOne(groupMemberQueryWrapper); + + if (groupMember != null) { + if (groupMember.getAuth() == 1) { + throw new StatusForbiddenException("您已申请过,请勿重复申请!"); + } else if (groupMember.getAuth() >= 3) { + throw new StatusForbiddenException("您已经加入了该团队,请勿再申请!!"); + } + } + + GroupMember newGroupMember = new GroupMember(); + newGroupMember.setUid(userRolesVo.getUid()).setGid(gid).setReason(reason); + if (group.getAuth() == 1) { + newGroupMember.setAuth(3); + } else { + newGroupMember.setAuth(1); + } + + boolean isOk = groupMemberEntityService.save(newGroupMember); + + if (!isOk) { + throw new StatusFailException("申请失败,请重新尝试!"); + } else { + if (group.getAuth() == 1) { + groupMemberEntityService.addWelcomeNoticeToGroupNewMember(gid, group.getName(), userRolesVo.getUid()); + } else { + groupMemberEntityService.addApplyNoticeToGroupRoot(gid, group.getName(), userRolesVo.getUid()); + } + } + } + + public void updateMember(GroupMember groupMemberDto) throws StatusFailException, StatusForbiddenException, StatusNotFoundException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long gid = groupMemberDto.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (group.getUid().equals(groupMemberDto.getUid())) { + throw new StatusNotFoundException("对不起,不允许操作团队的Owner权限!"); + } + + boolean isAgreedNewMember = false; + + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid) + .eq("uid", userRolesVo.getUid()) + .in("auth", 4, 5); + + GroupMember currentGroupMember = groupMemberEntityService.getOne(groupMemberQueryWrapper); + + if (!isRoot && currentGroupMember == null) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper changeGroupMemberQueryWrapper = new QueryWrapper<>(); + changeGroupMemberQueryWrapper.eq("gid", gid).eq("uid", groupMemberDto.getUid()); + + GroupMember changeGroupMember = groupMemberEntityService.getOne(changeGroupMemberQueryWrapper); + + if (changeGroupMember == null) { + throw new StatusNotFoundException("该用户不在团队中!"); + } + + if (!isRoot && (changeGroupMember.getAuth() >= currentGroupMember.getAuth() + || groupMemberDto.getAuth() >= currentGroupMember.getAuth())) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = groupMemberEntityService.updateById(groupMemberDto); + if (!isOk) { + throw new StatusFailException("更新失败,请重新尝试!"); + } else { + if (changeGroupMember.getAuth() <= 2) { // 之前是申请中,则之后通过审批就要发消息 + groupMemberEntityService.addWelcomeNoticeToGroupNewMember(gid, group.getName(), groupMemberDto.getUid()); + } + } + } + + public void deleteMember(String uid, Long gid) throws StatusFailException, StatusNotFoundException, StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (userRolesVo.getUid().equals(uid)) { + throw new StatusNotFoundException("对不起,您无法删除自己!"); + } + + if (group.getUid().equals(uid)) { + throw new StatusNotFoundException("对不起,不允许删除团队的Owner!"); + } + + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid) + .eq("uid", userRolesVo.getUid()) + .in("auth", 4, 5); + + GroupMember currentGroupMember = groupMemberEntityService.getOne(groupMemberQueryWrapper); + + if (currentGroupMember == null && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + + QueryWrapper changeGroupMemberQueryWrapper = new QueryWrapper<>(); + changeGroupMemberQueryWrapper.eq("gid", gid).eq("uid", uid); + + GroupMember changeGroupMember = groupMemberEntityService.getOne(changeGroupMemberQueryWrapper); + + if (changeGroupMember == null) { + throw new StatusNotFoundException("该用户不在团队中!"); + } + + if (!isRoot && currentGroupMember.getAuth() <= changeGroupMember.getAuth()) { + throw new StatusNotFoundException("对不起,您无权限操作!"); + } + + boolean isOk = groupMemberEntityService.remove(changeGroupMemberQueryWrapper); + if (!isOk) { + throw new StatusFailException("删除失败,请重新尝试!"); + } else { + groupMemberEntityService.addRemoveNoticeToGroupMember(gid, group.getName(), userRolesVo.getUsername(), uid); + } + } + + public void exitGroup(Long gid) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (userRolesVo.getUid().equals(group.getUid())) { + throw new StatusNotFoundException("对不起,作为该团队Owner,您只可以解散团队,不允许退出团队!"); + } + + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid) + .eq("uid", userRolesVo.getUid()); + + GroupMember currentGroupMember = groupMemberEntityService.getOne(groupMemberQueryWrapper); + + if (currentGroupMember == null || currentGroupMember.getAuth() == null || currentGroupMember.getAuth() <= 2) { + throw new StatusForbiddenException("对不起,您并未在当前团队,无法退出!"); + } + + boolean isOk = groupMemberEntityService.remove(groupMemberQueryWrapper); + if (!isOk) { + throw new StatusFailException("退出团队失败,请重新尝试!"); + } + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/problem/GroupProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/problem/GroupProblemManager.java new file mode 100644 index 0000000..593ff42 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/problem/GroupProblemManager.java @@ -0,0 +1,477 @@ +package top.hcode.hoj.manager.group.problem; + +import cn.hutool.core.io.FileUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.dao.group.GroupProblemEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.ProblemCaseEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.problem.TagEntityService; +import top.hcode.hoj.judge.Dispatcher; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.validator.GroupValidator; + +import java.io.File; +import java.util.LinkedList; +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +@RefreshScope +public class GroupProblemManager { + + @Autowired + private GroupProblemEntityService groupProblemEntityService; + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private ProblemCaseEntityService problemCaseEntityService; + + @Autowired + private GroupValidator groupValidator; + + @Autowired + private TagEntityService tagEntityService; + + @Autowired + private Dispatcher dispatcher; + + @Value("${hoj.judge.token}") + private String judgeToken; + + public IPage getProblemList(Integer limit, Integer currentPage, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupMember(userRolesVo.getUid(), gid) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + return groupProblemEntityService.getProblemList(limit, currentPage, gid); + } + + public IPage getAdminProblemList(Integer limit, Integer currentPage, Long gid) throws StatusNotFoundException, StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupAdmin(userRolesVo.getUid(), gid) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + return groupProblemEntityService.getAdminProblemList(limit, currentPage, gid); + } + + public Problem getProblem(Long pid) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Problem problem = problemEntityService.getById(pid); + + if (problem == null) { + throw new StatusNotFoundException("该题目不存在!"); + } + + Long gid = problem.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupRoot(userRolesVo.getUid(), gid) && !userRolesVo.getUsername().equals(problem.getAuthor()) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + return problem; + } + + public void addProblem(ProblemDto problemDto) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long gid = problemDto.getProblem().getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + problemDto.getProblem().setProblemId(group.getShortName() + problemDto.getProblem().getProblemId()); + + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("problem_id", problemDto.getProblem().getProblemId().toUpperCase()); + int sameProblemIDCount = problemEntityService.count(problemQueryWrapper); + if (sameProblemIDCount > 0) { + throw new StatusFailException("该题目的Problem ID已存在,请更换!"); + } + + problemDto.getProblem().setIsGroup(true); + + List tagList = new LinkedList<>(); + for (Tag tag : problemDto.getTags()) { + if (tag.getGid() != null && tag.getGid().longValue() != gid) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (tag.getId() == null) { + tag.setGid(gid); + } + + tagList.add(tag); + } + + problemDto.setTags(tagList); + + boolean isOk = problemEntityService.adminAddProblem(problemDto); + if (!isOk) { + throw new StatusFailException("添加失败"); + } + } + + public void updateProblem(ProblemDto problemDto) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long pid = problemDto.getProblem().getId(); + + Problem problem = problemEntityService.getById(pid); + + if (problem == null) { + throw new StatusNotFoundException("该题目不存在!"); + } + + Long gid = problem.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(problem.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + problemDto.getProblem().setProblemId(group.getShortName() + problemDto.getProblem().getProblemId()); + String problemId = problemDto.getProblem().getProblemId().toUpperCase(); + + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("problem_id", problemId); + + Problem existedProblem = problemEntityService.getOne(problemQueryWrapper); + + problemDto.getProblem().setModifiedUser(userRolesVo.getUsername()); + + if (existedProblem != null && existedProblem.getId().longValue() != pid) { + throw new StatusFailException("当前的Problem ID 已被使用,请重新更换新的!"); + } + + problemDto.getProblem().setIsGroup(problem.getIsGroup()); + + List tagList = new LinkedList<>(); + for (Tag tag : problemDto.getTags()) { + if (tag.getGid() != null && tag.getGid().longValue() != gid) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (tag.getId() == null) { + tag.setGid(gid); + } + + tagList.add(tag); + } + + problemDto.setTags(tagList); + + boolean isOk = problemEntityService.adminUpdateProblem(problemDto); + if (isOk) { + if (existedProblem == null) { + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.eq("pid", problemDto.getProblem().getId()) + .set("display_pid", problemId); + judgeEntityService.update(judgeUpdateWrapper); + } + } else { + throw new StatusFailException("修改失败"); + } + } + + public void deleteProblem(Long pid) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Problem problem = problemEntityService.getById(pid); + + if (problem == null) { + throw new StatusNotFoundException("该题目不存在!"); + } + + Long gid = problem.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!groupValidator.isGroupRoot(userRolesVo.getUid(), gid) && !userRolesVo.getUsername().equals(problem.getAuthor()) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = problemEntityService.removeById(pid); + if (isOk) { + FileUtil.del(Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + pid); + } else { + throw new StatusFailException("删除失败!"); + } + } + + public List getProblemCases(Long pid, Boolean isUpload) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Problem problem = problemEntityService.getById(pid); + + if (problem == null) { + throw new StatusNotFoundException("该题目不存在!"); + } + + Long gid = problem.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(problem.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper problemCaseQueryWrapper = new QueryWrapper<>(); + problemCaseQueryWrapper.eq("pid", pid).eq("status", 0); + if (isUpload) { + problemCaseQueryWrapper.last("order by length(input) asc,input asc"); + } + return problemCaseEntityService.list(problemCaseQueryWrapper); + } + + public List getAllProblemTagsList(Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + List tagList; + QueryWrapper tagQueryWrapper = new QueryWrapper<>(); + tagQueryWrapper.isNull("gid").or().eq("gid", gid); + tagList = tagEntityService.list(tagQueryWrapper); + + return tagList; + } + + public void compileSpj(CompileDTO compileDTO, Long gid) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (StringUtils.isEmpty(compileDTO.getCode()) || + StringUtils.isEmpty(compileDTO.getLanguage())) { + throw new StatusFailException("参数不能为空!"); + } + + compileDTO.setToken(judgeToken); + dispatcher.dispatcherJudge("compile", "/compile-spj", compileDTO); + } + + public void compileInteractive(CompileDTO compileDTO, Long gid) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (StringUtils.isEmpty(compileDTO.getCode()) || + StringUtils.isEmpty(compileDTO.getLanguage())) { + throw new StatusFailException("参数不能为空!"); + } + + compileDTO.setToken(judgeToken); + dispatcher.dispatcherJudge("compile", "/compile-interactive", compileDTO); + } + + public void changeProblemAuth(Long pid, Integer auth) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Problem problem = problemEntityService.getById(pid); + + if (problem == null) { + throw new StatusNotFoundException("该题目不存在!"); + } + + Long gid = problem.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(problem.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + UpdateWrapper problemUpdateWrapper = new UpdateWrapper<>(); + problemUpdateWrapper.eq("id", pid) + .set("auth", auth) + .set("modified_user", userRolesVo.getUsername()); + + boolean isOk = problemEntityService.update(problemUpdateWrapper); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + public void applyPublic(Long pid, Boolean isApplied) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Problem problem = problemEntityService.getById(pid); + + if (problem == null) { + throw new StatusNotFoundException("该题目不存在!"); + } + Long gid = problem.getGid(); + Group group = groupEntityService.getById(gid); + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + if (!userRolesVo.getUsername().equals(problem.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + UpdateWrapper problemUpdateWrapper = new UpdateWrapper<>(); + problemUpdateWrapper.eq("id", pid); + if (isApplied) { // 申请 + problemUpdateWrapper.set("apply_public_progress", 1); + } else { // 取消 + problemUpdateWrapper.set("apply_public_progress", null); + problemUpdateWrapper.set("is_group", true); + } + boolean isOk = problemEntityService.update(problemUpdateWrapper); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/training/GroupTrainingManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/training/GroupTrainingManager.java new file mode 100644 index 0000000..eb6d739 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/training/GroupTrainingManager.java @@ -0,0 +1,336 @@ +package top.hcode.hoj.manager.group.training; + +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.dao.group.GroupTrainingEntityService; +import top.hcode.hoj.dao.training.*; +import top.hcode.hoj.manager.admin.training.AdminTrainingRecordManager; +import top.hcode.hoj.pojo.dto.TrainingDto; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.entity.training.*; +import top.hcode.hoj.pojo.vo.TrainingVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Objects; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupTrainingManager { + + @Autowired + private GroupTrainingEntityService groupTrainingEntityService; + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private TrainingEntityService trainingEntityService; + + @Autowired + private TrainingCategoryEntityService trainingCategoryEntityService; + + @Autowired + private MappingTrainingCategoryEntityService mappingTrainingCategoryEntityService; + + @Autowired + private TrainingRegisterEntityService trainingRegisterEntityService; + + @Autowired + private AdminTrainingRecordManager adminTrainingRecordManager; + + @Autowired + private GroupValidator groupValidator; + + public IPage getTrainingList(Integer limit, Integer currentPage, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + return groupTrainingEntityService.getTrainingList(limit, currentPage, gid); + } + + public IPage getAdminTrainingList(Integer limit, Integer currentPage, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + return groupTrainingEntityService.getAdminTrainingList(limit, currentPage, gid); + } + + public TrainingDto getTraining(Long tid) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Training training = trainingEntityService.getById(tid); + + if (training == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = training.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(training.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + TrainingDto trainingDto = new TrainingDto(); + trainingDto.setTraining(training); + + QueryWrapper mappingTrainingCategoryQueryWrapper = new QueryWrapper<>(); + mappingTrainingCategoryQueryWrapper.eq("tid", tid); + + MappingTrainingCategory mappingTrainingCategory = mappingTrainingCategoryEntityService.getOne(mappingTrainingCategoryQueryWrapper); + TrainingCategory trainingCategory = null; + + if (mappingTrainingCategory != null) { + trainingCategory = trainingCategoryEntityService.getById(mappingTrainingCategory.getCid()); + } + trainingDto.setTrainingCategory(trainingCategory); + return trainingDto; + } + + @Transactional(rollbackFor = Exception.class) + public void addTraining(TrainingDto trainingDto) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long gid = trainingDto.getTraining().getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!isRoot && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + trainingDto.getTraining().setIsGroup(true); + + Training training = trainingDto.getTraining(); + trainingEntityService.save(training); + TrainingCategory trainingCategory = trainingDto.getTrainingCategory(); + + if (trainingCategory.getGid() != null && trainingCategory.getGid() != gid) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (trainingCategory.getId() == null) { + try { + trainingCategory.setGid(gid); + trainingCategoryEntityService.save(trainingCategory); + } catch (Exception ignored) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("name", trainingCategory.getName()); + trainingCategory = trainingCategoryEntityService.getOne(queryWrapper, false); + } + } + + boolean isOk = mappingTrainingCategoryEntityService.save(new MappingTrainingCategory() + .setTid(training.getId()) + .setCid(trainingCategory.getId())); + if (!isOk) { + throw new StatusFailException("添加失败!"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void updateTraining(TrainingDto trainingDto) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long tid = trainingDto.getTraining().getId(); + + Training training = trainingEntityService.getById(tid); + + if (training == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = training.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(training.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + trainingDto.getTraining().setIsGroup(training.getIsGroup()); + + trainingEntityService.updateById(trainingDto.getTraining()); + + if (trainingDto.getTraining().getAuth().equals(Constants.Training.AUTH_PRIVATE.getValue())) { + if (!Objects.equals(training.getPrivatePwd(), trainingDto.getTraining().getPrivatePwd())) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("tid", tid); + trainingRegisterEntityService.remove(updateWrapper); + } + } + + TrainingCategory trainingCategory = trainingDto.getTrainingCategory(); + + if (trainingCategory.getGid() != null && trainingCategory.getGid().longValue() != gid) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (trainingCategory.getId() == null) { + try { + trainingCategory.setGid(gid); + trainingCategoryEntityService.save(trainingCategory); + } catch (Exception ignored) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("name", trainingCategory.getName()); + trainingCategory = trainingCategoryEntityService.getOne(queryWrapper, false); + } + } + + MappingTrainingCategory mappingTrainingCategory = mappingTrainingCategoryEntityService + .getOne(new QueryWrapper().eq("tid", training.getId()), + false); + + if (mappingTrainingCategory == null) { + mappingTrainingCategoryEntityService.save(new MappingTrainingCategory() + .setTid(training.getId()).setCid(trainingCategory.getId())); + adminTrainingRecordManager.checkSyncRecord(trainingDto.getTraining()); + } else { + if (!mappingTrainingCategory.getCid().equals(trainingCategory.getId())) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("tid", training.getId()).set("cid", trainingCategory.getId()); + boolean isOk = mappingTrainingCategoryEntityService.update(null, updateWrapper); + if (isOk) { + adminTrainingRecordManager.checkSyncRecord(trainingDto.getTraining()); + } else { + throw new StatusFailException("修改失败"); + } + } + } + } + + public void deleteTraining(Long tid) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Training training = trainingEntityService.getById(tid); + + if (training == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = training.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(training.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = trainingEntityService.removeById(tid); + if (!isOk) { + throw new StatusFailException("删除失败!"); + } + } + + public void changeTrainingStatus(Long tid, Boolean status) throws StatusForbiddenException, StatusNotFoundException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Training training = trainingEntityService.getById(tid); + + if (training == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = training.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(training.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + UpdateWrapper trainingUpdateWrapper = new UpdateWrapper<>(); + trainingUpdateWrapper.eq("id", tid).set("status", status); + + boolean isOk = trainingEntityService.update(trainingUpdateWrapper); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/training/GroupTrainingProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/training/GroupTrainingProblemManager.java new file mode 100644 index 0000000..9fd1bde --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/group/training/GroupTrainingProblemManager.java @@ -0,0 +1,277 @@ +package top.hcode.hoj.manager.group.training; + +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.training.*; +import top.hcode.hoj.manager.admin.training.AdminTrainingProblemManager; +import top.hcode.hoj.manager.admin.training.AdminTrainingRecordManager; +import top.hcode.hoj.pojo.dto.TrainingProblemDto; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.training.*; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.HashMap; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupTrainingProblemManager { + + @Autowired + private GroupEntityService groupEntityService; + + @Autowired + private TrainingEntityService trainingEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private AdminTrainingProblemManager adminTrainingProblemManager; + + @Autowired + private TrainingProblemEntityService trainingProblemEntityService; + + @Autowired + private AdminTrainingRecordManager adminTrainingRecordManager; + + @Autowired + private GroupValidator groupValidator; + + public HashMap getTrainingProblemList(Integer limit, Integer currentPage, String keyword, Boolean queryExisted, Long tid) throws StatusNotFoundException, StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Training training = trainingEntityService.getById(tid); + + if (training == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = training.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(training.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + return adminTrainingProblemManager.getProblemList(limit, currentPage, keyword, queryExisted, tid); + } + + public void updateTrainingProblem(TrainingProblem trainingProblem) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Training training = trainingEntityService.getById(trainingProblem.getTid()); + + if (training == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = training.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(training.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = trainingProblemEntityService.updateById(trainingProblem); + if (!isOk) { + throw new StatusFailException("修改失败!"); + } + } + + public void deleteTrainingProblem(Long pid, Long tid) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Training training = trainingEntityService.getById(tid); + + if (training == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = training.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(training.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper trainingProblemQueryWrapper = new QueryWrapper<>(); + trainingProblemQueryWrapper.eq("tid", tid).eq("pid", pid); + + boolean isOk = trainingProblemEntityService.remove(trainingProblemQueryWrapper); + if (!isOk) { + throw new StatusFailException("删除失败!"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void addProblemFromPublic(TrainingProblemDto trainingProblemDto) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Long pid = trainingProblemDto.getPid(); + + Problem problem = problemEntityService.getById(pid); + + if (problem == null || problem.getAuth() != 1 || problem.getIsGroup()) { + throw new StatusNotFoundException("该题目不存在或已被隐藏!"); + } + + Long tid = trainingProblemDto.getTid(); + + Training training = trainingEntityService.getById(tid); + + if (training == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = training.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(training.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + String displayId = trainingProblemDto.getDisplayId(); + + QueryWrapper trainingProblemQueryWrapper = new QueryWrapper<>(); + trainingProblemQueryWrapper.eq("tid", tid) + .and(wrapper -> wrapper.eq("pid", pid) + .or() + .eq("display_id", displayId)); + TrainingProblem trainingProblem = trainingProblemEntityService.getOne(trainingProblemQueryWrapper); + if (trainingProblem != null) { + throw new StatusFailException("添加失败,该题目已添加或者题目的训练展示ID已存在!"); + } + + TrainingProblem newTProblem = new TrainingProblem(); + + boolean isOk = trainingProblemEntityService.saveOrUpdate(newTProblem + .setTid(tid).setPid(pid).setDisplayId(displayId)); + if (isOk) { // 添加成功 + + // 更新训练最近更新时间 + UpdateWrapper trainingUpdateWrapper = new UpdateWrapper<>(); + trainingUpdateWrapper.set("gmt_modified", new Date()) + .eq("id", tid); + trainingEntityService.update(trainingUpdateWrapper); + + adminTrainingRecordManager.syncAlreadyRegisterUserRecord(tid, pid, newTProblem.getId()); + } else { + throw new StatusFailException("添加失败!"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void addProblemFromGroup(String problemId, Long tid) throws StatusNotFoundException, StatusForbiddenException, StatusFailException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Training training = trainingEntityService.getById(tid); + + if (training == null) { + throw new StatusNotFoundException("该训练不存在!"); + } + + Long gid = training.getGid(); + + Group group = groupEntityService.getById(gid); + + if (group == null || group.getStatus() == 1 && !isRoot) { + throw new StatusNotFoundException("该团队不存在或已被封禁!"); + } + + if (!userRolesVo.getUsername().equals(training.getAuthor()) && !isRoot + && !groupValidator.isGroupRoot(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("problem_id", problemId).eq("gid", gid); + + Problem problem = problemEntityService.getOne(problemQueryWrapper); + + if (problem == null) { + throw new StatusNotFoundException("该题目不存在或不是团队题目!"); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("tid", tid) + .and(wrapper -> wrapper.eq("pid", problem.getId()) + .or() + .eq("display_id", problem.getProblemId())); + + TrainingProblem trainingProblem = trainingProblemEntityService.getOne(queryWrapper); + + if (trainingProblem != null) { + throw new StatusFailException("添加失败,该题目已添加或者题目的训练展示ID已存在!"); + } + + TrainingProblem newTProblem = new TrainingProblem(); + boolean isOk = trainingProblemEntityService.save(newTProblem + .setTid(tid).setPid(problem.getId()).setDisplayId(problem.getProblemId())); + if (isOk) { + UpdateWrapper trainingUpdateWrapper = new UpdateWrapper<>(); + trainingUpdateWrapper.set("gmt_modified", new Date()) + .eq("id", tid); + trainingEntityService.update(trainingUpdateWrapper); + adminTrainingRecordManager.syncAlreadyRegisterUserRecord(tid, problem.getId(), newTProblem.getId()); + } else { + throw new StatusFailException("添加失败!"); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/AdminNoticeManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/AdminNoticeManager.java new file mode 100644 index 0000000..774613c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/AdminNoticeManager.java @@ -0,0 +1,142 @@ +package top.hcode.hoj.manager.msg; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.entity.msg.UserSysNotice; +import top.hcode.hoj.pojo.vo.AdminSysNoticeVo; +import top.hcode.hoj.dao.msg.AdminSysNoticeEntityService; +import top.hcode.hoj.dao.msg.UserSysNoticeEntityService; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 21:19 + * @Description: + */ + +@Component +public class AdminNoticeManager { + + @Resource + private AdminSysNoticeEntityService adminSysNoticeEntityService; + + @Resource + private UserSysNoticeEntityService userSysNoticeEntityService; + + + public IPage getSysNotice(Integer limit, Integer currentPage, String type) { + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 5; + + return adminSysNoticeEntityService.getSysNotice(limit, currentPage, type); + } + + public void addSysNotice(AdminSysNotice adminSysNotice) throws StatusFailException { + + boolean isOk = adminSysNoticeEntityService.saveOrUpdate(adminSysNotice); + if (!isOk) { + throw new StatusFailException("发布失败"); + } + } + + public void deleteSysNotice(Long id) throws StatusFailException { + + boolean isOk = adminSysNoticeEntityService.removeById(id); + if (!isOk) { + throw new StatusFailException("删除失败"); + } + } + + public void updateSysNotice(AdminSysNotice adminSysNotice) throws StatusFailException { + boolean isOk = adminSysNoticeEntityService.saveOrUpdate(adminSysNotice); + if (!isOk) { + throw new StatusFailException("更新失败"); + } + } + + @Async + public void syncNoticeToNewRegisterBatchUser(List uidList) { + QueryWrapper adminSysNoticeQueryWrapper = new QueryWrapper<>(); + adminSysNoticeQueryWrapper + .eq("type", "All") + .le("gmt_create", new Date()) + .eq("state", true); + List adminSysNotices = adminSysNoticeEntityService.list(adminSysNoticeQueryWrapper); + if (adminSysNotices.size() == 0) { + return; + } + List userSysNoticeList = new ArrayList<>(); + for (String uid : uidList) { + for (AdminSysNotice adminSysNotice : adminSysNotices) { + UserSysNotice userSysNotice = new UserSysNotice(); + userSysNotice.setType("Sys") + .setSysNoticeId(adminSysNotice.getId()) + .setRecipientId(uid); + userSysNoticeList.add(userSysNotice); + } + } + userSysNoticeEntityService.saveOrUpdateBatch(userSysNoticeList); + } + + @Transactional(rollbackFor = Exception.class) + @Async + public void addSingleNoticeToUser(String adminId, String recipientId, String title, String content, String type) { + AdminSysNotice adminSysNotice = new AdminSysNotice(); + adminSysNotice.setAdminId(adminId) + .setType("Single") + .setTitle(title) + .setContent(content) + .setState(true) + .setRecipientId(recipientId); + boolean isOk = adminSysNoticeEntityService.save(adminSysNotice); + if (isOk) { + UserSysNotice userSysNotice = new UserSysNotice(); + userSysNotice.setRecipientId(recipientId) + .setSysNoticeId(adminSysNotice.getId()) + .setType(type); + userSysNoticeEntityService.save(userSysNotice); + } + } + + @Transactional(rollbackFor = Exception.class) + @Async + public void addSingleNoticeToBatchUser(String adminId, + List recipientIdList, + String title, + String content, + String type) { + if (CollectionUtils.isEmpty(recipientIdList)) { + return; + } + AdminSysNotice adminSysNotice = new AdminSysNotice(); + adminSysNotice.setAdminId(adminId) + .setType("Single") + .setTitle(title) + .setContent(content) + .setState(true); + boolean isOk = adminSysNoticeEntityService.save(adminSysNotice); + if (isOk) { + List userSysNoticeList = new ArrayList<>(); + for (String recipientId : recipientIdList) { + UserSysNotice userSysNotice = new UserSysNotice(); + userSysNotice.setRecipientId(recipientId) + .setSysNoticeId(adminSysNotice.getId()) + .setType(type); + userSysNoticeList.add(userSysNotice); + } + userSysNoticeEntityService.saveBatch(userSysNoticeList); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/NoticeManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/NoticeManager.java new file mode 100644 index 0000000..9e98bd5 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/NoticeManager.java @@ -0,0 +1,108 @@ +package top.hcode.hoj.manager.msg; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.context.ApplicationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.entity.msg.UserSysNotice; +import top.hcode.hoj.pojo.vo.SysMsgVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.msg.AdminSysNoticeEntityService; +import top.hcode.hoj.dao.msg.UserSysNoticeEntityService; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 11:37 + * @Description: + */ +@Component +public class NoticeManager { + + @Resource + private UserSysNoticeEntityService userSysNoticeEntityService; + + @Resource + private AdminSysNoticeEntityService adminSysNoticeEntityService; + + @Resource + private ApplicationContext applicationContext; + + public IPage getSysNotice(Integer limit,Integer currentPage) { + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 5; + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + IPage sysNotice = userSysNoticeEntityService.getSysNotice(limit, currentPage, userRolesVo.getUid()); + applicationContext.getBean(NoticeManager.class).updateSysOrMineMsgRead(sysNotice); + return sysNotice; + } + + + + public IPage getMineNotice(Integer limit, Integer currentPage) { + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 5; + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + IPage mineNotice = userSysNoticeEntityService.getMineNotice(limit, currentPage, userRolesVo.getUid()); + applicationContext.getBean(NoticeManager.class).updateSysOrMineMsgRead(mineNotice); + return mineNotice; + } + + + @Async + public void updateSysOrMineMsgRead(IPage userMsgList) { + List idList = userMsgList.getRecords().stream() + .filter(userMsgVo -> !userMsgVo.getState()) + .map(SysMsgVo::getId) + .collect(Collectors.toList()); + if (idList.size() == 0) { + return; + } + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("id", idList) + .set("state", true); + userSysNoticeEntityService.update(null, updateWrapper); + } + + @Async + public void syncNoticeToNewRegisterUser(String uid) { + QueryWrapper adminSysNoticeQueryWrapper = new QueryWrapper<>(); + adminSysNoticeQueryWrapper + .eq("type", "All") + .le("gmt_create", new Date()) + .eq("state", true); + List adminSysNotices = adminSysNoticeEntityService.list(adminSysNoticeQueryWrapper); + if (adminSysNotices.size() == 0) { + return; + } + List userSysNoticeList = new ArrayList<>(); + for (AdminSysNotice adminSysNotice : adminSysNotices) { + UserSysNotice userSysNotice = new UserSysNotice(); + userSysNotice.setType("Sys") + .setSysNoticeId(adminSysNotice.getId()) + .setRecipientId(uid); + userSysNoticeList.add(userSysNotice); + } + userSysNoticeEntityService.saveOrUpdateBatch(userSysNoticeList); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/UserMessageManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/UserMessageManager.java new file mode 100644 index 0000000..66cee93 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/msg/UserMessageManager.java @@ -0,0 +1,288 @@ +package top.hcode.hoj.manager.msg; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.context.ApplicationContext; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.discussion.Comment; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.Reply; +import top.hcode.hoj.pojo.entity.msg.MsgRemind; +import top.hcode.hoj.pojo.entity.msg.UserSysNotice; +import top.hcode.hoj.pojo.vo.UserMsgVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.pojo.vo.UserUnreadMsgCountVo; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.discussion.CommentEntityService; +import top.hcode.hoj.dao.discussion.DiscussionEntityService; +import top.hcode.hoj.dao.discussion.ReplyEntityService; +import top.hcode.hoj.dao.msg.MsgRemindEntityService; +import top.hcode.hoj.dao.msg.UserSysNoticeEntityService; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 10:36 + * @Description: + */ +@Component +public class UserMessageManager { + + @Resource + private MsgRemindEntityService msgRemindEntityService; + + @Resource + private ContestEntityService contestEntityService; + + @Resource + private ApplicationContext applicationContext; + + @Resource + private DiscussionEntityService discussionEntityService; + + @Resource + private CommentEntityService commentEntityService; + + @Resource + private ReplyEntityService replyEntityService; + + @Resource + private UserSysNoticeEntityService userSysNoticeEntityService; + + public UserUnreadMsgCountVo getUnreadMsgCount() { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + UserUnreadMsgCountVo userUnreadMsgCount = msgRemindEntityService.getUserUnreadMsgCount(userRolesVo.getUid()); + if (userUnreadMsgCount == null) { + userUnreadMsgCount = new UserUnreadMsgCountVo(0, 0, 0, 0, 0); + } + return userUnreadMsgCount; + } + + + public void cleanMsg( String type, Long id) throws StatusFailException { + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + boolean isOk = cleanMsgByType(type, id, userRolesVo.getUid()); + if (!isOk) { + throw new StatusFailException("清空失败"); + } + } + + + public IPage getCommentMsg(Integer limit, Integer currentPage) { + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 5; + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + return getUserMsgList(userRolesVo.getUid(), "Discuss", limit, currentPage); + } + + + public IPage getReplyMsg(Integer limit, Integer currentPage) { + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 5; + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + return getUserMsgList(userRolesVo.getUid(), "Reply", limit, currentPage); + } + + + public IPage getLikeMsg(Integer limit, Integer currentPage) { + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 5; + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + return getUserMsgList(userRolesVo.getUid(), "Like", limit, currentPage); + } + + + private boolean cleanMsgByType(String type, Long id, String uid) { + + switch (type) { + case "Like": + case "Discuss": + case "Reply": + UpdateWrapper updateWrapper1 = new UpdateWrapper<>(); + updateWrapper1 + .eq(id != null, "id", id) + .eq("recipient_id", uid); + return msgRemindEntityService.remove(updateWrapper1); + case "Sys": + case "Mine": + UpdateWrapper updateWrapper2 = new UpdateWrapper<>(); + updateWrapper2 + .eq(id != null, "id", id) + .eq("recipient_id", uid); + return userSysNoticeEntityService.remove(updateWrapper2); + } + return false; + } + + + private IPage getUserMsgList(String uid, String action, int limit, int currentPage) { + Page page = new Page<>(currentPage, limit); + IPage userMsgList = msgRemindEntityService.getUserMsg(page, uid, action); + if (userMsgList.getTotal() > 0) { + switch (action) { + case "Discuss": // 评论我的 + return getUserDiscussMsgList(userMsgList); + case "Reply": // 回复我的 + return getUserReplyMsgList(userMsgList); + case "Like": + return getUserLikeMsgList(userMsgList); + default: + throw new RuntimeException("invalid action:" + action); + } + } else { + return userMsgList; + } + } + + + private IPage getUserDiscussMsgList(IPage userMsgList) { + + List discussionIds = userMsgList.getRecords() + .stream() + .map(UserMsgVo::getSourceId) + .collect(Collectors.toList()); + Collection discussions = discussionEntityService.listByIds(discussionIds); + for (Discussion discussion : discussions) { + for (UserMsgVo userMsgVo : userMsgList.getRecords()) { + if (Objects.equals(discussion.getId(), userMsgVo.getSourceId())) { + userMsgVo.setSourceTitle(discussion.getTitle()); + break; + } + } + } + applicationContext.getBean(UserMessageManager.class).updateUserMsgRead(userMsgList); + return userMsgList; + } + + private IPage getUserReplyMsgList(IPage userMsgList) { + + for (UserMsgVo userMsgVo : userMsgList.getRecords()) { + if ("Discussion".equals(userMsgVo.getSourceType())) { + Discussion discussion = discussionEntityService.getById(userMsgVo.getSourceId()); + if (discussion != null) { + userMsgVo.setSourceTitle(discussion.getTitle()); + } else { + userMsgVo.setSourceTitle("原讨论帖已被删除!【The original discussion post has been deleted!】"); + } + } else if ("Contest".equals(userMsgVo.getSourceType())) { + Contest contest = contestEntityService.getById(userMsgVo.getSourceId()); + if (contest != null) { + userMsgVo.setSourceTitle(contest.getTitle()); + } else { + userMsgVo.setSourceTitle("原比赛已被删除!【The original contest has been deleted!】"); + } + } + + if ("Comment".equals(userMsgVo.getQuoteType())) { + Comment comment = commentEntityService.getById(userMsgVo.getQuoteId()); + if (comment != null) { + String content; + if (comment.getContent().length() < 100) { + content = comment.getFromName() + " : " + + comment.getContent(); + + } else { + content = comment.getFromName() + " : " + + comment.getContent().substring(0, 100) + "..."; + } + userMsgVo.setQuoteContent(content); + } else { + userMsgVo.setQuoteContent("您的原评论信息已被删除!【Your original comments have been deleted!】"); + } + + } else if ("Reply".equals(userMsgVo.getQuoteType())) { + Reply reply = replyEntityService.getById(userMsgVo.getQuoteId()); + if (reply != null) { + String content; + if (reply.getContent().length() < 100) { + content = reply.getFromName() + " : @" + reply.getToName() + ":" + + reply.getContent(); + + } else { + content = reply.getFromName() + " : @" + reply.getToName() + ":" + + reply.getContent().substring(0, 100) + "..."; + } + userMsgVo.setQuoteContent(content); + } else { + userMsgVo.setQuoteContent("您的原回复信息已被删除!【Your original reply has been deleted!】"); + } + } + + } + + applicationContext.getBean(UserMessageManager.class).updateUserMsgRead(userMsgList); + return userMsgList; + } + + private IPage getUserLikeMsgList(IPage userMsgList) { + for (UserMsgVo userMsgVo : userMsgList.getRecords()) { + if ("Discussion".equals(userMsgVo.getSourceType())) { + Discussion discussion = discussionEntityService.getById(userMsgVo.getSourceId()); + if (discussion != null) { + userMsgVo.setSourceTitle(discussion.getTitle()); + } else { + userMsgVo.setSourceTitle("原讨论帖已被删除!【The original discussion post has been deleted!】"); + } + } else if ("Contest".equals(userMsgVo.getSourceType())) { + Contest contest = contestEntityService.getById(userMsgVo.getSourceId()); + if (contest != null) { + userMsgVo.setSourceTitle(contest.getTitle()); + } else { + userMsgVo.setSourceTitle("原比赛已被删除!【The original contest has been deleted!】"); + } + } + } + applicationContext.getBean(UserMessageManager.class).updateUserMsgRead(userMsgList); + return userMsgList; + } + + + @Async + public void updateUserMsgRead(IPage userMsgList) { + List idList = userMsgList.getRecords().stream() + .filter(userMsgVo -> !userMsgVo.getState()) + .map(UserMsgVo::getId) + .collect(Collectors.toList()); + if (idList.size() == 0) { + return; + } + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("id", idList) + .set("state", true); + msgRemindEntityService.update(null, updateWrapper); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/AccountManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/AccountManager.java new file mode 100644 index 0000000..fb71aa7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/AccountManager.java @@ -0,0 +1,415 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Validator; +import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.pojo.dto.ChangeEmailDto; +import top.hcode.hoj.pojo.dto.ChangePasswordDto; +import top.hcode.hoj.pojo.dto.CheckUsernameOrEmailDto; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.user.*; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.user.*; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 16:53 + * @Description: + */ +@Component +public class AccountManager { + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private UserRoleEntityService userRoleEntityService; + + @Autowired + private UserRecordEntityService userRecordEntityService; + + @Autowired + private UserAcproblemEntityService userAcproblemEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private SessionEntityService sessionEntityService; + + + /** + * @MethodName checkUsernameOrEmail + * @Params * @param null + * @Description 检验用户名和邮箱是否存在 + * @Return + * @Since 2020/11/5 + */ + public CheckUsernameOrEmailVo checkUsernameOrEmail(CheckUsernameOrEmailDto checkUsernameOrEmailDto) { + + String email = checkUsernameOrEmailDto.getEmail(); + + String username = checkUsernameOrEmailDto.getUsername(); + + boolean rightEmail = false; + + boolean rightUsername = false; + + if (!StringUtils.isEmpty(email)) { + email = email.trim(); + boolean isEmail = Validator.isEmail(email); + if (!isEmail) { + rightEmail = false; + } else { + QueryWrapper wrapper = new QueryWrapper().eq("email", email); + UserInfo user = userInfoEntityService.getOne(wrapper, false); + if (user != null) { + rightEmail = true; + } else { + rightEmail = false; + } + } + } + + if (!StringUtils.isEmpty(username)) { + username = username.trim(); + QueryWrapper wrapper = new QueryWrapper().eq("username", username); + UserInfo user = userInfoEntityService.getOne(wrapper, false); + if (user != null) { + rightUsername = true; + } else { + rightUsername = false; + } + } + + CheckUsernameOrEmailVo checkUsernameOrEmailVo = new CheckUsernameOrEmailVo(); + checkUsernameOrEmailVo.setEmail(rightEmail); + checkUsernameOrEmailVo.setUsername(rightUsername); + return checkUsernameOrEmailVo; + } + + /** + * @param uid + * @MethodName getUserHomeInfo + * @Description 前端userHome用户个人主页的数据请求,主要是返回解决题目数,AC的题目列表,提交总数,AC总数,Rating分, + * @Since 2021/01/07 + */ + public UserHomeVo getUserHomeInfo(String uid, String username) throws StatusFailException { + + org.apache.shiro.session.Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 如果没有uid和username,默认查询当前登录用户的 + if (StringUtils.isEmpty(uid) && StringUtils.isEmpty(username)) { + if (userRolesVo != null) { + uid = userRolesVo.getUid(); + } else { + throw new StatusFailException("请求参数错误:uid和username不能都为空!"); + } + } + + UserHomeVo userHomeInfo = userRecordEntityService.getUserHomeInfo(uid, username); + if (userHomeInfo == null) { + throw new StatusFailException("用户不存在"); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("uid", userHomeInfo.getUid()) + .select("distinct pid", "submit_id") + .orderByAsc("submit_id"); + List pidList = new LinkedList<>(); + List acProblemList = userAcproblemEntityService.list(queryWrapper); + acProblemList.forEach(acProblem -> { + pidList.add(acProblem.getPid()); + }); + + List disPlayIdList = new LinkedList<>(); + + if (pidList.size() > 0) { + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.in("id", pidList); + List problems = problemEntityService.list(problemQueryWrapper); + problems.forEach(problem -> { + disPlayIdList.add(problem.getProblemId()); + }); + } + + userHomeInfo.setSolvedList(disPlayIdList); + QueryWrapper sessionQueryWrapper = new QueryWrapper<>(); + sessionQueryWrapper.eq("uid", userHomeInfo.getUid()) + .orderByDesc("gmt_create") + .last("limit 1"); + + Session recentSession = sessionEntityService.getOne(sessionQueryWrapper, false); + if (recentSession != null) { + userHomeInfo.setRecentLoginTime(recentSession.getGmtCreate()); + } + return userHomeInfo; + } + + /** + * @param uid + * @param username + * @return + * @Description 获取用户最近一年的提交热力图数据 + */ + public UserCalendarHeatmapVo getUserCalendarHeatmap(String uid, String username) throws StatusFailException { + org.apache.shiro.session.Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + if (StringUtils.isEmpty(uid) && StringUtils.isEmpty(username)) { + if (userRolesVo != null) { + uid = userRolesVo.getUid(); + } else { + throw new StatusFailException("请求参数错误:uid和username不能都为空!"); + } + } + UserCalendarHeatmapVo userCalendarHeatmapVo = new UserCalendarHeatmapVo(); + userCalendarHeatmapVo.setEndDate(DateUtil.format(new Date(), "yyyy-MM-dd")); + List lastYearUserJudgeList = userRecordEntityService.getLastYearUserJudgeList(uid, username); + if (CollectionUtils.isEmpty(lastYearUserJudgeList)) { + userCalendarHeatmapVo.setDataList(new ArrayList<>()); + return userCalendarHeatmapVo; + } + HashMap tmpRecordMap = new HashMap<>(); + for (Judge judge : lastYearUserJudgeList) { + Date submitTime = judge.getSubmitTime(); + String dateStr = DateUtil.format(submitTime, "yyyy-MM-dd"); + tmpRecordMap.merge(dateStr, 1, Integer::sum); + } + List> dataList = new ArrayList<>(); + for (Map.Entry record : tmpRecordMap.entrySet()) { + HashMap tmp = new HashMap<>(2); + tmp.put("date", record.getKey()); + tmp.put("count", record.getValue()); + dataList.add(tmp); + } + userCalendarHeatmapVo.setDataList(dataList); + return userCalendarHeatmapVo; + } + + + /** + * @MethodName changePassword + * @Description 修改密码的操作,连续半小时内修改密码错误5次,则需要半个小时后才可以再次尝试修改密码 + * @Return + * @Since 2021/1/8 + */ + public ChangeAccountVo changePassword(ChangePasswordDto changePasswordDto) throws StatusSystemErrorException, StatusFailException { + String oldPassword = changePasswordDto.getOldPassword(); + String newPassword = changePasswordDto.getNewPassword(); + + // 数据可用性判断 + if (StringUtils.isEmpty(oldPassword) || StringUtils.isEmpty(newPassword)) { + throw new StatusFailException("错误:原始密码或新密码不能为空!"); + } + if (newPassword.length() < 6 || newPassword.length() > 20) { + throw new StatusFailException("新密码长度应该为6~20位!"); + } + // 获取当前登录的用户 + org.apache.shiro.session.Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 如果已经被锁定半小时不能修改 + String lockKey = Constants.Account.CODE_CHANGE_PASSWORD_LOCK + userRolesVo.getUid(); + // 统计失败的key + String countKey = Constants.Account.CODE_CHANGE_PASSWORD_FAIL + userRolesVo.getUid(); + + ChangeAccountVo resp = new ChangeAccountVo(); + if (redisUtils.hasKey(lockKey)) { + long expire = redisUtils.getExpire(lockKey); + Date now = new Date(); + long minute = expire / 60; + long second = expire % 60; + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + resp.setCode(403); + Date afterDate = new Date(now.getTime() + expire * 1000); + String msg = "由于您多次修改密码失败,修改密码功能已锁定,请在" + minute + "分" + second + "秒后(" + formatter.format(afterDate) + ")再进行尝试!"; + resp.setMsg(msg); + return resp; + } + // 与当前登录用户的密码进行比较判断 + if (userRolesVo.getPassword().equals(SecureUtil.md5(oldPassword))) { // 如果相同,则进行修改密码操作 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("password", SecureUtil.md5(newPassword))// 数据库用户密码全部用md5加密 + .eq("uuid", userRolesVo.getUid()); + boolean isOk = userInfoEntityService.update(updateWrapper); + if (isOk) { + resp.setCode(200); + resp.setMsg("修改密码成功!您将于5秒钟后退出进行重新登录操作!"); + // 清空记录 + redisUtils.del(countKey); + // 更新session + userRolesVo.setPassword(SecureUtil.md5(newPassword)); + session.setAttribute("userInfo", userRolesVo); + return resp; + } else { + throw new StatusSystemErrorException("系统错误:修改密码失败!"); + } + } else { // 如果不同,则进行记录,当失败次数达到5次,半个小时后才可重试 + Integer count = (Integer) redisUtils.get(countKey); + if (count == null) { + redisUtils.set(countKey, 1, 60 * 30); // 三十分钟不尝试,该限制会自动清空消失 + count = 0; + } else if (count < 5) { + redisUtils.incr(countKey, 1); + } + count++; + if (count == 5) { + redisUtils.del(countKey); // 清空统计 + redisUtils.set(lockKey, "lock", 60 * 30); // 设置锁定更改 + } + resp.setCode(400); + resp.setMsg("原始密码错误!您已累计修改密码失败" + count + "次..."); + return resp; + } + } + + /** + * @MethodName changeEmail + * @Description 修改邮箱的操作,连续半小时内密码错误5次,则需要半个小时后才可以再次尝试修改 + * @Return + * @Since 2021/1/9 + */ + public ChangeAccountVo changeEmail(ChangeEmailDto changeEmailDto) throws StatusSystemErrorException, StatusFailException { + + String password = changeEmailDto.getPassword(); + String newEmail = changeEmailDto.getNewEmail(); + // 数据可用性判断 + if (StringUtils.isEmpty(password) || StringUtils.isEmpty(newEmail)) { + throw new StatusFailException("错误:密码或新邮箱不能为空!"); + } + if (!Validator.isEmail(newEmail)) { + throw new StatusFailException("邮箱格式错误!"); + } + // 获取当前登录的用户 + org.apache.shiro.session.Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 如果已经被锁定半小时不能修改 + String lockKey = Constants.Account.CODE_CHANGE_EMAIL_LOCK + userRolesVo.getUid(); + // 统计失败的key + String countKey = Constants.Account.CODE_CHANGE_EMAIL_FAIL + userRolesVo.getUid(); + + ChangeAccountVo resp = new ChangeAccountVo(); + if (redisUtils.hasKey(lockKey)) { + long expire = redisUtils.getExpire(lockKey); + Date now = new Date(); + long minute = expire / 60; + long second = expire % 60; + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + resp.setCode(403); + Date afterDate = new Date(now.getTime() + expire * 1000); + String msg = "由于您多次修改邮箱失败,修改邮箱功能已锁定,请在" + minute + "分" + second + "秒后(" + formatter.format(afterDate) + ")再进行尝试!"; + resp.setMsg(msg); + return resp; + } + // 与当前登录用户的密码进行比较判断 + if (userRolesVo.getPassword().equals(SecureUtil.md5(password))) { // 如果相同,则进行修改操作 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("email", newEmail) + .eq("uuid", userRolesVo.getUid()); + + boolean isOk = userInfoEntityService.update(updateWrapper); + if (isOk) { + + UserInfoVo userInfoVo = new UserInfoVo(); + BeanUtil.copyProperties(userRolesVo, userInfoVo, "roles"); + userInfoVo.setRoleList(userRolesVo.getRoles().stream().map(Role::getRole).collect(Collectors.toList())); + + resp.setCode(200); + resp.setMsg("修改邮箱成功!"); + resp.setUserInfo(userInfoVo); + // 清空记录 + redisUtils.del(countKey); + // 更新session + userRolesVo.setEmail(newEmail); + session.setAttribute("userInfo", userRolesVo); + return resp; + } else { + throw new StatusSystemErrorException("系统错误:修改邮箱失败!"); + } + } else { // 如果不同,则进行记录,当失败次数达到5次,半个小时后才可重试 + Integer count = (Integer) redisUtils.get(countKey); + if (count == null) { + redisUtils.set(countKey, 1, 60 * 30); // 三十分钟不尝试,该限制会自动清空消失 + count = 0; + } else if (count < 5) { + redisUtils.incr(countKey, 1); + } + count++; + if (count == 5) { + redisUtils.del(countKey); // 清空统计 + redisUtils.set(lockKey, "lock", 60 * 30); // 设置锁定更改 + } + + resp.setCode(400); + resp.setMsg("密码错误!您已累计修改邮箱失败" + count + "次..."); + return resp; + } + } + + + public UserInfoVo changeUserInfo(UserInfoVo userInfoVo) throws StatusFailException { + + // 获取当前登录的用户 + org.apache.shiro.session.Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + String realname = userInfoVo.getRealname(); + String nickname = userInfoVo.getNickname(); + if (!StringUtils.isEmpty(realname) && realname.length() > 50) { + throw new StatusFailException("真实姓名的长度不能超过50位"); + } + if (!StringUtils.isEmpty(nickname) && nickname.length() > 20) { + throw new StatusFailException("昵称的长度不能超过20位"); + } + UserInfo userInfo = new UserInfo(); + userInfo.setUuid(userRolesVo.getUid()) + .setCfUsername(userInfoVo.getCfUsername()) + .setRealname(realname) + .setNickname(nickname) + .setSignature(userInfoVo.getSignature()) + .setBlog(userInfoVo.getBlog()) + .setGender(userInfoVo.getGender()) + .setEmail(userRolesVo.getEmail()) + .setGithub(userInfoVo.getGithub()) + .setSchool(userInfoVo.getSchool()) + .setNumber(userInfoVo.getNumber()); + + boolean isOk = userInfoEntityService.updateById(userInfo); + + if (isOk) { + // 更新session + UserRolesVo userRoles = userRoleEntityService.getUserRoles(userRolesVo.getUid(), null); + session.setAttribute("userInfo", userRoles); + + UserInfoVo userInfoRes = new UserInfoVo(); + BeanUtil.copyProperties(userRoles, userInfoRes, "roles"); + userInfoRes.setRoleList(userRoles.getRoles().stream().map(Role::getRole).collect(Collectors.toList())); + + return userInfoRes; + } else { + throw new StatusFailException("更新个人信息失败!"); + } + + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/BeforeDispatchInitManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/BeforeDispatchInitManager.java new file mode 100644 index 0000000..4b461fe --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/BeforeDispatchInitManager.java @@ -0,0 +1,221 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import top.hcode.hoj.validator.GroupValidator; +import top.hcode.hoj.validator.TrainingValidator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.common.exception.StatusAccessDeniedException; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.pojo.entity.training.TrainingRecord; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.contest.ContestProblemEntityService; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.training.TrainingEntityService; +import top.hcode.hoj.dao.training.TrainingProblemEntityService; +import top.hcode.hoj.dao.training.TrainingRecordEntityService; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.validator.ContestValidator; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 14:29 + * @Description: + */ +@Component +public class BeforeDispatchInitManager { + + @Resource + private ContestEntityService contestEntityService; + + @Resource + private ContestRecordEntityService contestRecordEntityService; + + @Resource + private ContestProblemEntityService contestProblemEntityService; + + @Resource + private JudgeEntityService judgeEntityService; + + @Resource + private ProblemEntityService problemEntityService; + + @Resource + private TrainingEntityService trainingEntityService; + + @Resource + private TrainingProblemEntityService trainingProblemEntityService; + + @Resource + private TrainingRecordEntityService trainingRecordEntityService; + + @Resource + private TrainingValidator trainingValidator; + + @Resource + private ContestValidator contestValidator; + + @Autowired + private GroupValidator groupValidator; + + public void initCommonSubmission(String problemId, Judge judge) throws StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("problem_id", problemId); + Problem problem = problemEntityService.getOne(problemQueryWrapper, false); + + if (problem.getAuth() == 2) { + throw new StatusForbiddenException("错误!当前题目不可提交!"); + } + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + if (problem.getIsGroup()) { + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), problem.getGid())) { + throw new StatusForbiddenException("对不起,您并非该题目所属的团队内成员,无权进行提交!"); + } + } + + judge.setCpid(0L) + .setPid(problem.getId()) + .setDisplayPid(problem.getProblemId()); + + // 将新提交数据插入数据库 + judgeEntityService.save(judge); + } + + + @Transactional(rollbackFor = Exception.class) + public void initContestSubmission(Long cid, String displayId, UserRolesVo userRolesVo, Judge judge) throws StatusNotFoundException, StatusForbiddenException { + // 首先判断一下比赛的状态是否是正在进行,结束状态都不能提交,比赛前比赛管理员可以提交 + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusNotFoundException("对不起,该比赛不存在!"); + } + + if (contest.getStatus().intValue() == Constants.Contest.STATUS_ENDED.getCode()) { + throw new StatusForbiddenException("比赛已结束,不可再提交!"); + } + + // 是否为超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + if (!isRoot && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), contest.getGid()))) { + if (contest.getStatus().intValue() == Constants.Contest.STATUS_SCHEDULED.getCode()) { + throw new StatusForbiddenException("比赛未开始,不可提交!"); + } + // 需要检查是否有权限在当前比赛进行提交 + contestValidator.validateJudgeAuth(contest, userRolesVo.getUid()); + + // 需要校验当前比赛是否为保护或私有比赛,同时是否开启账号规则限制,如果有,需要对当前用户的用户名进行验证 + if (contest.getOpenAccountLimit() + && !contestValidator.validateAccountRule(contest.getAccountLimitRule(), userRolesVo.getUsername())) { + throw new StatusForbiddenException("对不起!本次比赛只允许符合特定账号规则的用户参赛!"); + } + } + + // 查询获取对应的pid和cpid + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", cid).eq("display_id", displayId); + ContestProblem contestProblem = contestProblemEntityService.getOne(contestProblemQueryWrapper, false); + judge.setCpid(contestProblem.getId()) + .setPid(contestProblem.getPid()) + .setGid(contest.getGid()); + + Problem problem = problemEntityService.getById(contestProblem.getPid()); + if (problem.getAuth() == 2) { + throw new StatusForbiddenException("错误!当前题目已被隐藏,不可提交!"); + } + + judge.setDisplayPid(problem.getProblemId()); + // 将新提交数据插入数据库 + judgeEntityService.save(judge); + + // 同时初始化写入contest_record表 + ContestRecord contestRecord = new ContestRecord(); + contestRecord.setDisplayId(displayId) + .setCpid(contestProblem.getId()) + .setSubmitId(judge.getSubmitId()) + .setPid(judge.getPid()) + .setUsername(userRolesVo.getUsername()) + .setRealname(userRolesVo.getRealname()) + .setUid(userRolesVo.getUid()) + .setCid(judge.getCid()) + .setSubmitTime(judge.getSubmitTime()); + + if (contest.getStatus().intValue() == Constants.Contest.STATUS_SCHEDULED.getCode()) { + contestRecord.setTime(0L); + } else { + // 设置比赛开始时间到提交时间之间的秒数 + contestRecord.setTime(DateUtil.between(contest.getStartTime(), judge.getSubmitTime(), DateUnit.SECOND)); + } + contestRecordEntityService.save(contestRecord); + } + + + @Transactional(rollbackFor = Exception.class) + public void initTrainingSubmission(Long tid, String displayId, UserRolesVo userRolesVo, Judge judge) throws StatusForbiddenException, StatusFailException, StatusAccessDeniedException { + + Training training = trainingEntityService.getById(tid); + if (training == null || !training.getStatus()) { + throw new StatusFailException("该训练不存在或不允许显示!"); + } + + trainingValidator.validateTrainingAuth(training, userRolesVo); + + // 查询获取对应的pid和cpid + QueryWrapper trainingProblemQueryWrapper = new QueryWrapper<>(); + trainingProblemQueryWrapper.eq("tid", tid) + .eq("display_id", displayId); + TrainingProblem trainingProblem = trainingProblemEntityService.getOne(trainingProblemQueryWrapper); + judge.setPid(trainingProblem.getPid()); + + Problem problem = problemEntityService.getById(trainingProblem.getPid()); + if (problem.getAuth() == 2) { + throw new StatusForbiddenException("错误!当前题目不可提交!"); + } + + judge.setDisplayPid(problem.getProblemId()) + .setGid(training.getGid()); + + // 将新提交数据插入数据库 + judgeEntityService.save(judge); + + // 非私有训练不记录 + if (!training.getAuth().equals(Constants.Training.AUTH_PRIVATE.getValue())) { + return; + } + + TrainingRecord trainingRecord = new TrainingRecord(); + trainingRecord.setPid(problem.getId()) + .setTid(tid) + .setTpid(trainingProblem.getId()) + .setSubmitId(judge.getSubmitId()) + .setUid(userRolesVo.getUid()); + trainingRecordEntityService.save(trainingRecord); + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/CommentManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/CommentManager.java new file mode 100644 index 0000000..1f7ebac --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/CommentManager.java @@ -0,0 +1,552 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.extra.emoji.EmojiUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import top.hcode.hoj.annotation.HOJAccessEnum; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.discussion.CommentEntityService; +import top.hcode.hoj.dao.discussion.CommentLikeEntityService; +import top.hcode.hoj.dao.discussion.DiscussionEntityService; +import top.hcode.hoj.dao.discussion.ReplyEntityService; +import top.hcode.hoj.dao.user.UserAcproblemEntityService; +import top.hcode.hoj.exception.AccessException; +import top.hcode.hoj.pojo.dto.ReplyDto; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.discussion.Comment; +import top.hcode.hoj.pojo.entity.discussion.CommentLike; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.Reply; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.validator.AccessValidator; +import top.hcode.hoj.validator.ContestValidator; +import top.hcode.hoj.validator.GroupValidator; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 15:59 + * @Description: + */ +@Component +public class CommentManager { + + @Autowired + private CommentEntityService commentEntityService; + + @Autowired + private CommentLikeEntityService commentLikeEntityService; + + @Autowired + private ReplyEntityService replyEntityService; + + @Autowired + private DiscussionEntityService discussionEntityService; + + @Autowired + private UserAcproblemEntityService userAcproblemEntityService; + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private GroupValidator groupValidator; + + @Autowired + private ContestValidator contestValidator; + + @Autowired + private AccessValidator accessValidator; + + @Autowired + private ConfigVo configVo; + + private final static Pattern pattern = Pattern.compile("<.*?([a,A][u,U][t,T][o,O][p,P][l,L][a,A][y,Y]).*?>"); + + public CommentListVo getComments(Long cid, Integer did, Integer limit, Integer currentPage) throws StatusForbiddenException, AccessException { + + // 如果有登录,则获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + if (cid == null && did != null) { + QueryWrapper discussionQueryWrapper = new QueryWrapper<>(); + discussionQueryWrapper.select("id", "gid").eq("id", did); + Discussion discussion = discussionEntityService.getOne(discussionQueryWrapper); + if (discussion != null && discussion.getGid() != null) { + accessValidator.validateAccess(HOJAccessEnum.GROUP_DISCUSSION); + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), discussion.getGid())) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } else { + accessValidator.validateAccess(HOJAccessEnum.PUBLIC_DISCUSSION); + } + } else { + accessValidator.validateAccess(HOJAccessEnum.CONTEST_COMMENT); + } + + IPage commentList = commentEntityService.getCommentList(limit, currentPage, cid, did, isRoot, + userRolesVo != null ? userRolesVo.getUid() : null); + + HashMap commentLikeMap = new HashMap<>(); + + if (userRolesVo != null) { + // 如果是有登录 需要检查是否对评论有点赞 + List commentIdList = new LinkedList<>(); + + for (CommentVo commentVo : commentList.getRecords()) { + commentIdList.add(commentVo.getId()); + } + + if (commentIdList.size() > 0) { + + QueryWrapper commentLikeQueryWrapper = new QueryWrapper<>(); + commentLikeQueryWrapper.in("cid", commentIdList); + + List commentLikeList = commentLikeEntityService.list(commentLikeQueryWrapper); + + // 如果存在记录需要修正Map为true + for (CommentLike tmp : commentLikeList) { + commentLikeMap.put(tmp.getCid(), true); + } + } + } + + CommentListVo commentListVo = new CommentListVo(); + commentListVo.setCommentList(commentList); + commentListVo.setCommentLikeMap(commentLikeMap); + return commentListVo; + } + + + @Transactional + public CommentVo addComment(Comment comment) throws StatusFailException, StatusForbiddenException, AccessException { + + if (StringUtils.isEmpty(comment.getContent().trim())) { + throw new StatusFailException("评论内容不能为空!"); + } + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + + Long cid = comment.getCid(); + + // 比赛外的评论 除管理员外 只有AC 10道以上才可评论 + if (cid == null) { + + QueryWrapper discussionQueryWrapper = new QueryWrapper<>(); + discussionQueryWrapper.select("id", "gid").eq("id", comment.getDid()); + Discussion discussion = discussionEntityService.getOne(discussionQueryWrapper); + + Long gid = discussion.getGid(); + if (gid != null) { + accessValidator.validateAccess(HOJAccessEnum.GROUP_DISCUSSION); + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } else { + accessValidator.validateAccess(HOJAccessEnum.PUBLIC_DISCUSSION); + } + + if (!isRoot && !isProblemAdmin && !isAdmin) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("uid", userRolesVo.getUid()).select("distinct pid"); + int userAcProblemCount = userAcproblemEntityService.count(queryWrapper); + + if (userAcProblemCount < configVo.getDefaultCreateCommentACInitValue()) { + throw new StatusForbiddenException("对不起,您暂时不能评论!请先去提交题目通过" + + configVo.getDefaultCreateCommentACInitValue() + "道以上!"); + } + } + + } else { + accessValidator.validateAccess(HOJAccessEnum.CONTEST_COMMENT); + Contest contest = contestEntityService.getById(cid); + contestValidator.validateContestAuth(contest, userRolesVo, isRoot); + } + + comment.setFromAvatar(userRolesVo.getAvatar()) + .setFromName(userRolesVo.getUsername()) + .setFromUid(userRolesVo.getUid()); + + if (SecurityUtils.getSubject().hasRole("root")) { + comment.setFromRole("root"); + } else if (SecurityUtils.getSubject().hasRole("admin") + || SecurityUtils.getSubject().hasRole("problem_admin")) { + comment.setFromRole("admin"); + } else { + comment.setFromRole("user"); + } + + // 带有表情的字符串转换为编码 + comment.setContent(EmojiUtil.toHtml(formatContentRemoveAutoPlay(comment.getContent()))); + + boolean isOk = commentEntityService.saveOrUpdate(comment); + + if (isOk) { + CommentVo commentVo = new CommentVo(); + commentVo.setContent(comment.getContent()); + commentVo.setId(comment.getId()); + commentVo.setFromAvatar(comment.getFromAvatar()); + commentVo.setFromName(comment.getFromName()); + commentVo.setFromUid(comment.getFromUid()); + commentVo.setLikeNum(0); + commentVo.setGmtCreate(comment.getGmtCreate()); + commentVo.setReplyList(new LinkedList<>()); + commentVo.setFromTitleName(userRolesVo.getTitleName()); + commentVo.setFromTitleColor(userRolesVo.getTitleColor()); + // 如果是讨论区的回复,发布成功需要添加统计该讨论的回复数 + if (comment.getDid() != null) { + Discussion discussion = discussionEntityService.getById(comment.getDid()); + if (discussion != null) { + discussion.setCommentNum(discussion.getCommentNum() + 1); + discussionEntityService.updateById(discussion); + // 更新消息 + commentEntityService.updateCommentMsg(discussion.getUid(), + userRolesVo.getUid(), + comment.getContent(), + comment.getDid(), + discussion.getGid()); + } + } + return commentVo; + } else { + throw new StatusFailException("评论失败,请重新尝试!"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void deleteComment(Comment comment) throws StatusForbiddenException, StatusFailException, AccessException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + // 如果不是评论本人 或者不是管理员 无权限删除该评论 + + Long cid = comment.getCid(); + + if (cid == null) { + QueryWrapper discussionQueryWrapper = new QueryWrapper<>(); + discussionQueryWrapper.select("id", "gid").eq("id", comment.getDid()); + Discussion discussion = discussionEntityService.getOne(discussionQueryWrapper); + Long gid = discussion.getGid(); + if (gid == null) { + accessValidator.validateAccess(HOJAccessEnum.PUBLIC_DISCUSSION); + if (!comment.getFromUid().equals(userRolesVo.getUid()) && !isRoot && !isProblemAdmin && !isAdmin) { + throw new StatusForbiddenException("无权删除该评论"); + } + } else { + accessValidator.validateAccess(HOJAccessEnum.GROUP_DISCUSSION); + if (!groupValidator.isGroupAdmin(userRolesVo.getUid(), gid) + && !comment.getFromUid().equals(userRolesVo.getUid()) + && !isRoot) { + throw new StatusForbiddenException("无权删除该评论"); + } + } + } else { + accessValidator.validateAccess(HOJAccessEnum.CONTEST_COMMENT); + Contest contest = contestEntityService.getById(cid); + Long gid = contest.getGid(); + if (!comment.getFromUid().equals(userRolesVo.getUid()) + && !isRoot + && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), gid))) { + throw new StatusForbiddenException("无权删除该评论"); + } + } + // 获取需要删除该评论的回复数 + int replyNum = replyEntityService.count(new QueryWrapper().eq("comment_id", comment.getId())); + + // 删除该数据 包括关联外键的reply表数据 + boolean isDeleteComment = commentEntityService.removeById(comment.getId()); + + // 同时需要删除该评论的回复表数据 + replyEntityService.remove(new UpdateWrapper().eq("comment_id", comment.getId())); + + if (isDeleteComment) { + // 如果是讨论区的回复,删除成功需要减少统计该讨论的回复数 + if (comment.getDid() != null) { + UpdateWrapper discussionUpdateWrapper = new UpdateWrapper<>(); + discussionUpdateWrapper.eq("id", comment.getDid()) + .setSql("comment_num=comment_num-" + (replyNum + 1)); + discussionEntityService.update(discussionUpdateWrapper); + } + } else { + throw new StatusFailException("删除失败,请重新尝试"); + } + } + + @Transactional(rollbackFor = Exception.class) + public void addCommentLike(Integer cid, Boolean toLike, Integer sourceId, String sourceType) throws StatusFailException { + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + QueryWrapper commentLikeQueryWrapper = new QueryWrapper<>(); + commentLikeQueryWrapper.eq("cid", cid).eq("uid", userRolesVo.getUid()); + + CommentLike commentLike = commentLikeEntityService.getOne(commentLikeQueryWrapper, false); + + if (toLike) { // 添加点赞 + if (commentLike == null) { // 如果不存在就添加 + boolean isSave = commentLikeEntityService.saveOrUpdate(new CommentLike() + .setUid(userRolesVo.getUid()) + .setCid(cid)); + if (!isSave) { + throw new StatusFailException("点赞失败,请重试尝试!"); + } + } + // 点赞+1 + Comment comment = commentEntityService.getById(cid); + if (comment != null) { + comment.setLikeNum(comment.getLikeNum() + 1); + commentEntityService.updateById(comment); + // 当前的评论要不是点赞者的 才发送点赞消息 + if (!userRolesVo.getUsername().equals(comment.getFromName())) { + commentEntityService.updateCommentLikeMsg(comment.getFromUid(), userRolesVo.getUid(), sourceId, sourceType); + } + } + } else { // 取消点赞 + if (commentLike != null) { // 如果存在就删除 + boolean isDelete = commentLikeEntityService.removeById(commentLike.getId()); + if (!isDelete) { + throw new StatusFailException("取消点赞失败,请重试尝试!"); + } + } + // 点赞-1 + UpdateWrapper commentUpdateWrapper = new UpdateWrapper<>(); + commentUpdateWrapper.setSql("like_num=like_num-1").eq("id", cid); + commentEntityService.update(commentUpdateWrapper); + } + + } + + public List getAllReply(Integer commentId, Long cid) throws StatusForbiddenException, StatusFailException, AccessException { + + // 如果有登录,则获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + if (cid == null) { + Comment comment = commentEntityService.getById(commentId); + QueryWrapper discussionQueryWrapper = new QueryWrapper<>(); + discussionQueryWrapper.select("id", "gid").eq("id", comment.getDid()); + Discussion discussion = discussionEntityService.getOne(discussionQueryWrapper); + Long gid = discussion.getGid(); + if (gid != null) { + accessValidator.validateAccess(HOJAccessEnum.GROUP_DISCUSSION); + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } else { + accessValidator.validateAccess(HOJAccessEnum.PUBLIC_DISCUSSION); + } + } else { + accessValidator.validateAccess(HOJAccessEnum.CONTEST_COMMENT); + Contest contest = contestEntityService.getById(cid); + contestValidator.validateContestAuth(contest, userRolesVo, isRoot); + } + + return replyEntityService.getAllReplyByCommentId(cid, + userRolesVo != null ? userRolesVo.getUid() : null, + isRoot, + commentId); + } + + + public ReplyVo addReply(ReplyDto replyDto) throws StatusFailException, StatusForbiddenException, AccessException { + + if (StringUtils.isEmpty(replyDto.getReply().getContent().trim())) { + throw new StatusFailException("回复内容不能为空!"); + } + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + + Reply reply = replyDto.getReply(); + + Comment comment = commentEntityService.getById(reply.getCommentId()); + Long cid = comment.getCid(); + if (cid == null) { + + QueryWrapper discussionQueryWrapper = new QueryWrapper<>(); + discussionQueryWrapper.select("id", "gid").eq("id", comment.getDid()); + Discussion discussion = discussionEntityService.getOne(discussionQueryWrapper); + + Long gid = discussion.getGid(); + if (gid != null) { + accessValidator.validateAccess(HOJAccessEnum.GROUP_DISCUSSION); + if (!groupValidator.isGroupMember(userRolesVo.getUid(), gid) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限回复!"); + } + } else { + accessValidator.validateAccess(HOJAccessEnum.PUBLIC_DISCUSSION); + } + + if (!isRoot && !isProblemAdmin && !isAdmin) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("uid", userRolesVo.getUid()).select("distinct pid"); + int userAcProblemCount = userAcproblemEntityService.count(queryWrapper); + + if (userAcProblemCount < configVo.getDefaultCreateCommentACInitValue()) { + throw new StatusForbiddenException("对不起,您暂时不能回复!请先去提交题目通过" + + configVo.getDefaultCreateCommentACInitValue() + "道以上!"); + } + } + } else { + accessValidator.validateAccess(HOJAccessEnum.CONTEST_COMMENT); + Contest contest = contestEntityService.getById(cid); + Long gid = contest.getGid(); + if (!comment.getFromUid().equals(userRolesVo.getUid()) + && !isRoot + && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), gid))) { + throw new StatusForbiddenException("对不起,您无权限回复!"); + } + } + reply.setFromAvatar(userRolesVo.getAvatar()) + .setFromName(userRolesVo.getUsername()) + .setFromUid(userRolesVo.getUid()); + + if (SecurityUtils.getSubject().hasRole("root")) { + reply.setFromRole("root"); + } else if (SecurityUtils.getSubject().hasRole("admin") + || SecurityUtils.getSubject().hasRole("problem_admin")) { + reply.setFromRole("admin"); + } else { + reply.setFromRole("user"); + } + // 带有表情的字符串转换为编码 + reply.setContent(EmojiUtil.toHtml(formatContentRemoveAutoPlay(reply.getContent()))); + + boolean isOk = replyEntityService.saveOrUpdate(reply); + + if (isOk) { + // 如果是讨论区的回复,发布成功需要增加统计该讨论的回复数 + if (replyDto.getDid() != null) { + UpdateWrapper discussionUpdateWrapper = new UpdateWrapper<>(); + discussionUpdateWrapper.eq("id", replyDto.getDid()) + .setSql("comment_num=comment_num+1"); + discussionEntityService.update(discussionUpdateWrapper); + // 更新消息 + replyEntityService.updateReplyMsg(replyDto.getDid(), + "Discussion", + reply.getContent(), + replyDto.getQuoteId(), + replyDto.getQuoteType(), + reply.getToUid(), + reply.getFromUid()); + } + + ReplyVo replyVo = new ReplyVo(); + BeanUtil.copyProperties(reply, replyVo); + replyVo.setFromTitleName(userRolesVo.getTitleName()); + replyVo.setFromTitleColor(userRolesVo.getTitleColor()); + return replyVo; + } else { + throw new StatusFailException("回复失败,请重新尝试!"); + } + } + + public void deleteReply(ReplyDto replyDto) throws StatusForbiddenException, StatusFailException, AccessException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + + Reply reply = replyDto.getReply(); + + Comment comment = commentEntityService.getById(reply.getCommentId()); + + Long cid = comment.getCid(); + + if (cid == null) { + Discussion discussion = discussionEntityService.getById(comment.getDid()); + Long gid = discussion.getGid(); + if (gid == null) { + accessValidator.validateAccess(HOJAccessEnum.PUBLIC_DISCUSSION); + if (!reply.getFromUid().equals(userRolesVo.getUid()) + && !isRoot + && !isProblemAdmin + && !isAdmin) { + throw new StatusForbiddenException("无权删除该回复"); + } + } else { + accessValidator.validateAccess(HOJAccessEnum.GROUP_DISCUSSION); + if (!reply.getFromUid().equals(userRolesVo.getUid()) + && !isRoot + && !groupValidator.isGroupAdmin(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("无权删除该回复"); + } + } + } else { + accessValidator.validateAccess(HOJAccessEnum.CONTEST_COMMENT); + Contest contest = contestEntityService.getById(cid); + if (!reply.getFromUid().equals(userRolesVo.getUid()) + && !isRoot + && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), contest.getGid()))) { + throw new StatusForbiddenException("无权删除该回复"); + } + } + + boolean isOk = replyEntityService.removeById(reply.getId()); + if (isOk) { + // 如果是讨论区的回复,删除成功需要减少统计该讨论的回复数 + if (replyDto.getDid() != null) { + UpdateWrapper discussionUpdateWrapper = new UpdateWrapper<>(); + discussionUpdateWrapper.eq("id", replyDto.getDid()) + .setSql("comment_num=comment_num-1"); + discussionEntityService.update(discussionUpdateWrapper); + } + } else { + throw new StatusFailException("删除失败,请重新尝试"); + } + } + + private String formatContentRemoveAutoPlay(String content) { + StringBuilder sb = new StringBuilder(content); + Matcher matcher = pattern.matcher(content); + while (matcher.find()) { + sb.replace(matcher.start(1), matcher.end(1), "controls"); + } + return sb.toString(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/CommonManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/CommonManager.java new file mode 100644 index 0000000..3f03e71 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/CommonManager.java @@ -0,0 +1,226 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.wf.captcha.ArithmeticCaptcha; +import com.wf.captcha.base.Captcha; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.dao.problem.*; +import top.hcode.hoj.dao.training.TrainingCategoryEntityService; +import top.hcode.hoj.pojo.entity.problem.*; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; +import top.hcode.hoj.pojo.vo.CaptchaVo; +import top.hcode.hoj.pojo.vo.ProblemTagVo; +import top.hcode.hoj.utils.RedisUtils; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 16:28 + * @Description: + */ +@Component +public class CommonManager { + + @Autowired + private TagEntityService tagEntityService; + + @Autowired + private TagClassificationEntityService tagClassificationEntityService; + + @Autowired + private ProblemTagEntityService problemTagEntityService; + + @Autowired + private LanguageEntityService languageEntityService; + + @Autowired + private ProblemLanguageEntityService problemLanguageEntityService; + + @Autowired + private RedisUtils redisUtil; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private CodeTemplateEntityService codeTemplateEntityService; + + @Autowired + private TrainingCategoryEntityService trainingCategoryEntityService; + + public CaptchaVo getCaptcha() { + ArithmeticCaptcha specCaptcha = new ArithmeticCaptcha(90, 30, 4); + specCaptcha.setCharType(Captcha.TYPE_DEFAULT); + // 2位数运算 + specCaptcha.setLen(2); + String verCode = specCaptcha.text().toLowerCase(); + String key = IdUtil.simpleUUID(); + // 存入redis并设置过期时间为30分钟 + redisUtil.set(key, verCode, 1800); + // 将key和base64返回给前端 + CaptchaVo captchaVo = new CaptchaVo(); + captchaVo.setImg(specCaptcha.toBase64()); + captchaVo.setCaptchaKey(key); + return captchaVo; + } + + + public List getTrainingCategory() { + QueryWrapper trainingCategoryQueryWrapper = new QueryWrapper<>(); + trainingCategoryQueryWrapper.isNull("gid"); + return trainingCategoryEntityService.list(trainingCategoryQueryWrapper); + } + + public List getAllProblemTagsList(String oj) { + List tagList; + oj = oj.toUpperCase(); + QueryWrapper tagQueryWrapper = new QueryWrapper<>(); + tagQueryWrapper.isNull("gid"); + if (oj.equals("ALL")) { + tagList = tagEntityService.list(tagQueryWrapper); + } else { + tagQueryWrapper.eq("oj", oj); + tagList = tagEntityService.list(tagQueryWrapper); + } + return tagList; + } + + public List getProblemTagsAndClassification(String oj) { + oj = oj.toUpperCase(); + List problemTagVoList = new ArrayList<>(); + List classificationList = null; + List tagList = null; + if (oj.equals("ALL")) { + classificationList = tagClassificationEntityService.list(); + QueryWrapper tagQueryWrapper = new QueryWrapper<>(); + tagQueryWrapper.isNull("gid"); + tagList = tagEntityService.list(tagQueryWrapper); + } else { + QueryWrapper tagClassificationQueryWrapper = new QueryWrapper<>(); + tagClassificationQueryWrapper.eq("oj", oj) + .orderByAsc("`rank`"); + classificationList = tagClassificationEntityService.list(tagClassificationQueryWrapper); + + QueryWrapper tagQueryWrapper = new QueryWrapper<>(); + tagQueryWrapper.isNull("gid"); + tagQueryWrapper.eq("oj", oj); + tagList = tagEntityService.list(tagQueryWrapper); + } + if (CollectionUtils.isEmpty(classificationList)) { + ProblemTagVo problemTagVo = new ProblemTagVo(); + problemTagVo.setTagList(tagList); + problemTagVoList.add(problemTagVo); + } else { + for (TagClassification classification : classificationList) { + ProblemTagVo problemTagVo = new ProblemTagVo(); + problemTagVo.setClassification(classification); + List tags = new ArrayList<>(); + if (!CollectionUtils.isEmpty(tagList)) { + Iterator it = tagList.iterator(); + while (it.hasNext()) { + Tag tag = it.next(); + if (classification.getId().equals(tag.getTcid())) { + tags.add(tag); + it.remove(); + } + } + } + problemTagVo.setTagList(tags); + problemTagVoList.add(problemTagVo); + } + if (tagList.size() > 0) { + ProblemTagVo problemTagVo = new ProblemTagVo(); + problemTagVo.setTagList(tagList); + problemTagVoList.add(problemTagVo); + } + } + + if (oj.equals("ALL")) { + Collections.sort(problemTagVoList, problemTagVoComparator); + } + return problemTagVoList; + } + + + public Collection getProblemTags(Long pid) { + Map map = new HashMap<>(); + map.put("pid", pid); + List tidList = problemTagEntityService.listByMap(map) + .stream() + .map(ProblemTag::getTid) + .collect(Collectors.toList()); + if (CollectionUtils.isEmpty(tidList)) { + return new ArrayList<>(); + } + return tagEntityService.listByIds(tidList); + } + + + public List getLanguages(Long pid, Boolean all) { + + String oj = "ME"; + if (pid != null) { + Problem problem = problemEntityService.getById(pid); + if (problem.getIsRemote()) { + oj = problem.getProblemId().split("-")[0]; + } + } + + if (oj.equals("GYM")) { // GYM用与CF一样的编程语言列表 + oj = "CF"; + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + // 获取对应OJ支持的语言列表 + queryWrapper.eq(all != null && !all, "oj", oj); + return languageEntityService.list(queryWrapper); + } + + public Collection getProblemLanguages(Long pid) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("pid", pid).select("lid"); + List idList = problemLanguageEntityService.list(queryWrapper) + .stream().map(ProblemLanguage::getLid).collect(Collectors.toList()); + return languageEntityService.listByIds(idList); + + } + + public List getProblemCodeTemplate(Long pid) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("pid", pid); + return codeTemplateEntityService.list(queryWrapper); + } + + private Comparator problemTagVoComparator = (p1, p2) -> { + if (p1 == null) { + return 1; + } + if (p2 == null) { + return 1; + } + if (p1.getClassification() == null) { + return 1; + } + if (p2.getClassification() == null) { + return -1; + } + TagClassification p1Classification = p1.getClassification(); + TagClassification p2Classification = p2.getClassification(); + if (Objects.equals(p1Classification.getOj(), p2Classification.getOj())) { + return p1Classification.getRank().compareTo(p2Classification.getRank()); + } else { + if ("ME".equals(p1Classification.getOj())) { + return -1; + } else if ("ME".equals(p2Classification.getOj())) { + return 1; + } else { + return p1Classification.getOj().compareTo(p2Classification.getOj()); + } + } + }; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestAdminManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestAdminManager.java new file mode 100644 index 0000000..346cebd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestAdminManager.java @@ -0,0 +1,156 @@ +package top.hcode.hoj.manager.oj; + + +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.pojo.dto.CheckACDto; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestPrint; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.contest.ContestPrintEntityService; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.utils.Constants; + + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 19:40 + * @Description: + */ +@Component +public class ContestAdminManager { + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private ContestRecordEntityService contestRecordEntityService; + + @Autowired + private ContestPrintEntityService contestPrintEntityService; + + @Autowired + private GroupValidator groupValidator; + + public IPage getContestACInfo(Long cid, Integer currentPage, Integer limit) throws StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(cid); + + // 超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + if (!isRoot + && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), contest.getGid()))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 30; + + // 获取当前比赛的,状态为ac,未被校验的排在前面 + return contestRecordEntityService.getACInfo(currentPage, + limit, + Constants.Contest.RECORD_AC.getCode(), + cid, + contest.getUid()); + + } + + + public void checkContestACInfo(CheckACDto checkACDto) throws StatusFailException, StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(checkACDto.getCid()); + + // 超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + if (!isRoot + && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), contest.getGid()))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = contestRecordEntityService.updateById( + new ContestRecord().setChecked(checkACDto.getChecked()).setId(checkACDto.getId())); + + if (!isOk) { + throw new StatusFailException("修改失败!"); + } + + } + + public IPage getContestPrint(Long cid, Integer currentPage, Integer limit) throws StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(cid); + + // 超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + if (!isRoot + && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), contest.getGid()))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 30; + + // 获取当前比赛的,未被确定的排在签名 + + IPage contestPrintIPage = new Page<>(currentPage, limit); + + QueryWrapper contestPrintQueryWrapper = new QueryWrapper<>(); + contestPrintQueryWrapper.select("id", "cid", "username", "realname", "status", "gmt_create") + .eq("cid", cid) + .orderByAsc("status") + .orderByDesc("gmt_create"); + + return contestPrintEntityService.page(contestPrintIPage, contestPrintQueryWrapper); + } + + + public void checkContestPrintStatus(Long id, Long cid) throws StatusFailException, StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(cid); + + // 超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + if (!isRoot && !contest.getUid().equals(userRolesVo.getUid()) + && !(contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), contest.getGid()))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = contestPrintEntityService.updateById(new ContestPrint().setId(id).setStatus(1)); + + if (!isOk) { + throw new StatusFailException("修改失败!"); + } + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestCalculateRankManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestCalculateRankManager.java new file mode 100644 index 0000000..78fe006 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestCalculateRankManager.java @@ -0,0 +1,545 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import top.hcode.hoj.dao.group.GroupMemberEntityService; +import top.hcode.hoj.pojo.entity.group.GroupMember; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.vo.ACMContestRankVo; +import top.hcode.hoj.pojo.vo.ContestRecordVo; +import top.hcode.hoj.pojo.vo.OIContestRankVo; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 20:11 + * @Description: + */ +@Component +public class ContestCalculateRankManager { + + @Resource + private UserInfoEntityService userInfoEntityService; + + @Resource + private RedisUtils redisUtils; + + @Resource + private ContestRecordEntityService contestRecordEntityService; + + @Autowired + private GroupMemberEntityService groupMemberEntityService; + + public List calcACMRank(boolean isOpenSealRank, + boolean removeStar, + Contest contest, + String currentUserId, + List concernedList, + List externalCidList) { + return calcACMRank(isOpenSealRank, + removeStar, + contest, + currentUserId, + concernedList, + externalCidList, + false, + null); + } + + + public List calcOIRank(Boolean isOpenSealRank, + Boolean removeStar, + Contest contest, + String currentUserId, + List concernedList, + List externalCidList) { + + return calcOIRank(isOpenSealRank, + removeStar, + contest, + currentUserId, + concernedList, + externalCidList, + false, + null); + } + + + /** + * @param isOpenSealRank 是否是查询封榜后的数据 + * @param removeStar 是否需要移除打星队伍 + * @param contest 比赛实体信息 + * @param currentUserId 当前查看榜单的用户uuid,不为空则将该数据复制一份放置列表最前 + * @param concernedList 关注的用户(uuid)列表 + * @param externalCidList 榜单额外显示的比赛列表 + * @param useCache 是否对初始排序计算的结果进行缓存 + * @param cacheTime 缓存的时间 单位秒 + * @MethodName calcACMRank + * @Description TODO + * @Return + * @Since 2021/12/10 + */ + public List calcACMRank(boolean isOpenSealRank, + boolean removeStar, + Contest contest, + String currentUserId, + List concernedList, + List externalCidList, + boolean useCache, + Long cacheTime) { + List orderResultList; + if (useCache) { + String key = Constants.Contest.CONTEST_RANK_CAL_RESULT_CACHE.getName() + "_" + contest.getId(); + orderResultList = (List) redisUtils.get(key); + if (orderResultList == null) { + if (isOpenSealRank) { + long minSealRankTime = DateUtil.between(contest.getStartTime(), contest.getSealRankTime(), DateUnit.SECOND); + orderResultList = getACMOrderRank(contest, true, minSealRankTime, contest.getDuration(), externalCidList); + } else { + orderResultList = getACMOrderRank(contest, false, null, null, externalCidList); + } + redisUtils.set(key, orderResultList, cacheTime); + } + } else { + if (isOpenSealRank) { + long minSealRankTime = DateUtil.between(contest.getStartTime(), contest.getSealRankTime(), DateUnit.SECOND); + orderResultList = getACMOrderRank(contest, true, minSealRankTime, contest.getDuration(), externalCidList); + } else { + orderResultList = getACMOrderRank(contest, false, null, null, externalCidList); + } + } + + // 需要打星的用户名列表 + HashMap starAccountMap = starAccountToMap(contest.getStarAccount()); + + // 如果选择了移除打星队伍,同时该用户属于打星队伍,则将其移除 + if (removeStar) { + orderResultList.removeIf(acmContestRankVo -> starAccountMap.containsKey(acmContestRankVo.getUsername())); + } + // 记录当前用户排名数据和关注列表的用户排名数据 + List topACMRankVoList = new ArrayList<>(); + boolean needAddConcernedUser = false; + if (!CollectionUtils.isEmpty(concernedList)) { + needAddConcernedUser = true; + // 移除关注列表与当前用户重复 + concernedList.remove(currentUserId); + } + + int rankNum = 1; + int len = orderResultList.size(); + ACMContestRankVo lastACMRankVo = null; + for (int i = 0; i < len; i++) { + ACMContestRankVo currentACMRankVo = orderResultList.get(i); + if (starAccountMap.containsKey(currentACMRankVo.getUsername())) { + // 打星队伍排名为-1 + currentACMRankVo.setRank(-1); + } else { + if (rankNum == 1) { + currentACMRankVo.setRank(rankNum); + } else { + // 当前用户的总罚时和AC数跟前一个用户一样的话,同时前一个不应该为打星,排名则一样 + if (lastACMRankVo.getAc().equals(currentACMRankVo.getAc()) + && lastACMRankVo.getTotalTime().equals(currentACMRankVo.getTotalTime())) { + currentACMRankVo.setRank(lastACMRankVo.getRank()); + } else { + currentACMRankVo.setRank(rankNum); + } + } + lastACMRankVo = currentACMRankVo; + rankNum++; + } + + if (!StringUtils.isEmpty(currentUserId) && + currentACMRankVo.getUid().equals(currentUserId)) { + topACMRankVoList.add(currentACMRankVo); + } + + // 需要添加关注用户 + if (needAddConcernedUser) { + if (concernedList.contains(currentACMRankVo.getUid())) { + topACMRankVoList.add(currentACMRankVo); + } + } + } + topACMRankVoList.addAll(orderResultList); + return topACMRankVoList; + } + + + private List getACMOrderRank(Contest contest, + Boolean isOpenSealRank, + Long minSealRankTime, + Long maxSealRankTime, + List externalCidList) { + + + List contestRecordList = contestRecordEntityService.getACMContestRecord(contest.getUid(), + contest.getId(), + externalCidList, + contest.getStartTime()); + + List superAdminUidList = getSuperAdminUidList(contest.getGid()); + + List result = new ArrayList<>(); + + HashMap uidMapIndex = new HashMap<>(); + + int index = 0; + + HashMap firstACMap = new HashMap<>(); + + for (ContestRecordVo contestRecord : contestRecordList) { + + if (superAdminUidList.contains(contestRecord.getUid())) { // 超级管理员的提交不入排行榜 + continue; + } + + ACMContestRankVo ACMContestRankVo; + if (!uidMapIndex.containsKey(contestRecord.getUid())) { // 如果该用户信息没还记录 + + // 初始化参数 + ACMContestRankVo = new ACMContestRankVo(); + ACMContestRankVo.setRealname(contestRecord.getRealname()) + .setAvatar(contestRecord.getAvatar()) + .setSchool(contestRecord.getSchool()) + .setGender(contestRecord.getGender()) + .setUid(contestRecord.getUid()) + .setUsername(contestRecord.getUsername()) + .setNickname(contestRecord.getNickname()) + .setAc(0) + .setTotalTime(0L) + .setTotal(0); + + HashMap> submissionInfo = new HashMap<>(); + ACMContestRankVo.setSubmissionInfo(submissionInfo); + + result.add(ACMContestRankVo); + uidMapIndex.put(contestRecord.getUid(), index); + index++; + } else { + ACMContestRankVo = result.get(uidMapIndex.get(contestRecord.getUid())); // 根据记录的index进行获取 + } + + HashMap problemSubmissionInfo = ACMContestRankVo.getSubmissionInfo().get(contestRecord.getDisplayId()); + + if (problemSubmissionInfo == null) { + problemSubmissionInfo = new HashMap<>(); + problemSubmissionInfo.put("errorNum", 0); + } + + ACMContestRankVo.setTotal(ACMContestRankVo.getTotal() + 1); + + // 如果是当前是开启封榜的时段和同时该提交是处于封榜时段 尝试次数+1 + if (isOpenSealRank && isInSealTimeSubmission(minSealRankTime, maxSealRankTime, contestRecord.getTime())) { + + int tryNum = (int) problemSubmissionInfo.getOrDefault("tryNum", 0); + problemSubmissionInfo.put("tryNum", tryNum + 1); + + } else { + + // 如果该题目已经AC过了,其它都不记录了 + if ((Boolean) problemSubmissionInfo.getOrDefault("isAC", false)) { + continue; + } + + // 记录已经按题目提交耗时time升序了 + + // 通过的话 + if (contestRecord.getStatus().intValue() == Constants.Contest.RECORD_AC.getCode()) { + // 总解决题目次数ac+1 + ACMContestRankVo.setAc(ACMContestRankVo.getAc() + 1); + + // 判断是不是first AC + boolean isFirstAC = false; + Long time = firstACMap.getOrDefault(contestRecord.getDisplayId(), null); + if (time == null) { + isFirstAC = true; + firstACMap.put(contestRecord.getDisplayId(), contestRecord.getTime()); + } else { + // 相同提交时间也是first AC + if (time.longValue() == contestRecord.getTime().longValue()) { + isFirstAC = true; + } + } + + int errorNumber = (int) problemSubmissionInfo.getOrDefault("errorNum", 0); + problemSubmissionInfo.put("isAC", true); + problemSubmissionInfo.put("isFirstAC", isFirstAC); + problemSubmissionInfo.put("ACTime", contestRecord.getTime()); + problemSubmissionInfo.put("errorNum", errorNumber); + + // 同时计算总耗时,总耗时加上 该题目未AC前的错误次数*20*60+题目AC耗时 + ACMContestRankVo.setTotalTime(ACMContestRankVo.getTotalTime() + errorNumber * 20 * 60 + contestRecord.getTime()); + + // 未通过同时需要记录罚时次数 + } else if (contestRecord.getStatus().intValue() == Constants.Contest.RECORD_NOT_AC_PENALTY.getCode()) { + + int errorNumber = (int) problemSubmissionInfo.getOrDefault("errorNum", 0); + problemSubmissionInfo.put("errorNum", errorNumber + 1); + } else { + + int errorNumber = (int) problemSubmissionInfo.getOrDefault("errorNum", 0); + problemSubmissionInfo.put("errorNum", errorNumber); + } + } + ACMContestRankVo.getSubmissionInfo().put(contestRecord.getDisplayId(), problemSubmissionInfo); + } + + List orderResultList = result.stream().sorted(Comparator.comparing(ACMContestRankVo::getAc, Comparator.reverseOrder()) // 先以总ac数降序 + .thenComparing(ACMContestRankVo::getTotalTime) //再以总耗时升序 + ).collect(Collectors.toList()); + + return orderResultList; + } + + + /** + * @param isOpenSealRank 是否是查询封榜后的数据 + * @param removeStar 是否需要移除打星队伍 + * @param contest 比赛实体信息 + * @param currentUserId 当前查看榜单的用户uuid,不为空则将该数据复制一份放置列表最前 + * @param concernedList 关注的用户(uuid)列表 + * @param externalCidList 榜单额外显示比赛列表 + * @param useCache 是否对初始排序计算的结果进行缓存 + * @param cacheTime 缓存的时间 单位秒 + * @MethodName calcOIRank + * @Description TODO + * @Return + * @Since 2021/12/10 + */ + public List calcOIRank(boolean isOpenSealRank, + boolean removeStar, + Contest contest, + String currentUserId, + List concernedList, + List externalCidList, + boolean useCache, + Long cacheTime) { + + List orderResultList; + if (useCache) { + String key = Constants.Contest.CONTEST_RANK_CAL_RESULT_CACHE.getName() + "_" + contest.getId(); + orderResultList = (List) redisUtils.get(key); + if (orderResultList == null) { + orderResultList = getOIOrderRank(contest,externalCidList, isOpenSealRank); + redisUtils.set(key, orderResultList, cacheTime); + } + } else { + orderResultList = getOIOrderRank(contest,externalCidList, isOpenSealRank); + } + + // 需要打星的用户名列表 + HashMap starAccountMap = starAccountToMap(contest.getStarAccount()); + + // 如果选择了移除打星队伍,同时该用户属于打星队伍,则将其移除 + if (removeStar) { + orderResultList.removeIf(acmContestRankVo -> starAccountMap.containsKey(acmContestRankVo.getUsername())); + } + + // 记录当前用户排名数据和关注列表的用户排名数据 + List topOIRankVoList = new ArrayList<>(); + boolean needAddConcernedUser = false; + if (!CollectionUtils.isEmpty(concernedList)) { + needAddConcernedUser = true; + // 移除关注列表与当前用户重复 + concernedList.remove(currentUserId); + } + + int rankNum = 1; + OIContestRankVo lastOIRankVo = null; + int len = orderResultList.size(); + for (int i = 0; i < len; i++) { + OIContestRankVo currentOIRankVo = orderResultList.get(i); + if (starAccountMap.containsKey(currentOIRankVo.getUsername())) { + // 打星队伍排名为-1 + currentOIRankVo.setRank(-1); + } else { + if (rankNum == 1) { + currentOIRankVo.setRank(rankNum); + } else { + // 当前用户的程序总运行时间和总得分跟前一个用户一样的话,同时前一个不应该为打星用户,排名则一样 + if (lastOIRankVo.getTotalScore().equals(currentOIRankVo.getTotalScore()) + && lastOIRankVo.getTotalTime().equals(currentOIRankVo.getTotalTime())) { + currentOIRankVo.setRank(lastOIRankVo.getRank()); + } else { + currentOIRankVo.setRank(rankNum); + } + } + lastOIRankVo = currentOIRankVo; + rankNum++; + } + + if (!StringUtils.isEmpty(currentUserId) && + currentOIRankVo.getUid().equals(currentUserId)) { + topOIRankVoList.add(currentOIRankVo); + } + + // 需要添加关注用户 + if (needAddConcernedUser) { + if (concernedList.contains(currentOIRankVo.getUid())) { + topOIRankVoList.add(currentOIRankVo); + } + } + } + topOIRankVoList.addAll(orderResultList); + return topOIRankVoList; + } + + private List getOIOrderRank(Contest contest,List externalCidList, Boolean isOpenSealRank) { + + List oiContestRecord = contestRecordEntityService.getOIContestRecord(contest, externalCidList, isOpenSealRank); + + List superAdminUidList = getSuperAdminUidList(contest.getGid()); + + List result = new ArrayList<>(); + + HashMap uidMapIndex = new HashMap<>(); + + HashMap> uidMapTime = new HashMap<>(); + + boolean isHighestRankScore = Constants.Contest.OI_RANK_HIGHEST_SCORE.getName().equals(contest.getOiRankScoreType()); + + int index = 0; + + for (ContestRecordVo contestRecord : oiContestRecord) { + + if (superAdminUidList.contains(contestRecord.getUid())) { // 超级管理员的提交不入排行榜 + continue; + } + + if (contestRecord.getStatus().equals(Constants.Contest.RECORD_AC.getCode())) { // AC + HashMap pidMapTime = uidMapTime.get(contestRecord.getUid()); + if (pidMapTime != null) { + Integer useTime = pidMapTime.get(contestRecord.getDisplayId()); + if (useTime != null) { + if (useTime > contestRecord.getUseTime()) { // 如果时间消耗比原来的少 + pidMapTime.put(contestRecord.getDisplayId(), contestRecord.getUseTime()); + } + } else { + pidMapTime.put(contestRecord.getDisplayId(), contestRecord.getUseTime()); + } + } else { + HashMap tmp = new HashMap<>(); + tmp.put(contestRecord.getDisplayId(), contestRecord.getUseTime()); + uidMapTime.put(contestRecord.getUid(), tmp); + } + } + + OIContestRankVo oiContestRankVo; + if (!uidMapIndex.containsKey(contestRecord.getUid())) { // 如果该用户信息没还记录 + // 初始化参数 + oiContestRankVo = new OIContestRankVo(); + oiContestRankVo.setRealname(contestRecord.getRealname()) + .setUid(contestRecord.getUid()) + .setUsername(contestRecord.getUsername()) + .setSchool(contestRecord.getSchool()) + .setAvatar(contestRecord.getAvatar()) + .setGender(contestRecord.getGender()) + .setNickname(contestRecord.getNickname()) + .setTotalScore(0); + + + HashMap submissionInfo = new HashMap<>(); + oiContestRankVo.setSubmissionInfo(submissionInfo); + + result.add(oiContestRankVo); + uidMapIndex.put(contestRecord.getUid(), index); + index++; + } else { + oiContestRankVo = result.get(uidMapIndex.get(contestRecord.getUid())); // 根据记录的index进行获取 + } + + // 记录总分 + HashMap submissionInfo = oiContestRankVo.getSubmissionInfo(); + Integer score = submissionInfo.get(contestRecord.getDisplayId()); + if (isHighestRankScore) { + if (score == null) { + oiContestRankVo.setTotalScore(oiContestRankVo.getTotalScore() + contestRecord.getScore()); + submissionInfo.put(contestRecord.getDisplayId(), contestRecord.getScore()); + } + } else { + if (contestRecord.getScore() != null) { + if (score != null) { // 为了避免同个提交时间的重复计算 + oiContestRankVo.setTotalScore(oiContestRankVo.getTotalScore() - score + contestRecord.getScore()); + } else { + oiContestRankVo.setTotalScore(oiContestRankVo.getTotalScore() + contestRecord.getScore()); + } + } + submissionInfo.put(contestRecord.getDisplayId(), contestRecord.getScore()); + } + + } + + + for (OIContestRankVo oiContestRankVo : result) { + HashMap pidMapTime = uidMapTime.get(oiContestRankVo.getUid()); + int sumTime = 0; + if (pidMapTime != null) { + for (String key : pidMapTime.keySet()) { + Integer time = pidMapTime.get(key); + sumTime += time == null ? 0 : time; + } + } + oiContestRankVo.setTotalTime(sumTime); + oiContestRankVo.setTimeInfo(pidMapTime); + } + + // 根据总得分进行降序,再根据总时耗升序排序 + List orderResultList = result.stream() + .sorted(Comparator.comparing(OIContestRankVo::getTotalScore, Comparator.reverseOrder()) + .thenComparing(OIContestRankVo::getTotalTime, Comparator.naturalOrder())) + .collect(Collectors.toList()); + return orderResultList; + } + + + private List getSuperAdminUidList(Long gid) { + + List superAdminUidList = userInfoEntityService.getSuperAdminUidList(); + + if (gid != null) { + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid).eq("auth", 5); + + List groupRootList = groupMemberEntityService.list(groupMemberQueryWrapper); + + for (GroupMember groupMember : groupRootList) { + superAdminUidList.add(groupMember.getUid()); + } + } + return superAdminUidList; + } + + private boolean isInSealTimeSubmission(Long minSealRankTime, Long maxSealRankTime, Long time) { + return time >= minSealRankTime && time <= maxSealRankTime; + } + + private HashMap starAccountToMap(String starAccountStr) { + if (StringUtils.isEmpty(starAccountStr)) { + return new HashMap<>(); + } + JSONObject jsonObject = JSONUtil.parseObj(starAccountStr); + List list = jsonObject.get("star_account", List.class); + HashMap res = new HashMap<>(); + for (String str : list) { + if (!StringUtils.isEmpty(str)) { + res.put(str, true); + } + } + return res; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestManager.java new file mode 100644 index 0000000..6abb77e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestManager.java @@ -0,0 +1,585 @@ +package top.hcode.hoj.manager.oj; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.common.AnnouncementEntityService; +import top.hcode.hoj.dao.contest.*; +import top.hcode.hoj.dao.group.GroupMemberEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.*; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.pojo.dto.ContestPrintDto; +import top.hcode.hoj.pojo.dto.ContestRankDto; +import top.hcode.hoj.pojo.dto.RegisterContestDto; +import top.hcode.hoj.pojo.dto.UserReadContestAnnouncementDto; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.entity.contest.*; +import top.hcode.hoj.pojo.entity.problem.*; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; +import top.hcode.hoj.validator.ContestValidator; +import top.hcode.hoj.validator.GroupValidator; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 22:26 + * @Description: + */ +@Component +public class ContestManager { + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private ContestRecordEntityService contestRecordEntityService; + + @Autowired + private ContestProblemEntityService contestProblemEntityService; + + @Autowired + private ContestAnnouncementEntityService contestAnnouncementEntityService; + + @Autowired + private AnnouncementEntityService announcementEntityService; + + @Autowired + private ContestRegisterEntityService contestRegisterEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private ProblemTagEntityService problemTagEntityService; + + @Autowired + private TagEntityService tagEntityService; + + @Autowired + private LanguageEntityService languageEntityService; + + @Autowired + private ProblemLanguageEntityService problemLanguageEntityService; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private CodeTemplateEntityService codeTemplateEntityService; + + @Autowired + private ContestPrintEntityService contestPrintEntityService; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private ContestValidator contestValidator; + + @Autowired + private ContestRankManager contestRankManager; + + @Autowired + private GroupMemberEntityService groupMemberEntityService; + + @Autowired + private GroupValidator groupValidator; + + public IPage getContestList(Integer limit, Integer currentPage, Integer status, Integer type, String keyword) { + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + return contestEntityService.getContestList(limit, currentPage, type, status, keyword); + } + + + public ContestVo getContestInfo(Long cid) throws StatusFailException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + ContestVo contestInfo = contestEntityService.getContestInfoById(cid); + if (contestInfo == null) { + throw new StatusFailException("对不起,该比赛不存在!"); + } + + Contest contest = contestEntityService.getById(cid); + + if (contest.getIsGroup()) { + if (!groupValidator.isGroupMember(userRolesVo.getUid(), contest.getGid()) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } + + // 设置当前服务器系统时间 + contestInfo.setNow(new Date()); + + return contestInfo; + } + + + public void toRegisterContest(RegisterContestDto registerContestDto) throws StatusFailException, StatusForbiddenException { + + Long cid = registerContestDto.getCid(); + String password = registerContestDto.getPassword(); + if (cid == null || StringUtils.isEmpty(password)) { + throw new StatusFailException("cid或者password不能为空!"); + } + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Contest contest = contestEntityService.getById(cid); + + if (contest == null || !contest.getVisible()) { + throw new StatusFailException("对不起,该比赛不存在!"); + } + + if (contest.getIsGroup()) { + if (!groupValidator.isGroupMember(userRolesVo.getUid(), contest.getGid()) && !isRoot) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } + + if (!contest.getPwd().equals(password)) { // 密码不对 + throw new StatusFailException("比赛密码错误,请重新输入!"); + } + + // 需要校验当前比赛是否开启账号规则限制,如果有,需要对当前用户的用户名进行验证 + if (contest.getOpenAccountLimit() + && !contestValidator.validateAccountRule(contest.getAccountLimitRule(), userRolesVo.getUsername())) { + throw new StatusFailException("对不起!本次比赛只允许特定账号规则的用户参赛!"); + } + + + QueryWrapper wrapper = new QueryWrapper().eq("cid", cid) + .eq("uid", userRolesVo.getUid()); + if (contestRegisterEntityService.getOne(wrapper, false) != null) { + throw new StatusFailException("您已注册过该比赛,请勿重复注册!"); + } + + boolean isOk = contestRegisterEntityService.saveOrUpdate(new ContestRegister() + .setCid(cid) + .setUid(userRolesVo.getUid())); + + if (!isOk) { + throw new StatusFailException("校验比赛密码失败,请稍后再试"); + } + } + + public AccessVo getContestAccess(Long cid) throws StatusFailException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("cid", cid).eq("uid", userRolesVo.getUid()); + ContestRegister contestRegister = contestRegisterEntityService.getOne(queryWrapper, false); + + boolean access = false; + if (contestRegister != null) { + access = true; + Contest contest = contestEntityService.getById(cid); + if (contest == null || !contest.getVisible()) { + throw new StatusFailException("对不起,该比赛不存在!"); + } + if (contest.getOpenAccountLimit() + && !contestValidator.validateAccountRule(contest.getAccountLimitRule(), userRolesVo.getUsername())) { + access = false; + contestRecordEntityService.removeById(contestRegister.getId()); + } + } + + AccessVo accessVo = new AccessVo(); + accessVo.setAccess(access); + return accessVo; + } + + + public List getContestProblem(Long cid) throws StatusFailException, StatusForbiddenException { + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(cid); + + // 超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + // 需要对该比赛做判断,是否处于开始或结束状态才可以获取题目列表,同时若是私有赛需要判断是否已注册(比赛管理员包括超级管理员可以直接获取) + contestValidator.validateContestAuth(contest, userRolesVo, isRoot); + + List contestProblemList; + boolean isAdmin = isRoot + || contest.getAuthor().equals(userRolesVo.getUsername()) + || (contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), contest.getGid())); + + List groupRootUidList = null; + if (contest.getIsGroup() && contest.getGid() != null) { + groupRootUidList = groupMemberEntityService.getGroupRootUidList(contest.getGid()); + } + + // 如果比赛开启封榜 + if (contestValidator.isSealRank(userRolesVo.getUid(), contest, true, isRoot)) { + contestProblemList = contestProblemEntityService.getContestProblemList(cid, + contest.getStartTime(), + contest.getEndTime(), + contest.getSealRankTime(), + isAdmin, + contest.getAuthor(), + groupRootUidList); + } else { + contestProblemList = contestProblemEntityService.getContestProblemList(cid, + contest.getStartTime(), + contest.getEndTime(), + null, + isAdmin, + contest.getAuthor(), + groupRootUidList); + } + + return contestProblemList; + } + + public ProblemInfoVo getContestProblemDetails(Long cid, String displayId) throws StatusFailException, StatusForbiddenException, StatusNotFoundException { + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(cid); + + // 是否为超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + // 需要对该比赛做判断,是否处于开始或结束状态才可以获取题目,同时若是私有赛需要判断是否已注册(比赛管理员包括超级管理员可以直接获取) + contestValidator.validateContestAuth(contest, userRolesVo, isRoot); + + // 根据cid和displayId获取pid + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", cid).eq("display_id", displayId); + ContestProblem contestProblem = contestProblemEntityService.getOne(contestProblemQueryWrapper); + + if (contestProblem == null) { + throw new StatusNotFoundException("该比赛题目不存在"); + } + + //查询题目详情,题目标签,题目语言,题目做题情况 + Problem problem = problemEntityService.getById(contestProblem.getPid()); + + if (problem.getAuth() == 2) { + throw new StatusForbiddenException("该比赛题目当前不可访问!"); + } + + // 设置比赛题目的标题为设置展示标题 + problem.setTitle(contestProblem.getDisplayTitle()); + + List tags = new LinkedList<>(); + + // 比赛结束后才开放标签和source、出题人、难度 + if (contest.getStatus().intValue() != Constants.Contest.STATUS_ENDED.getCode()) { + problem.setSource(null); + problem.setAuthor(null); + problem.setDifficulty(null); + QueryWrapper problemTagQueryWrapper = new QueryWrapper<>(); + problemTagQueryWrapper.eq("pid", contestProblem.getPid()); + // 获取该题号对应的标签id + List tidList = new LinkedList<>(); + problemTagEntityService.list(problemTagQueryWrapper).forEach(problemTag -> { + tidList.add(problemTag.getTid()); + }); + if (tidList.size() != 0) { + tags = (List) tagEntityService.listByIds(tidList); + } + } + // 记录 languageId对应的name + HashMap tmpMap = new HashMap<>(); + + // 获取题目提交的代码支持的语言 + List languagesStr = new LinkedList<>(); + QueryWrapper problemLanguageQueryWrapper = new QueryWrapper<>(); + problemLanguageQueryWrapper.eq("pid", contestProblem.getPid()).select("lid"); + List lidList = problemLanguageEntityService.list(problemLanguageQueryWrapper) + .stream().map(ProblemLanguage::getLid).collect(Collectors.toList()); + languageEntityService.listByIds(lidList).forEach(language -> { + languagesStr.add(language.getName()); + tmpMap.put(language.getId(), language.getName()); + }); + + Date sealRankTime = null; + //封榜时间除超级管理员和比赛管理员外 其它人不可看到最新数据 + if (contestValidator.isSealRank(userRolesVo.getUid(), contest, true, isRoot)) { + sealRankTime = contest.getSealRankTime(); + } + + // 筛去 比赛管理员和超级管理员的提交 + List superAdminUidList = userInfoEntityService.getSuperAdminUidList(); + superAdminUidList.add(contest.getUid()); + + // 获取题目的提交记录 + ProblemCountVo problemCount = judgeEntityService.getContestProblemCount(contestProblem.getPid(), contestProblem.getId(), + contestProblem.getCid(), contest.getStartTime(), sealRankTime, superAdminUidList); + + // 获取题目的代码模板 + QueryWrapper codeTemplateQueryWrapper = new QueryWrapper<>(); + codeTemplateQueryWrapper.eq("pid", problem.getId()).eq("status", true); + List codeTemplates = codeTemplateEntityService.list(codeTemplateQueryWrapper); + HashMap LangNameAndCode = new HashMap<>(); + if (codeTemplates.size() > 0) { + for (CodeTemplate codeTemplate : codeTemplates) { + LangNameAndCode.put(tmpMap.get(codeTemplate.getLid()), codeTemplate.getCode()); + } + } + // 将数据统一写入到一个Vo返回数据实体类中 + return new ProblemInfoVo(problem, tags, languagesStr, problemCount, LangNameAndCode); + } + + + public IPage getContestSubmissionList(Integer limit, + Integer currentPage, + boolean onlyMine, + String displayId, + Integer searchStatus, + String searchUsername, + Long searchCid, + boolean beforeContestSubmit, + boolean completeProblemID) throws StatusFailException, StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(searchCid); + + // 是否为超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + // 需要对该比赛做判断,是否处于开始或结束状态才可以获取题目,同时若是私有赛需要判断是否已注册(比赛管理员包括超级管理员可以直接获取) + contestValidator.validateContestAuth(contest, userRolesVo, isRoot); + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 30; + + String uid = null; + // 只查看当前用户的提交 + if (onlyMine) { + // 需要获取一下该token对应用户的数据(有token便能获取到) + uid = userRolesVo.getUid(); + } + + String rule; + if (contest.getType().intValue() == Constants.Contest.TYPE_ACM.getCode()) { + rule = Constants.Contest.TYPE_ACM.getName(); + } else { + rule = Constants.Contest.TYPE_OI.getName(); + } + Date sealRankTime = null; + + // 需要判断是否需要封榜 + if (contestValidator.isSealRank(userRolesVo.getUid(), contest, true, isRoot)) { + sealRankTime = contest.getSealRankTime(); + } + // OI比赛封榜期间不更新,ACM比赛封榜期间可看到自己的提交,但是其它人的不可见 + IPage contestJudgeList = judgeEntityService.getContestJudgeList(limit, + currentPage, + displayId, + searchCid, + searchStatus, + searchUsername, + uid, + beforeContestSubmit, + rule, + contest.getStartTime(), + sealRankTime, + userRolesVo.getUid(), + completeProblemID); + + if (contestJudgeList.getTotal() == 0) { // 未查询到一条数据 + return contestJudgeList; + } else { + // 比赛还是进行阶段,同时不是超级管理员与比赛管理员,需要将除自己之外的提交的时间、空间、长度隐藏 + if (contest.getStatus().intValue() == Constants.Contest.STATUS_RUNNING.getCode() + && !isRoot && !userRolesVo.getUid().equals(contest.getUid())) { + contestJudgeList.getRecords().forEach(judgeVo -> { + if (!judgeVo.getUid().equals(userRolesVo.getUid())) { + judgeVo.setTime(null); + judgeVo.setMemory(null); + judgeVo.setLength(null); + } + }); + } + return contestJudgeList; + } + } + + + public IPage getContestRank(ContestRankDto contestRankDto) throws StatusFailException, StatusForbiddenException { + + Long cid = contestRankDto.getCid(); + List concernedList = contestRankDto.getConcernedList(); + Integer currentPage = contestRankDto.getCurrentPage(); + Integer limit = contestRankDto.getLimit(); + Boolean removeStar = contestRankDto.getRemoveStar(); + Boolean forceRefresh = contestRankDto.getForceRefresh(); + + if (cid == null) { + throw new StatusFailException("错误:cid不能为空"); + } + if (removeStar == null) { + removeStar = false; + } + if (forceRefresh == null) { + forceRefresh = false; + } + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 30; + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(contestRankDto.getCid()); + + // 超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + // 需要对该比赛做判断,是否处于开始或结束状态才可以获取题目,同时若是私有赛需要判断是否已注册(比赛管理员包括超级管理员可以直接获取) + contestValidator.validateContestAuth(contest, userRolesVo, isRoot); + + // 校验该比赛是否开启了封榜模式,超级管理员和比赛创建者可以直接看到实际榜单 + boolean isOpenSealRank = contestValidator.isSealRank(userRolesVo.getUid(), contest, forceRefresh, isRoot); + + IPage resultList; + if (contest.getType().intValue() == Constants.Contest.TYPE_ACM.getCode()) { + // ACM比赛 + // 进行排行榜计算以及排名分页 + resultList = contestRankManager.getContestACMRankPage(isOpenSealRank, + removeStar, + userRolesVo.getUid(), + concernedList, + contestRankDto.getExternalCidList(), + contest, + currentPage, + limit); + + } else { + // OI比赛 + resultList = contestRankManager.getContestOIRankPage(isOpenSealRank, + removeStar, + userRolesVo.getUid(), + concernedList, + contestRankDto.getExternalCidList(), + contest, + currentPage, + limit); + } + return resultList; + } + + + public IPage getContestAnnouncement(Long cid, Integer limit, Integer currentPage) throws StatusFailException, StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(cid); + + // 超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + // 需要对该比赛做判断,是否处于开始或结束状态才可以获取题目,同时若是私有赛需要判断是否已注册(比赛管理员包括超级管理员可以直接获取) + contestValidator.validateContestAuth(contest, userRolesVo, isRoot); + + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + return announcementEntityService.getContestAnnouncement(cid, true, limit, currentPage); + } + + + public List getContestUserNotReadAnnouncement(UserReadContestAnnouncementDto userReadContestAnnouncementDto) { + + Long cid = userReadContestAnnouncementDto.getCid(); + List readAnnouncementList = userReadContestAnnouncementDto.getReadAnnouncementList(); + + QueryWrapper contestAnnouncementQueryWrapper = new QueryWrapper<>(); + contestAnnouncementQueryWrapper.eq("cid", cid); + if (readAnnouncementList != null && readAnnouncementList.size() > 0) { + contestAnnouncementQueryWrapper.notIn("aid", readAnnouncementList); + } + List announcementList = contestAnnouncementEntityService.list(contestAnnouncementQueryWrapper); + + List aidList = announcementList + .stream() + .map(ContestAnnouncement::getAid) + .collect(Collectors.toList()); + + if (aidList.size() > 0) { + QueryWrapper announcementQueryWrapper = new QueryWrapper<>(); + announcementQueryWrapper.in("id", aidList).orderByDesc("gmt_create"); + return announcementEntityService.list(announcementQueryWrapper); + } else { + return new ArrayList<>(); + } + + } + + + public void submitPrintText(ContestPrintDto contestPrintDto) throws StatusFailException, StatusForbiddenException { + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(contestPrintDto.getCid()); + + // 超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + // 需要对该比赛做判断,是否处于开始或结束状态才可以获取题目,同时若是私有赛需要判断是否已注册(比赛管理员包括超级管理员可以直接获取) + contestValidator.validateContestAuth(contest, userRolesVo, isRoot); + + String lockKey = Constants.Account.CONTEST_ADD_PRINT_LOCK.getCode() + userRolesVo.getUid(); + if (redisUtils.hasKey(lockKey)) { + long expire = redisUtils.getExpire(lockKey); + throw new StatusForbiddenException("提交打印功能限制,请在" + expire + "秒后再进行提交!"); + } else { + redisUtils.set(lockKey, 1, 30); + } + + boolean isOk = contestPrintEntityService.saveOrUpdate(new ContestPrint().setCid(contestPrintDto.getCid()) + .setContent(contestPrintDto.getContent()) + .setUsername(userRolesVo.getUsername()) + .setRealname(userRolesVo.getRealname())); + + if (!isOk) { + throw new StatusFailException("提交失败"); + } + + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestRankManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestRankManager.java new file mode 100644 index 0000000..9b31366 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestRankManager.java @@ -0,0 +1,180 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.stereotype.Component; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.vo.ACMContestRankVo; +import top.hcode.hoj.pojo.vo.OIContestRankVo; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 20:30 + * @Description: + */ +@Component +public class ContestRankManager { + + + @Resource + private ContestCalculateRankManager contestCalculateRankManager; + + /** + * @param isOpenSealRank + * @param removeStar + * @param currentUserId + * @param concernedList + * @param contest + * @param currentPage + * @param limit + * @desc 获取ACM比赛排行榜,有分页 + */ + public IPage getContestACMRankPage(Boolean isOpenSealRank, + Boolean removeStar, + String currentUserId, + List concernedList, + List externalCidList, + Contest contest, + int currentPage, + int limit){ + + // 进行排序计算 + List orderResultList = contestCalculateRankManager.calcACMRank(isOpenSealRank, + removeStar, + contest, + currentUserId, + concernedList, + externalCidList); + + // 计算好排行榜,然后进行分页 + Page page = new Page<>(currentPage, limit); + int count = orderResultList.size(); + List pageList = new ArrayList<>(); + //计算当前页第一条数据的下标 + int currId = currentPage > 1 ? (currentPage - 1) * limit : 0; + for (int i = 0; i < limit && i < count - currId; i++) { + pageList.add(orderResultList.get(currId + i)); + } + page.setSize(limit); + page.setCurrent(currentPage); + page.setTotal(count); + page.setRecords(pageList); + + return page; + } + + + /** + * @param isOpenSealRank + * @param removeStar + * @param currentUserId + * @param concernedList + * @param contest + * @param currentPage + * @param limit + * @desc 获取OI比赛排行榜,有分页 + */ + public IPage getContestOIRankPage(Boolean isOpenSealRank, + Boolean removeStar, + String currentUserId, + List concernedList, + List externalCidList, + Contest contest, + int currentPage, + int limit) { + + List orderResultList = contestCalculateRankManager.calcOIRank(isOpenSealRank, + removeStar, + contest, + currentUserId, + concernedList, + externalCidList); + + // 计算好排行榜,然后进行分页 + Page page = new Page<>(currentPage, limit); + int count = orderResultList.size(); + List pageList = new ArrayList<>(); + //计算当前页第一条数据的下标 + int currId = currentPage > 1 ? (currentPage - 1) * limit : 0; + for (int i = 0; i < limit && i < count - currId; i++) { + pageList.add(orderResultList.get(currId + i)); + } + page.setSize(limit); + page.setCurrent(currentPage); + page.setTotal(count); + page.setRecords(pageList); + return page; + } + + /** + * + * @param isOpenSealRank + * @param removeStar + * @param contest + * @param currentUserId + * @param concernedList + * @param externalCidList + * @param useCache + * @param cacheTime + * @desc 获取ACM比赛排行榜外榜 + */ + public List getACMContestScoreboard(Boolean isOpenSealRank, + Boolean removeStar, + Contest contest, + String currentUserId, + List concernedList, + List externalCidList, + Boolean useCache, + Long cacheTime) { + if (CollectionUtil.isNotEmpty(externalCidList)){ + useCache = false; + } + return contestCalculateRankManager.calcACMRank(isOpenSealRank, + removeStar, + contest, + currentUserId, + concernedList, + externalCidList, + useCache, + cacheTime); + } + + /** + * + * @param isOpenSealRank + * @param removeStar + * @param contest + * @param currentUserId + * @param concernedList + * @param useCache + * @param cacheTime + * @desc 获取OI比赛排行榜外榜 + */ + public List getOIContestScoreboard(Boolean isOpenSealRank, + Boolean removeStar, + Contest contest, + String currentUserId, + List concernedList, + List externalCidList, + Boolean useCache, + Long cacheTime) { + + if (CollectionUtil.isNotEmpty(externalCidList)){ + useCache = false; + } + return contestCalculateRankManager.calcOIRank(isOpenSealRank, + removeStar, + contest, + currentUserId, + concernedList, + externalCidList, + useCache, + cacheTime); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestScoreboardManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestScoreboardManager.java new file mode 100644 index 0000000..ac3bac9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ContestScoreboardManager.java @@ -0,0 +1,150 @@ +package top.hcode.hoj.manager.oj; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.pojo.dto.ContestRankDto; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.contest.ContestProblemEntityService; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.validator.ContestValidator; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 20:02 + * @Description: + */ +@Component +public class ContestScoreboardManager { + + @Resource + private ContestEntityService contestEntityService; + + @Resource + private ContestProblemEntityService contestProblemEntityService; + + @Resource + private ContestValidator contestValidator; + + @Resource + private ContestRankManager contestRankManager; + + public ContestOutsideInfo getContestOutsideInfo(Long cid) throws StatusNotFoundException, StatusForbiddenException { + + ContestVo contestInfo = contestEntityService.getContestInfoById(cid); + + if (contestInfo == null) { + throw new StatusNotFoundException("访问错误:该比赛不存在!"); + } + + if (!contestInfo.getOpenRank()) { + throw new StatusForbiddenException("本场比赛未开启外榜,禁止访问外榜!"); + } + + // 获取本场比赛的状态 + if (contestInfo.getStatus().equals(Constants.Contest.STATUS_SCHEDULED.getCode())) { + throw new StatusForbiddenException("本场比赛正在筹备中,禁止访问外榜!"); + } + + contestInfo.setNow(new Date()); + ContestOutsideInfo contestOutsideInfo = new ContestOutsideInfo(); + contestOutsideInfo.setContest(contestInfo); + + QueryWrapper contestProblemQueryWrapper = new QueryWrapper<>(); + contestProblemQueryWrapper.eq("cid", cid).orderByAsc("display_id"); + List contestProblemList = contestProblemEntityService.list(contestProblemQueryWrapper); + contestOutsideInfo.setProblemList(contestProblemList); + + return contestOutsideInfo; + } + + + public List getContestOutsideScoreboard(ContestRankDto contestRankDto) throws StatusFailException, StatusForbiddenException { + + Long cid = contestRankDto.getCid(); + List concernedList = contestRankDto.getConcernedList(); + Boolean removeStar = contestRankDto.getRemoveStar(); + Boolean forceRefresh = contestRankDto.getForceRefresh(); + + if (cid == null) { + throw new StatusFailException("错误:比赛id不能为空"); + } + if (removeStar == null) { + removeStar = false; + } + if (forceRefresh == null) { + forceRefresh = false; + } + + // 获取本场比赛的状态 + Contest contest = contestEntityService.getById(cid); + + if (contest == null) { + throw new StatusFailException("访问错误:该比赛不存在!"); + } + + if (!contest.getOpenRank()) { + throw new StatusForbiddenException("本场比赛未开启外榜,禁止访问外榜!"); + } + + if (contest.getStatus().equals(Constants.Contest.STATUS_SCHEDULED.getCode())) { + throw new StatusForbiddenException("本场比赛正在筹备中,禁止访问外榜!"); + } + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + // 超级管理员或者该比赛的创建者,则为比赛管理者 + boolean isRoot = false; + String currentUid = null; + + if (userRolesVo != null) { + currentUid = userRolesVo.getUid(); + isRoot = SecurityUtils.getSubject().hasRole("root"); + // 不是比赛创建者或者超管无权限开启强制实时榜单 + if (!isRoot && !contest.getUid().equals(currentUid)) { + forceRefresh = false; + } + } + + // 校验该比赛是否开启了封榜模式,超级管理员和比赛创建者可以直接看到实际榜单 + boolean isOpenSealRank = contestValidator.isSealRank(currentUid, contest, forceRefresh, isRoot); + + if (contest.getType().intValue() == Constants.Contest.TYPE_ACM.getCode()) { + + + // 获取ACM比赛排行榜外榜 + return contestRankManager.getACMContestScoreboard(isOpenSealRank, + removeStar, + contest, + null, + concernedList, + contestRankDto.getExternalCidList(), + !forceRefresh, + 15L); // 默认15s缓存 + + } else { + // 获取OI比赛排行榜外榜 + return contestRankManager.getOIContestScoreboard(isOpenSealRank, + removeStar, + contest, + null, + concernedList, + contestRankDto.getExternalCidList(), + !forceRefresh, + 15L); // 默认15s缓存 + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/DiscussionManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/DiscussionManager.java new file mode 100644 index 0000000..86c6f44 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/DiscussionManager.java @@ -0,0 +1,363 @@ +package top.hcode.hoj.manager.oj; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import top.hcode.hoj.annotation.HOJAccessEnum; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.dao.discussion.DiscussionEntityService; +import top.hcode.hoj.dao.discussion.DiscussionLikeEntityService; +import top.hcode.hoj.dao.discussion.DiscussionReportEntityService; +import top.hcode.hoj.dao.problem.CategoryEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.user.UserAcproblemEntityService; +import top.hcode.hoj.exception.AccessException; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.DiscussionLike; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.entity.problem.Category; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; +import top.hcode.hoj.pojo.vo.ConfigVo; +import top.hcode.hoj.pojo.vo.DiscussionVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; +import top.hcode.hoj.validator.AccessValidator; +import top.hcode.hoj.validator.GroupValidator; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 15:21 + * @Description: + */ +@Component +public class DiscussionManager { + @Autowired + private DiscussionEntityService discussionEntityService; + + @Autowired + private DiscussionLikeEntityService discussionLikeEntityService; + + @Autowired + private CategoryEntityService categoryEntityService; + + @Autowired + private DiscussionReportEntityService discussionReportEntityService; + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private UserAcproblemEntityService userAcproblemEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private GroupValidator groupValidator; + + @Autowired + private AccessValidator accessValidator; + + @Autowired + private ConfigVo configVo; + + public IPage getDiscussionList(Integer limit, + Integer currentPage, + Integer categoryId, + String pid, + boolean onlyMine, + String keyword, + boolean admin) { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + QueryWrapper discussionQueryWrapper = new QueryWrapper<>(); + + IPage iPage = new Page<>(currentPage, limit); + + if (categoryId != null) { + discussionQueryWrapper.eq("category_id", categoryId); + } + + if (!StringUtils.isEmpty(keyword)) { + + final String key = keyword.trim(); + + discussionQueryWrapper.and(wrapper -> wrapper.like("title", key).or() + .like("author", key).or() + .like("id", key).or() + .like("description", key)); + } + + boolean isAdmin = SecurityUtils.getSubject().hasRole("root") + || SecurityUtils.getSubject().hasRole("problem_admin") + || SecurityUtils.getSubject().hasRole("admin"); + + if (!StringUtils.isEmpty(pid)) { + discussionQueryWrapper.eq("pid", pid); + } + + if (!(admin && isAdmin)) { + discussionQueryWrapper.isNull("gid"); + } + + discussionQueryWrapper + .eq(!(admin && isAdmin), "status", 0) + .orderByDesc("top_priority") + .orderByDesc("gmt_create") + .orderByDesc("like_num") + .orderByDesc("view_num"); + + if (onlyMine && userRolesVo != null) { + discussionQueryWrapper.eq("uid", userRolesVo.getUid()); + } + IPage discussionIPage = discussionEntityService.page(iPage, discussionQueryWrapper); + List records = discussionIPage.getRecords(); + if (!CollectionUtils.isEmpty(records)) { + for (Discussion discussion : records) { + if (userRolesVo == null) { + discussion.setContent(null); + } else if (!userRolesVo.getUid().equals(discussion.getUid())) { + discussion.setContent(null); + } + } + } + return discussionIPage; + } + + public DiscussionVo getDiscussion(Integer did) throws StatusNotFoundException, StatusForbiddenException, AccessException { + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Discussion discussion = discussionEntityService.getById(did); + + if (discussion.getGid() != null) { + accessValidator.validateAccess(HOJAccessEnum.GROUP_DISCUSSION); + if (!isRoot && !discussion.getUid().equals(userRolesVo.getUid()) && !groupValidator.isGroupMember(userRolesVo.getUid(), discussion.getGid())) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } else { + accessValidator.validateAccess(HOJAccessEnum.PUBLIC_DISCUSSION); + } + + String uid = null; + + if (userRolesVo != null) { + uid = userRolesVo.getUid(); + } + + DiscussionVo discussionVo = discussionEntityService.getDiscussion(did, uid); + + if (discussionVo == null) { + throw new StatusNotFoundException("对不起,该讨论不存在!"); + } + + if (discussionVo.getStatus() == 1) { + throw new StatusForbiddenException("对不起,该讨论已被封禁!"); + } + + // 浏览量+1 + UpdateWrapper discussionUpdateWrapper = new UpdateWrapper<>(); + discussionUpdateWrapper.setSql("view_num=view_num+1").eq("id", discussionVo.getId()); + discussionEntityService.update(discussionUpdateWrapper); + discussionVo.setViewNum(discussionVo.getViewNum() + 1); + + return discussionVo; + } + + public void addDiscussion(Discussion discussion) throws StatusFailException, StatusForbiddenException, StatusNotFoundException { + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin"); + boolean isAdmin = SecurityUtils.getSubject().hasRole("admin"); + + String problemId = discussion.getPid(); + if (problemId != null) { + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("problem_id", problemId); + int problemCount = problemEntityService.count(problemQueryWrapper); + if (problemCount == 0) { + throw new StatusNotFoundException("对不起,该题目不存在,无法发布题解!"); + } + } + + if (discussion.getGid() != null) { + if (!isRoot && !discussion.getUid().equals(userRolesVo.getUid()) && !groupValidator.isGroupMember(userRolesVo.getUid(), discussion.getGid())) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } + + // 除管理员外 其它用户需要AC20道题目以上才可发帖,同时限制一天只能发帖5次 + if (!isRoot && !isProblemAdmin && !isAdmin) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("uid", userRolesVo.getUid()).select("distinct pid"); + int userAcProblemCount = userAcproblemEntityService.count(queryWrapper); + + if (userAcProblemCount < configVo.getDefaultCreateDiscussionACInitValue()) { + throw new StatusForbiddenException("对不起,您暂时不能评论!请先去提交题目通过" + configVo.getDefaultCreateDiscussionACInitValue() + "道以上!"); + } + + String lockKey = Constants.Account.DISCUSSION_ADD_NUM_LOCK.getCode() + userRolesVo.getUid(); + Integer num = (Integer) redisUtils.get(lockKey); + if (num == null) { + redisUtils.set(lockKey, 1, 3600 * 24); + } else if (num >= configVo.getDefaultCreateDiscussionDailyLimit()) { + throw new StatusForbiddenException("对不起,您今天发帖次数已超过" + configVo.getDefaultCreateDiscussionDailyLimit() + "次,已被限制!"); + } else { + redisUtils.incr(lockKey, 1); + } + } + + discussion.setAuthor(userRolesVo.getUsername()) + .setAvatar(userRolesVo.getAvatar()) + .setUid(userRolesVo.getUid()); + + if (SecurityUtils.getSubject().hasRole("root")) { + discussion.setRole("root"); + } else if (SecurityUtils.getSubject().hasRole("admin") + || SecurityUtils.getSubject().hasRole("problem_admin")) { + discussion.setRole("admin"); + } else { + // 如果不是管理员角色,一律重置为不置顶 + discussion.setTopPriority(false); + } + + boolean isOk = discussionEntityService.saveOrUpdate(discussion); + if (!isOk) { + throw new StatusFailException("发布失败,请重新尝试!"); + } + } + + + public void updateDiscussion(Discussion discussion) throws StatusFailException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + if (!isRoot && !discussion.getUid().equals(userRolesVo.getUid()) + && !(discussion.getGid() != null && groupValidator.isGroupAdmin(userRolesVo.getUid(), discussion.getGid()))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + boolean isOk = discussionEntityService.updateById(discussion); + if (!isOk) { + throw new StatusFailException("修改失败"); + } + } + + public void removeDiscussion(Integer did) throws StatusFailException, StatusForbiddenException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Discussion discussion = discussionEntityService.getById(did); + + if (!isRoot && !discussion.getUid().equals(userRolesVo.getUid()) + && !(discussion.getGid() != null && groupValidator.isGroupAdmin(userRolesVo.getUid(), discussion.getGid()))) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + + UpdateWrapper discussionUpdateWrapper = new UpdateWrapper().eq("id", did); + // 如果不是是管理员,则需要附加当前用户的uid条件 + if (!SecurityUtils.getSubject().hasRole("root") + && !SecurityUtils.getSubject().hasRole("admin") + && !SecurityUtils.getSubject().hasRole("problem_admin")) { + discussionUpdateWrapper.eq("uid", userRolesVo.getUid()); + } + boolean isOk = discussionEntityService.remove(discussionUpdateWrapper); + if (!isOk) { + throw new StatusFailException("删除失败,无权限或者该讨论不存在"); + } + + } + + @Transactional(rollbackFor = Exception.class) + public void addDiscussionLike(Integer did, boolean toLike) throws StatusFailException, StatusForbiddenException { + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + Discussion discussion = discussionEntityService.getById(did); + if (discussion.getGid() != null) { + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + if (!isRoot && !discussion.getUid().equals(userRolesVo.getUid()) + && !groupValidator.isGroupMember(userRolesVo.getUid(), discussion.getGid())) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } + + QueryWrapper discussionLikeQueryWrapper = new QueryWrapper<>(); + discussionLikeQueryWrapper.eq("did", did).eq("uid", userRolesVo.getUid()); + + DiscussionLike discussionLike = discussionLikeEntityService.getOne(discussionLikeQueryWrapper, false); + + if (toLike) { // 添加点赞 + if (discussionLike == null) { // 如果不存在就添加 + boolean isSave = discussionLikeEntityService.saveOrUpdate(new DiscussionLike().setUid(userRolesVo.getUid()).setDid(did)); + if (!isSave) { + throw new StatusFailException("点赞失败,请重试尝试!"); + } + } + // 点赞+1 + UpdateWrapper discussionUpdateWrapper = new UpdateWrapper<>(); + discussionUpdateWrapper.eq("id", discussion.getId()) + .setSql("like_num=like_num+1"); + discussionEntityService.update(discussionUpdateWrapper); + // 当前帖子要不是点赞者的 才发送点赞消息 + if (!userRolesVo.getUsername().equals(discussion.getAuthor())) { + discussionEntityService.updatePostLikeMsg(discussion.getUid(), + userRolesVo.getUid(), + did, + discussion.getGid()); + } + } else { // 取消点赞 + if (discussionLike != null) { // 如果存在就删除 + boolean isDelete = discussionLikeEntityService.removeById(discussionLike.getId()); + if (!isDelete) { + throw new StatusFailException("取消点赞失败,请重试尝试!"); + } + } + // 点赞-1 + UpdateWrapper discussionUpdateWrapper = new UpdateWrapper<>(); + discussionUpdateWrapper.setSql("like_num=like_num-1").eq("id", did); + discussionEntityService.update(discussionUpdateWrapper); + } + + } + + public List getDiscussionCategory() { + return categoryEntityService.list(); + } + + public void addDiscussionReport(DiscussionReport discussionReport) throws StatusFailException { + boolean isOk = discussionReportEntityService.saveOrUpdate(discussionReport); + if (!isOk) { + throw new StatusFailException("举报失败,请重新尝试"); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/HomeManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/HomeManager.java new file mode 100644 index 0000000..d04220c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/HomeManager.java @@ -0,0 +1,147 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.text.UnicodeUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.pojo.entity.common.File; +import top.hcode.hoj.pojo.vo.ACMRankVo; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.pojo.vo.ConfigVo; +import top.hcode.hoj.pojo.vo.ContestVo; +import top.hcode.hoj.dao.common.AnnouncementEntityService; +import top.hcode.hoj.dao.common.FileEntityService; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.user.UserRecordEntityService; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 21:00 + * @Description: + */ +@Component +public class HomeManager { + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private ConfigVo configVo; + + @Autowired + private AnnouncementEntityService announcementEntityService; + + @Autowired + + private UserRecordEntityService userRecordEntityService; + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private FileEntityService fileEntityService; + + /** + * @MethodName getRecentContest + * @Params * @param null + * @Description 获取最近14天的比赛信息列表 + * @Return CommonResult + * @Since 2020/12/29 + */ + public List getRecentContest() { + return contestEntityService.getWithinNext14DaysContests(); + } + + + /** + * @MethodName getHomeCarousel + * @Params + * @Description 获取主页轮播图 + * @Return + * @Since 2021/9/4 + */ + public List> getHomeCarousel() { + List fileList = fileEntityService.queryCarouselFileList(); + List> apiList = fileList.stream().map(f -> { + HashMap param = new HashMap<>(2); + param.put("id", f.getId()); + param.put("url", Constants.File.IMG_API.getPath() + f.getName()); + return param; + }).collect(Collectors.toList()); + return apiList; + } + + + /** + * @MethodName getRecentSevenACRank + * @Params * @param null + * @Description 获取最近7天用户做题榜单 + * @Return + * @Since 2021/1/15 + */ + public List getRecentSevenACRank() { + return userRecordEntityService.getRecent7ACRank(); + } + + + /** + * @MethodName getRecentOtherContest + * @Params * @param null + * @Description 获取最近其他OJ的比赛信息列表 + * @Return CommonResult + * @Since 2020/1/15 + */ + public List> getRecentOtherContest() { + String redisKey = Constants.Schedule.RECENT_OTHER_CONTEST.getCode(); + // 从redis获取比赛列表 + return (ArrayList>) redisUtils.get(redisKey); + } + + + /** + * @MethodName getCommonAnnouncement + * @Params * @param null + * @Description 获取主页公告列表 + * @Return CommonResult + * @Since 2020/12/29 + */ + public IPage getCommonAnnouncement(Integer limit, Integer currentPage) { + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + return announcementEntityService.getAnnouncementList(limit, currentPage, true); + } + + /** + * @MethodName getWebConfig + * @Params * @param null + * @Description 获取网站的基础配置。例如名字,缩写名字等等。 + * @Return CommonResult + * @Since 2020/12/29 + */ + public Map getWebConfig() { + + return MapUtil.builder().put("baseUrl", UnicodeUtil.toString(configVo.getBaseUrl())) + .put("name", UnicodeUtil.toString(configVo.getName())) + .put("shortName", UnicodeUtil.toString(configVo.getShortName())) + .put("register", configVo.getRegister()) + .put("recordName", UnicodeUtil.toString(configVo.getRecordName())) + .put("recordUrl", UnicodeUtil.toString(configVo.getRecordUrl())) + .put("description", UnicodeUtil.toString(configVo.getDescription())) + .put("email", UnicodeUtil.toString(configVo.getEmailUsername())) + .put("projectName", UnicodeUtil.toString(configVo.getProjectName())) + .put("projectUrl", UnicodeUtil.toString(configVo.getProjectUrl())) + .put("openPublicDiscussion", configVo.getOpenPublicDiscussion()) + .put("openGroupDiscussion", configVo.getOpenGroupDiscussion()) + .put("openContestComment", configVo.getOpenContestComment()) + .map(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/JudgeManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/JudgeManager.java new file mode 100644 index 0000000..5c4f650 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/JudgeManager.java @@ -0,0 +1,641 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.util.IdUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import top.hcode.hoj.annotation.HOJAccessEnum; +import top.hcode.hoj.common.exception.*; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.contest.ContestRecordEntityService; +import top.hcode.hoj.dao.judge.JudgeCaseEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.user.UserAcproblemEntityService; +import top.hcode.hoj.exception.AccessException; +import top.hcode.hoj.judge.remote.RemoteJudgeDispatcher; +import top.hcode.hoj.judge.self.JudgeDispatcher; +import top.hcode.hoj.pojo.dto.*; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.IpUtils; +import top.hcode.hoj.utils.RedisUtils; +import top.hcode.hoj.validator.AccessValidator; +import top.hcode.hoj.validator.ContestValidator; +import top.hcode.hoj.validator.GroupValidator; +import top.hcode.hoj.validator.JudgeValidator; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 11:12 + * @Description: + */ +@Component +public class JudgeManager { + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private JudgeCaseEntityService judgeCaseEntityService; + + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private ContestRecordEntityService contestRecordEntityService; + + @Autowired + private UserAcproblemEntityService userAcproblemEntityService; + + @Autowired + private JudgeDispatcher judgeDispatcher; + + @Autowired + private RemoteJudgeDispatcher remoteJudgeDispatcher; + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private JudgeValidator judgeValidator; + + @Autowired + private ContestValidator contestValidator; + + @Autowired + private BeforeDispatchInitManager beforeDispatchInitManager; + + @Autowired + private GroupValidator groupValidator; + + @Autowired + private AccessValidator accessValidator; + + @Autowired + private ConfigVo configVo; + + /** + * @MethodName submitProblemJudge + * @Description 核心方法 判题通过openfeign调用判题系统服务 + * @Since 2020/10/30 + */ + public Judge submitProblemJudge(SubmitJudgeDto judgeDto) throws StatusForbiddenException, StatusFailException, StatusNotFoundException, StatusAccessDeniedException, AccessException { + + judgeValidator.validateSubmissionInfo(judgeDto); + + // 需要获取一下该token对应用户的数据 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isContestSubmission = judgeDto.getCid() != 0; + boolean isTrainingSubmission = judgeDto.getTid() != null && judgeDto.getTid() != 0; + + if (!isContestSubmission && configVo.getDefaultSubmitInterval() > 0) { // 非比赛提交有限制限制 + String lockKey = Constants.Account.SUBMIT_NON_CONTEST_LOCK.getCode() + userRolesVo.getUid(); + long count = redisUtils.incr(lockKey, 1); + if (count > 1) { + throw new StatusForbiddenException("对不起,您的提交频率过快,请稍后再尝试!"); + } + redisUtils.expire(lockKey, configVo.getDefaultSubmitInterval()); + } + + HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest(); + // 将提交先写入数据库,准备调用判题服务器 + Judge judge = new Judge(); + judge.setShare(false) // 默认设置代码为单独自己可见 + .setCode(judgeDto.getCode()) + .setCid(judgeDto.getCid()) + .setGid(judgeDto.getGid()) + .setLanguage(judgeDto.getLanguage()) + .setLength(judgeDto.getCode().length()) + .setUid(userRolesVo.getUid()) + .setUsername(userRolesVo.getUsername()) + .setStatus(Constants.Judge.STATUS_PENDING.getStatus()) // 开始进入判题队列 + .setSubmitTime(new Date()) + .setVersion(0) + .setIp(IpUtils.getUserIpAddr(request)); + + // 如果比赛id不等于0,则说明为比赛提交 + if (isContestSubmission) { + beforeDispatchInitManager.initContestSubmission(judgeDto.getCid(), judgeDto.getPid(), userRolesVo, judge); + } else if (isTrainingSubmission) { + beforeDispatchInitManager.initTrainingSubmission(judgeDto.getTid(), judgeDto.getPid(), userRolesVo, judge); + } else { // 如果不是比赛提交和训练提交 + beforeDispatchInitManager.initCommonSubmission(judgeDto.getPid(), judge); + } + + // 将提交加入任务队列 + if (judgeDto.getIsRemote()) { // 如果是远程oj判题 + remoteJudgeDispatcher.sendTask(judge.getSubmitId(), + judge.getPid(), + judge.getDisplayPid(), + isContestSubmission, + false); + } else { + judgeDispatcher.sendTask(judge.getSubmitId(), + judge.getPid(), + isContestSubmission); + } + + return judge; + } + + public String submitProblemTestJudge(TestJudgeDto testJudgeDto) throws AccessException, + StatusFailException, StatusForbiddenException, StatusSystemErrorException { + judgeValidator.validateTestJudgeInfo(testJudgeDto); + // 需要获取一下该token对应用户的数据 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + String lockKey = Constants.Account.TEST_JUDGE_LOCK.getCode() + userRolesVo.getUid(); + long count = redisUtils.incr(lockKey, 1); + if (count > 1) { + throw new StatusForbiddenException("对不起,您使用在线调试过于频繁,请稍后再尝试!"); + } + redisUtils.expire(lockKey, 3); + + Problem problem = problemEntityService.getById(testJudgeDto.getPid()); + if (problem == null) { + throw new StatusFailException("当前题目不存在!不支持在线调试!"); + } + + String uniqueKey = "TEST_JUDGE_" + IdUtil.simpleUUID(); + TestJudgeReq testJudgeReq = new TestJudgeReq(); + testJudgeReq.setMemoryLimit(problem.getMemoryLimit()) + .setTimeLimit(problem.getTimeLimit()) + .setStackLimit(problem.getStackLimit()) + .setCode(testJudgeDto.getCode()) + .setLanguage(testJudgeDto.getLanguage()) + .setUniqueKey(uniqueKey) + .setExpectedOutput(testJudgeDto.getExpectedOutput()) + .setTestCaseInput(testJudgeDto.getUserInput()) + .setProblemJudgeMode(problem.getJudgeMode()) + .setIsRemoveEndBlank(problem.getIsRemoveEndBlank() || problem.getIsRemote()); + String userExtraFile = problem.getUserExtraFile(); + if (!StringUtils.isEmpty(userExtraFile)) { + testJudgeReq.setExtraFile((HashMap) JSONUtil.toBean(userExtraFile, Map.class)); + } + judgeDispatcher.sendTestJudgeTask(testJudgeReq); + redisUtils.set(uniqueKey, TestJudgeRes.builder() + .status(Constants.Judge.STATUS_PENDING.getStatus()) + .build(), 10 * 60); + return uniqueKey; + } + + + public TestJudgeVo getTestJudgeResult(String testJudgeKey) throws StatusFailException { + TestJudgeRes testJudgeRes = (TestJudgeRes) redisUtils.get(testJudgeKey); + if (testJudgeRes == null) { + throw new StatusFailException("查询错误!当前在线调试任务不存在!"); + } + TestJudgeVo testJudgeVo = new TestJudgeVo(); + testJudgeVo.setStatus(testJudgeRes.getStatus()); + if (Constants.Judge.STATUS_PENDING.getStatus().equals(testJudgeRes.getStatus())) { + return testJudgeVo; + } + testJudgeVo.setUserInput(testJudgeRes.getInput()); + testJudgeVo.setUserOutput(testJudgeRes.getStdout()); + testJudgeVo.setExpectedOutput(testJudgeRes.getExpectedOutput()); + testJudgeVo.setMemory(testJudgeRes.getMemory()); + testJudgeVo.setTime(testJudgeRes.getTime()); + testJudgeVo.setStderr(testJudgeRes.getStderr()); + testJudgeVo.setProblemJudgeMode(testJudgeRes.getProblemJudgeMode()); + redisUtils.del(testJudgeKey); + return testJudgeVo; + } + + + /** + * @MethodName resubmit + * @Description 调用判题服务器提交失败超过60s后,用户点击按钮重新提交判题进入的方法 + * @Since 2021/2/12 + */ + @Transactional(rollbackFor = Exception.class) + public Judge resubmit(Long submitId) throws StatusNotFoundException { + + Judge judge = judgeEntityService.getById(submitId); + if (judge == null) { + throw new StatusNotFoundException("此提交数据不存在!"); + } + + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.select("id", "is_remote", "problem_id") + .eq("id", judge.getPid()); + Problem problem = problemEntityService.getOne(problemQueryWrapper); + + // 如果是非比赛题目 + if (judge.getCid() == 0) { + // 重判前,需要将该题目对应记录表一并更新 + // 如果该题已经是AC通过状态,更新该题目的用户ac做题表 user_acproblem + if (judge.getStatus().intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus().intValue()) { + QueryWrapper userAcproblemQueryWrapper = new QueryWrapper<>(); + userAcproblemQueryWrapper.eq("submit_id", judge.getSubmitId()); + userAcproblemEntityService.remove(userAcproblemQueryWrapper); + } + } else { + if (problem.getIsRemote()) { + // 将对应比赛记录设置成默认值 + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("submit_id", submitId).setSql("status=null,score=null"); + contestRecordEntityService.update(updateWrapper); + } else { + throw new StatusNotFoundException("错误!非vJudge题目在比赛过程无权限重新提交"); + } + } + + boolean isHasSubmitIdRemoteRejudge = false; + if (Objects.nonNull(judge.getVjudgeSubmitId()) && + (judge.getStatus().intValue() == Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus() + || judge.getStatus().intValue() == Constants.Judge.STATUS_PENDING.getStatus() + || judge.getStatus().intValue() == Constants.Judge.STATUS_JUDGING.getStatus() + || judge.getStatus().intValue() == Constants.Judge.STATUS_COMPILING.getStatus() + || judge.getStatus().intValue() == Constants.Judge.STATUS_SYSTEM_ERROR.getStatus())) { + isHasSubmitIdRemoteRejudge = true; + } + + // 重新进入等待队列 + judge.setStatus(Constants.Judge.STATUS_PENDING.getStatus()); + judge.setVersion(judge.getVersion() + 1); + judge.setErrorMessage(null) + .setOiRankScore(null) + .setScore(null) + .setTime(null) + .setJudger("") + .setMemory(null); + judgeEntityService.updateById(judge); + + // 将提交加入任务队列 + if (problem.getIsRemote()) { // 如果是远程oj判题 + remoteJudgeDispatcher.sendTask(judge.getSubmitId(), + judge.getPid(), + problem.getProblemId(), + judge.getCid() != 0, + isHasSubmitIdRemoteRejudge); + } else { + judgeDispatcher.sendTask(judge.getSubmitId(), + judge.getPid(), + judge.getCid() != 0); + } + return judge; + } + + + /** + * @MethodName getSubmission + * @Description 获取单个提交记录的详情 + * @Since 2021/1/2 + */ + public SubmissionInfoVo getSubmission(Long submitId) throws StatusNotFoundException, StatusAccessDeniedException { + + Judge judge = judgeEntityService.getById(submitId); + if (judge == null) { + throw new StatusNotFoundException("此提交数据不存在!"); + } + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); // 是否为超级管理员 + + // 清空vj信息 + judge.setVjudgeUsername(null); + judge.setVjudgeSubmitId(null); + judge.setVjudgePassword(null); + + // 超级管理员与题目管理员有权限查看代码 + // 如果不是本人或者并未分享代码,则不可查看 + // 当此次提交代码不共享 + // 比赛提交只有比赛创建者和root账号可看代码 + + SubmissionInfoVo submissionInfoVo = new SubmissionInfoVo(); + + if (judge.getCid() != 0) { + if (userRolesVo == null) { + throw new StatusAccessDeniedException("请先登录!"); + } + Contest contest = contestEntityService.getById(judge.getCid()); + if (!isRoot && !userRolesVo.getUid().equals(contest.getUid()) + && !(judge.getGid() != null && groupValidator.isGroupRoot(userRolesVo.getUid(), judge.getGid()))) { + // 如果是比赛,那么还需要判断是否为封榜,比赛管理员和超级管理员可以有权限查看(ACM题目除外) + if (contest.getType().intValue() == Constants.Contest.TYPE_OI.getCode() + && contestValidator.isSealRank(userRolesVo.getUid(), contest, true, false)) { + submissionInfoVo.setSubmission(new Judge().setStatus(Constants.Judge.STATUS_SUBMITTED_UNKNOWN_RESULT.getStatus())); + return submissionInfoVo; + } + // 不是本人的话不能查看代码、时间,空间,长度 + if (!userRolesVo.getUid().equals(judge.getUid())) { + judge.setCode(null); + // 如果还在比赛时间,不是本人不能查看时间,空间,长度,错误提示信息 + if (contest.getStatus().intValue() == Constants.Contest.STATUS_RUNNING.getCode()) { + judge.setTime(null); + judge.setMemory(null); + judge.setLength(null); + judge.setErrorMessage("The contest is in progress. You are not allowed to view other people's error information."); + } + } + } + + // 团队比赛的提交代码 如果不是超管,需要检查网站是否开启隐藏代码功能 + if (!isRoot && contest.getIsGroup() && judge.getCode() != null) { + try { + accessValidator.validateAccess(HOJAccessEnum.HIDE_NON_CONTEST_SUBMISSION_CODE); + } catch (AccessException e) { + judge.setCode("Because the super administrator has enabled " + + "the function of not viewing the submitted code outside the contest of master station, \n" + + "the code of this submission details has been hidden."); + } + } + + } else { + boolean isProblemAdmin = SecurityUtils.getSubject().hasRole("problem_admin");// 是否为题目管理员 + if (!judge.getShare() + && !isRoot + && !isProblemAdmin + && !(judge.getGid() != null + && groupValidator.isGroupRoot(userRolesVo.getUid(), judge.getGid()))) { + if (userRolesVo != null) { // 当前是登陆状态 + // 需要判断是否为当前登陆用户自己的提交代码 + if (!judge.getUid().equals(userRolesVo.getUid())) { + judge.setCode(null); + } + } else { // 不是登陆状态,就直接无权限查看代码 + judge.setCode(null); + } + } + // 比赛外的提交代码 如果不是超管或题目管理员,需要检查网站是否开启隐藏代码功能 + if (!isRoot && !isProblemAdmin && judge.getCode() != null) { + try { + accessValidator.validateAccess(HOJAccessEnum.HIDE_NON_CONTEST_SUBMISSION_CODE); + } catch (AccessException e) { + judge.setCode("Because the super administrator has enabled " + + "the function of not viewing the submitted code outside the contest of master station, \n" + + "the code of this submission details has been hidden."); + } + } + } + + Problem problem = problemEntityService.getById(judge.getPid()); + + // 只允许用户查看ce错误,sf错误,se错误信息提示 + if (judge.getStatus().intValue() != Constants.Judge.STATUS_COMPILE_ERROR.getStatus() && + judge.getStatus().intValue() != Constants.Judge.STATUS_SYSTEM_ERROR.getStatus() && + judge.getStatus().intValue() != Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()) { + judge.setErrorMessage("The error message does not support viewing."); + } + submissionInfoVo.setSubmission(judge); + submissionInfoVo.setCodeShare(problem.getCodeShare()); + + return submissionInfoVo; + + } + + /** + * @MethodName updateSubmission + * @Description 修改单个提交详情的分享权限 + * @Since 2021/1/2 + */ + public void updateSubmission(Judge judge) throws StatusForbiddenException, StatusFailException { + + // 需要获取一下该token对应用户的数据 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + if (!userRolesVo.getUid().equals(judge.getUid())) { // 判断该提交是否为当前用户的 + throw new StatusForbiddenException("对不起,您不能修改他人的代码分享权限!"); + } + + Judge judgeInfo = judgeEntityService.getById(judge.getSubmitId()); + if (judgeInfo.getCid() != 0) { // 如果是比赛提交,不可分享! + throw new StatusForbiddenException("对不起,您不能分享比赛题目的提交代码!"); + } + judgeInfo.setShare(judge.getShare()); + boolean isOk = judgeEntityService.updateById(judgeInfo); + if (!isOk) { + throw new StatusFailException("修改代码权限失败!"); + } + } + + /** + * @MethodName getJudgeList + * @Description 通用查询判题记录列表 + * @Since 2020/10/29 + */ + public IPage getJudgeList(Integer limit, + Integer currentPage, + Boolean onlyMine, + String searchPid, + Integer searchStatus, + String searchUsername, + Boolean completeProblemID, + Long gid) throws StatusAccessDeniedException { + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 30; + + String uid = null; + // 只查看当前用户的提交 + if (onlyMine) { + // 需要获取一下该token对应用户的数据(有token便能获取到) + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + if (userRolesVo == null) { + throw new StatusAccessDeniedException("当前用户数据为空,请您重新登陆!"); + } + uid = userRolesVo.getUid(); + } + if (searchPid != null) { + searchPid = searchPid.trim(); + } + if (searchUsername != null) { + searchUsername = searchUsername.trim(); + } + + return judgeEntityService.getCommonJudgeList(limit, + currentPage, + searchPid, + searchStatus, + searchUsername, + uid, + completeProblemID, + gid); + } + + + /** + * @MethodName checkJudgeResult + * @Description 对提交列表状态为Pending和Judging的提交进行更新检查 + * @Since 2021/1/3 + */ + public HashMap checkCommonJudgeResult(SubmitIdListDto submitIdListDto) { + + List submitIds = submitIdListDto.getSubmitIds(); + + if (CollectionUtils.isEmpty(submitIds)) { + return new HashMap<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + // lambada表达式过滤掉code + queryWrapper.select(Judge.class, info -> !info.getColumn().equals("code")).in("submit_id", submitIds); + List judgeList = judgeEntityService.list(queryWrapper); + HashMap result = new HashMap<>(); + for (Judge judge : judgeList) { + judge.setCode(null); + judge.setErrorMessage(null); + judge.setVjudgeUsername(null); + judge.setVjudgeSubmitId(null); + judge.setVjudgePassword(null); + result.put(judge.getSubmitId(), judge); + } + return result; + } + + /** + * @MethodName checkContestJudgeResult + * @Description 需要检查是否为封榜,是否可以查询结果,避免有人恶意查询 + * @Since 2021/6/11 + */ + public HashMap checkContestJudgeResult(SubmitIdListDto submitIdListDto) throws StatusNotFoundException { + + if (submitIdListDto.getCid() == null) { + throw new StatusNotFoundException("查询比赛id不能为空"); + } + + if (CollectionUtils.isEmpty(submitIdListDto.getSubmitIds())) { + return new HashMap<>(); + } + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); // 是否为超级管理员 + + Contest contest = contestEntityService.getById(submitIdListDto.getCid()); + + boolean isContestAdmin = isRoot + || userRolesVo.getUid().equals(contest.getUid()) + || (contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), contest.getGid())); + // 如果是封榜时间且不是比赛管理员和超级管理员 + boolean isSealRank = contestValidator.isSealRank(userRolesVo.getUid(), contest, true, isRoot); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + // lambada表达式过滤掉code + queryWrapper.select(Judge.class, info -> !info.getColumn().equals("code")) + .in("submit_id", submitIdListDto.getSubmitIds()) + .eq("cid", submitIdListDto.getCid()) + .between(isSealRank, "submit_time", contest.getStartTime(), contest.getSealRankTime()); + List judgeList = judgeEntityService.list(queryWrapper); + HashMap result = new HashMap<>(); + for (Judge judge : judgeList) { + judge.setCode(null); + judge.setDisplayPid(null); + judge.setErrorMessage(null); + judge.setVjudgeUsername(null); + judge.setVjudgeSubmitId(null); + judge.setVjudgePassword(null); + if (!judge.getUid().equals(userRolesVo.getUid()) && !isContestAdmin) { + judge.setTime(null); + judge.setMemory(null); + judge.setLength(null); + } + result.put(judge.getSubmitId(), judge); + } + return result; + } + + + /** + * @MethodName getJudgeCase + * @Description 获得指定提交id的测试样例结果,暂不支持查看测试数据,只可看测试点结果,时间,空间,或者IO得分 + * @Since 2020/10/29 + */ + @GetMapping("/get-all-case-result") + public List getALLCaseResult(Long submitId) throws StatusNotFoundException, StatusForbiddenException { + + Judge judge = judgeEntityService.getById(submitId); + + if (judge == null) { + throw new StatusNotFoundException("此提交数据不存在!"); + } + + Problem problem = problemEntityService.getById(judge.getPid()); + + // 如果该题不支持开放测试点结果查看 + if (!problem.getOpenCaseResult()) { + return null; + } + + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + QueryWrapper wrapper = new QueryWrapper<>(); + if (judge.getCid() == 0) { // 非比赛提交 + if (userRolesVo == null) { // 没有登录 + wrapper.select("time", "memory", "score", "status", "user_output"); + } else { + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); // 是否为超级管理员 + if (!isRoot + && !SecurityUtils.getSubject().hasRole("admin") + && !SecurityUtils.getSubject().hasRole("problem_admin")) { // 不是管理员 + wrapper.select("time", "memory", "score", "status", "user_output"); + } + } + } else { // 比赛提交 + if (userRolesVo == null) { + throw new StatusForbiddenException("您还未登录!不可查看比赛提交的测试点详情!"); + } + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); // 是否为超级管理员 + if (!isRoot) { + Contest contest = contestEntityService.getById(judge.getCid()); + // 如果不是比赛管理员 需要受到规则限制 + if (!contest.getUid().equals(userRolesVo.getUid()) || + (contest.getIsGroup() && !groupValidator.isGroupRoot(userRolesVo.getUid(), contest.getGid()))) { + // ACM比赛期间强制禁止查看,比赛管理员除外(赛后恢复正常) + if (contest.getType().intValue() == Constants.Contest.TYPE_ACM.getCode()) { + if (contest.getStatus().intValue() == Constants.Contest.STATUS_RUNNING.getCode()) { + return null; + } + } else { + // 当前是oi比赛期间 同时处于封榜时间 + if (contest.getSealRank() && contest.getStatus().intValue() == Constants.Contest.STATUS_RUNNING.getCode() + && contest.getSealRankTime().before(new Date())) { + return null; + } + } + wrapper.select("time", "memory", "score", "status", "user_output"); + } + } + } + + wrapper.eq("submit_id", submitId); + if (!problem.getIsRemote()) { + wrapper.last("order by length(input_data) asc,input_data asc"); + } + + // 当前所有测试点只支持 空间 时间 状态码 IO得分 和错误信息提示查看而已 + return judgeCaseEntityService.list(wrapper); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/PassportManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/PassportManager.java new file mode 100644 index 0000000..7fac1a0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/PassportManager.java @@ -0,0 +1,325 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusAccessDeniedException; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.manager.email.EmailManager; +import top.hcode.hoj.manager.msg.NoticeManager; +import top.hcode.hoj.pojo.bo.EmailRuleBo; +import top.hcode.hoj.pojo.dto.LoginDto; +import top.hcode.hoj.pojo.dto.RegisterDto; +import top.hcode.hoj.pojo.dto.ApplyResetPasswordDto; +import top.hcode.hoj.pojo.dto.ResetPasswordDto; +import top.hcode.hoj.pojo.entity.user.*; +import top.hcode.hoj.pojo.vo.ConfigVo; +import top.hcode.hoj.pojo.vo.RegisterCodeVo; +import top.hcode.hoj.pojo.vo.UserInfoVo; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.user.SessionEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.dao.user.UserRecordEntityService; +import top.hcode.hoj.dao.user.UserRoleEntityService; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.IpUtils; +import top.hcode.hoj.utils.JwtUtils; +import top.hcode.hoj.utils.RedisUtils; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 16:46 + * @Description: + */ +@Component +public class PassportManager { + + @Resource + private RedisUtils redisUtils; + + @Resource + private JwtUtils jwtUtils; + + @Resource + private ConfigVo configVo; + + @Resource + private EmailRuleBo emailRuleBo; + + @Resource + private UserInfoEntityService userInfoEntityService; + + @Resource + private UserRoleEntityService userRoleEntityService; + + @Resource + private UserRecordEntityService userRecordEntityService; + + @Resource + private SessionEntityService sessionEntityService; + + + @Resource + private EmailManager emailManager; + + @Resource + private NoticeManager noticeManager; + + public UserInfoVo login(LoginDto loginDto, HttpServletResponse response, HttpServletRequest request) throws StatusFailException { + // 去掉账号密码首尾的空格 + loginDto.setPassword(loginDto.getPassword().trim()); + loginDto.setUsername(loginDto.getUsername().trim()); + + if (StringUtils.isEmpty(loginDto.getUsername()) || StringUtils.isEmpty(loginDto.getPassword())) { + throw new StatusFailException("用户名或密码不能为空!"); + } + + if (loginDto.getPassword().length() < 6 || loginDto.getPassword().length() > 20) { + throw new StatusFailException("密码长度应该为6~20位!"); + } + if (loginDto.getUsername().length() > 20) { + throw new StatusFailException("用户名长度不能超过20位!"); + } + + String userIpAddr = IpUtils.getUserIpAddr(request); + String key = Constants.Account.TRY_LOGIN_NUM.getCode() + loginDto.getUsername() + "_" + userIpAddr; + Integer tryLoginCount = (Integer) redisUtils.get(key); + + if (tryLoginCount != null && tryLoginCount >= 20) { + throw new StatusFailException("对不起!登录失败次数过多!您的账号有风险,半个小时内暂时无法登录!"); + } + + UserRolesVo userRolesVo = userRoleEntityService.getUserRoles(null, loginDto.getUsername()); + + if (userRolesVo == null) { + throw new StatusFailException("用户名或密码错误!请注意大小写!"); + } + + if (!userRolesVo.getPassword().equals(SecureUtil.md5(loginDto.getPassword()))) { + if (tryLoginCount == null) { + redisUtils.set(key, 1, 60 * 30); // 三十分钟不尝试,该限制会自动清空消失 + } else { + redisUtils.set(key, tryLoginCount + 1, 60 * 30); + } + throw new StatusFailException("用户名或密码错误!请注意大小写!"); + } + + if (userRolesVo.getStatus() != 0) { + throw new StatusFailException("该账户已被封禁,请联系管理员进行处理!"); + } + + String jwt = jwtUtils.generateToken(userRolesVo.getUid()); + response.setHeader("Authorization", jwt); //放到信息头部 + response.setHeader("Access-Control-Expose-Headers", "Authorization"); + + // 会话记录 + sessionEntityService.save(new Session() + .setUid(userRolesVo.getUid()) + .setIp(IpUtils.getUserIpAddr(request)) + .setUserAgent(request.getHeader("User-Agent"))); + + // 登录成功,清除锁定限制 + if (tryLoginCount != null) { + redisUtils.del(key); + } + + // 异步检查是否异地登录 + sessionEntityService.checkRemoteLogin(userRolesVo.getUid()); + + UserInfoVo userInfoVo = new UserInfoVo(); + BeanUtil.copyProperties(userRolesVo, userInfoVo, "roles"); + userInfoVo.setRoleList(userRolesVo.getRoles() + .stream() + .map(Role::getRole) + .collect(Collectors.toList())); + return userInfoVo; + } + + + public RegisterCodeVo getRegisterCode(String email) throws StatusAccessDeniedException, StatusFailException, StatusForbiddenException { + + if (!configVo.getRegister()) { // 需要判断一下网站是否开启注册 + throw new StatusAccessDeniedException("对不起!本站暂未开启注册功能!"); + } + if (!emailManager.isOk()) { + throw new StatusAccessDeniedException("对不起!本站邮箱系统未配置,暂不支持注册!"); + } + + email = email.trim(); + + boolean isEmail = Validator.isEmail(email); + if (!isEmail) { + throw new StatusFailException("对不起!您的邮箱格式不正确!"); + } + + boolean isBlackEmail = emailRuleBo.getBlackList().stream().anyMatch(email::endsWith); + if (isBlackEmail) { + throw new StatusForbiddenException("对不起!您的邮箱无法注册本网站!"); + } + + String lockKey = Constants.Email.REGISTER_EMAIL_LOCK + email; + if (redisUtils.hasKey(lockKey)) { + throw new StatusFailException("对不起,您的操作频率过快,请在" + redisUtils.getExpire(lockKey) + "秒后再次发送注册邮件!"); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("email", email); + UserInfo userInfo = userInfoEntityService.getOne(queryWrapper, false); + if (userInfo != null) { + throw new StatusFailException("对不起!该邮箱已被注册,请更换新的邮箱!"); + } + + String numbers = RandomUtil.randomNumbers(6); // 随机生成6位数字的组合 + redisUtils.set(Constants.Email.REGISTER_KEY_PREFIX.getValue() + email, numbers, 5 * 60);//默认验证码有效5分钟 + emailManager.sendCode(email, numbers); + redisUtils.set(lockKey, 0, 60); + + RegisterCodeVo registerCodeVo = new RegisterCodeVo(); + registerCodeVo.setEmail(email); + registerCodeVo.setExpire(5 * 60); + + return registerCodeVo; + } + + + @Transactional(rollbackFor = Exception.class) + public void register(RegisterDto registerDto) throws StatusAccessDeniedException, StatusFailException { + + if (!configVo.getRegister()) { // 需要判断一下网站是否开启注册 + throw new StatusAccessDeniedException("对不起!本站暂未开启注册功能!"); + } + + String codeKey = Constants.Email.REGISTER_KEY_PREFIX.getValue() + registerDto.getEmail(); + if (!redisUtils.hasKey(codeKey)) { + throw new StatusFailException("验证码不存在或已过期"); + } + + if (!redisUtils.get(codeKey).equals(registerDto.getCode())) { //验证码判断 + throw new StatusFailException("验证码不正确"); + } + + if (StringUtils.isEmpty(registerDto.getPassword())) { + throw new StatusFailException("密码不能为空"); + } + + if (registerDto.getPassword().length() < 6 || registerDto.getPassword().length() > 20) { + throw new StatusFailException("密码长度应该为6~20位!"); + } + + if (StringUtils.isEmpty(registerDto.getUsername())) { + throw new StatusFailException("用户名不能为空"); + } + + if (registerDto.getUsername().length() > 20) { + throw new StatusFailException("用户名长度不能超过20位!"); + } + + String uuid = IdUtil.simpleUUID(); + //为新用户设置uuid + registerDto.setUuid(uuid); + registerDto.setPassword(SecureUtil.md5(registerDto.getPassword().trim())); // 将密码MD5加密写入数据库 + registerDto.setUsername(registerDto.getUsername().trim()); + registerDto.setEmail(registerDto.getEmail().trim()); + + //往user_info表插入数据 + boolean addUser = userInfoEntityService.addUser(registerDto); + + //往user_role表插入数据 + boolean addUserRole = userRoleEntityService.save(new UserRole().setRoleId(1002L).setUid(uuid)); + + //往user_record表插入数据 + boolean addUserRecord = userRecordEntityService.save(new UserRecord().setUid(uuid)); + + if (addUser && addUserRole && addUserRecord) { + redisUtils.del(registerDto.getEmail()); + noticeManager.syncNoticeToNewRegisterUser(uuid); + } else { + throw new StatusFailException("注册失败,请稍后重新尝试!"); + } + } + + + public void applyResetPassword(ApplyResetPasswordDto applyResetPasswordDto) throws StatusFailException { + + String captcha = applyResetPasswordDto.getCaptcha(); + String captchaKey = applyResetPasswordDto.getCaptchaKey(); + String email = applyResetPasswordDto.getEmail(); + + if (StringUtils.isEmpty(captcha) || StringUtils.isEmpty(email) || StringUtils.isEmpty(captchaKey)) { + throw new StatusFailException("邮箱或验证码不能为空"); + } + + if (!emailManager.isOk()) { + throw new StatusFailException("对不起!本站邮箱系统未配置,暂不支持重置密码!"); + } + + String lockKey = Constants.Email.RESET_EMAIL_LOCK + email; + if (redisUtils.hasKey(lockKey)) { + throw new StatusFailException("对不起,您的操作频率过快,请在" + redisUtils.getExpire(lockKey) + "秒后再次发送重置邮件!"); + } + + // 获取redis中的验证码 + String redisCode = (String) redisUtils.get(captchaKey); + if (!redisCode.equals(captcha.trim().toLowerCase())) { + throw new StatusFailException("验证码不正确"); + } + + QueryWrapper userInfoQueryWrapper = new QueryWrapper<>(); + userInfoQueryWrapper.eq("email", email.trim()); + UserInfo userInfo = userInfoEntityService.getOne(userInfoQueryWrapper, false); + if (userInfo == null) { + throw new StatusFailException("对不起,该邮箱无该用户,请重新检查!"); + } + + String code = IdUtil.simpleUUID().substring(0, 21); // 随机生成20位数字与字母的组合 + redisUtils.set(Constants.Email.RESET_PASSWORD_KEY_PREFIX.getValue() + userInfo.getUsername(), code, 10 * 60);//默认链接有效10分钟 + // 发送邮件 + emailManager.sendResetPassword(userInfo.getUsername(), code, email.trim()); + redisUtils.set(lockKey, 0, 90); + } + + + public void resetPassword(ResetPasswordDto resetPasswordDto) throws StatusFailException { + String username = resetPasswordDto.getUsername(); + String password = resetPasswordDto.getPassword(); + String code = resetPasswordDto.getCode(); + + if (StringUtils.isEmpty(password) || StringUtils.isEmpty(username) || StringUtils.isEmpty(code)) { + throw new StatusFailException("用户名、新密码或验证码不能为空"); + } + + if (password.length() < 6 || password.length() > 20) { + throw new StatusFailException("新密码长度应该为6~20位!"); + } + + String codeKey = Constants.Email.RESET_PASSWORD_KEY_PREFIX.getValue() + username; + if (!redisUtils.hasKey(codeKey)) { + throw new StatusFailException("重置密码链接不存在或已过期,请重新发送重置邮件"); + } + + if (!redisUtils.get(codeKey).equals(code)) { //验证码判断 + throw new StatusFailException("重置密码的验证码不正确,请重新输入"); + } + + UpdateWrapper userInfoUpdateWrapper = new UpdateWrapper<>(); + userInfoUpdateWrapper.eq("username", username).set("password", SecureUtil.md5(password)); + boolean isOk = userInfoEntityService.update(userInfoUpdateWrapper); + if (!isOk) { + throw new StatusFailException("重置密码失败"); + } + redisUtils.del(codeKey); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ProblemManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ProblemManager.java new file mode 100644 index 0000000..c25a8e0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/ProblemManager.java @@ -0,0 +1,292 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.collection.CollectionUtil; +import top.hcode.hoj.validator.GroupValidator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.pojo.dto.PidListDto; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.*; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.dao.contest.ContestEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.problem.*; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.validator.ContestValidator; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 10:37 + * @Description: + */ +@Component +public class ProblemManager { + @Autowired + private ProblemEntityService problemEntityService; + + @Autowired + private ProblemTagEntityService problemTagEntityService; + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private TagEntityService tagEntityService; + + @Autowired + private LanguageEntityService languageEntityService; + + @Autowired + private ContestEntityService contestEntityService; + + @Autowired + private ProblemLanguageEntityService problemLanguageEntityService; + + @Autowired + private CodeTemplateEntityService codeTemplateEntityService; + + @Autowired + private ContestValidator contestValidator; + + @Autowired + private GroupValidator groupValidator; + + /** + * @MethodName getProblemList + * @Params * @param null + * @Description 获取题目列表分页 + * @Since 2020/10/27 + */ + public Page getProblemList(Integer limit, Integer currentPage, + String keyword, List tagId, Integer difficulty, String oj) { + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 10; + + // 关键词查询不为空 + if (!StringUtils.isEmpty(keyword)) { + keyword = keyword.trim(); + } + if (oj != null && !Constants.RemoteOJ.isRemoteOJ(oj)) { + oj = "Mine"; + } + return problemEntityService.getProblemList(limit, currentPage, null, keyword, + difficulty, tagId, oj); + } + + /** + * @MethodName getRandomProblem + * @Description 随机选取一道题目 + * @Since 2020/10/27 + */ + public RandomProblemVo getRandomProblem() throws StatusFailException { + QueryWrapper queryWrapper = new QueryWrapper<>(); + // 必须是公开题目 + queryWrapper.select("problem_id").eq("auth", 1) + .eq("is_group", false); + List list = problemEntityService.list(queryWrapper); + if (list.size() == 0) { + throw new StatusFailException("获取随机题目失败,题库暂无公开题目!"); + } + Random random = new Random(); + int index = random.nextInt(list.size()); + RandomProblemVo randomProblemVo = new RandomProblemVo(); + randomProblemVo.setProblemId(list.get(index).getProblemId()); + return randomProblemVo; + } + + /** + * @MethodName getUserProblemStatus + * @Description 获取用户对应该题目列表中各个题目的做题情况 + * @Since 2020/12/29 + */ + public HashMap getUserProblemStatus(PidListDto pidListDto) throws StatusNotFoundException { + + // 需要获取一下该token对应用户的数据 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + HashMap result = new HashMap<>(); + // 先查询判断该用户对于这些题是否已经通过,若已通过,则无论后续再提交结果如何,该题都标记为通过 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("distinct pid,status,submit_time,score") + .in("pid", pidListDto.getPidList()) + .eq("uid", userRolesVo.getUid()) + .orderByDesc("submit_time"); + + if (pidListDto.getIsContestProblemList()) { + // 如果是比赛的提交记录需要判断cid + queryWrapper.eq("cid", pidListDto.getCid()); + } else { + queryWrapper.eq("cid", 0); + } + if (pidListDto.getGid() != null) { + queryWrapper.eq("gid", pidListDto.getGid()); + } else { + queryWrapper.isNull("gid"); + } + List judges = judgeEntityService.list(queryWrapper); + + boolean isACMContest = true; + Contest contest = null; + if (pidListDto.getIsContestProblemList()) { + contest = contestEntityService.getById(pidListDto.getCid()); + if (contest == null) { + throw new StatusNotFoundException("错误:该比赛不存在!"); + } + isACMContest = contest.getType().intValue() == Constants.Contest.TYPE_ACM.getCode(); + } + + for (Judge judge : judges) { + // 如果是比赛的题目列表状态 + HashMap temp = new HashMap<>(); + if (pidListDto.getIsContestProblemList()) { + if (!isACMContest) { + if (!result.containsKey(judge.getPid())) { // IO比赛的,如果还未写入,则使用最新一次提交的结果 + // 判断该提交是否为封榜之后的提交,OI赛制封榜后的提交看不到提交结果, + // 只有比赛结束可以看到,比赛管理员与超级管理员的提交除外 + if (contestValidator.isSealRank(userRolesVo.getUid(), contest, true, + SecurityUtils.getSubject().hasRole("root"))) { + temp.put("status", Constants.Judge.STATUS_SUBMITTED_UNKNOWN_RESULT.getStatus()); + temp.put("score", null); + } else { + temp.put("status", judge.getStatus()); + temp.put("score", judge.getScore()); + } + result.put(judge.getPid(), temp); + } + } else { + // 如果该题目已通过,且同时是为不封榜前提交的,则强制写为通过(0) + if (judge.getStatus().intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus()) { + temp.put("status", Constants.Judge.STATUS_ACCEPTED.getStatus()); + temp.put("score", null); + result.put(judge.getPid(), temp); + } else if (!result.containsKey(judge.getPid())) { // 还未写入,则使用最新一次提交的结果 + temp.put("status", judge.getStatus()); + temp.put("score", null); + result.put(judge.getPid(), temp); + } + } + + } else { // 不是比赛题目 + if (judge.getStatus().intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus()) { // 如果该题目已通过,则强制写为通过(0) + temp.put("status", Constants.Judge.STATUS_ACCEPTED.getStatus()); + result.put(judge.getPid(), temp); + } else if (!result.containsKey(judge.getPid())) { // 还未写入,则使用最新一次提交的结果 + temp.put("status", judge.getStatus()); + result.put(judge.getPid(), temp); + } + } + } + + // 再次检查,应该可能从未提交过该题,则状态写为-10 + for (Long pid : pidListDto.getPidList()) { + + // 如果是比赛的题目列表状态 + if (pidListDto.getIsContestProblemList()) { + if (!result.containsKey(pid)) { + HashMap temp = new HashMap<>(); + temp.put("score", null); + temp.put("status", Constants.Judge.STATUS_NOT_SUBMITTED.getStatus()); + result.put(pid, temp); + } + } else { + if (!result.containsKey(pid)) { + HashMap temp = new HashMap<>(); + temp.put("status", Constants.Judge.STATUS_NOT_SUBMITTED.getStatus()); + result.put(pid, temp); + } + } + } + return result; + + } + + /** + * @MethodName getProblemInfo + * @Description 获取指定题目的详情信息,标签,所支持语言,做题情况(只能查询公开题目 也就是auth为1) + * @Since 2020/10/27 + */ + public ProblemInfoVo getProblemInfo(String problemId, Long gid) throws StatusNotFoundException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + QueryWrapper wrapper = new QueryWrapper().eq("problem_id", problemId); + //查询题目详情,题目标签,题目语言,题目做题情况 + Problem problem = problemEntityService.getOne(wrapper, false); + if (problem == null) { + throw new StatusNotFoundException("该题号对应的题目不存在"); + } + if (problem.getAuth() != 1) { + throw new StatusForbiddenException("该题号对应题目并非公开题目,不支持访问!"); + } + + if (problem.getIsGroup()) { + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), problem.getGid())) { + throw new StatusForbiddenException("该题号对应题目并非公开题目,不支持访问!"); + } + } + + QueryWrapper problemTagQueryWrapper = new QueryWrapper<>(); + problemTagQueryWrapper.eq("pid", problem.getId()); + + // 获取该题号对应的标签id + List tidList = new LinkedList<>(); + problemTagEntityService.list(problemTagQueryWrapper).forEach(problemTag -> { + tidList.add(problemTag.getTid()); + }); + List tags = new ArrayList<>(); + if (tidList.size() > 0) { + tags = (List) tagEntityService.listByIds(tidList); + } + + // 记录 languageId对应的name + HashMap tmpMap = new HashMap<>(); + // 获取题目提交的代码支持的语言 + List languagesStr = new LinkedList<>(); + QueryWrapper problemLanguageQueryWrapper = new QueryWrapper<>(); + problemLanguageQueryWrapper.eq("pid", problem.getId()).select("lid"); + List lidList = problemLanguageEntityService.list(problemLanguageQueryWrapper) + .stream().map(ProblemLanguage::getLid).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(lidList)) { + languageEntityService.listByIds(lidList).forEach(language -> { + languagesStr.add(language.getName()); + tmpMap.put(language.getId(), language.getName()); + }); + } + // 获取题目的提交记录 + ProblemCountVo problemCount = judgeEntityService.getProblemCount(problem.getId(), gid); + + // 获取题目的代码模板 + QueryWrapper codeTemplateQueryWrapper = new QueryWrapper<>(); + codeTemplateQueryWrapper.eq("pid", problem.getId()).eq("status", true); + List codeTemplates = codeTemplateEntityService.list(codeTemplateQueryWrapper); + HashMap LangNameAndCode = new HashMap<>(); + if (CollectionUtil.isNotEmpty(codeTemplates)) { + for (CodeTemplate codeTemplate : codeTemplates) { + LangNameAndCode.put(tmpMap.get(codeTemplate.getLid()), codeTemplate.getCode()); + } + } + // 屏蔽一些题目参数 + problem.setJudgeExtraFile(null) + .setSpjCode(null) + .setSpjLanguage(null); + + // 将数据统一写入到一个Vo返回数据实体类中 + return new ProblemInfoVo(problem, tags, languagesStr, problemCount, LangNameAndCode); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/RankManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/RankManager.java new file mode 100644 index 0000000..b8447cd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/RankManager.java @@ -0,0 +1,134 @@ +package top.hcode.hoj.manager.oj; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.pojo.entity.user.UserInfo; +import top.hcode.hoj.pojo.vo.ACMRankVo; +import top.hcode.hoj.pojo.vo.OIRankVo; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.dao.user.UserRecordEntityService; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.RedisUtils; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 20:47 + * @Description: + */ +@Component +public class RankManager { + + @Autowired + private UserRecordEntityService userRecordEntityService; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private RedisUtils redisUtils; + + // 排行榜缓存时间 60s + private static final long cacheRankSecond = 60; + + /** + * @MethodName get-rank-list + * @Params * @param null + * @Description 获取排行榜数据 + * @Return CommonResult + * @Since 2020/10/27 + */ + public IPage getRankList(Integer limit, Integer currentPage, String searchUser, Integer type) throws StatusFailException { + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 30; + + List uidList = null; + if (!StringUtils.isEmpty(searchUser)) { + QueryWrapper userInfoQueryWrapper = new QueryWrapper<>(); + + userInfoQueryWrapper.select("uuid"); + + userInfoQueryWrapper.and(wrapper -> wrapper + .like("username", searchUser) + .or() + .like("nickname", searchUser) + .or() + .like("realname", searchUser)); + + userInfoQueryWrapper.eq("status", 0); + + uidList = userInfoEntityService.list(userInfoQueryWrapper) + .stream() + .map(UserInfo::getUuid) + .collect(Collectors.toList()); + } + + IPage rankList = null; + // 根据type查询不同类型的排行榜 + if (type.intValue() == Constants.Contest.TYPE_ACM.getCode()) { + rankList = getACMRankList(limit, currentPage, uidList); + } else if (type.intValue() == Constants.Contest.TYPE_OI.getCode()) { + rankList = getOIRankList(limit, currentPage, uidList); + } else { + throw new StatusFailException("排行榜类型代码不正确,请使用0(ACM),1(OI)!"); + } + return rankList; + } + + + private IPage getACMRankList(int limit, int currentPage, List uidList) { + + IPage data = null; + if (uidList != null) { + Page page = new Page<>(currentPage, limit); + if (uidList.size() > 0) { + data = userRecordEntityService.getACMRankList(page, uidList); + } else { + data = page; + } + } else { + String key = Constants.Account.ACM_RANK_CACHE.getCode() + "_" + limit + "_" + currentPage; + data = (IPage) redisUtils.get(key); + if (data == null) { + Page page = new Page<>(currentPage, limit); + data = userRecordEntityService.getACMRankList(page, null); + redisUtils.set(key, data, cacheRankSecond); + } + } + + return data; + } + + + private IPage getOIRankList(int limit, int currentPage, List uidList) { + + IPage data = null; + if (uidList != null) { + Page page = new Page<>(currentPage, limit); + if (uidList.size() > 0) { + data = userRecordEntityService.getOIRankList(page, uidList); + } else { + data = page; + } + } else { + String key = Constants.Account.OI_RANK_CACHE.getCode() + "_" + limit + "_" + currentPage; + data = (IPage) redisUtils.get(key); + if (data == null) { + Page page = new Page<>(currentPage, limit); + data = userRecordEntityService.getOIRankList(page, null); + redisUtils.set(key, data, cacheRankSecond); + } + } + + return data; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/TrainingManager.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/TrainingManager.java new file mode 100644 index 0000000..36be0ab --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/manager/oj/TrainingManager.java @@ -0,0 +1,383 @@ +package top.hcode.hoj.manager.oj; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusAccessDeniedException; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.dao.group.GroupMemberEntityService; +import top.hcode.hoj.dao.training.*; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.manager.admin.training.AdminTrainingRecordManager; +import top.hcode.hoj.pojo.dto.RegisterTrainingDto; +import top.hcode.hoj.pojo.entity.training.*; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.validator.GroupValidator; +import top.hcode.hoj.validator.TrainingValidator; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 17:12 + * @Description: + */ +@Component +public class TrainingManager { + + @Resource + private TrainingEntityService trainingEntityService; + + @Resource + private TrainingRegisterEntityService trainingRegisterEntityService; + + @Resource + private TrainingCategoryEntityService trainingCategoryEntityService; + + @Resource + private TrainingProblemEntityService trainingProblemEntityService; + + @Resource + private TrainingRecordEntityService trainingRecordEntityService; + + @Resource + private UserInfoEntityService userInfoEntityService; + + @Resource + private AdminTrainingRecordManager adminTrainingRecordManager; + + @Resource + private GroupMemberEntityService groupMemberEntityService; + + @Autowired + private GroupValidator groupValidator; + + @Resource + private TrainingValidator trainingValidator; + + /** + * @param limit + * @param currentPage + * @param keyword + * @param categoryId + * @param auth + * @MethodName getTrainingList + * @Description 获取训练题单列表,可根据关键词、类别、权限、类型过滤 + * @Return + * @Since 2021/11/20 + */ + public IPage getTrainingList(Integer limit, Integer currentPage, String keyword, Long categoryId, String auth) { + + // 页数,每页题数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 30; + return trainingEntityService.getTrainingList(limit, currentPage, categoryId, auth, keyword); + } + + + /** + * @param tid + * @MethodName getTraining + * @Description 根据tid获取指定训练详情 + * @Return + * @Since 2021/11/20 + */ + public TrainingVo getTraining(Long tid) throws StatusFailException, StatusAccessDeniedException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); + + Training training = trainingEntityService.getById(tid); + if (training == null || !training.getStatus()) { + throw new StatusFailException("该训练不存在或不允许显示!"); + } + + if (training.getIsGroup()) { + if (!isRoot && !groupValidator.isGroupMember(userRolesVo.getUid(), training.getGid())) { + throw new StatusForbiddenException("对不起,您无权限操作!"); + } + } + + TrainingVo trainingVo = BeanUtil.copyProperties(training, TrainingVo.class); + TrainingCategory trainingCategory = trainingCategoryEntityService.getTrainingCategoryByTrainingId(training.getId()); + trainingVo.setCategoryName(trainingCategory.getName()); + trainingVo.setCategoryColor(trainingCategory.getColor()); + List trainingProblemIdList = trainingProblemEntityService.getTrainingProblemIdList(training.getId()); + trainingVo.setProblemCount(trainingProblemIdList.size()); + + if (userRolesVo != null && trainingValidator.isInTrainingOrAdmin(training, userRolesVo)) { + Integer userTrainingACProblemCount = trainingProblemEntityService.getUserTrainingACProblemCount(userRolesVo.getUid(), trainingProblemIdList); + trainingVo.setAcCount(userTrainingACProblemCount); + } else { + trainingVo.setAcCount(0); + } + + return trainingVo; + } + + /** + * @param tid + * @MethodName getTrainingProblemList + * @Description 根据tid获取指定训练的题单题目列表 + * @Return + * @Since 2021/11/20 + */ + public List getTrainingProblemList(Long tid) throws StatusAccessDeniedException, + StatusForbiddenException, StatusFailException { + Training training = trainingEntityService.getById(tid); + if (training == null || !training.getStatus()) { + throw new StatusFailException("该训练不存在或不允许显示!"); + } + trainingValidator.validateTrainingAuth(training); + + return trainingProblemEntityService.getTrainingProblemList(tid); + + } + + /** + * @param registerTrainingDto + * @MethodName toRegisterTraining + * @Description 注册校验私有权限的训练 + * @Return + * @Since 2021/11/20 + */ + public void toRegisterTraining(RegisterTrainingDto registerTrainingDto) throws StatusFailException, StatusForbiddenException { + + Long tid = registerTrainingDto.getTid(); + String password = registerTrainingDto.getPassword(); + + if (tid == null || StringUtils.isEmpty(password)) { + throw new StatusFailException("请求参数不能为空!"); + } + + Training training = trainingEntityService.getById(tid); + + if (training == null || !training.getStatus()) { + throw new StatusFailException("对不起,该训练不存在或不允许显示!"); + } + + if (!training.getPrivatePwd().equals(password)) { // 密码不对 + throw new StatusFailException("训练密码错误,请重新输入!"); + } + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + QueryWrapper registerQueryWrapper = new QueryWrapper<>(); + registerQueryWrapper.eq("tid", tid).eq("uid", userRolesVo.getUid()); + if (trainingRegisterEntityService.count(registerQueryWrapper) > 0) { + throw new StatusFailException("您已注册过该训练,请勿重复注册!"); + } + + boolean isOk = trainingRegisterEntityService.save(new TrainingRegister() + .setTid(tid) + .setUid(userRolesVo.getUid())); + + if (!isOk) { + throw new StatusFailException("校验训练密码失败,请稍后再试"); + } else { + adminTrainingRecordManager.syncUserSubmissionToRecordByTid(tid, userRolesVo.getUid()); + } + } + + + /** + * @param tid + * @MethodName getTrainingAccess + * @Description 私有权限的训练需要获取当前用户是否有进入训练的权限 + * @Return + * @Since 2021/11/20 + */ + public AccessVo getTrainingAccess(Long tid) throws StatusFailException { + + // 获取当前登录的用户 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("tid", tid).eq("uid", userRolesVo.getUid()); + TrainingRegister trainingRegister = trainingRegisterEntityService.getOne(queryWrapper, false); + boolean access = false; + if (trainingRegister != null) { + access = true; + Training training = trainingEntityService.getById(tid); + if (training == null || !training.getStatus()) { + throw new StatusFailException("对不起,该训练不存在!"); + } + } + + AccessVo accessVo = new AccessVo(); + accessVo.setAccess(access); + + return accessVo; + } + + + /** + * @param tid + * @param limit + * @param currentPage + * @MethodName getTrainingRnk + * @Description 获取训练的排行榜分页 + * @Return + * @Since 2021/11/22 + */ + public IPage getTrainingRank(Long tid, Integer limit, Integer currentPage) throws + StatusAccessDeniedException, StatusForbiddenException, StatusFailException { + + Training training = trainingEntityService.getById(tid); + if (training == null || !training.getStatus()) { + throw new StatusFailException("该训练不存在或不允许显示!"); + } + + trainingValidator.validateTrainingAuth(training); + + // 页数,每页数若为空,设置默认值 + if (currentPage == null || currentPage < 1) currentPage = 1; + if (limit == null || limit < 1) limit = 30; + + return getTrainingRank(tid, training.getIsGroup() ? training.getGid() : null, training.getAuthor(), currentPage, limit); + } + + private IPage getTrainingRank(Long tid, Long gid, String username, int currentPage, int limit) { + + Map tpIdMapDisplayId = getTPIdMapDisplayId(tid); + List trainingRecordVoList = trainingRecordEntityService.getTrainingRecord(tid); + + List superAdminUidList = userInfoEntityService.getSuperAdminUidList(); + if (gid != null) { + List groupRootUidList = groupMemberEntityService.getGroupRootUidList(gid); + superAdminUidList.addAll(groupRootUidList); + } + + List result = new ArrayList<>(); + + HashMap uidMapIndex = new HashMap<>(); + int pos = 0; + for (TrainingRecordVo trainingRecordVo : trainingRecordVoList) { + // 超级管理员和训练创建者的提交不入排行榜 + if (username.equals(trainingRecordVo.getUsername()) + || superAdminUidList.contains(trainingRecordVo.getUid())) { + continue; + } + + TrainingRankVo trainingRankVo; + Integer index = uidMapIndex.get(trainingRecordVo.getUid()); + if (index == null) { + trainingRankVo = new TrainingRankVo(); + trainingRankVo.setRealname(trainingRecordVo.getRealname()) + .setAvatar(trainingRecordVo.getAvatar()) + .setSchool(trainingRecordVo.getSchool()) + .setGender(trainingRecordVo.getGender()) + .setUid(trainingRecordVo.getUid()) + .setUsername(trainingRecordVo.getUsername()) + .setNickname(trainingRecordVo.getNickname()) + .setAc(0) + .setTotalRunTime(0); + HashMap> submissionInfo = new HashMap<>(); + trainingRankVo.setSubmissionInfo(submissionInfo); + + result.add(trainingRankVo); + uidMapIndex.put(trainingRecordVo.getUid(), pos); + pos++; + } else { + trainingRankVo = result.get(index); + } + String displayId = tpIdMapDisplayId.get(trainingRecordVo.getTpid()); + HashMap problemSubmissionInfo = trainingRankVo + .getSubmissionInfo() + .getOrDefault(displayId, new HashMap<>()); + + // 如果该题目已经AC过了,只比较运行时间取最小 + if ((Boolean) problemSubmissionInfo.getOrDefault("isAC", false)) { + if (trainingRecordVo.getStatus().intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus()) { + int runTime = (int) problemSubmissionInfo.getOrDefault("runTime", 0); + if (runTime > trainingRecordVo.getUseTime()) { + trainingRankVo.setTotalRunTime(trainingRankVo.getTotalRunTime() - runTime + trainingRecordVo.getUseTime()); + problemSubmissionInfo.put("runTime", trainingRecordVo.getUseTime()); + } + } + continue; + } + + problemSubmissionInfo.put("status", trainingRecordVo.getStatus()); + problemSubmissionInfo.put("score", trainingRecordVo.getScore()); + + // 通过的话 + if (trainingRecordVo.getStatus().intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus()) { + // 总解决题目次数ac+1 + trainingRankVo.setAc(trainingRankVo.getAc() + 1); + problemSubmissionInfo.put("isAC", true); + problemSubmissionInfo.put("runTime", trainingRecordVo.getUseTime()); + trainingRankVo.setTotalRunTime(trainingRankVo.getTotalRunTime() + trainingRecordVo.getUseTime()); + } + + trainingRankVo.getSubmissionInfo().put(displayId, problemSubmissionInfo); + } + + List orderResultList = result.stream().sorted(Comparator.comparing(TrainingRankVo::getAc, Comparator.reverseOrder()) // 先以总ac数降序 + .thenComparing(TrainingRankVo::getTotalRunTime) //再以总耗时升序 + ).collect(Collectors.toList()); + + // 计算好排行榜,然后进行分页 + Page page = new Page<>(currentPage, limit); + int count = orderResultList.size(); + List pageList = new ArrayList<>(); + //计算当前页第一条数据的下标 + int currId = currentPage > 1 ? (currentPage - 1) * limit : 0; + for (int i = 0; i < limit && i < count - currId; i++) { + pageList.add(orderResultList.get(currId + i)); + } + page.setSize(limit); + page.setCurrent(currentPage); + page.setTotal(count); + page.setRecords(pageList); + return page; + } + + private Map getTPIdMapDisplayId(Long tid) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("tid", tid); + List trainingProblemList = trainingProblemEntityService.list(queryWrapper); + return trainingProblemList.stream().collect(Collectors.toMap(TrainingProblem::getId, TrainingProblem::getDisplayId)); + } + + /** + * 未启用,该操作会导致公开训练也记录,但其实并不需要,会造成数据量无效增加 + */ + @Async + public void checkAndSyncTrainingRecord(Long pid, Long submitId, String uid) { + + QueryWrapper trainingProblemQueryWrapper = new QueryWrapper<>(); + trainingProblemQueryWrapper.eq("pid", pid); + + List trainingProblemList = trainingProblemEntityService.list(trainingProblemQueryWrapper); + List trainingRecordList = new ArrayList<>(); + for (TrainingProblem trainingProblem : trainingProblemList) { + TrainingRecord trainingRecord = new TrainingRecord(); + trainingRecord.setPid(pid) + .setTid(trainingProblem.getTid()) + .setTpid(trainingProblem.getId()) + .setSubmitId(submitId) + .setUid(uid); + trainingRecordList.add(trainingRecord); + } + if (trainingRecordList.size() > 0) { + trainingRecordEntityService.saveBatch(trainingRecordList); + } + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AdminSysNoticeMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AdminSysNoticeMapper.java new file mode 100644 index 0000000..72db7ff --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AdminSysNoticeMapper.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.vo.AdminSysNoticeVo; + +@Mapper +@Repository +public interface AdminSysNoticeMapper extends BaseMapper { + IPage getAdminSysNotice(Page page, @Param("type") String type); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AnnouncementMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AnnouncementMapper.java new file mode 100644 index 0000000..0132d3d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AnnouncementMapper.java @@ -0,0 +1,25 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.common.Announcement; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.hcode.hoj.pojo.vo.AnnouncementVo; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface AnnouncementMapper extends BaseMapper { + IPage getAnnouncementList(Page page,@Param("notAdmin") Boolean notAdmin); + IPage getContestAnnouncement(Page page,@Param("cid")Long cid,@Param("notAdmin") Boolean notAdmin); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AuthMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AuthMapper.java new file mode 100644 index 0000000..84336b2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/AuthMapper.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.user.Auth; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface AuthMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CategoryMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CategoryMapper.java new file mode 100644 index 0000000..c765af3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CategoryMapper.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.Category; + +@Mapper +@Repository +public interface CategoryMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CodeTemplateMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CodeTemplateMapper.java new file mode 100644 index 0000000..6c5db15 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CodeTemplateMapper.java @@ -0,0 +1,13 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.CodeTemplate; + + +@Mapper +@Repository +public interface CodeTemplateMapper extends BaseMapper { +} + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CommentLikeMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CommentLikeMapper.java new file mode 100644 index 0000000..3bf66b4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CommentLikeMapper.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.discussion.CommentLike; + + +@Mapper +@Repository +public interface CommentLikeMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CommentMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CommentMapper.java new file mode 100644 index 0000000..12c7570 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/CommentMapper.java @@ -0,0 +1,32 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.discussion.Comment; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.hcode.hoj.pojo.vo.CommentVo; + +import java.util.List; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface CommentMapper extends BaseMapper { + + IPage getCommentList(Page page, + @Param("cid") Long cid, + @Param("did") Integer did, + @Param("onlyMineAndAdmin") Boolean onlyMineAndAdmin, + @Param("myAndAdminUidList") List myAndAdminUidList); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestAnnouncementMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestAnnouncementMapper.java new file mode 100644 index 0000000..902a9af --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestAnnouncementMapper.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.contest.ContestAnnouncement; + +@Mapper +@Repository +public interface ContestAnnouncementMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestExplanationMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestExplanationMapper.java new file mode 100644 index 0000000..44d119c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestExplanationMapper.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.contest.ContestExplanation; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestExplanationMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestMapper.java new file mode 100644 index 0000000..a90f913 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestMapper.java @@ -0,0 +1,33 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.vo.ContestRegisterCountVo; +import top.hcode.hoj.pojo.vo.ContestVo; +import top.hcode.hoj.pojo.entity.contest.Contest; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ContestMapper extends BaseMapper { + List getContestList(IPage page,@Param("type") Integer type, + @Param("status")Integer status,@Param("keyword")String keyword); + + List getContestRegisterCount(@Param("cidList")List cidList); + + ContestVo getContestInfoById(@Param("cid")long cid); + + List getWithinNext14DaysContests(); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestPrintMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestPrintMapper.java new file mode 100644 index 0000000..9700d96 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestPrintMapper.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.contest.ContestPrint; + +/** + * @Author: Himit_ZH + * @Date: 2021/9/19 21:04 + * @Description: + */ +@Mapper +@Repository +public interface ContestPrintMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestProblemMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestProblemMapper.java new file mode 100644 index 0000000..55aa99f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestProblemMapper.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.hcode.hoj.pojo.vo.ContestProblemVo; + +import java.util.Date; +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ContestProblemMapper extends BaseMapper { + List getContestProblemList(@Param("cid") Long cid, @Param("startTime") Date startTime, + @Param("endTime") Date endTime, @Param("sealTime") Date sealTime, + @Param("isAdmin") Boolean isAdmin, @Param("adminList") List adminList); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestRecordMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestRecordMapper.java new file mode 100644 index 0000000..3721fd2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestRecordMapper.java @@ -0,0 +1,43 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.pojo.vo.ContestRecordVo; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ContestRecordMapper extends BaseMapper { + List getACInfo(@Param("status") Integer status, @Param("cid") Long cid); + + List getOIContestRecordByRecentSubmission(@Param("cid") Long cid, + @Param("externalCidList") List externalCidList, + @Param("contestCreatorUid") String contestCreatorUid, + @Param("isOpenSealRank") Boolean isOpenSealRank, + @Param("sealTime") Long sealTime, + @Param("endTime") Long endTime); + + List getOIContestRecordByHighestSubmission(@Param("cid") Long cid, + @Param("externalCidList") List externalCidList, + @Param("contestCreatorUid") String contestCreatorUid, + @Param("isOpenSealRank") Boolean isOpenSealRank, + @Param("sealTime") Long sealTime, + @Param("endTime") Long endTime); + + List getACMContestRecord(@Param("contestCreatorUid") String contestCreatorUid, + @Param("cid") Long cid, + @Param("externalCidList") List externalCidList, + @Param("time") Long time); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestRegisterMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestRegisterMapper.java new file mode 100644 index 0000000..d07c8bc --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestRegisterMapper.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.contest.ContestRegister; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ContestRegisterMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestScoreMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestScoreMapper.java new file mode 100644 index 0000000..b20735e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ContestScoreMapper.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.contest.ContestScore; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestScoreMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionLikeMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionLikeMapper.java new file mode 100644 index 0000000..3237d75 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionLikeMapper.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.discussion.DiscussionLike; + + +@Mapper +@Repository +public interface DiscussionLikeMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionMapper.java new file mode 100644 index 0000000..28ffb3e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionMapper.java @@ -0,0 +1,15 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.vo.DiscussionVo; + + +@Mapper +@Repository +public interface DiscussionMapper extends BaseMapper { + DiscussionVo getDiscussion(@Param("did") Integer did, @Param("uid") String uid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionReportMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionReportMapper.java new file mode 100644 index 0000000..51492b2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/DiscussionReportMapper.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.vo.DiscussionReportVo; + +@Mapper +@Repository +public interface DiscussionReportMapper extends BaseMapper { + + IPage getDiscussionReportList(Page page); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/FileMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/FileMapper.java new file mode 100644 index 0000000..fffe4df --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/FileMapper.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.common.File; + +import java.util.List; + +@Mapper +@Repository +public interface FileMapper extends BaseMapper { + + @Update("UPDATE `file` SET `delete` = 1 WHERE `uid` = #{uid} AND `type` = #{type}") + int updateFileToDeleteByUidAndType(@Param("uid") String uid, @Param("type") String type); + + @Update("UPDATE `file` SET `delete` = 1 WHERE `gid` = #{gid} AND `type` = #{type}") + int updateFileToDeleteByGidAndType(@Param("gid") Long gid, @Param("type") String type); + + @Select("select * from file where (type = 'avatar' AND `delete` = true)") + List queryDeleteAvatarList(); + + + @Select("select * from file where (type = 'carousel')") + List queryCarouselFileList(); + + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupAnnouncementMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupAnnouncementMapper.java new file mode 100644 index 0000000..beecd73 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupAnnouncementMapper.java @@ -0,0 +1,26 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Mapper +@Repository +public interface GroupAnnouncementMapper extends BaseMapper { + + List getAnnouncementList(IPage iPage, @Param("gid") Long gid); + + List getAdminAnnouncementList(IPage iPage, @Param("gid") Long gid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupContestMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupContestMapper.java new file mode 100644 index 0000000..a18b8e4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupContestMapper.java @@ -0,0 +1,26 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.vo.ContestVo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Mapper +@Repository +public interface GroupContestMapper extends BaseMapper { + + List getContestList(IPage iPage, @Param("gid") Long gid); + + List getAdminContestList(IPage iPage, @Param("gid") Long gid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupDiscussionMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupDiscussionMapper.java new file mode 100644 index 0000000..4f823ca --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupDiscussionMapper.java @@ -0,0 +1,17 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Mapper +@Repository +public interface GroupDiscussionMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupMapper.java new file mode 100644 index 0000000..1386755 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupMapper.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.GroupVo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Mapper +@Repository +public interface GroupMapper extends BaseMapper { + List getGroupList(IPage iPage, + @Param("keyword") String keyword, + @Param("auth") Integer auth, + @Param("uid") String uid, + @Param("onlyMine") Boolean onlyMine, + @Param("isRoot") Boolean isRoot); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupMemberMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupMemberMapper.java new file mode 100644 index 0000000..b3816dd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupMemberMapper.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.group.GroupMember; +import top.hcode.hoj.pojo.vo.GroupMemberVo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Mapper +@Repository +public interface GroupMemberMapper extends BaseMapper { + List getMemberList(IPage iPage, @Param("keyword") String keyword, @Param("auth") Integer auth, @Param("gid") Long gid); + List getApplyList(IPage iPage, @Param("keyword") String keyword, @Param("auth") Integer auth, @Param("gid") Long gid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupProblemMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupProblemMapper.java new file mode 100644 index 0000000..54d1167 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupProblemMapper.java @@ -0,0 +1,25 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.vo.ProblemVo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Mapper +@Repository +public interface GroupProblemMapper extends BaseMapper { + + List getProblemList(IPage iPage, @Param("gid") Long gid); + + List getAdminProblemList(IPage iPage, @Param("gid") Long gid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupTrainingMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupTrainingMapper.java new file mode 100644 index 0000000..69f6727 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/GroupTrainingMapper.java @@ -0,0 +1,26 @@ +package top.hcode.hoj.mapper; + +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.vo.TrainingVo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Mapper +@Repository +public interface GroupTrainingMapper extends BaseMapper { + + List getTrainingList(IPage iPage, @Param("gid") Long gid); + + List getAdminTrainingList(IPage iPage, @Param("gid") Long gid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java new file mode 100644 index 0000000..6c73888 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface JudgeCaseMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeMapper.java new file mode 100644 index 0000000..4c7e762 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeMapper.java @@ -0,0 +1,63 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.judge.Judge; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.hcode.hoj.pojo.vo.JudgeVo; +import top.hcode.hoj.pojo.vo.ProblemCountVo; + +import java.util.Date; +import java.util.List; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface JudgeMapper extends BaseMapper { + IPage getCommonJudgeList(Page page, + @Param("searchPid") String searchPid, + @Param("status") Integer status, + @Param("username") String username, + @Param("uid") String uid, + @Param("completeProblemID") Boolean completeProblemID, + @Param("gid") Long gid); + + IPage getContestJudgeList(Page page, + @Param("displayId") String displayId, + @Param("cid") Long cid, + @Param("status") Integer status, + @Param("username") String username, + @Param("uid") String uid, + @Param("beforeContestSubmit") Boolean beforeContestSubmit, + @Param("rule") String rule, + @Param("startTime") Date startTime, + @Param("sealRankTime") Date sealRankTime, + @Param("sealTimeUid") String sealTimeUid, + @Param("completeProblemID") Boolean completeProblemID); + + int getTodayJudgeNum(); + + ProblemCountVo getContestProblemCount(@Param("pid") Long pid, + @Param("cpid") Long cpid, + @Param("cid") Long cid, + @Param("startTime") Date startTime, + @Param("sealRankTime") Date sealRankTime, + @Param("adminList") List adminList); + + ProblemCountVo getProblemCount(@Param("pid") Long pid, @Param("gid") Long gid); + + List getProblemListCount(@Param("pidList") List pidList); + + List getLastYearUserJudgeList(@Param("uid")String uid, @Param("username")String username); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java new file mode 100644 index 0000000..4e5fb7d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java @@ -0,0 +1,13 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.judge.JudgeServer; + + +@Mapper +@Repository +public interface JudgeServerMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/LanguageMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/LanguageMapper.java new file mode 100644 index 0000000..3703001 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/LanguageMapper.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.Language; + +@Mapper +@Repository +public interface LanguageMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/MappingTrainingCategoryMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/MappingTrainingCategoryMapper.java new file mode 100644 index 0000000..dcfa7d6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/MappingTrainingCategoryMapper.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.training.MappingTrainingCategory; + +@Mapper +@Repository +public interface MappingTrainingCategoryMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/MsgRemindMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/MsgRemindMapper.java new file mode 100644 index 0000000..41886cd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/MsgRemindMapper.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.msg.MsgRemind; +import top.hcode.hoj.pojo.vo.UserMsgVo; +import top.hcode.hoj.pojo.vo.UserUnreadMsgCountVo; + +@Mapper +@Repository +public interface MsgRemindMapper extends BaseMapper { + UserUnreadMsgCountVo getUserUnreadMsgCount(@Param("uid") String uid); + + IPage getUserMsg(Page page, @Param("uid") String uid, + @Param("action") String action); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java new file mode 100644 index 0000000..1cb38b6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/14 19:57 + * @Description: + */ +@Mapper +@Repository +public interface ProblemCaseMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java new file mode 100644 index 0000000..b3c016c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.ProblemCount; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ProblemCountMapper extends BaseMapper { + ProblemCount getContestProblemCount(@Param("pid") Long pid, @Param("cpid") Long cpid, @Param("cid") Long cid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemLanguageMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemLanguageMapper.java new file mode 100644 index 0000000..705d6f2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemLanguageMapper.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.ProblemLanguage; + +@Mapper +@Repository +public interface ProblemLanguageMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemMapper.java new file mode 100644 index 0000000..bf43e06 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemMapper.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.pojo.entity.problem.Problem; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ProblemMapper extends BaseMapper { + List getProblemList(IPage page, + @Param("pid") Long pid, + @Param("keyword") String keyword, + @Param("difficulty") Integer difficulty, + @Param("tid") List tid, + @Param("tagListSize") Integer tagListSize, + @Param("oj") String oj); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemTagMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemTagMapper.java new file mode 100644 index 0000000..a517173 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ProblemTagMapper.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.ProblemTag; + +@Mapper +@Repository +public interface ProblemTagMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RemoteJudgeAccountMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RemoteJudgeAccountMapper.java new file mode 100644 index 0000000..a34c212 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RemoteJudgeAccountMapper.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; + +import java.util.List; + +@Mapper +@Repository +public interface RemoteJudgeAccountMapper extends BaseMapper { + + + @Select("select * from `remote_judge_account` where `oj` = #{oj} and `status` = 1 for update") + public List getAvailableAccount(@Param("oj") String oj); + + + @Update("update `remote_judge_account` set `status` = 0 where `id` = #{id} and `status` = 1") + public int updateAccountStatusById(@Param("id") Integer id); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ReplyMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ReplyMapper.java new file mode 100644 index 0000000..8d1809d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/ReplyMapper.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.discussion.Reply; +import top.hcode.hoj.pojo.vo.ReplyVo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/5 22:07 + * @Description: + */ + +@Mapper +@Repository +public interface ReplyMapper extends BaseMapper { + + public List getAllReplyByCommentId(@Param("commentId") Integer commentId, + @Param("myAndAdminUidList") List myAndAdminUidList); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleAuthMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleAuthMapper.java new file mode 100644 index 0000000..f8f39f8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleAuthMapper.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.user.RoleAuth; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.hcode.hoj.pojo.vo.RoleAuthsVo; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface RoleAuthMapper extends BaseMapper { + RoleAuthsVo getRoleAuths(@Param("rid") long rid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleMapper.java new file mode 100644 index 0000000..0ec7707 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/RoleMapper.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.user.Role; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface RoleMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/SessionMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/SessionMapper.java new file mode 100644 index 0000000..1e24a74 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/SessionMapper.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.user.Session; + +@Mapper +@Repository +public interface SessionMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagClassificationMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagClassificationMapper.java new file mode 100644 index 0000000..ddb9e3c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagClassificationMapper.java @@ -0,0 +1,15 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.TagClassification; + +/** + * @Author Himit_ZH + * @Date 2022/8/3 + */ +@Mapper +@Repository +public interface TagClassificationMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagMapper.java new file mode 100644 index 0000000..e0ac339 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TagMapper.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.Tag; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface TagMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingCategoryMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingCategoryMapper.java new file mode 100644 index 0000000..0fef289 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingCategoryMapper.java @@ -0,0 +1,14 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; + +@Mapper +@Repository +public interface TrainingCategoryMapper extends BaseMapper { + + public TrainingCategory getTrainingCategoryByTrainingId(@Param("tid") Long tid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingMapper.java new file mode 100644 index 0000000..0764674 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingMapper.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.vo.TrainingVo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/19 22:03 + * @Description: + */ +@Mapper +@Repository +public interface TrainingMapper extends BaseMapper { + + List getTrainingList(@Param("categoryId") Long categoryId, + @Param("auth") String auth, + @Param("keyword") String keyword); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingProblemMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingProblemMapper.java new file mode 100644 index 0000000..0baf67c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingProblemMapper.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.pojo.vo.ProblemVo; + +import java.util.List; + +@Mapper +@Repository +public interface TrainingProblemMapper extends BaseMapper { + + public List getTrainingProblemCount(@Param("tid") Long tid); + + public List getTrainingProblemList(@Param("tid") Long tid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRecordMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRecordMapper.java new file mode 100644 index 0000000..ea05830 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRecordMapper.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.training.TrainingRecord; +import top.hcode.hoj.pojo.vo.TrainingRecordVo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/21 14:27 + * @Description: + */ + +@Mapper +@Repository +public interface TrainingRecordMapper extends BaseMapper { + + public List getTrainingRecord(@Param("tid") Long tid); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRegisterMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRegisterMapper.java new file mode 100644 index 0000000..6e90a33 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/TrainingRegisterMapper.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.training.TrainingRegister; + +@Mapper +@Repository +public interface TrainingRegisterMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java new file mode 100644 index 0000000..c60fac6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface UserAcproblemMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserInfoMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserInfoMapper.java new file mode 100644 index 0000000..e0aad34 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserInfoMapper.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.dto.RegisterDto; +import top.hcode.hoj.pojo.entity.user.UserInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface UserInfoMapper extends BaseMapper { + int addUser(RegisterDto registerDto); + + List getSuperAdminUidList(); + + List getProblemAdminUidList(); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserRecordMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserRecordMapper.java new file mode 100644 index 0000000..dea5edd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserRecordMapper.java @@ -0,0 +1,40 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.vo.ACMRankVo; +import top.hcode.hoj.pojo.entity.user.UserRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.hcode.hoj.pojo.vo.OIRankVo; +import top.hcode.hoj.pojo.vo.UserHomeVo; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface UserRecordMapper extends BaseMapper { + IPage getACMRankList(Page page, @Param("uidList") List uidList); + + List getRecent7ACRank(); + + IPage getOIRankList(Page page, @Param("uidList") List uidList); + + UserHomeVo getUserHomeInfo(@Param("uid") String uid, @Param("username") String username); + + IPage getGroupRankList(Page page, + @Param("gid") Long gid, + @Param("uidList") List uidList, + @Param("rankType") String rankType); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserRoleMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserRoleMapper.java new file mode 100644 index 0000000..0365cc0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserRoleMapper.java @@ -0,0 +1,38 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.user.Role; +import top.hcode.hoj.pojo.entity.user.UserRole; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import top.hcode.hoj.pojo.vo.UserRolesVo; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface UserRoleMapper extends BaseMapper { + + UserRolesVo getUserRoles(@Param("uid") String uid, @Param("username") String username); + + List getRolesByUid(@Param("uid") String uid); + + IPage getUserList(Page page, @Param("limit") int limit, + @Param("currentPage") int currentPage, + @Param("keyword") String keyword); + + IPage getAdminUserList(Page page, @Param("limit") int limit, + @Param("currentPage") int currentPage, + @Param("keyword") String keyword); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserSysNoticeMapper.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserSysNoticeMapper.java new file mode 100644 index 0000000..507a0e6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/UserSysNoticeMapper.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.msg.UserSysNotice; +import top.hcode.hoj.pojo.vo.SysMsgVo; + + +@Mapper +@Repository +public interface UserSysNoticeMapper extends BaseMapper { + + IPage getSysOrMineNotice(Page page, @Param("uid") String uid, @Param("type") String type); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/AdminSysNoticeMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/AdminSysNoticeMapper.xml new file mode 100644 index 0000000..6baaf07 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/AdminSysNoticeMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/AnnouncementMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/AnnouncementMapper.xml new file mode 100644 index 0000000..bdb1c0d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/AnnouncementMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/CommentMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/CommentMapper.xml new file mode 100644 index 0000000..7e795b4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/CommentMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestExplanationMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestExplanationMapper.xml new file mode 100644 index 0000000..26935a1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestExplanationMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestMapper.xml new file mode 100644 index 0000000..069f6b2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestProblemMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestProblemMapper.xml new file mode 100644 index 0000000..d718486 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestProblemMapper.xml @@ -0,0 +1,55 @@ + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestRecordMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestRecordMapper.xml new file mode 100644 index 0000000..6173168 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestRecordMapper.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestRegisterMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestRegisterMapper.xml new file mode 100644 index 0000000..8cd7da7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestRegisterMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestScoreMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestScoreMapper.xml new file mode 100644 index 0000000..14ca87b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ContestScoreMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/DiscussionMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/DiscussionMapper.xml new file mode 100644 index 0000000..eab557a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/DiscussionMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/DiscussionReportMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/DiscussionReportMapper.xml new file mode 100644 index 0000000..349cfa4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/DiscussionReportMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupAnnouncementMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupAnnouncementMapper.xml new file mode 100644 index 0000000..019704b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupAnnouncementMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupContestMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupContestMapper.xml new file mode 100644 index 0000000..ccc10a5 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupContestMapper.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupDiscussionMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupDiscussionMapper.xml new file mode 100644 index 0000000..bf5a5fb --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupDiscussionMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupMapper.xml new file mode 100644 index 0000000..27e4798 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupMemberMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupMemberMapper.xml new file mode 100644 index 0000000..c5177b6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupMemberMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupProblemMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupProblemMapper.xml new file mode 100644 index 0000000..70c2180 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupProblemMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupTrainingMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupTrainingMapper.xml new file mode 100644 index 0000000..eeb40ce --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/GroupTrainingMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/JudgeMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/JudgeMapper.xml new file mode 100644 index 0000000..c73ba45 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/JudgeMapper.xml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/MsgRemindMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/MsgRemindMapper.xml new file mode 100644 index 0000000..325ba13 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/MsgRemindMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ProblemCountMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ProblemCountMapper.xml new file mode 100644 index 0000000..c4df5c2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ProblemCountMapper.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ProblemMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ProblemMapper.xml new file mode 100644 index 0000000..2caa552 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ProblemMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ReplyMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ReplyMapper.xml new file mode 100644 index 0000000..1025eae --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/ReplyMapper.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/RoleAuthMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/RoleAuthMapper.xml new file mode 100644 index 0000000..bbe78d2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/RoleAuthMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/RoleMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/RoleMapper.xml new file mode 100644 index 0000000..0715277 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/RoleMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/SessionMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/SessionMapper.xml new file mode 100644 index 0000000..4e0a953 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/SessionMapper.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TagMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TagMapper.xml new file mode 100644 index 0000000..4af7314 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TagMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingCategoryMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingCategoryMapper.xml new file mode 100644 index 0000000..575ed0e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingCategoryMapper.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingMapper.xml new file mode 100644 index 0000000..92e9d69 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingProblemMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingProblemMapper.xml new file mode 100644 index 0000000..d123d9f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingProblemMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingRecordMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingRecordMapper.xml new file mode 100644 index 0000000..ba4150c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/TrainingRecordMapper.xml @@ -0,0 +1,14 @@ + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserAcproblemMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserAcproblemMapper.xml new file mode 100644 index 0000000..f453162 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserAcproblemMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserInfoMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserInfoMapper.xml new file mode 100644 index 0000000..37bc99c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserInfoMapper.xml @@ -0,0 +1,16 @@ + + + + + insert into user_info(uuid,username,password,email) values ( + #{uuid}, #{username},#{password},#{email} + ) + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserRecordMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserRecordMapper.xml new file mode 100644 index 0000000..d9eaae1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserRecordMapper.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserRoleMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserRoleMapper.xml new file mode 100644 index 0000000..a021c59 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserRoleMapper.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserSysNoticeMapper.xml b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserSysNoticeMapper.xml new file mode 100644 index 0000000..58fcf3c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/mapper/xml/UserSysNoticeMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/bo/EmailRuleBo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/bo/EmailRuleBo.java new file mode 100644 index 0000000..3936fea --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/bo/EmailRuleBo.java @@ -0,0 +1,60 @@ +package top.hcode.hoj.pojo.bo; + +import lombok.Data; +import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.PropertiesPropertySource; +import org.springframework.core.io.support.DefaultPropertySourceFactory; +import org.springframework.core.io.support.EncodedResource; +import org.springframework.lang.Nullable; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; +import java.util.Properties; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/17 12:10 + * @Description: 邮箱规则类,读取email-rule.yml文件 + */ + +@Component +@PropertySource(value = "classpath:email-rule.yml",factory = CompositePropertySourceFactory.class) +@ConfigurationProperties(prefix = "hoj") +@Data +public class EmailRuleBo { + + private List blackList; +} + +class CompositePropertySourceFactory extends DefaultPropertySourceFactory { + @Override + public org.springframework.core.env.PropertySource createPropertySource(@Nullable String name, EncodedResource resource) throws IOException { + String sourceName = Optional.ofNullable(name).orElse(resource.getResource().getFilename()); + if (!resource.getResource().exists()) { + // return an empty Properties + return new PropertiesPropertySource(sourceName, new Properties()); + } else if (sourceName.endsWith(".yml") || sourceName.endsWith(".yaml")) { + Properties propertiesFromYaml = loadYaml(resource); + return new PropertiesPropertySource(sourceName, propertiesFromYaml); + } else { + return super.createPropertySource(name, resource); + } + } + /** + * load yaml file to properties + * + * @param resource + * @return + * @throws IOException + */ + private Properties loadYaml(EncodedResource resource) throws IOException { + YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); + factory.setResources(resource.getResource()); + factory.afterPropertiesSet(); + return factory.getObject(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AdminEditUserDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AdminEditUserDto.java new file mode 100644 index 0000000..1883d63 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AdminEditUserDto.java @@ -0,0 +1,36 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 21:09 + * @Description: + */ +@Data +public class AdminEditUserDto { + + @NotBlank(message = "username不能为空") + private String username; + + @NotBlank(message = "uid不能为空") + private String uid; + + private String realname; + + private String email; + + private String password; + + private Integer type; + + private Integer status; + + private Boolean setNewPwd; + + private String titleName; + + private String titleColor; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AnnouncementDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AnnouncementDto.java new file mode 100644 index 0000000..d7ec50a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/AnnouncementDto.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; +import top.hcode.hoj.pojo.entity.common.Announcement; + +import javax.validation.constraints.NotBlank; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/21 22:55 + * @Description: + */ +@Data +public class AnnouncementDto { + @NotBlank(message = "比赛id不能为空") + private Long cid; + + private Announcement announcement; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ApplyResetPasswordDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ApplyResetPasswordDto.java new file mode 100644 index 0000000..0249552 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ApplyResetPasswordDto.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 17:26 + * @Description: + */ +@Data +public class ApplyResetPasswordDto { + + private String captcha; + + private String captchaKey; + + private String email; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeEmailDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeEmailDto.java new file mode 100644 index 0000000..a71c407 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeEmailDto.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 18:05 + * @Description: + */ +@Data +public class ChangeEmailDto { + + private String password; + + private String newEmail; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeGroupProblemProgressDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeGroupProblemProgressDto.java new file mode 100644 index 0000000..770c4cd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangeGroupProblemProgressDto.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +/** + * @Author Himit_ZH + * @Date 2022/4/13 + */ +@Data +public class ChangeGroupProblemProgressDto { + + /** + * 题目id + */ + private Long pid; + + /** + * 1为申请中,2为申请通过,3为申请拒绝 + */ + private Integer progress; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangePasswordDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangePasswordDto.java new file mode 100644 index 0000000..04f1c2a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ChangePasswordDto.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 18:06 + * @Description: + */ +@Data +public class ChangePasswordDto { + + private String oldPassword; + + private String newPassword; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckACDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckACDto.java new file mode 100644 index 0000000..201c013 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckACDto.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/17 19:13 + * @Description: + */ +@Data +public class CheckACDto { + + @NotBlank(message = "比赛记录id不能为空") + private Long id; + + @NotBlank(message = "比赛id不能为空") + private Long cid; + + @NotBlank(message = "是否确认不能为空") + private Boolean checked; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckUsernameOrEmailDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckUsernameOrEmailDto.java new file mode 100644 index 0000000..a64085f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/CheckUsernameOrEmailDto.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 18:15 + * @Description: + */ +@Data +public class CheckUsernameOrEmailDto { + + private String email; + + private String username; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestPrintDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestPrintDto.java new file mode 100644 index 0000000..968822d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestPrintDto.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author: Himit_ZH + * @Date: 2021/9/20 13:00 + * @Description: + */ +@Data +public class ContestPrintDto { + + @NotBlank(message = "比赛id不能为空") + private Long cid; + + @NotBlank(message = "打印内容不能为空") + private String content; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestProblemDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestProblemDto.java new file mode 100644 index 0000000..5a88e9e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestProblemDto.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 11:10 + * @Description: + */ +@Data +public class ContestProblemDto { + + @NotBlank(message = "题目id不能为空") + private Long pid; + + @NotBlank(message = "比赛id不能为空") + private Long cid; + + @NotBlank(message = "题目在比赛中的展示id不能为空") + private String displayId; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestRankDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestRankDto.java new file mode 100644 index 0000000..b3d13ac --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ContestRankDto.java @@ -0,0 +1,33 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/12/10 17:07 + * @Description: + */ +@Data +public class ContestRankDto { + /*** + * @param cid 比赛id + * @param removeStar 是否移除打星队伍 + * @param forceRefresh 是否强制实时榜单 + * @param concernedList 关注的用户(uuid)列表 + */ + private Long cid; + + private Integer limit; + + private Integer currentPage; + + private Boolean forceRefresh; + + private Boolean removeStar; + + private List concernedList; + + private List externalCidList; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/DBAndRedisConfigDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/DBAndRedisConfigDto.java new file mode 100644 index 0000000..940e900 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/DBAndRedisConfigDto.java @@ -0,0 +1,58 @@ +package top.hcode.hoj.pojo.dto; + +import io.swagger.annotations.ApiModel; +import lombok.*; +import lombok.experimental.Accessors; + +/** + * @Author sgpublic + * @Date 2022/4/2 19:49 + * @Description + */ +@Data +@Accessors(chain = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class DBAndRedisConfigDto { + + /** + * 数据库名称 + */ + private String dbName; + + /** + * MySQL 主机 + */ + private String dbHost; + + /** + * MySQL 端口 + */ + private Integer dbPort; + + /** + * MySQL 用户名 + */ + private String dbUsername; + + /** + * MySQL 密码 + */ + private String dbPassword ; + + /** + * Redis 主机 + */ + private String redisHost; + + /** + * Redis 端口 + */ + private Integer redisPort; + + /** + * Redis 密码 + */ + private String redisPassword ; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/EmailConfigDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/EmailConfigDto.java new file mode 100644 index 0000000..9be8be4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/EmailConfigDto.java @@ -0,0 +1,48 @@ +package top.hcode.hoj.pojo.dto; + +import io.swagger.annotations.ApiModel; +import lombok.*; +import lombok.experimental.Accessors; + +/** + * @Author sgpublic + * @Date 2022/4/2 19:40 + * @Description + */ +@Data +@Accessors(chain = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class EmailConfigDto { + + /** + * SMTP 主机 + */ + private String emailHost; + + /** + * SMTP 密码/授权码 + */ + private String emailPassword; + + /** + * SMTP 端口 + */ + private Integer emailPort; + + /** + * SMTP 邮箱 + */ + private String emailUsername; + + /** + * 邮件背景图片 + */ + private String emailBGImg; + + /** + * SMTP 使用 SSL + */ + private Boolean emailSsl; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/LoginDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/LoginDto.java new file mode 100644 index 0000000..d29df94 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/LoginDto.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author: Himit_ZH + * @Date: 2020/7/20 00:23 + * @Description: 登录数据实体类 + */ +@Data +public class LoginDto implements Serializable { + @NotBlank(message = "用户名不能为空") + private String username; + + @NotBlank(message = "密码不能为空") + private String password; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/PidListDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/PidListDto.java new file mode 100644 index 0000000..061505b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/PidListDto.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/28 22:33 + * @Description: 主要是获取前端题目列表页查询用户对应题目提交详情 + */ +@Data +@Accessors(chain = true) +public class PidListDto { + @NotEmpty(message = "查询的题目id列表不能为空") + private List pidList; + + @NotNull(message = "是否为比赛题目提交判断不能为空") + private Boolean isContestProblemList; + + private Long cid; + + private Long gid; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ProblemDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ProblemDto.java new file mode 100644 index 0000000..435b9a7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ProblemDto.java @@ -0,0 +1,38 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; +import top.hcode.hoj.pojo.entity.problem.*; + +import java.util.HashMap; +import java.util.List; + + +/** + * @Author: Himit_ZH + * @Date: 2020/12/14 22:30 + * @Description: + */ +@Data +@Accessors(chain = true) +public class ProblemDto { + + private Problem problem; + + private List samples; + + private Boolean isUploadTestCase; + + private String uploadTestcaseDir; + + private String judgeMode; + + private Boolean changeModeCode; + + private List languages; + + private List tags; + + private List codeTemplates; + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/QDOJProblemDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/QDOJProblemDto.java new file mode 100644 index 0000000..0589c34 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/QDOJProblemDto.java @@ -0,0 +1,79 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.ToString; +import lombok.experimental.Accessors; +import top.hcode.hoj.pojo.entity.problem.CodeTemplate; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/30 15:09 + * @Description: + */ +@ToString +@Accessors(chain = true) +public class QDOJProblemDto implements Serializable { + private Problem problem; + + private List languages; + + private List samples; + + private List tags; + + private List codeTemplates; + + private Boolean isSpj; + + public Problem getProblem() { + return problem; + } + + public void setProblem(Problem problem) { + this.problem = problem; + } + + public List getLanguages() { + return languages; + } + + public void setLanguages(List languages) { + this.languages = languages; + } + + public List getSamples() { + return samples; + } + + public void setSamples(List samples) { + this.samples = samples; + } + + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + public List getCodeTemplates() { + return codeTemplates; + } + + public void setCodeTemplates(List codeTemplates) { + this.codeTemplates = codeTemplates; + } + + public Boolean getIsSpj() { + return isSpj; + } + + public void setIsSpj(Boolean spj) { + isSpj = spj; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterContestDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterContestDto.java new file mode 100644 index 0000000..179dd83 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterContestDto.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/12 14:37 + * @Description: + */ +@Data +public class RegisterContestDto { + + @NotBlank(message = "cid不能为空") + private Long cid; + + @NotBlank(message = "password不能为空") + private String password; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterDto.java new file mode 100644 index 0000000..91ceb8a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterDto.java @@ -0,0 +1,35 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; +import org.springframework.lang.Nullable; + +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/24 11:15 + * @Description: 注册数据实体类 + */ +@Data +@Accessors(chain = true) +public class RegisterDto implements Serializable { + + @Nullable + private String uuid; + + @NotBlank(message = "用户名不能为空") + private String username; + + @NotBlank(message = "密码不能为空") + private String password; + + @NotBlank(message = "邮箱不能为空") + @Email(message = "邮箱格式错误") + private String email; + + @NotBlank(message = "验证码不能为空") + private String code; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterTrainingDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterTrainingDto.java new file mode 100644 index 0000000..3da88d5 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/RegisterTrainingDto.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 17:55 + * @Description: + */ +@Data +public class RegisterTrainingDto { + + @NotBlank(message = "tid不能为空") + private Long tid; + + @NotBlank(message = "password不能为空") + private String password; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ReplyDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ReplyDto.java new file mode 100644 index 0000000..98c4bf1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ReplyDto.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; +import top.hcode.hoj.pojo.entity.discussion.Reply; + +/** + * @Author: Himit_ZH + * @Date: 2021/6/24 17:00 + * @Description: + */ +@Data +@Accessors(chain = true) +public class ReplyDto { + + private Reply reply; + + private Integer did; + + private Integer quoteId; + + private String quoteType; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ResetPasswordDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ResetPasswordDto.java new file mode 100644 index 0000000..e5724ba --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/ResetPasswordDto.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 17:32 + * @Description: + */ + +@Data +public class ResetPasswordDto { + + private String username; + + private String password; + + private String code; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitIdListDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitIdListDto.java new file mode 100644 index 0000000..a57bbaa --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitIdListDto.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/3 16:50 + * @Description: + */ +@Data +public class SubmitIdListDto { + @NotEmpty(message = "查询的提交id列表不能为空") + private List submitIds; + + private Long cid; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitJudgeDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitJudgeDto.java new file mode 100644 index 0000000..158e38c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SubmitJudgeDto.java @@ -0,0 +1,34 @@ +package top.hcode.hoj.pojo.dto; +; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/30 11:03 + * @Description: 用户代码提交类 + */ +@Data +@Accessors(chain = true) +public class SubmitJudgeDto { + @NotBlank(message = "题目id不能为空") + private String pid; + + @NotBlank(message = "代码语言选择不能为空") + private String language; + + @NotBlank(message = "提交的代码不能为空") + private String code; + + @NotBlank(message = "提交的比赛id所属不能为空,若并非比赛提交,请设置为0") + private Long cid; + + private Long tid; + + private Long gid; + + private Boolean isRemote; + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SwitchConfigDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SwitchConfigDto.java new file mode 100644 index 0000000..0dbbfb3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/SwitchConfigDto.java @@ -0,0 +1,115 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @Author Himit_ZH + * @Date 2022/5/9 + */ +@Data +@Accessors(chain = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SwitchConfigDto { + + /** + * 是否开启公开评论区 + */ + private Boolean openPublicDiscussion; + + /** + * 是否开启团队评论区 + */ + private Boolean openGroupDiscussion; + + /** + * 是否开启比赛讨论区 + */ + private Boolean openContestComment; + + /** + * 是否开启公开评测 + */ + private Boolean openPublicJudge; + + /** + * 是否开启团队评测 + */ + private Boolean openGroupJudge; + + /** + * 是否开启比赛评测 + */ + private Boolean openContestJudge; + + /** + * 是否隐藏非比赛提交详情的代码(超管不受限制) + */ + private Boolean hideNonContestSubmissionCode; + + /** + * 非比赛的提交间隔秒数 + */ + private Integer defaultSubmitInterval; + + /** + * 每天可以创建的团队数量 + */ + private Integer defaultCreateGroupDailyLimit; + + /** + * 总共可以拥有的团队数量 + */ + private Integer defaultCreateGroupLimit; + + /** + * 创建团队的前提 + */ + private Integer defaultCreateGroupACInitValue; + + /** + * 每天可以创建的帖子数量 + */ + private Integer defaultCreateDiscussionDailyLimit; + + /** + * 创建讨论帖子的前提 + */ + private Integer defaultCreateDiscussionACInitValue; + + /** + * 评论和回复的前提 + */ + private Integer defaultCreateCommentACInitValue; + + + /** + * 各个remote judge 的账号与密码列表 + */ + private List hduUsernameList; + + private List hduPasswordList; + + private List cfUsernameList; + + private List cfPasswordList; + + private List pojUsernameList; + + private List pojPasswordList; + + private List atcoderUsernameList; + + private List atcoderPasswordList; + + private List spojUsernameList; + + private List spojPasswordList; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TestEmailDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TestEmailDto.java new file mode 100644 index 0000000..1efddfe --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TestEmailDto.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/4/7 11:02 + * @Description: + */ +@Data +public class TestEmailDto { + /** + * 发送的测试邮箱 + */ + private String email; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeDto.java new file mode 100644 index 0000000..9551bda --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeDto.java @@ -0,0 +1,45 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; + +/** + * @Author Himit_ZH + * @Date 2022/5/27 + */ +@Data +@Accessors(chain = true) +public class TestJudgeDto { + + @NotBlank(message = "题目id") + private Long pid; + + @NotBlank(message = "评测类型:public、contest、group") + private String type; + + @NotBlank(message = "代码") + private String code; + + @NotBlank(message = "编程语言") + private String language; + + @NotBlank(message = "输入") + private String userInput; + + /** + * 预期输出 + */ + private String expectedOutput; + + /** + * 是否为原创OJ的题目 + */ + private Boolean isRemoteJudge; + + /** + * text/x-csrc 用于鉴别语言 + */ + private String mode; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingDto.java new file mode 100644 index 0000000..172767c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingDto.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/22 21:49 + * @Description: 后台管理训练的传输类 + */ +@Data +@Accessors(chain = true) +public class TrainingDto { + + private Training training; + + private TrainingCategory trainingCategory; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingProblemDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingProblemDto.java new file mode 100644 index 0000000..d764269 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/TrainingProblemDto.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 11:10 + * @Description: + */ +@Data +public class TrainingProblemDto { + + @NotBlank(message = "题目id不能为空") + private Long pid; + + @NotBlank(message = "训练id不能为空") + private Long tid; + + @NotBlank(message = "题目在训练中的展示id不能为空") + private String displayId; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/UserReadContestAnnouncementDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/UserReadContestAnnouncementDto.java new file mode 100644 index 0000000..826d00f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/UserReadContestAnnouncementDto.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/7/17 15:31 + * @Description: + */ + +@Data +public class UserReadContestAnnouncementDto { + + private Long cid; + + private List readAnnouncementList; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/WebConfigDto.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/WebConfigDto.java new file mode 100644 index 0000000..d2a10c1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/dto/WebConfigDto.java @@ -0,0 +1,63 @@ +package top.hcode.hoj.pojo.dto; + +import io.swagger.annotations.ApiModel; +import lombok.*; +import lombok.experimental.Accessors; + +/** + * @Author sgpublic + * @Date 2022/4/2 19:44 + * @Description + */ +@Data +@Accessors(chain = true) +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class WebConfigDto { + + /** + * 基础 URL + */ + private String baseUrl; + + /** + * 网站名称 + */ + private String name; + + /** + * 网站简称 + */ + private String shortName; + + /** + * 网站简介 + */ + private String description; + + /** + * 是否允许注册 + */ + private Boolean register; + + /** + * 备案名 + */ + private String recordName; + + /** + * 备案地址 + */ + private String recordUrl; + + /** + * 项目名 + */ + private String projectName; + + /** + * 项目地址 + */ + private String projectUrl; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ACMContestRankVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ACMContestRankVo.java new file mode 100644 index 0000000..a178ed7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ACMContestRankVo.java @@ -0,0 +1,53 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/18 14:55 + * @Description: + */ +@Data +@Accessors(chain = true) +public class ACMContestRankVo { + + @ApiModelProperty(value = "排名,排名为-1则为打星队伍") + private Integer rank; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "用户真实姓名") + private String realname; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "性别") + private String gender; + + @ApiModelProperty(value = "头像") + private String avatar; + + @ApiModelProperty(value = "提交总罚时") + private Long totalTime; + + @ApiModelProperty(value = "总提交数") + private Integer total; + + @ApiModelProperty(value = "ac题目数") + private Integer ac; + + @ApiModelProperty(value = "有提交的题的提交详情") + private HashMap> submissionInfo; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ACMRankVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ACMRankVo.java new file mode 100644 index 0000000..2516924 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ACMRankVo.java @@ -0,0 +1,50 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.checkerframework.checker.index.qual.LengthOf; +import org.checkerframework.checker.index.qual.SubstringIndexFor; + +import java.io.Serializable; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/27 21:09 + * @Description: + */ +@ApiModel(value="ACM排行榜数据类ACMRankVo", description="") +@Data +public class ACMRankVo implements Serializable { + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "个性签名") + private String signature; + + @ApiModelProperty(value = "头像地址") + private String avatar; + + @ApiModelProperty(value = "头衔、称号") + private String titleName; + + @ApiModelProperty(value = "头衔、称号的颜色") + private String titleColor; + + @ApiModelProperty(value = "总提交数") + private Integer total; + + @ApiModelProperty(value = "总通过数") + private Integer ac; + + @ApiModelProperty(value = "cf得分") + private Integer rating; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AccessVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AccessVo.java new file mode 100644 index 0000000..25533a1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AccessVo.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 17:51 + * @Description: + */ +@Data +public class AccessVo { + + @ApiModelProperty(value = "是否有进入比赛或训练的权限") + private Boolean access; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AdminContestVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AdminContestVo.java new file mode 100644 index 0000000..b9dedf2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AdminContestVo.java @@ -0,0 +1,98 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/12/7 19:45 + * @Description: + */ +@ApiModel(value="管理比赛的回传实体", description="") +@Data +public class AdminContestVo { + + @ApiModelProperty(value = "比赛id") + private Long id; + + @ApiModelProperty(value = "比赛创建者id") + private String uid; + + @ApiModelProperty(value = "比赛创建者的用户名") + private String author; + + @ApiModelProperty(value = "比赛标题") + private String title; + + @ApiModelProperty(value = "0为acm赛制,1为比分赛制") + private Integer type; + + @ApiModelProperty(value = "比赛说明") + private String description; + + @ApiModelProperty(value = "比赛来源,原创为0,克隆赛为比赛id") + private Integer source; + + @ApiModelProperty(value = "0为公开赛,1为私有赛(访问有密码),2为保护赛(提交有密码)") + private Integer auth; + + @ApiModelProperty(value = "比赛密码") + private String pwd; + + @ApiModelProperty(value = "开始时间") + private Date startTime; + + @ApiModelProperty(value = "结束时间") + private Date endTime; + + @ApiModelProperty(value = "比赛时长(s)") + private Long duration; + + @ApiModelProperty(value = "是否开启封榜") + private Boolean sealRank; + + @ApiModelProperty(value = "封榜起始时间,一直到比赛结束,不刷新榜单") + private Date sealRankTime; + + @ApiModelProperty(value = "比赛结束是否自动解除封榜,自动转换成真实榜单") + private Boolean autoRealRank; + + @ApiModelProperty(value = "-1为未开始,0为进行中,1为已结束") + private Integer status; + + @ApiModelProperty(value = "是否可见") + private Boolean visible; + + @ApiModelProperty(value = "是否打开打印功能") + private Boolean openPrint; + + @ApiModelProperty(value = "是否打开账号限制") + private Boolean openAccountLimit; + + @ApiModelProperty(value = "账号限制规则 **********") + private String accountLimitRule; + + @ApiModelProperty(value = "排行榜显示(username、nickname、realname)") + private String rankShowName; + + @ApiModelProperty(value = "打星用户列表") + private List starAccount; + + @ApiModelProperty(value = "是否开放比赛榜单") + private Boolean openRank; + + @ApiModelProperty(value = "oi排行榜得分方式,Recent、Highest(最近一次提交、最高得分提交)") + private String oiRankScoreType; + + @ApiModelProperty(value = "团队id") + private Long gid; + + private Date gmtCreate; + + private Date gmtModified; + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AdminSysNoticeVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AdminSysNoticeVo.java new file mode 100644 index 0000000..015c73b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AdminSysNoticeVo.java @@ -0,0 +1,40 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/4 14:03 + * @Description: + */ +@Data +@ApiModel(value="系统通知消息", description="") +public class AdminSysNoticeVo { + + private Long id; + + @ApiModelProperty(value = "通知标题") + private String title; + + @ApiModelProperty(value = "通知内容") + private String content; + + @ApiModelProperty(value = "发给哪些用户类型,例如全部用户All,指定单个用户Single,管理员Admin") + private String type; + + @ApiModelProperty(value = "是否已被拉取过,如果已经拉取过,就无需再次拉取") + private Boolean state; + + @ApiModelProperty(value = "发布通知的管理员用户名") + private String adminUsername; + + private Date gmtCreate; + + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AnnouncementVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AnnouncementVo.java new file mode 100644 index 0000000..08c7a79 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/AnnouncementVo.java @@ -0,0 +1,44 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/10 20:31 + * @Description: + */ +@ApiModel(value="公告数据", description="") +@Data +public class AnnouncementVo { + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "通知标题") + private String title; + + @ApiModelProperty(value = "通知内容") + private String content; + + @ApiModelProperty(value = "发布者(必须为比赛创建者或者超级管理员才能)") + private String uid; + + @ApiModelProperty(value = "发布者的用户名") + private String username; + + @ApiModelProperty(value = "0可见,1不可见") + private int status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CaptchaVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CaptchaVo.java new file mode 100644 index 0000000..19588d9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CaptchaVo.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 16:37 + * @Description: + */ +@Data +public class CaptchaVo { + + @ApiModelProperty(value = "验证码图片的base64") + private String img; + + @ApiModelProperty(value = "验证码key") + private String captchaKey; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ChangeAccountVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ChangeAccountVo.java new file mode 100644 index 0000000..3ae5ab3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ChangeAccountVo.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.pojo.vo; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 17:58 + * @Description: + */ +@Data +public class ChangeAccountVo { + + private Integer code; + + private String msg; + + private UserInfoVo userInfo; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CheckUsernameOrEmailVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CheckUsernameOrEmailVo.java new file mode 100644 index 0000000..03f8ca0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CheckUsernameOrEmailVo.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.pojo.vo; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 18:15 + * @Description: + */ +@Data +public class CheckUsernameOrEmailVo { + + private Boolean email; + + private Boolean username; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CommentListVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CommentListVo.java new file mode 100644 index 0000000..4a2a070 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CommentListVo.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.Data; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 16:12 + * @Description: + */ +@Data +public class CommentListVo { + + private IPage commentList; + + private HashMap commentLikeMap; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CommentVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CommentVo.java new file mode 100644 index 0000000..e36020f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/CommentVo.java @@ -0,0 +1,53 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/5 22:30 + * @Description: + */ +@ApiModel(value = "评论数据列表VO", description = "") +@Data +public class CommentVo { + + @ApiModelProperty(value = "评论id") + private Integer id; + + @ApiModelProperty(value = "评论内容") + private String content; + + @ApiModelProperty(value = "评论者id") + private String fromUid; + + @ApiModelProperty(value = "评论者用户名") + private String fromName; + + @ApiModelProperty(value = "评论组头像地址") + private String fromAvatar; + + @ApiModelProperty(value = "评论者角色") + private String fromRole; + + @ApiModelProperty(value = "评论者头衔名称") + private String fromTitleName; + + @ApiModelProperty(value = "评论者头衔背景颜色") + private String fromTitleColor; + + @ApiModelProperty(value = "点赞数量") + private Integer likeNum; + + @ApiModelProperty(value = "该评论的总回复数") + private Integer totalReplyNum; + + private Date gmtCreate; + + @ApiModelProperty(value = "该评论回复列表") + private List replyList; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ConfigVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ConfigVo.java new file mode 100644 index 0000000..07f5170 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ConfigVo.java @@ -0,0 +1,226 @@ +package top.hcode.hoj.pojo.vo; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; + +import java.util.List; + + +/** + * @Author: Himit_ZH + * @Date: 2020/12/2 21:30 + * @Description: + */ +@RefreshScope +@Data +@Component +public class ConfigVo { + // 数据库配置 + @Value("${hoj.db.username}") + private String mysqlUsername; + + @Value("${hoj.db.password}") + private String mysqlPassword; + + @Value("${hoj.db.name}") + private String mysqlDBName; + + @Value("${hoj.db.host}") + private String mysqlHost; + + @Value("${hoj.db.public-host:172.20.0.3}") + private String mysqlPublicHost; + + @Value("${hoj.db.port}") + private Integer mysqlPort; + + @Value("${hoj.db.public-port:3306}") + private Integer mysqlPublicPort; + + // 判题服务token + @Value("${hoj.judge.token}") + private String judgeToken; + + // 缓存配置 + @Value("${hoj.redis.host}") + private String redisHost; + + @Value("${hoj.redis.port}") + private Integer redisPort; + + @Value("${hoj.redis.password}") + private String redisPassword; + + // jwt配置 + @Value("${hoj.jwt.secret}") + private String tokenSecret; + + @Value("${hoj.jwt.expire}") + private String tokenExpire; + + @Value("${hoj.jwt.checkRefreshExpire}") + private String checkRefreshExpire; + + // 邮箱配置 + @Value("${hoj.mail.username}") + private String emailUsername; + + @Value("${hoj.mail.password}") + private String emailPassword; + + @Value("${hoj.mail.host}") + private String emailHost; + + @Value("${hoj.mail.port}") + private Integer emailPort; + + @Value("${hoj.mail.ssl}") + private Boolean emailSsl; + + @Value("${hoj.mail.background-img}") + private String emailBGImg; + + // 网站前端显示配置 + @Value("${hoj.web-config.base-url}") + private String baseUrl; + + @Value("${hoj.web-config.name}") + private String name; + + @Value("${hoj.web-config.short-name}") + private String shortName; + + @Value("${hoj.web-config.description}") + private String description; + + @Value("${hoj.web-config.register}") + private Boolean register; + + @Value("${hoj.web-config.footer.record.name}") + private String recordName; + + @Value("${hoj.web-config.footer.record.url}") + private String recordUrl; + + @Value("${hoj.web-config.footer.project.name}") + private String projectName; + + @Value("${hoj.web-config.footer.project.url}") + private String projectUrl; + + @Value("${hoj.hdu.account.username:}") + private List hduUsernameList; + + @Value("${hoj.hdu.account.password:}") + private List hduPasswordList; + + @Value("${hoj.cf.account.username:}") + private List cfUsernameList; + + @Value("${hoj.cf.account.password:}") + private List cfPasswordList; + + @Value("${hoj.poj.account.username:}") + private List pojUsernameList; + + @Value("${hoj.poj.account.password:}") + private List pojPasswordList; + + @Value("${hoj.atcoder.account.username:}") + private List atcoderUsernameList; + + @Value("${hoj.atcoder.account.password:}") + private List atcoderPasswordList; + + @Value("${hoj.spoj.account.username:}") + private List spojUsernameList; + + @Value("${hoj.spoj.account.password:}") + private List spojPasswordList; + + /** + * 是否开启公开评论区 + */ + @Value("${hoj.switch.discussion.public:true}") + private Boolean openPublicDiscussion; + + /** + * 是否开启团队评论区 + */ + @Value("${hoj.switch.discussion.group:true}") + private Boolean openGroupDiscussion; + + /** + * 是否开启比赛讨论区 + */ + @Value("${hoj.switch.comment.contest:true}") + private Boolean openContestComment; + + /** + * 是否开启公开评测 + */ + @Value("${hoj.switch.judge.public:true}") + private Boolean openPublicJudge; + + /** + * 是否开启团队评测 + */ + @Value("${hoj.switch.judge.group:true}") + private Boolean openGroupJudge; + + /** + * 是否开启比赛评测 + */ + @Value("${hoj.switch.judge.contest:true}") + private Boolean openContestJudge; + + /** + * 是否隐藏非比赛提交详情的代码(超管不受限制) + */ + @Value("${hoj.switch.judge.hide-non-contest-code:false}") + private Boolean hideNonContestSubmissionCode; + + /** + * 非比赛的提交间隔秒数 + */ + @Value("${hoj.switch.judge.submit-interval:8}") + private Integer defaultSubmitInterval; + + /** + * 每天可以创建的团队数量 + */ + @Value("${hoj.switch.group.create-daily:2}") + private Integer defaultCreateGroupDailyLimit; + + /** + * 总共可以拥有的团队数量 + */ + @Value("${hoj.switch.group.create-total:5}") + private Integer defaultCreateGroupLimit; + + /** + * 创建团队的前提:20道题目通过 + */ + @Value("${hoj.switch.group.ac-initial-value:20}") + private Integer defaultCreateGroupACInitValue; + + /** + * 每天可以创建的帖子数量 + */ + @Value("${hoj.switch.discussion.create-daily:5}") + private Integer defaultCreateDiscussionDailyLimit; + + /** + * 创建讨论帖子的前提:10道题目通过 + */ + @Value("${hoj.switch.discussion.ac-initial-value:10}") + private Integer defaultCreateDiscussionACInitValue; + + /** + * 评论和回复的前提:10道题目通过 + */ + @Value("${hoj.switch.comment.ac-initial-value:10}") + private Integer defaultCreateCommentACInitValue; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestOutsideInfo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestOutsideInfo.java new file mode 100644 index 0000000..67029ac --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestOutsideInfo.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/12/8 12:32 + * @Description: + */ +@ApiModel(value = "赛外排行榜所需的比赛信息,同时包括题目题号、气球颜色", description = "") +@Data +public class ContestOutsideInfo { + + @ApiModelProperty(value = "比赛信息") + private ContestVo contest; + + @ApiModelProperty(value = "比赛题目信息列表") + private List problemList; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestProblemVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestProblemVo.java new file mode 100644 index 0000000..05cc243 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestProblemVo.java @@ -0,0 +1,43 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/16 16:07 + * @Description: + */ +@ApiModel(value = "比赛题目列表格式数据ContestProblemVo", description = "") +@Data +public class ContestProblemVo implements Serializable { + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "该题目在比赛中的顺序id") + private String displayId; + + @ApiModelProperty(value = "比赛id") + private Long cid; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "该题目在比赛中的标题,默认为原名字") + private String displayTitle; + + @ApiModelProperty(value = "该题目在比赛中的气球颜色") + private String color; + + @ApiModelProperty(value = "该题目的ac通过数") + private Integer ac; + + @ApiModelProperty(value = "该题目的总提交数") + private Integer total; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestRecordVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestRecordVo.java new file mode 100644 index 0000000..a6f1f1b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestRecordVo.java @@ -0,0 +1,79 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/28 12:05 + * @Description: + */ +@ApiModel(value="用户在比赛的记录", description="") +@Data +public class ContestRecordVo implements Serializable { + + private Long id; + + @ApiModelProperty(value = "比赛id") + private Long cid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "比赛中的题目id") + private Long cpid; + + @ApiModelProperty(value = "比赛中展示的id") + private String displayId; + + @ApiModelProperty(value = "提交id,用于可重判") + private Long submitId; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "性别") + private String gender; + + @ApiModelProperty(value = "头像") + private String avatar; + + @ApiModelProperty(value = "真实姓名") + private String realname; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "提交结果,0表示未AC通过不罚时,1表示AC通过,-1为未AC通过算罚时") + private Integer status; + + @ApiModelProperty(value = "具体提交时间") + private Date submitTime; + + @ApiModelProperty(value = "提交时间,为提交时间减去比赛时间") + private Long time; + + @ApiModelProperty(value = "OI比赛的得分") + private Integer score; + + @ApiModelProperty(value = "提交耗时") + private Integer useTime; + + @ApiModelProperty(value = "AC是否已校验") + private Boolean checked; + + private Date gmtCreate; + + private Date gmtModified; + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestRegisterCountVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestRegisterCountVo.java new file mode 100644 index 0000000..de04c04 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestRegisterCountVo.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author: Himit_ZH + * @Date: 2022/2/7 20:28 + * @Description: + */ +@Data +@ApiModel(value="比赛报名统计", description="") +public class ContestRegisterCountVo implements Serializable { + + @ApiModelProperty(value = "比赛id") + private Long cid; + + @ApiModelProperty(value = "比赛报名人数") + private Integer count; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestVo.java new file mode 100644 index 0000000..14e8a43 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ContestVo.java @@ -0,0 +1,80 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/27 21:53 + * @Description: + */ +@ApiModel(value="比赛信息", description="") +@Data +public class ContestVo implements Serializable { + + @TableId(value = "比赛id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "创建者用户名") + private String author; + + @ApiModelProperty(value = "比赛标题") + private String title; + + @ApiModelProperty(value = "0为acm赛制,1为比分赛制") + private Integer type; + + @ApiModelProperty(value = "比赛说明") + private String description; + + @ApiModelProperty(value = "-1为未开始,0为进行中,1为已结束") + private Integer status; + + @ApiModelProperty(value = "比赛来源,原创为0,克隆赛为比赛id") + private Integer source; + + @ApiModelProperty(value = "0为公开赛,1为私有赛(有密码),2为保护赛") + private Integer auth; + + @ApiModelProperty("当前服务器系统时间,为了前端统一时间") + private Date now; + + @ApiModelProperty(value = "开始时间") + private Date startTime; + + @ApiModelProperty(value = "结束时间") + private Date endTime; + + @ApiModelProperty(value = "比赛时长(秒)") + private Integer duration; + + @ApiModelProperty(value = "是否开启封榜") + private Boolean sealRank; + + @ApiModelProperty(value = "是否打开打印功能") + private Boolean openPrint; + + @ApiModelProperty(value = "封榜起始时间,一直到比赛结束,不刷新榜单") + private Date sealRankTime; + + @ApiModelProperty(value = "排行榜显示(username、nickname、realname)") + private String rankShowName; + + @ApiModelProperty(value = "是否开放比赛榜单") + private Boolean openRank; + + @ApiModelProperty(value = "oi排行榜得分方式,Recent、Highest(最近一次提交、最高得分提交)") + private String oiRankScoreType; + + @ApiModelProperty(value = "比赛的报名人数") + private Integer count; + + @ApiModelProperty(value = "团队ID") + private Long gid; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/DiscussionReportVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/DiscussionReportVo.java new file mode 100644 index 0000000..1a2efef --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/DiscussionReportVo.java @@ -0,0 +1,51 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author Himit_ZH + * @Date 2022/5/13 + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class DiscussionReportVo { + + private Long id; + + @ApiModelProperty(value = "讨论id") + private Integer did; + + @ApiModelProperty(value = "讨论所属团队id") + private Long gid; + + @ApiModelProperty(value = "讨论标题") + private String discussionTitle; + + @ApiModelProperty(value = "讨论作者") + private String discussionAuthor; + + @ApiModelProperty(value = "举报者的用户名") + private String reporter; + + @ApiModelProperty(value = "举报内容") + private String content; + + @ApiModelProperty(value = "是否已读") + private Boolean status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/DiscussionVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/DiscussionVo.java new file mode 100644 index 0000000..1b2d61d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/DiscussionVo.java @@ -0,0 +1,78 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/7 10:06 + * @Description: + */ +@Data +@ApiModel(value = "讨论数据VO", description = "") +public class DiscussionVo { + + private Integer id; + + @ApiModelProperty(value = "分类id") + private Integer categoryId; + + @ApiModelProperty(value = "分类名字") + private String categoryName; + + @ApiModelProperty(value = "讨论标题") + private String title; + + @ApiModelProperty(value = "讨论简介") + private String description; + + @ApiModelProperty(value = "讨论内容") + private String content; + + @ApiModelProperty(value = "题目关联 默认为null则不关联题目") + private String pid; + + @ApiModelProperty(value = "发表者id") + private String uid; + + @ApiModelProperty(value = "发表者用户名") + private String author; + + @ApiModelProperty(value = "发表者头像地址") + private String avatar; + + @ApiModelProperty(value = "发表者头衔名称") + private String titleName; + + @ApiModelProperty(value = "发表者头衔背景颜色") + private String titleColor; + + @ApiModelProperty(value = "发表者角色") + private String role; + + @ApiModelProperty(value = "浏览数量") + private Integer viewNum; + + @ApiModelProperty(value = "点赞数量") + private Integer likeNum; + + @ApiModelProperty(value = "如果有登录的话,是否点赞了") + private Boolean hasLike; + + @ApiModelProperty(value = "优先级,是否置顶") + private Boolean topPriority; + + @ApiModelProperty(value = "是否封禁 0正常,1封禁") + @TableLogic + private Integer status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ExcelUserVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ExcelUserVo.java new file mode 100644 index 0000000..f5dc378 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ExcelUserVo.java @@ -0,0 +1,22 @@ +package top.hcode.hoj.pojo.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/10 16:33 + * @Description: + */ +@Data +@Accessors(chain = true) +@ColumnWidth(25) +public class ExcelUserVo{ + @ExcelProperty(value = "用户名",index = 0) + private String username; + + @ExcelProperty(value = "密码",index = 1) + private String password; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/GroupMemberVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/GroupMemberVo.java new file mode 100644 index 0000000..af370ac --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/GroupMemberVo.java @@ -0,0 +1,41 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@ApiModel(value="GroupMemberVo", description="") +@Data +public class GroupMemberVo { + + @ApiModelProperty(value = "id") + private Long id; + + @ApiModelProperty(value = "团队id") + private Long gid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "当前状态") + private Integer auth; + + @ApiModelProperty(value = "申请理由") + private String reason; + + @ApiModelProperty(value = "创建时间") + private Date gmtCreate; + + @ApiModelProperty(value = "修改时间") + private Date gmtModify; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/GroupVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/GroupVo.java new file mode 100644 index 0000000..480f114 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/GroupVo.java @@ -0,0 +1,50 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ + +@ApiModel(value="团队查询对象GroupVo", description="") +@Data +public class GroupVo { + @ApiModelProperty(value = "团队id") + private Long id; + + @ApiModelProperty(value = "头像地址") + private String avatar; + + @ApiModelProperty(value = "团队拥有者的用户名") + private String owner; + + @ApiModelProperty(value = "团队名称") + private String name; + + @ApiModelProperty(value = "团队简称") + private String shortName; + + @ApiModelProperty(value = "团队简介") + private String brief; + + @ApiModelProperty(value = "团队介绍") + private String description; + + @ApiModelProperty(value = "0为直接加入,1为输入密码加入,2为申请加入") + private Integer auth; + + @ApiModelProperty(value = "是否隐藏") + private Boolean visible; + + @ApiModelProperty(value = "该团队的总人数") + private Integer memberCount; + + @ApiModelProperty(value = "团队创建时间") + private Date gmtCreate; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ImportProblemVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ImportProblemVo.java new file mode 100644 index 0000000..8ac4a58 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ImportProblemVo.java @@ -0,0 +1,99 @@ +package top.hcode.hoj.pojo.vo; + +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/27 15:21 + * @Description: + */ +@ToString +@Accessors(chain = true) +public class ImportProblemVo implements Serializable { + + private HashMap problem; + + private List languages; + + private List> samples; + + private List tags; + + private List> codeTemplates; + + private HashMap userExtraFile; + + private HashMap judgeExtraFile; + + private String judgeMode; + + public Map getProblem() { + return problem; + } + + public void setProblem(HashMap problem) { + this.problem = problem; + } + + public List getLanguages() { + return languages; + } + + public void setLanguages(List languages) { + this.languages = languages; + } + + public List> getSamples() { + return samples; + } + + public void setSamples(List> samples) { + this.samples = samples; + } + + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + public List> getCodeTemplates() { + return codeTemplates; + } + + public void setCodeTemplates(List> codeTemplates) { + this.codeTemplates = codeTemplates; + } + + public String getJudgeMode() { + return judgeMode; + } + + public void setJudgeMode(String judgeMode) { + this.judgeMode = judgeMode; + } + + public HashMap getUserExtraFile() { + return userExtraFile; + } + + public void setUserExtraFile(HashMap userExtraFile) { + this.userExtraFile = userExtraFile; + } + + public HashMap getJudgeExtraFile() { + return judgeExtraFile; + } + + public void setJudgeExtraFile(HashMap judgeExtraFile) { + this.judgeExtraFile = judgeExtraFile; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/JudgeVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/JudgeVo.java new file mode 100644 index 0000000..c5a910a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/JudgeVo.java @@ -0,0 +1,86 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/29 13:08 + * @Description: + */ +@Data +@ApiModel(value="返回的判题信息", description="") +public class JudgeVo { + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "提交id") + @TableId(value = "submit_id", type = IdType.AUTO) + private Long submitId; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "题目展示id") + private String displayPid; + + @ApiModelProperty(value = "题目标题") + private String title; + + @ApiModelProperty(value = "比赛display_id") + private String displayId; + + @ApiModelProperty(value = "结果码具体参考文档") + private Date submitTime; + + @ApiModelProperty(value = "结果码具体参考文档") + private Integer status; + + @ApiModelProperty(value = "0为代码全部人可见,1为仅自己可见。") + private Boolean share; + + @ApiModelProperty(value = "运行时间(ms)") + private Integer time; + + @ApiModelProperty(value = "运行内存(b)") + private Integer memory; + + @ApiModelProperty(value = "题目得分,ACM题目默认为null") + private Integer score; + + @ApiModelProperty(value = "该题在OI排行榜的分数") + private Integer oiRankScore; + + @ApiModelProperty(value = "代码长度") + private Integer length; + + @ApiModelProperty(value = "代码语言") + private String language; + + @ApiModelProperty(value = "比赛id,非比赛题目默认为0") + private Long cid; + + @ApiModelProperty(value = "比赛中题目排序id,非比赛题目默认为0") + private Long cpid; + + @ApiModelProperty(value = "题目来源") + private String source; + + @ApiModelProperty(value = "判题机ip") + private String judger; + + @ApiModelProperty(value = "提交者所在ip") + private String ip; + + @ApiModelProperty(value = "是否人工评测") + private Boolean isManual; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/OIContestRankVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/OIContestRankVo.java new file mode 100644 index 0000000..4fd1fca --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/OIContestRankVo.java @@ -0,0 +1,54 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/18 18:16 + * @Description: + */ + +@Data +@Accessors(chain = true) +public class OIContestRankVo { + + @ApiModelProperty(value = "排名,排名为-1则为打星队伍") + private Integer rank; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "用户真实姓名") + private String realname; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "性别") + private String gender; + + @ApiModelProperty(value = "头像") + private String avatar; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "提交总得分") + private Integer totalScore; + + @ApiModelProperty(value = "提交总耗时,只有满分的提交才会统计") + private Integer totalTime; + + @ApiModelProperty(value = "OI的题对应提交得分") + private HashMap submissionInfo; + + @ApiModelProperty(value = "OI的题得满分后对应提交最优耗时") + private HashMap timeInfo; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/OIRankVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/OIRankVo.java new file mode 100644 index 0000000..4571da2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/OIRankVo.java @@ -0,0 +1,48 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/7 14:56 + * @Description: + */ +@ApiModel(value="OI排行榜数据类OIRankVo", description="") +@Data +public class OIRankVo implements Serializable { + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "个性签名") + private String signature; + + @ApiModelProperty(value = "头像地址") + private String avatar; + + @ApiModelProperty(value = "头衔、称号") + private String titleName; + + @ApiModelProperty(value = "头衔、称号的颜色") + private String titleColor; + + @ApiModelProperty(value = "OI得分列表") + private Integer score; + + @ApiModelProperty(value = "总提交数") + private Integer total; + + @ApiModelProperty(value = "总通过数") + private Integer ac; + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemCountVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemCountVo.java new file mode 100644 index 0000000..4d49e74 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemCountVo.java @@ -0,0 +1,57 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@Accessors(chain = true) +public class ProblemCountVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long pid; + + private Integer total; + + private Integer ac; + + @ApiModelProperty(value = "空间超限") + private Integer mle; + + @ApiModelProperty(value = "时间超限") + private Integer tle; + + @ApiModelProperty(value = "运行错误") + private Integer re; + + @ApiModelProperty(value = "格式错误") + private Integer pe; + + @ApiModelProperty(value = "编译错误") + private Integer ce; + + @ApiModelProperty(value = "答案错误") + private Integer wa; + + @ApiModelProperty(value = "系统错误") + private Integer se; + + @ApiModelProperty(value = "部分通过,OI题目") + private Integer pa; + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemInfoVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemInfoVo.java new file mode 100644 index 0000000..9d77297 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemInfoVo.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.pojo.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.Tag; +import java.util.HashMap; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/30 21:37 + * @Description: + */ +@Data +@AllArgsConstructor +public class ProblemInfoVo { + private Problem problem; + private List tags; + private List languages; + private ProblemCountVo problemCount; + private HashMap codeTemplate; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemTagVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemTagVo.java new file mode 100644 index 0000000..a4d6d67 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemTagVo.java @@ -0,0 +1,26 @@ +package top.hcode.hoj.pojo.vo; + +import lombok.Data; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.entity.problem.TagClassification; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author Himit_ZH + * @Date 2022/8/3 + */ +@Data +public class ProblemTagVo implements Serializable { + /** + * 标签分类 + */ + private TagClassification classification; + + /** + * 标签列表 + */ + private List tagList; + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemVo.java new file mode 100644 index 0000000..dfad4db --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ProblemVo.java @@ -0,0 +1,86 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import top.hcode.hoj.pojo.entity.problem.Tag; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/27 14:14 + * @Description: + */ +@ApiModel(value = "题目列表查询对象ProblemVo", description = "") +@Data +public class ProblemVo implements Serializable { + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "题目展示id") + private String problemId; + + @ApiModelProperty(value = "题目标题") + private String title; + + @ApiModelProperty(value = "题目难度") + private Integer difficulty; + + @ApiModelProperty(value = "题目类型") + private Integer type; + + @ApiModelProperty(value = "题目标签") + private List tags; + + // 以下为题目做题情况 + + @ApiModelProperty(value = "该题总提交数") + private Integer total = 0; + + @ApiModelProperty(value = "通过提交数") + private Integer ac = 0; + + @ApiModelProperty(value = "空间超限提交数") + private Integer mle = 0; + + @ApiModelProperty(value = "时间超限提交数") + private Integer tle = 0; + + @ApiModelProperty(value = "运行错误提交数") + private Integer re = 0; + + @ApiModelProperty(value = "格式错误提交数") + private Integer pe = 0; + + @ApiModelProperty(value = "编译错误提交数") + private Integer ce = 0; + + @ApiModelProperty(value = "答案错误提交数") + private Integer wa = 0; + + @ApiModelProperty(value = "系统错误提交数") + private Integer se = 0; + + @ApiModelProperty(value = "该IO题目分数总和") + private Integer pa = 0; + + @ApiModelProperty(value = "IO题目总分数") + private Integer score; + + public void setProblemCountVo(ProblemCountVo problemCountVo) { + this.total = problemCountVo.getTotal() == null ? 0 : problemCountVo.getTotal(); + this.ac = problemCountVo.getAc() == null ? 0 : problemCountVo.getAc(); + this.mle = problemCountVo.getMle() == null ? 0 : problemCountVo.getMle(); + this.tle = problemCountVo.getTle() == null ? 0 : problemCountVo.getTle(); + this.re = problemCountVo.getRe() == null ? 0 : problemCountVo.getRe(); + this.pe = problemCountVo.getPe() == null ? 0 : problemCountVo.getPe(); + this.ce = problemCountVo.getCe() == null ? 0 : problemCountVo.getCe(); + this.wa = problemCountVo.getWa() == null ? 0 : problemCountVo.getWa(); + this.se = problemCountVo.getSe() == null ? 0 : problemCountVo.getSe(); + this.pa = problemCountVo.getPa() == null ? 0 : problemCountVo.getPa(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RandomProblemVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RandomProblemVo.java new file mode 100644 index 0000000..dc60e79 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RandomProblemVo.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 10:55 + * @Description: + */ +@Data +public class RandomProblemVo { + + @ApiModelProperty(value = "题目id") + private String problemId; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RegisterCodeVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RegisterCodeVo.java new file mode 100644 index 0000000..09d885b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RegisterCodeVo.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 17:08 + * @Description: + */ +@Data +public class RegisterCodeVo { + + @ApiModelProperty(value = "邮箱") + private String email; + + @ApiModelProperty(value = "注册邮件有效时间,单位秒") + private Integer expire; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ReplyVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ReplyVo.java new file mode 100644 index 0000000..e1535ed --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/ReplyVo.java @@ -0,0 +1,57 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/16 15:24 + * @Description: + */ +@Data +public class ReplyVo { + + private Integer id; + + @ApiModelProperty(value = "评论id") + private Integer commentId; + + @ApiModelProperty(value = "回复评论者id") + private String fromUid; + + @ApiModelProperty(value = "回复评论者用户名") + private String fromName; + + @ApiModelProperty(value = "回复评论者头像地址") + private String fromAvatar; + + @ApiModelProperty(value = "回复评论者角色") + private String fromRole; + + @ApiModelProperty(value = "回复评论者头衔名称") + private String fromTitleName; + + @ApiModelProperty(value = "回复评论者头衔背景颜色") + private String fromTitleColor; + + @ApiModelProperty(value = "被回复的用户id") + private String toUid; + + @ApiModelProperty(value = "被回复的用户名") + private String toName; + + @ApiModelProperty(value = "被回复的用户头像地址") + private String toAvatar; + + @ApiModelProperty(value = "回复的内容") + private String content; + + @ApiModelProperty(value = "是否封禁或删除 0正常,1封禁") + private Integer status; + + private Date gmtCreate; + + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RoleAuthsVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RoleAuthsVo.java new file mode 100644 index 0000000..d6ecc3f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/RoleAuthsVo.java @@ -0,0 +1,40 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import top.hcode.hoj.pojo.entity.user.Auth; + +import java.util.Date; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/5 14:05 + * @Description: + */ +@ApiModel(value="角色以及其对应的权限列表", description="") +@Data +public class RoleAuthsVo { + + @ApiModelProperty(value = "角色id") + private Long id; + + @ApiModelProperty(value = "角色") + private String role; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "默认0可用,1不可用") + private Integer status; + + @ApiModelProperty(value = "创建时间") + private Date gmtCreate; + + @ApiModelProperty(value = "修改时间") + private Date gmtModified; + + @ApiModelProperty(value = "权限列表") + private List auths; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SubmissionInfoVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SubmissionInfoVo.java new file mode 100644 index 0000000..70c40cb --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SubmissionInfoVo.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import top.hcode.hoj.pojo.entity.judge.Judge; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 11:38 + * @Description: + */ +@Data +public class SubmissionInfoVo { + + @ApiModelProperty(value = "提交详情") + private Judge submission; + + @ApiModelProperty(value = "提交者是否可以分享该代码") + private Boolean codeShare; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SysMsgVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SysMsgVo.java new file mode 100644 index 0000000..df52377 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/SysMsgVo.java @@ -0,0 +1,38 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/3 16:36 + * @Description: + */ +@ApiModel(value="用户的系统消息", description="") +@Data +public class SysMsgVo { + + private Long id; + + @ApiModelProperty(value = "通知标题") + private String title; + + @ApiModelProperty(value = "通知内容") + private String content; + + @ApiModelProperty(value = "发布通知的管理员id") + private String adminId; + + @ApiModelProperty(value = "消息类型,系统通知Sys、我的信息Mine") + private String type; + + @ApiModelProperty(value = "是否已读") + private Boolean state; + + private Date gmtCreate; + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TestJudgeVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TestJudgeVo.java new file mode 100644 index 0000000..4d03fad --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TestJudgeVo.java @@ -0,0 +1,51 @@ +package top.hcode.hoj.pojo.vo; + +import lombok.Data; + +/** + * @Author Himit_ZH + * @Date 2022/5/27 + */ +@Data +public class TestJudgeVo { + + /** + * 评测状态码 + */ + private Integer status; + + /** + * 运行时间 ms + */ + private Long time; + + /** + * 运行空间 kb + */ + private Long memory; + + /** + * 用户输入 + */ + private String userInput; + + /** + * 用户输出 + */ + private String userOutput; + + /** + * 预期输出 + */ + private String expectedOutput; + + /** + * 错误信息 + */ + private String stderr; + + /** + * 原题的评测模式:default、spj、interactive + */ + private String problemJudgeMode; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingRankVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingRankVo.java new file mode 100644 index 0000000..1ffaa75 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingRankVo.java @@ -0,0 +1,47 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/22 19:58 + * @Description: + */ +@Data +@Accessors(chain = true) +public class TrainingRankVo { + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "用户真实姓名") + private String realname; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "性别") + private String gender; + + @ApiModelProperty(value = "头像") + private String avatar; + + @ApiModelProperty(value = "ac题目数") + private Integer ac; + + @ApiModelProperty(value = "总运行时间ms") + private Integer totalRunTime; + + @ApiModelProperty(value = "有提交的题的提交详情") + private HashMap> submissionInfo; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingRecordVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingRecordVo.java new file mode 100644 index 0000000..86f7ac6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingRecordVo.java @@ -0,0 +1,61 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/21 14:31 + * @Description: + */ +@Data +@ApiModel(value="用户在训练的记录", description="") +public class TrainingRecordVo { + + private Long id; + + @ApiModelProperty(value = "训练id") + private Long tid; + + @ApiModelProperty(value = "训练题目id") + private Long tpid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "提交id") + private Long submitId; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "性别") + private String gender; + + @ApiModelProperty(value = "头像") + private String avatar; + + @ApiModelProperty(value = "真实姓名") + private String realname; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "提交结果状态码") + private Integer status; + + @ApiModelProperty(value = "OI得分") + private Integer score; + + @ApiModelProperty(value = "提交耗时") + private Integer useTime; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingVo.java new file mode 100644 index 0000000..51b109a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/TrainingVo.java @@ -0,0 +1,56 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/20 10:51 + * @Description: + */ +@ApiModel(value="训练题单查询对象TrainingVo", description="") +@Data +public class TrainingVo implements Serializable { + + @ApiModelProperty(value = "训练id") + private Long id; + + @ApiModelProperty(value = "题目标题") + private String title; + + @ApiModelProperty(value = "训练描述") + private String description; + + @ApiModelProperty(value = "训练创建者用户名") + private String author; + + @ApiModelProperty(value = "训练题单权限类型:Public、Private") + private String auth; + + @ApiModelProperty(value = "训练题单的分类名称") + private String categoryName; + + @ApiModelProperty(value = "训练题单的分类背景颜色") + private String categoryColor; + + @ApiModelProperty(value = "训练题单的编号,升序排序") + private Integer rank; + + @ApiModelProperty(value = "该训练的总题数") + private Integer problemCount; + + @ApiModelProperty(value = "当前用户已完成训练的题数") + private Integer acCount; + + @ApiModelProperty(value = "团队ID") + private Long gid; + + @ApiModelProperty(value = "训练更新时间") + private Date gmtModified; + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserCalendarHeatmapVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserCalendarHeatmapVo.java new file mode 100644 index 0000000..47212e9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserCalendarHeatmapVo.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; + +/** + * @Author Himit_ZH + * @Date 2022/5/26 + */ +@Data +@ApiModel(value="用户主页的提交热力图数据类UserCalendarHeatmapVo", description="") +public class UserCalendarHeatmapVo implements Serializable { + + @ApiModelProperty(value = "结尾日期 例如 2022-02-02") + private String endDate; + + @ApiModelProperty(value = "日期对应的提交次数数据列表") + private List> dataList; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserHomeVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserHomeVo.java new file mode 100644 index 0000000..c356e1b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserHomeVo.java @@ -0,0 +1,67 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/7 22:27 + * @Description:用户主页的数据格式 + */ +@ApiModel(value="用户主页的数据格式类UserHomeVo", description="") +@Data +public class UserHomeVo { + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "个性签名") + private String signature; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "gender") + private String gender; + + @ApiModelProperty(value = "github地址") + private String github; + + @ApiModelProperty(value = "博客地址") + private String blog; + + @ApiModelProperty(value = "头像地址") + private String avatar; + + @ApiModelProperty(value = "头衔、称号") + private String titleName; + + @ApiModelProperty(value = "头衔、称号的颜色") + private String titleColor; + + @ApiModelProperty(value = "总提交数") + private Integer total; + + @ApiModelProperty(value = "cf得分") + private Integer rating; + + @ApiModelProperty(value = "OI得分列表") + private List scoreList; + + @ApiModelProperty(value = "已解决题目列表") + private List solvedList; + + @ApiModelProperty(value = "最近上线时间") + private Date recentLoginTime; + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserInfoVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserInfoVo.java new file mode 100644 index 0000000..27b8874 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserInfoVo.java @@ -0,0 +1,67 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 16:48 + * @Description: + */ +@Data +public class UserInfoVo { + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "头像") + private String avatar; + + @ApiModelProperty(value = "头衔名称") + private String titleName; + + @ApiModelProperty(value = "头衔背景颜色") + private String titleColor; + + @ApiModelProperty(value = "邮箱") + private String email; + + @ApiModelProperty(value = "学号") + private String number; + + @ApiModelProperty(value = "性别") + private String gender; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "专业") + private String course; + + @ApiModelProperty(value = "个性签名") + private String signature; + + @ApiModelProperty(value = "真实姓名") + private String realname; + + @ApiModelProperty(value = "github地址") + private String github; + + @ApiModelProperty(value = "博客地址") + private String blog; + + @ApiModelProperty(value = "cf的username") + private String cfUsername; + + @ApiModelProperty(value = "角色列表") + private List roleList; + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserMsgVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserMsgVo.java new file mode 100644 index 0000000..79efa8d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserMsgVo.java @@ -0,0 +1,63 @@ +package top.hcode.hoj.pojo.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/2 20:50 + * @Description: + */ +@ApiModel(value="用户的讨论贴被评论的、被点赞、评论被回复的消息Vo", description="") +@Data +public class UserMsgVo { + + private Long id; + + @ApiModelProperty(value = "动作类型,如点赞讨论帖Like_Post、点赞评论Like_Discuss、评论Discuss、回复Reply等") + private String action; + + @ApiModelProperty(value = "消息来源id,讨论id或比赛id") + private Integer sourceId; + + @ApiModelProperty(value = "事件源类型:'Discussion'、'Contest'等") + private String sourceType; + + @ApiModelProperty(value = "事件源的标题,讨论帖子的标题或者比赛的标题") + private String sourceTitle; + + @ApiModelProperty(value = "事件源的内容,比如回复的内容,回复的评论等等,不超过250字符,超过使用...") + private String sourceContent; + + @ApiModelProperty(value = "事件引用上一级评论或回复id") + private Integer quoteId; + + @ApiModelProperty(value = "事件引用上一级的类型:Comment、Reply") + private String quoteType; + + @ApiModelProperty(value = "事件引用上一级的内容,例如回复你的源评论内容") + private String quoteContent; + + @ApiModelProperty(value = "事件所发生的地点链接 url") + private String url; + + @ApiModelProperty(value = "是否已读") + private Boolean state; + + @ApiModelProperty(value = "动作发出者的uid") + private String senderId; + + @ApiModelProperty(value = "动作发出者的用户名") + private String senderUsername; + + @ApiModelProperty(value = "动作发出者的头像") + private String senderAvatar; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserRolesVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserRolesVo.java new file mode 100644 index 0000000..0b932b2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserRolesVo.java @@ -0,0 +1,85 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import top.hcode.hoj.pojo.entity.user.Role; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/5 13:30 + * @Description: + */ +@ApiModel(value="用户信息以及其对应的角色", description="") +@Data +public class UserRolesVo implements Serializable { + + private static final long serialVersionUID = 10000L; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "密码") + private String password; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "专业") + private String course; + + @ApiModelProperty(value = "学号") + private String number; + + @ApiModelProperty(value = "性别") + private String gender; + + @ApiModelProperty(value = "真实姓名") + private String realname; + + @ApiModelProperty(value = "cf的username") + private String cfUsername; + + @ApiModelProperty(value = "github地址") + private String github; + + @ApiModelProperty(value = "博客地址") + private String blog; + + @ApiModelProperty(value = "邮箱") + private String email; + + @ApiModelProperty(value = "头像地址") + private String avatar; + + @ApiModelProperty(value = "头衔名称") + private String titleName; + + @ApiModelProperty(value = "头衔背景颜色") + private String titleColor; + + @ApiModelProperty(value = "个性签名") + private String signature; + + @ApiModelProperty(value = "0可用,1不可用") + private int status; + + @ApiModelProperty(value = "创建时间") + private Date gmtCreate; + + @ApiModelProperty(value = "修改时间") + private Date gmtModified; + + @ApiModelProperty(value = "角色列表") + private List roles; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserUnreadMsgCountVo.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserUnreadMsgCountVo.java new file mode 100644 index 0000000..e98fe50 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/pojo/vo/UserUnreadMsgCountVo.java @@ -0,0 +1,34 @@ +package top.hcode.hoj.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:59 + * @Description: + */ +@ApiModel(value="用户未读消息统计", description="") +@Data +@AllArgsConstructor +@NoArgsConstructor +public class UserUnreadMsgCountVo { + + @ApiModelProperty(value = "未读评论") + private Integer comment; + + @ApiModelProperty(value = "未读回复") + private Integer reply; + + @ApiModelProperty(value = "未读点赞") + private Integer like; + + @ApiModelProperty(value = "未读系统通知") + private Integer sys; + + @ApiModelProperty(value = "未读我的消息") + private Integer mine; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/schedule/ScheduleService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/schedule/ScheduleService.java new file mode 100644 index 0000000..db6f0f8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/schedule/ScheduleService.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.schedule; + +public interface ScheduleService { + void deleteAvatar(); + + void deleteTestCase(); + + void deleteContestPrintText(); + + void getOjContestsList(); + + void getCodeforcesRating(); + + void deleteUserSession(); + + void syncNoticeToRecentHalfYearUser(); + + void check20MPendingSubmission(); + + void checkUnHandleGroupProblemApplyProgress(); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/schedule/ScheduleServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/schedule/ScheduleServiceImpl.java new file mode 100644 index 0000000..18d0fe0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/schedule/ScheduleServiceImpl.java @@ -0,0 +1,442 @@ +package top.hcode.hoj.schedule; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.time.DateFormatUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.retry.annotation.Backoff; +import org.springframework.retry.annotation.Retryable; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.dao.common.FileEntityService; +import top.hcode.hoj.dao.judge.JudgeEntityService; +import top.hcode.hoj.dao.msg.AdminSysNoticeEntityService; +import top.hcode.hoj.dao.msg.UserSysNoticeEntityService; +import top.hcode.hoj.dao.problem.ProblemEntityService; +import top.hcode.hoj.dao.user.SessionEntityService; +import top.hcode.hoj.dao.user.UserInfoEntityService; +import top.hcode.hoj.dao.user.UserRecordEntityService; +import top.hcode.hoj.manager.msg.AdminNoticeManager; +import top.hcode.hoj.pojo.entity.common.File; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.entity.msg.UserSysNotice; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.user.Session; +import top.hcode.hoj.pojo.entity.user.UserInfo; +import top.hcode.hoj.pojo.entity.user.UserRecord; +import top.hcode.hoj.service.admin.rejudge.RejudgeService; +import top.hcode.hoj.utils.Constants; +import top.hcode.hoj.utils.JsoupUtils; +import top.hcode.hoj.utils.RedisUtils; + +import javax.annotation.Resource; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + + +/** + * 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。按顺序依次为: + *

+ * 字段 允许值 允许的特殊字符 + * 秒 0~59 , - * / + * 分 0~59 , - * / + * 小时 0~23 , - * / + * 日期 1-31 , - * ? / L W C + * 月份 1~12或者JAN~DEC , - * / + * 星期 1~7或者SUN~SAT , - * ? / L C # + * 年(可选) 留空,1970~2099 , - * / + *

+ * “*” 字符代表所有可能的值 + * “-” 字符代表数字范围 例如1-5 + * “/” 字符用来指定数值的增量 + * “?” 字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值。 + * 当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?” + * “L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写 + * 如果在“L”前有具体的内容,它就具有其他的含义了。 + * “W” 字符代表着平日(Mon-Fri),并且仅能用于日域中。它用来指定离指定日的最近的一个平日。 + * 大部分的商业处理都是基于工作周的,所以 W 字符可能是非常重要的。 + * "C" 代表“Calendar”的意思。它的意思是计划所关联的日期,如果日期没有被关联,则相当于日历中所有日期。 + */ +@Service +@Slf4j(topic = "hoj") +public class ScheduleServiceImpl implements ScheduleService { + + @Autowired + private FileEntityService fileEntityService; + + @Autowired + private RedisUtils redisUtils; + + @Autowired + private UserInfoEntityService userInfoEntityService; + + @Autowired + private UserRecordEntityService userRecordEntityService; + + @Resource + private SessionEntityService sessionEntityService; + + @Resource + private AdminSysNoticeEntityService adminSysNoticeEntityService; + + @Resource + private UserSysNoticeEntityService userSysNoticeEntityService; + + @Resource + private JudgeEntityService judgeEntityService; + + @Resource + private RejudgeService rejudgeService; + + @Resource + private ProblemEntityService problemEntityService; + + @Resource + private AdminNoticeManager adminNoticeManager; + + /** + * @MethodName deleteAvatar + * @Params * @param null + * @Description 每天3点定时查询数据库字段并删除未引用的头像 + * @Return + * @Since 2021/1/13 + */ + @Scheduled(cron = "0 0 3 * * *") + @Override + public void deleteAvatar() { + List files = fileEntityService.queryDeleteAvatarList(); + // 如果查不到,直接结束 + if (files.isEmpty()) { + return; + } + List idLists = new LinkedList<>(); + for (File file : files) { + if (file.getDelete()) { + boolean delSuccess = FileUtil.del(file.getFilePath()); + if (delSuccess) { + idLists.add(file.getId()); + } + } + } + + boolean isSuccess = fileEntityService.removeByIds(idLists); + if (!isSuccess) { + log.error("数据库file表删除头像数据失败----------------->sql语句执行失败"); + } + } + + + /** + * @MethodName deleteTestCase + * @Params * @param null + * @Description 每天3点定时删除指定文件夹的上传测试数据 + * @Return + * @Since 2021/2/7 + */ + @Scheduled(cron = "0 0 3 * * *") +// @Scheduled(cron = "0/5 * * * * *") + @Override + public void deleteTestCase() { + boolean result = FileUtil.del(Constants.File.TESTCASE_TMP_FOLDER.getPath()); + if (!result) { + log.error("每日定时任务异常------------------------>{}", "清除本地的题目测试数据失败!"); + } + } + + /** + * @MethodName deleteContestPrintText + * @Params * @param null + * @Description 每天4点定时删除本地的比赛打印数据 + * @Return + * @Since 2021/9/19 + */ + @Scheduled(cron = "0 0 4 * * *") + @Override + public void deleteContestPrintText() { + boolean result = FileUtil.del(Constants.File.CONTEST_TEXT_PRINT_FOLDER.getPath()); + if (!result) { + log.error("每日定时任务异常------------------------>{}", "清除本地的比赛打印数据失败!"); + } + } + + /** + * 每两小时获取其他OJ的比赛列表,并保存在redis里 + * 保存格式: + * oj: "Codeforces", + * title: "Codeforces Round #680 (Div. 1, based on VK Cup 2020-2021 - Final)", + * beginTime: "2020-11-08T05:00:00Z", + * endTime: "2020-11-08T08:00:00Z", + */ + @Scheduled(cron = "0 0 0/2 * * *") +// @Scheduled(cron = "0/5 * * * * *") + @Override + public void getOjContestsList() { + // 待格式化的API,需要填充年月查询 + String nowcoderContestAPI = "https://ac.nowcoder.com/acm/calendar/contest?token=&month=%d-%d"; + // 将获取的比赛列表添加进这里 + List> contestsList = new ArrayList<>(); + // 获取当前年月 + DateTime dateTime = DateUtil.date(); + // offsetMonth 增加的月份,只枚举最近3个月的比赛 + for (int offsetMonth = 0; offsetMonth <= 2; offsetMonth++) { + // 月份增加i个月 + DateTime newDate = DateUtil.offsetMonth(dateTime, offsetMonth); + // 格式化API 月份从0-11,所以要加一 + String contestAPI = String.format(nowcoderContestAPI, newDate.year(), newDate.month() + 1); + try { + // 连接api,获取json格式对象 + JSONObject resultObject = JsoupUtils.getJsonFromConnection(JsoupUtils.getConnectionFromUrl(contestAPI, null, null)); + // 比赛列表存放在data字段中 + JSONArray contestsArray = resultObject.getJSONArray("data"); + // 牛客比赛列表按时间顺序排序,所以从后向前取可以减少不必要的遍历 + for (int i = contestsArray.size() - 1; i >= 0; i--) { + JSONObject contest = contestsArray.getJSONObject(i); + // 如果比赛已经结束了,则直接结束 + if (contest.getLong("endTime", 0L) < dateTime.getTime()) { + break; + } + // 把比赛列表信息添加在List里 + contestsList.add(MapUtil.builder(new HashMap()) + .put("oj", contest.getStr("ojName")) + .put("url", contest.getStr("link")) + .put("title", contest.getStr("contestName")) + .put("beginTime", new Date(contest.getLong("startTime"))) + .put("endTime", new Date(contest.getLong("endTime"))).map()); + } + } catch (Exception e) { + log.error("爬虫爬取Nowcoder比赛异常----------------------->{}", e.getMessage()); + } + } + // 把比赛列表按照开始时间排序,方便查看 + contestsList.sort((o1, o2) -> { + + long beginTime1 = ((Date) o1.get("beginTime")).getTime(); + long beginTime2 = ((Date) o2.get("beginTime")).getTime(); + + return Long.compare(beginTime1, beginTime2); + }); + + // 获取对应的redis key + String redisKey = Constants.Schedule.RECENT_OTHER_CONTEST.getCode(); + // 缓存时间一天 + redisUtils.set(redisKey, contestsList, 60 * 60 * 24); + // 增加log提示 + log.info("获取牛客API的比赛列表成功!共获取数据" + contestsList.size() + "条"); + } + + + /** + * 每天3点获取codeforces的rating分数 + */ + @Scheduled(cron = "0 0 3 * * *") +// @Scheduled(cron = "0/5 * * * * *") + @Override + public void getCodeforcesRating() { + String codeforcesUserInfoAPI = "https://codeforces.com/api/user.info?handles=%s"; + QueryWrapper userInfoQueryWrapper = new QueryWrapper<>(); + // 查询cf_username不为空的数据 + userInfoQueryWrapper.isNotNull("cf_username"); + List userInfoList = userInfoEntityService.list(userInfoQueryWrapper); + for (UserInfo userInfo : userInfoList) { + // 获取cf名字 + String cfUsername = userInfo.getCfUsername(); + // 获取uuid + String uuid = userInfo.getUuid(); + // 格式化api + String ratingAPI = String.format(codeforcesUserInfoAPI, cfUsername); + try { + // 连接api,获取json格式对象 + JSONObject resultObject = getCFUserInfo(ratingAPI); + // 获取状态码 + String status = resultObject.getStr("status"); + // 如果查无此用户,则跳过 + if ("FAILED".equals(status)) { + continue; + } + // 用户信息存放在result列表中的第0个 + JSONObject cfUserInfo = resultObject.getJSONArray("result").getJSONObject(0); + // 获取cf的分数 + Integer cfRating = cfUserInfo.getInt("rating", null); + UpdateWrapper userRecordUpdateWrapper = new UpdateWrapper<>(); + // 将对应的cf分数修改 + userRecordUpdateWrapper.eq("uid", uuid).set("rating", cfRating); + boolean result = userRecordEntityService.update(userRecordUpdateWrapper); + if (!result) { + log.error("插入UserRecord表失败------------------------------->"); + } + + } catch (Exception e) { + log.error("爬虫爬取Codeforces Rating分数异常----------------------->{}", e.getMessage()); + } + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + log.info("获取Codeforces Rating成功!"); + } + + @Retryable(value = Exception.class, + maxAttempts = 5, + backoff = @Backoff(delay = 1000, multiplier = 1.4)) + public JSONObject getCFUserInfo(String url) throws Exception { + return JsoupUtils.getJsonFromConnection(JsoupUtils.getConnectionFromUrl(url, null, null)); + } + + + /** + * @MethodName deleteUserSession + * @Params * @param null + * @Description 每天3点定时删除用户半年的session表记录 + * @Return + * @Since 2021/9/6 + */ + @Scheduled(cron = "0 0 3 * * *") +// @Scheduled(cron = "0/5 * * * * *") + @Override + public void deleteUserSession() { + QueryWrapper sessionQueryWrapper = new QueryWrapper<>(); + DateTime dateTime = DateUtil.offsetMonth(new Date(), -6); + String strTime = DateFormatUtils.format(dateTime, "yyyy-MM-dd HH:mm:ss"); + sessionQueryWrapper.select("distinct uid"); + sessionQueryWrapper.apply("UNIX_TIMESTAMP(gmt_create) >= UNIX_TIMESTAMP('" + strTime + "')"); + List sessionList = sessionEntityService.list(sessionQueryWrapper); + if (sessionList.size() > 0) { + List uidList = sessionList.stream().map(Session::getUid).collect(Collectors.toList()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("uid", uidList) + .apply("UNIX_TIMESTAMP('" + strTime + "') > UNIX_TIMESTAMP(gmt_create)"); + List needDeletedSessionList = sessionEntityService.list(queryWrapper); + if (needDeletedSessionList.size() > 0) { + List needDeletedIdList = needDeletedSessionList.stream().map(Session::getId).collect(Collectors.toList()); + boolean isOk = sessionEntityService.removeByIds(needDeletedIdList); + if (!isOk) { + log.error("=============数据库session表定时删除用户6个月前的记录失败==============="); + } + } + } + } + + + /** + * @MethodName syncNoticeToUser + * @Description 每一小时拉取系统通知表admin_sys_notice到表user_sys_notice(只推送给半年内有登录过的用户) + * @Return + * @Since 2021/10/3 + */ + @Override + @Scheduled(cron = "0 0 0/1 * * *") + public void syncNoticeToRecentHalfYearUser() { + QueryWrapper adminSysNoticeQueryWrapper = new QueryWrapper<>(); + adminSysNoticeQueryWrapper.eq("state", false); + List adminSysNotices = adminSysNoticeEntityService.list(adminSysNoticeQueryWrapper); + if (adminSysNotices.size() == 0) { + return; + } + + QueryWrapper sessionQueryWrapper = new QueryWrapper<>(); + sessionQueryWrapper.select("DISTINCT uid"); + List sessionList = sessionEntityService.list(sessionQueryWrapper); + List userIds = sessionList.stream().map(Session::getUid).collect(Collectors.toList()); + + for (AdminSysNotice adminSysNotice : adminSysNotices) { + switch (adminSysNotice.getType()) { + case "All": + List userSysNoticeList = new ArrayList<>(); + for (String uid : userIds) { + UserSysNotice userSysNotice = new UserSysNotice(); + userSysNotice.setRecipientId(uid) + .setType("Sys") + .setSysNoticeId(adminSysNotice.getId()); + userSysNoticeList.add(userSysNotice); + } + boolean isOk1 = userSysNoticeEntityService.saveOrUpdateBatch(userSysNoticeList); + if (isOk1) { + adminSysNotice.setState(true); + } + break; + case "Single": + UserSysNotice userSysNotice = new UserSysNotice(); + userSysNotice.setRecipientId(adminSysNotice.getRecipientId()) + .setType("Mine") + .setSysNoticeId(adminSysNotice.getId()); + boolean isOk2 = userSysNoticeEntityService.saveOrUpdate(userSysNotice); + if (isOk2) { + adminSysNotice.setState(true); + } + break; + case "Admin": + break; + } + + } + + boolean isUpdateNoticeOk = adminSysNoticeEntityService.saveOrUpdateBatch(adminSysNotices); + if (!isUpdateNoticeOk) { + log.error("=============推送系统通知更新状态失败==============="); + } + + } + + @Override + @Scheduled(cron = "0 0/20 * * * ?") + public void check20MPendingSubmission() { + DateTime dateTime = DateUtil.offsetMinute(new Date(), -15); + String strTime = DateFormatUtils.format(dateTime, "yyyy-MM-dd HH:mm:ss"); + + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper.select("distinct submit_id"); + judgeQueryWrapper.eq("status", Constants.Judge.STATUS_PENDING.getStatus()); + judgeQueryWrapper.apply("UNIX_TIMESTAMP('" + strTime + "') > UNIX_TIMESTAMP(gmt_modified)"); + List judgeList = judgeEntityService.list(judgeQueryWrapper); + if (!CollectionUtils.isEmpty(judgeList)) { + log.info("Half An Hour Check Pending Submission to Rejudge:" + Arrays.toString(judgeList.toArray())); + for (Judge judge : judgeList) { + rejudgeService.rejudge(judge.getSubmitId()); + } + } + } + + /** + * 每天6点检查一次有没有处于正在申请中的团队题目申请公开的进度单子,发消息给超级管理和题目管理员 + */ + @Override + @Scheduled(cron = "0 0 6 * * *") +// @Scheduled(cron = "0/5 * * * * *") + public void checkUnHandleGroupProblemApplyProgress() { + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.eq("apply_public_progress", 1).isNotNull("gid"); + int count = problemEntityService.count(problemQueryWrapper); + if (count > 0) { + String title = "团队题目审批通知(Group Problem Approval Notice)"; + String content = getDissolutionGroupContent(count); + List superAdminUidList = userInfoEntityService.getSuperAdminUidList(); + List problemAdminUidList = userInfoEntityService.getProblemAdminUidList(); + if (!CollectionUtils.isEmpty(problemAdminUidList)) { + superAdminUidList.addAll(problemAdminUidList); + } + adminNoticeManager.addSingleNoticeToBatchUser(null, superAdminUidList, title, content, "Sys"); + } + } + + private String getDissolutionGroupContent(int count) { + return "您好,尊敬的管理员,目前有**" + count + + "**条团队题目正在申请公开的单子,请您尽快前往后台 [团队题目审批](/admin/group-problem/apply) 进行审批!" + + "\n\n" + + "Hello, dear administrator, there are currently **" + count + + "** problem problems applying for public list. " + + "Please go to the backstage [Group Problem Examine](/admin/group-problem/apply) for approval as soon as possible!"; + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/account/AdminAccountService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/account/AdminAccountService.java new file mode 100644 index 0000000..d7a3ff0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/account/AdminAccountService.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.service.admin.account; + + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.LoginDto; +import top.hcode.hoj.pojo.vo.UserInfoVo; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 10:10 + * @Description: + */ +public interface AdminAccountService { + + public CommonResult login(LoginDto loginDto); + + public CommonResult logout(); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/account/impl/AdminAccountServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/account/impl/AdminAccountServiceImpl.java new file mode 100644 index 0000000..99bdb08 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/account/impl/AdminAccountServiceImpl.java @@ -0,0 +1,43 @@ +package top.hcode.hoj.service.admin.account.impl; + +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusAccessDeniedException; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.admin.account.AdminAccountManager; +import top.hcode.hoj.pojo.vo.UserInfoVo; +import top.hcode.hoj.service.admin.account.AdminAccountService; +import top.hcode.hoj.pojo.dto.LoginDto; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 10:22 + * @Description: + */ + +@Service +public class AdminAccountServiceImpl implements AdminAccountService { + + @Resource + private AdminAccountManager adminAccountManager; + + @Override + public CommonResult login(LoginDto loginDto) { + try { + return CommonResult.successResponse(adminAccountManager.login(loginDto)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusAccessDeniedException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } + } + + @Override + public CommonResult logout() { + adminAccountManager.logout(); + return CommonResult.successResponse("退出登录成功!"); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/announcement/AdminAnnouncementService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/announcement/AdminAnnouncementService.java new file mode 100644 index 0000000..6f4654f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/announcement/AdminAnnouncementService.java @@ -0,0 +1,22 @@ +package top.hcode.hoj.service.admin.announcement; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 22:11 + * @Description: + */ +public interface AdminAnnouncementService { + + public CommonResult> getAnnouncementList(Integer limit, Integer currentPage); + + public CommonResult deleteAnnouncement(Long aid); + + public CommonResult addAnnouncement(Announcement announcement); + + public CommonResult updateAnnouncement(Announcement announcement); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/announcement/impl/AdminAnnouncementServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/announcement/impl/AdminAnnouncementServiceImpl.java new file mode 100644 index 0000000..b539b27 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/announcement/impl/AdminAnnouncementServiceImpl.java @@ -0,0 +1,59 @@ +package top.hcode.hoj.service.admin.announcement.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.announcement.AdminAnnouncementManager; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.service.admin.announcement.AdminAnnouncementService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 22:15 + * @Description: + */ +@Service +public class AdminAnnouncementServiceImpl implements AdminAnnouncementService { + + @Resource + private AdminAnnouncementManager adminAnnouncementManager; + + @Override + public CommonResult> getAnnouncementList(Integer limit, Integer currentPage) { + return CommonResult.successResponse(adminAnnouncementManager.getAnnouncementList(limit, currentPage)); + } + + @Override + public CommonResult deleteAnnouncement(Long aid) { + try { + adminAnnouncementManager.deleteAnnouncement(aid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult addAnnouncement(Announcement announcement) { + try { + adminAnnouncementManager.addAnnouncement(announcement); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult updateAnnouncement(Announcement announcement) { + try { + adminAnnouncementManager.updateAnnouncement(announcement); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestAnnouncementService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestAnnouncementService.java new file mode 100644 index 0000000..f4e56c4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestAnnouncementService.java @@ -0,0 +1,19 @@ +package top.hcode.hoj.service.admin.contest; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.AnnouncementDto; +import top.hcode.hoj.pojo.vo.AnnouncementVo; + + +public interface AdminContestAnnouncementService { + + public CommonResult> getAnnouncementList(Integer limit, Integer currentPage, Long cid); + + public CommonResult deleteAnnouncement(Long aid); + + public CommonResult addAnnouncement(AnnouncementDto announcementDto); + + public CommonResult updateAnnouncement(AnnouncementDto announcementDto); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestProblemService.java new file mode 100644 index 0000000..1ceb7f9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestProblemService.java @@ -0,0 +1,34 @@ +package top.hcode.hoj.service.admin.contest; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ContestProblemDto; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.pojo.entity.problem.Problem; + +import java.util.HashMap; +import java.util.Map; + + +public interface AdminContestProblemService { + + public CommonResult> getProblemList(Integer limit, Integer currentPage, String keyword, + Long cid, Integer problemType, String oj); + + public CommonResult getProblem(Long pid); + + public CommonResult deleteProblem(Long pid, Long cid); + + public CommonResult> addProblem(ProblemDto problemDto); + + public CommonResult updateProblem(ProblemDto problemDto); + + public CommonResult getContestProblem(Long cid, Long pid); + + public CommonResult setContestProblem(ContestProblem contestProblem); + + public CommonResult addProblemFromPublic(ContestProblemDto contestProblemDto); + + public CommonResult importContestRemoteOJProblem(String name, String problemId, Long cid, String displayId); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestService.java new file mode 100644 index 0000000..63f50e1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/AdminContestService.java @@ -0,0 +1,26 @@ +package top.hcode.hoj.service.admin.contest; + +; +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.vo.AdminContestVo; + + +public interface AdminContestService { + + public CommonResult> getContestList(Integer limit, Integer currentPage, String keyword); + + public CommonResult getContest(Long cid); + + public CommonResult deleteContest(Long cid); + + public CommonResult addContest(AdminContestVo adminContestVo); + + public CommonResult cloneContest(Long cid); + + public CommonResult updateContest(AdminContestVo adminContestVo); + + public CommonResult changeContestVisible(Long cid, String uid, Boolean visible); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestAnnouncementServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestAnnouncementServiceImpl.java new file mode 100644 index 0000000..df89f0d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestAnnouncementServiceImpl.java @@ -0,0 +1,60 @@ +package top.hcode.hoj.service.admin.contest.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.contest.AdminContestAnnouncementManager; +import top.hcode.hoj.pojo.dto.AnnouncementDto; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.service.admin.contest.AdminContestAnnouncementService; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 11:18 + * @Description: + */ + +@Service +public class AdminContestAnnouncementServiceImpl implements AdminContestAnnouncementService { + + @Autowired + private AdminContestAnnouncementManager adminContestAnnouncementManager; + + @Override + public CommonResult> getAnnouncementList(Integer limit, Integer currentPage, Long cid) { + IPage announcementList = adminContestAnnouncementManager.getAnnouncementList(limit, currentPage, cid); + return CommonResult.successResponse(announcementList); + } + + @Override + public CommonResult deleteAnnouncement(Long aid) { + try { + adminContestAnnouncementManager.deleteAnnouncement(aid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult addAnnouncement(AnnouncementDto announcementDto) { + try { + adminContestAnnouncementManager.addAnnouncement(announcementDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult updateAnnouncement(AnnouncementDto announcementDto) { + try { + adminContestAnnouncementManager.updateAnnouncement(announcementDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestProblemServiceImpl.java new file mode 100644 index 0000000..90a1fb8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestProblemServiceImpl.java @@ -0,0 +1,115 @@ +package top.hcode.hoj.service.admin.contest.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.admin.contest.AdminContestProblemManager; +import top.hcode.hoj.pojo.dto.ContestProblemDto; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.service.admin.contest.AdminContestProblemService; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 11:17 + * @Description: + */ + +@Service +public class AdminContestProblemServiceImpl implements AdminContestProblemService { + + @Autowired + private AdminContestProblemManager adminContestProblemManager; + + @Override + public CommonResult> getProblemList(Integer limit, Integer currentPage, String keyword, Long cid, Integer problemType, String oj) { + HashMap problemList = adminContestProblemManager.getProblemList(limit, currentPage, keyword, cid, problemType, oj); + return CommonResult.successResponse(problemList); + } + + @Override + public CommonResult getProblem(Long pid) { + try { + Problem problem = adminContestProblemManager.getProblem(pid); + return CommonResult.successResponse(problem); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult deleteProblem(Long pid, Long cid) { + adminContestProblemManager.deleteProblem(pid, cid); + return CommonResult.successResponse(); + } + + @Override + public CommonResult> addProblem(ProblemDto problemDto) { + try { + Map problemMap = adminContestProblemManager.addProblem(problemDto); + return CommonResult.successResponse(problemMap); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult updateProblem(ProblemDto problemDto) { + try { + adminContestProblemManager.updateProblem(problemDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult getContestProblem(Long cid, Long pid) { + try { + ContestProblem contestProblem = adminContestProblemManager.getContestProblem(cid, pid); + return CommonResult.successResponse(contestProblem); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult setContestProblem(ContestProblem contestProblem) { + try { + return CommonResult.successResponse(adminContestProblemManager.setContestProblem(contestProblem)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult addProblemFromPublic(ContestProblemDto contestProblemDto) { + try { + adminContestProblemManager.addProblemFromPublic(contestProblemDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult importContestRemoteOJProblem(String name, String problemId, Long cid, String displayId) { + try { + adminContestProblemManager.importContestRemoteOJProblem(name, problemId, cid, displayId); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestServiceImpl.java new file mode 100644 index 0000000..c6d0744 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/contest/impl/AdminContestServiceImpl.java @@ -0,0 +1,99 @@ +package top.hcode.hoj.service.admin.contest.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.admin.contest.AdminContestManager; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.vo.AdminContestVo; +import top.hcode.hoj.service.admin.contest.AdminContestService; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 11:17 + * @Description: + */ +@Service +public class AdminContestServiceImpl implements AdminContestService { + + @Autowired + private AdminContestManager adminContestManager; + + @Override + public CommonResult> getContestList(Integer limit, Integer currentPage, String keyword) { + IPage contestList = adminContestManager.getContestList(limit, currentPage, keyword); + return CommonResult.successResponse(contestList); + } + + @Override + public CommonResult getContest(Long cid) { + try { + AdminContestVo adminContestVo = adminContestManager.getContest(cid); + return CommonResult.successResponse(adminContestVo); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult deleteContest(Long cid) { + try { + adminContestManager.deleteContest(cid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult addContest(AdminContestVo adminContestVo) { + try { + adminContestManager.addContest(adminContestVo); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult cloneContest(Long cid) { + try { + adminContestManager.cloneContest(cid); + return CommonResult.successResponse(); + }catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } + } + + @Override + public CommonResult updateContest(AdminContestVo adminContestVo) { + + try { + adminContestManager.updateContest(adminContestVo); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + return CommonResult.successResponse(); + } + + @Override + public CommonResult changeContestVisible(Long cid, String uid, Boolean visible) { + try { + adminContestManager.changeContestVisible(cid, uid, visible); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + return CommonResult.successResponse(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/discussion/AdminDiscussionService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/discussion/AdminDiscussionService.java new file mode 100644 index 0000000..a9e98fc --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/discussion/AdminDiscussionService.java @@ -0,0 +1,25 @@ +package top.hcode.hoj.service.admin.discussion; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.vo.DiscussionReportVo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 16:03 + * @Description: + */ +public interface AdminDiscussionService { + + public CommonResult updateDiscussion(Discussion discussion); + + public CommonResult removeDiscussion(List didList); + + public CommonResult> getDiscussionReport(Integer limit, Integer currentPage); + + public CommonResult updateDiscussionReport(DiscussionReport discussionReport); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/discussion/impl/AdminDiscussionServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/discussion/impl/AdminDiscussionServiceImpl.java new file mode 100644 index 0000000..46215de --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/discussion/impl/AdminDiscussionServiceImpl.java @@ -0,0 +1,64 @@ +package top.hcode.hoj.service.admin.discussion.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.discussion.AdminDiscussionManager; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.vo.DiscussionReportVo; +import top.hcode.hoj.service.admin.discussion.AdminDiscussionService; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 16:05 + * @Description: + */ + +@Service +public class AdminDiscussionServiceImpl implements AdminDiscussionService { + + @Autowired + private AdminDiscussionManager adminDiscussionManager; + + @Override + public CommonResult updateDiscussion(Discussion discussion) { + try { + adminDiscussionManager.updateDiscussion(discussion); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult removeDiscussion(List didList) { + try { + adminDiscussionManager.removeDiscussion(didList); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult> getDiscussionReport(Integer limit, Integer currentPage) { + IPage discussionReportIPage = adminDiscussionManager.getDiscussionReport(limit, currentPage); + return CommonResult.successResponse(discussionReportIPage); + } + + + @Override + public CommonResult updateDiscussionReport(DiscussionReport discussionReport) { + try { + adminDiscussionManager.updateDiscussionReport(discussionReport); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/AdminGroupProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/AdminGroupProblemService.java new file mode 100644 index 0000000..89c783c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/AdminGroupProblemService.java @@ -0,0 +1,17 @@ +package top.hcode.hoj.service.admin.problem; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ChangeGroupProblemProgressDto; +import top.hcode.hoj.pojo.entity.problem.Problem; + +/** + * @Author Himit_ZH + * @Date 2022/4/13 + */ +public interface AdminGroupProblemService { + + public CommonResult> getProblemList(Integer currentPage, Integer limit, String keyword, Long gid); + + public CommonResult changeProgress(ChangeGroupProblemProgressDto changeGroupProblemProgressDto); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/AdminProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/AdminProblemService.java new file mode 100644 index 0000000..97086c0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/AdminProblemService.java @@ -0,0 +1,34 @@ +package top.hcode.hoj.service.admin.problem; + +import com.baomidou.mybatisplus.core.metadata.IPage; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import java.util.List; + + +public interface AdminProblemService { + + public CommonResult> getProblemList(Integer limit, Integer currentPage, String keyword, Integer auth, String oj); + + public CommonResult getProblem(Long pid); + + public CommonResult deleteProblem(Long pid); + + public CommonResult addProblem(ProblemDto problemDto); + + public CommonResult updateProblem(ProblemDto problemDto); + + public CommonResult> getProblemCases(Long pid, Boolean isUpload); + + public CommonResult compileSpj(CompileDTO compileDTO); + + public CommonResult compileInteractive(CompileDTO compileDTO); + + public CommonResult importRemoteOJProblem(String name,String problemId); + + public CommonResult changeProblemAuth(Problem problem); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/impl/AdminGroupProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/impl/AdminGroupProblemServiceImpl.java new file mode 100644 index 0000000..f32e645 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/impl/AdminGroupProblemServiceImpl.java @@ -0,0 +1,39 @@ +package top.hcode.hoj.service.admin.problem.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.admin.problem.AdminGroupProblemManager; +import top.hcode.hoj.pojo.dto.ChangeGroupProblemProgressDto; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.service.admin.problem.AdminGroupProblemService; + +import javax.annotation.Resource; + +/** + * @Author Himit_ZH + * @Date 2022/4/13 + */ +@Service +public class AdminGroupProblemServiceImpl implements AdminGroupProblemService { + + @Resource + private AdminGroupProblemManager adminGroupProblemManager; + + @Override + public CommonResult> getProblemList(Integer currentPage, Integer limit, String keyword, Long gid) { + return CommonResult.successResponse(adminGroupProblemManager.list(currentPage, limit, keyword, gid)); + } + + @Override + public CommonResult changeProgress(ChangeGroupProblemProgressDto changeGroupProblemProgressDto) { + try { + adminGroupProblemManager.changeProgress(changeGroupProblemProgressDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/impl/AdminProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/impl/AdminProblemServiceImpl.java new file mode 100644 index 0000000..69ada43 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/problem/impl/AdminProblemServiceImpl.java @@ -0,0 +1,119 @@ +package top.hcode.hoj.service.admin.problem.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.admin.problem.AdminProblemManager; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.service.admin.problem.AdminProblemService; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 16:33 + * @Description: + */ + +@Service +public class AdminProblemServiceImpl implements AdminProblemService { + + @Autowired + private AdminProblemManager adminProblemManager; + + @Override + public CommonResult> getProblemList(Integer limit, Integer currentPage, String keyword, Integer auth, String oj) { + IPage problemList = adminProblemManager.getProblemList(limit, currentPage, keyword, auth, oj); + return CommonResult.successResponse(problemList); + } + + @Override + public CommonResult getProblem(Long pid) { + try { + Problem problem = adminProblemManager.getProblem(pid); + return CommonResult.successResponse(problem); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult deleteProblem(Long pid) { + try { + adminProblemManager.deleteProblem(pid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult addProblem(ProblemDto problemDto) { + try { + adminProblemManager.addProblem(problemDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult updateProblem(ProblemDto problemDto) { + try { + adminProblemManager.updateProblem(problemDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult> getProblemCases(Long pid, Boolean isUpload) { + + List problemCaseList = adminProblemManager.getProblemCases(pid, isUpload); + return CommonResult.successResponse(problemCaseList); + } + + @Override + public CommonResult compileSpj(CompileDTO compileDTO) { + return adminProblemManager.compileSpj(compileDTO); + } + + @Override + public CommonResult compileInteractive(CompileDTO compileDTO) { + return adminProblemManager.compileInteractive(compileDTO); + } + + @Override + public CommonResult importRemoteOJProblem(String name, String problemId) { + try { + adminProblemManager.importRemoteOJProblem(name, problemId); + return CommonResult.successResponse("导入新题目成功"); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult changeProblemAuth(Problem problem) { + try { + adminProblemManager.changeProblemAuth(problem); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/rejudge/RejudgeService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/rejudge/RejudgeService.java new file mode 100644 index 0000000..a626ac1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/rejudge/RejudgeService.java @@ -0,0 +1,15 @@ +package top.hcode.hoj.service.admin.rejudge; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.judge.Judge; + +public interface RejudgeService { + + CommonResult rejudge(Long submitId); + + CommonResult rejudgeContestProblem(Long cid, Long pid); + + CommonResult manualJudge(Long submitId, Integer status, Integer score); + + CommonResult cancelJudge(Long submitId); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/rejudge/impl/RejudgeServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/rejudge/impl/RejudgeServiceImpl.java new file mode 100644 index 0000000..7b3c57a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/rejudge/impl/RejudgeServiceImpl.java @@ -0,0 +1,61 @@ +package top.hcode.hoj.service.admin.rejudge.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.rejudge.RejudgeManager; +import top.hcode.hoj.pojo.entity.judge.Judge; + +import top.hcode.hoj.service.admin.rejudge.RejudgeService; + + +/** + * @Author: Himit_ZH + * @Date: 2022/1/7 18:12 + * @Description: + */ +@Service +public class RejudgeServiceImpl implements RejudgeService { + + @Autowired + private RejudgeManager rejudgeManager; + + @Override + public CommonResult rejudge(Long submitId) { + try { + Judge judge = rejudgeManager.rejudge(submitId); + return CommonResult.successResponse(judge, "重判成功!该提交已进入判题队列!"); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult rejudgeContestProblem(Long cid, Long pid) { + try { + rejudgeManager.rejudgeContestProblem(cid, pid); + return CommonResult.successResponse("重判成功!该题目对应的全部提交已进入判题队列!"); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult manualJudge(Long submitId, Integer status, Integer score) { + try { + return CommonResult.successResponse(rejudgeManager.manualJudge(submitId, status, score)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult cancelJudge(Long submitId) { + try { + return CommonResult.successResponse(rejudgeManager.cancelJudge(submitId)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/ConfigService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/ConfigService.java new file mode 100644 index 0000000..69a94ab --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/ConfigService.java @@ -0,0 +1,35 @@ +package top.hcode.hoj.service.admin.system; + +import cn.hutool.json.JSONObject; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.*; + +import java.util.List; + +public interface ConfigService { + + public CommonResult getServiceInfo(); + + public CommonResult> getJudgeServiceInfo(); + + public CommonResult deleteHomeCarousel(Long id); + + public CommonResult getWebConfig(); + + public CommonResult setWebConfig(WebConfigDto config); + + public CommonResult getEmailConfig(); + + public CommonResult setEmailConfig(EmailConfigDto config); + + public CommonResult testEmail(TestEmailDto testEmailDto); + + public CommonResult getDBAndRedisConfig(); + + public CommonResult setDBAndRedisConfig(DBAndRedisConfigDto config); + + public CommonResult getSwitchConfig(); + + public CommonResult setSwitchConfig(SwitchConfigDto config); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/DashboardService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/DashboardService.java new file mode 100644 index 0000000..015ad79 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/DashboardService.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.service.admin.system; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.user.Session; + +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 22:19 + * @Description: + */ +public interface DashboardService { + + public CommonResult getRecentSession(); + + public CommonResult> getDashboardInfo(); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/impl/ConfigServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/impl/ConfigServiceImpl.java new file mode 100644 index 0000000..9b891fb --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/impl/ConfigServiceImpl.java @@ -0,0 +1,114 @@ +package top.hcode.hoj.service.admin.system.impl; + +import cn.hutool.json.JSONObject; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.system.ConfigManager; +import top.hcode.hoj.pojo.dto.*; +import top.hcode.hoj.service.admin.system.ConfigService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 22:23 + * @Description: + */ +@Service +public class ConfigServiceImpl implements ConfigService { + + @Resource + private ConfigManager configManager; + + @Override + public CommonResult getServiceInfo() { + return CommonResult.successResponse(configManager.getServiceInfo()); + } + + @Override + public CommonResult> getJudgeServiceInfo() { + return CommonResult.successResponse(configManager.getJudgeServiceInfo()); + } + + @Override + public CommonResult deleteHomeCarousel(Long id) { + try { + configManager.deleteHomeCarousel(id); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult getWebConfig() { + return CommonResult.successResponse(configManager.getWebConfig()); + } + + @Override + public CommonResult setWebConfig(WebConfigDto config) { + try { + configManager.setWebConfig(config); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult getEmailConfig() { + return CommonResult.successResponse(configManager.getEmailConfig()); + } + + @Override + public CommonResult setEmailConfig(EmailConfigDto config) { + try { + configManager.setEmailConfig(config); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult testEmail(TestEmailDto testEmailDto) { + try { + configManager.testEmail(testEmailDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult getDBAndRedisConfig() { + return CommonResult.successResponse(configManager.getDBAndRedisConfig()); + } + + @Override + public CommonResult setDBAndRedisConfig(DBAndRedisConfigDto config) { + try { + configManager.setDBAndRedisConfig(config); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult getSwitchConfig() { + return CommonResult.successResponse(configManager.getSwitchConfig()); + } + + @Override + public CommonResult setSwitchConfig(SwitchConfigDto config) { + try { + configManager.setSwitchConfig(config); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/impl/DashboardServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/impl/DashboardServiceImpl.java new file mode 100644 index 0000000..79c8046 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/system/impl/DashboardServiceImpl.java @@ -0,0 +1,32 @@ +package top.hcode.hoj.service.admin.system.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.system.DashboardManager; +import top.hcode.hoj.pojo.entity.user.Session; +import top.hcode.hoj.service.admin.system.DashboardService; + +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 22:20 + * @Description: + */ +@Service +public class DashboardServiceImpl implements DashboardService { + + @Autowired + private DashboardManager dashboardManager; + + @Override + public CommonResult getRecentSession() { + return CommonResult.successResponse(dashboardManager.getRecentSession()); + } + + @Override + public CommonResult> getDashboardInfo() { + return CommonResult.successResponse(dashboardManager.getDashboardInfo()); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/tag/AdminTagService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/tag/AdminTagService.java new file mode 100644 index 0000000..1595dce --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/tag/AdminTagService.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.service.admin.tag; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.entity.problem.TagClassification; + +import java.util.List; + +public interface AdminTagService { + + public CommonResult addTag(Tag tag); + + public CommonResult updateTag(Tag tag); + + public CommonResult deleteTag(Long tid); + + public CommonResult> getTagClassification(String oj); + + public CommonResult addTagClassification(TagClassification tagClassification); + + public CommonResult updateTagClassification(TagClassification tagClassification); + + public CommonResult deleteTagClassification(Long tcid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/tag/impl/AdminTagServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/tag/impl/AdminTagServiceImpl.java new file mode 100644 index 0000000..3273cb1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/tag/impl/AdminTagServiceImpl.java @@ -0,0 +1,88 @@ +package top.hcode.hoj.service.admin.tag.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.tag.AdminTagManager; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.entity.problem.TagClassification; +import top.hcode.hoj.service.admin.tag.AdminTagService; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 17:46 + * @Description: + */ + +@Service +public class AdminTagServiceImpl implements AdminTagService { + + @Autowired + private AdminTagManager adminTagManager; + + @Override + public CommonResult addTag(Tag tag) { + try { + return CommonResult.successResponse(adminTagManager.addTag(tag)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult updateTag(Tag tag) { + try { + adminTagManager.updateTag(tag); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult deleteTag(Long tid) { + try { + adminTagManager.deleteTag(tid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult> getTagClassification(String oj) { + return CommonResult.successResponse(adminTagManager.getTagClassification(oj)); + } + + @Override + public CommonResult addTagClassification(TagClassification tagClassification) { + try { + return CommonResult.successResponse(adminTagManager.addTagClassification(tagClassification)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult updateTagClassification(TagClassification tagClassification) { + try { + adminTagManager.updateTagClassification(tagClassification); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult deleteTagClassification(Long tcid) { + try { + adminTagManager.deleteTagClassification(tcid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingCategoryService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingCategoryService.java new file mode 100644 index 0000000..52f9637 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingCategoryService.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.service.admin.training; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 19:38 + * @Description: + */ +public interface AdminTrainingCategoryService { + + public CommonResult addTrainingCategory(TrainingCategory trainingCategory); + + public CommonResult updateTrainingCategory(TrainingCategory trainingCategory); + + public CommonResult deleteTrainingCategory(Long cid); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingProblemService.java new file mode 100644 index 0000000..9b67a84 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingProblemService.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.service.admin.training; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.TrainingProblemDto; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; + +import java.util.HashMap; + +public interface AdminTrainingProblemService { + + public CommonResult> getProblemList(Integer limit, Integer currentPage, String keyword, Boolean queryExisted, Long tid); + + public CommonResult updateProblem(TrainingProblem trainingProblem); + + public CommonResult deleteProblem(Long pid,Long tid); + + public CommonResult addProblemFromPublic(TrainingProblemDto trainingProblemDto); + + public CommonResult importTrainingRemoteOJProblem(String name, String problemId, Long tid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingService.java new file mode 100644 index 0000000..2b72cc0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/AdminTrainingService.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.service.admin.training; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.TrainingDto; +import top.hcode.hoj.pojo.entity.training.Training; + +public interface AdminTrainingService { + + public CommonResult> getTrainingList(Integer limit, Integer currentPage, String keyword); + + public CommonResult getTraining( Long tid); + + public CommonResult deleteTraining(Long tid); + + public CommonResult addTraining(TrainingDto trainingDto); + + public CommonResult updateTraining(TrainingDto trainingDto); + + public CommonResult changeTrainingStatus(Long tid, String author, Boolean status); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingCategoryServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingCategoryServiceImpl.java new file mode 100644 index 0000000..79f70f7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingCategoryServiceImpl.java @@ -0,0 +1,51 @@ +package top.hcode.hoj.service.admin.training.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.training.AdminTrainingCategoryManager; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; +import top.hcode.hoj.service.admin.training.AdminTrainingCategoryService; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 19:38 + * @Description: + */ + +@Service +public class AdminTrainingCategoryServiceImpl implements AdminTrainingCategoryService { + + @Autowired + private AdminTrainingCategoryManager adminTrainingCategoryManager; + + @Override + public CommonResult addTrainingCategory(TrainingCategory trainingCategory) { + try { + return CommonResult.successResponse(adminTrainingCategoryManager.addTrainingCategory(trainingCategory)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult updateTrainingCategory(TrainingCategory trainingCategory) { + try { + adminTrainingCategoryManager.updateTrainingCategory(trainingCategory); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult deleteTrainingCategory(Long cid) { + try { + adminTrainingCategoryManager.deleteTrainingCategory(cid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingProblemServiceImpl.java new file mode 100644 index 0000000..464b9af --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingProblemServiceImpl.java @@ -0,0 +1,70 @@ +package top.hcode.hoj.service.admin.training.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.training.AdminTrainingProblemManager; +import top.hcode.hoj.pojo.dto.TrainingProblemDto; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.service.admin.training.AdminTrainingProblemService; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 20:53 + * @Description: + */ +@Service +public class AdminTrainingProblemServiceImpl implements AdminTrainingProblemService { + + @Autowired + private AdminTrainingProblemManager adminTrainingProblemManager; + + @Override + public CommonResult> getProblemList(Integer limit, Integer currentPage, String keyword, Boolean queryExisted, Long tid) { + HashMap problemMap = adminTrainingProblemManager.getProblemList(limit, currentPage, keyword, queryExisted, tid); + return CommonResult.successResponse(problemMap); + } + + @Override + public CommonResult updateProblem(TrainingProblem trainingProblem) { + try { + adminTrainingProblemManager.updateProblem(trainingProblem); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult deleteProblem(Long pid, Long tid) { + try { + adminTrainingProblemManager.deleteProblem(pid, tid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult addProblemFromPublic(TrainingProblemDto trainingProblemDto) { + try { + adminTrainingProblemManager.addProblemFromPublic(trainingProblemDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult importTrainingRemoteOJProblem(String name, String problemId, Long tid) { + try { + adminTrainingProblemManager.importTrainingRemoteOJProblem(name, problemId, tid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingServiceImpl.java new file mode 100644 index 0000000..a89aea3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/training/impl/AdminTrainingServiceImpl.java @@ -0,0 +1,86 @@ +package top.hcode.hoj.service.admin.training.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.admin.training.AdminTrainingManager; +import top.hcode.hoj.pojo.dto.TrainingDto; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.service.admin.training.AdminTrainingService; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 20:44 + * @Description: + */ +@Service +public class AdminTrainingServiceImpl implements AdminTrainingService { + + @Autowired + private AdminTrainingManager adminTrainingManager; + + @Override + public CommonResult> getTrainingList(Integer limit, Integer currentPage, String keyword) { + return CommonResult.successResponse(adminTrainingManager.getTrainingList(limit, currentPage, keyword)); + } + + @Override + public CommonResult getTraining(Long tid) { + try { + TrainingDto training = adminTrainingManager.getTraining(tid); + return CommonResult.successResponse(training); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult deleteTraining(Long tid) { + try { + adminTrainingManager.deleteTraining(tid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult addTraining(TrainingDto trainingDto) { + try { + adminTrainingManager.addTraining(trainingDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult updateTraining(TrainingDto trainingDto) { + try { + adminTrainingManager.updateTraining(trainingDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult changeTrainingStatus(Long tid, String author, Boolean status) { + try { + adminTrainingManager.changeTrainingStatus(tid, author, status); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/user/AdminUserService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/user/AdminUserService.java new file mode 100644 index 0000000..46b4add --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/user/AdminUserService.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.service.admin.user; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.AdminEditUserDto; +import top.hcode.hoj.pojo.vo.UserRolesVo; + +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 21:31 + * @Description: + */ +public interface AdminUserService { + + public CommonResult> getUserList(Integer limit, Integer currentPage,Boolean onlyAdmin, String keyword); + + public CommonResult editUser(AdminEditUserDto adminEditUserDto); + + public CommonResult deleteUser(List deleteUserIdList); + + public CommonResult insertBatchUser(List> users); + + public CommonResult> generateUser(Map params); + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/user/impl/AdminUserServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/user/impl/AdminUserServiceImpl.java new file mode 100644 index 0000000..ea0291a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/admin/user/impl/AdminUserServiceImpl.java @@ -0,0 +1,70 @@ +package top.hcode.hoj.service.admin.user.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.admin.user.AdminUserManager; +import top.hcode.hoj.pojo.dto.AdminEditUserDto; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.service.admin.user.AdminUserService; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 21:34 + * @Description: + */ +@Service +public class AdminUserServiceImpl implements AdminUserService { + + @Resource + private AdminUserManager adminUserManager; + + @Override + public CommonResult> getUserList(Integer limit, Integer currentPage, Boolean onlyAdmin, String keyword) { + return CommonResult.successResponse(adminUserManager.getUserList(limit, currentPage, onlyAdmin, keyword)); + } + + @Override + public CommonResult editUser(AdminEditUserDto adminEditUserDto) { + try { + adminUserManager.editUser(adminEditUserDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult deleteUser(List deleteUserIdList) { + try { + adminUserManager.deleteUser(deleteUserIdList); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult insertBatchUser(List> users) { + try { + adminUserManager.insertBatchUser(users); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult> generateUser(Map params) { + try { + return CommonResult.successResponse(adminUserManager.generateUser(params)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ContestFileService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ContestFileService.java new file mode 100644 index 0000000..9e3873a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ContestFileService.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.service.file; + + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:43 + * @Description: + */ + +public interface ContestFileService { + + public void downloadContestRank(Long cid, Boolean forceRefresh, Boolean removeStar, HttpServletResponse response) throws StatusFailException, IOException, StatusForbiddenException; + + public void downloadContestACSubmission(Long cid, Boolean excludeAdmin, String splitType, HttpServletResponse response) throws StatusFailException, StatusForbiddenException; + + public void downloadContestPrintText(Long id, HttpServletResponse response) throws StatusForbiddenException; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImageService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImageService.java new file mode 100644 index 0000000..432cbb5 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImageService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.service.file; + +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.group.Group; + +import java.util.Map; + +public interface ImageService { + + public CommonResult> uploadAvatar(MultipartFile image); + + public CommonResult uploadGroupAvatar(MultipartFile image, Long gid); + + public CommonResult> uploadCarouselImg(MultipartFile image); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportFpsProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportFpsProblemService.java new file mode 100644 index 0000000..b000c96 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportFpsProblemService.java @@ -0,0 +1,14 @@ +package top.hcode.hoj.service.file; + +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:32 + * @Description: + */ +public interface ImportFpsProblemService { + + public CommonResult importFPSProblem(MultipartFile file); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportQDUOJProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportQDUOJProblemService.java new file mode 100644 index 0000000..dc7f752 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ImportQDUOJProblemService.java @@ -0,0 +1,9 @@ +package top.hcode.hoj.service.file; + +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; + +public interface ImportQDUOJProblemService { + + public CommonResult importQDOJProblem(MultipartFile file); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/MarkDownFileService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/MarkDownFileService.java new file mode 100644 index 0000000..63c4878 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/MarkDownFileService.java @@ -0,0 +1,15 @@ +package top.hcode.hoj.service.file; + +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; + +import java.util.Map; + +public interface MarkDownFileService { + + public CommonResult> uploadMDImg(MultipartFile image, Long gid); + + public CommonResult deleteMDImg(Long fileId); + + public CommonResult> uploadMd(MultipartFile file, Long gid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ProblemFileService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ProblemFileService.java new file mode 100644 index 0000000..607857f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/ProblemFileService.java @@ -0,0 +1,14 @@ +package top.hcode.hoj.service.file; + +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.result.CommonResult; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +public interface ProblemFileService { + + public CommonResult importProblem(MultipartFile file); + + public void exportProblem(List pidList, HttpServletResponse response); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/TestCaseService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/TestCaseService.java new file mode 100644 index 0000000..925f13b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/TestCaseService.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.service.file; + +import top.hcode.hoj.common.exception.StatusForbiddenException; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; + +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:08 + * @Description: + */ +public interface TestCaseService { + + public CommonResult> uploadTestcaseZip(MultipartFile file, Long gid); + + public void downloadTestcase(Long pid, HttpServletResponse response) throws StatusFailException, StatusForbiddenException; +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/UserFileService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/UserFileService.java new file mode 100644 index 0000000..c8f07f0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/UserFileService.java @@ -0,0 +1,9 @@ +package top.hcode.hoj.service.file; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +public interface UserFileService { + + public void generateUserExcel(String key, HttpServletResponse response) throws IOException; +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ContestFileServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ContestFileServiceImpl.java new file mode 100644 index 0000000..7f0c95f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ContestFileServiceImpl.java @@ -0,0 +1,38 @@ +package top.hcode.hoj.service.file.impl; + +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.manager.file.ContestFileManager; +import top.hcode.hoj.service.file.ContestFileService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:53 + * @Description: + */ +@Service +public class ContestFileServiceImpl implements ContestFileService { + + @Resource + private ContestFileManager contestFileManager; + + @Override + public void downloadContestRank(Long cid, Boolean forceRefresh, Boolean removeStar, HttpServletResponse response) throws StatusFailException, IOException, StatusForbiddenException { + contestFileManager.downloadContestRank(cid, forceRefresh, removeStar, response); + } + + @Override + public void downloadContestACSubmission(Long cid, Boolean excludeAdmin, String splitType, HttpServletResponse response) throws StatusFailException, StatusForbiddenException { + contestFileManager.downloadContestACSubmission(cid, excludeAdmin, splitType, response); + } + + @Override + public void downloadContestPrintText(Long id, HttpServletResponse response) throws StatusForbiddenException { + contestFileManager.downloadContestPrintText(id, response); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImageServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImageServiceImpl.java new file mode 100644 index 0000000..b557f6e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImageServiceImpl.java @@ -0,0 +1,62 @@ +package top.hcode.hoj.service.file.impl; + +import top.hcode.hoj.common.exception.StatusForbiddenException; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.file.ImageManager; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.service.file.ImageService; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:41 + * @Description: + */ +@Service +public class ImageServiceImpl implements ImageService { + + @Resource + private ImageManager imageManager; + + @Override + public CommonResult> uploadAvatar(MultipartFile image) { + try { + return CommonResult.successResponse(imageManager.uploadAvatar(image)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } + } + + @Override + public CommonResult uploadGroupAvatar(MultipartFile image, Long gid) { + try { + return CommonResult.successResponse(imageManager.uploadGroupAvatar(image, gid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult> uploadCarouselImg(MultipartFile image) { + try { + return CommonResult.successResponse(imageManager.uploadCarouselImg(image)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImportFpsProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImportFpsProblemServiceImpl.java new file mode 100644 index 0000000..3d6f4de --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImportFpsProblemServiceImpl.java @@ -0,0 +1,33 @@ +package top.hcode.hoj.service.file.impl; + +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.file.ImportFpsProblemManager; +import top.hcode.hoj.service.file.ImportFpsProblemService; + +import javax.annotation.Resource; +import java.io.IOException; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:35 + * @Description: + */ +@Service +public class ImportFpsProblemServiceImpl implements ImportFpsProblemService { + + @Resource + private ImportFpsProblemManager importFpsProblemManager; + + @Override + public CommonResult importFPSProblem(MultipartFile file) { + try { + importFpsProblemManager.importFPSProblem(file); + return CommonResult.successResponse(); + } catch (IOException | StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImportQDUOJProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImportQDUOJProblemServiceImpl.java new file mode 100644 index 0000000..af0bd55 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ImportQDUOJProblemServiceImpl.java @@ -0,0 +1,35 @@ +package top.hcode.hoj.service.file.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.file.ImportQDUOJProblemManager; +import top.hcode.hoj.service.file.ImportQDUOJProblemService; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:24 + * @Description: + */ +@Service +public class ImportQDUOJProblemServiceImpl implements ImportQDUOJProblemService { + + @Autowired + private ImportQDUOJProblemManager importQDUOJProblemManager; + + @Override + public CommonResult importQDOJProblem(MultipartFile file) { + try { + importQDUOJProblemManager.importQDOJProblem(file); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/MarkDownFileServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/MarkDownFileServiceImpl.java new file mode 100644 index 0000000..2f82155 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/MarkDownFileServiceImpl.java @@ -0,0 +1,64 @@ +package top.hcode.hoj.service.file.impl; + +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.file.MarkDownFileManager; +import top.hcode.hoj.service.file.MarkDownFileService; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:18 + * @Description: + */ +@Service +public class MarkDownFileServiceImpl implements MarkDownFileService { + + @Resource + private MarkDownFileManager markDownFileManager; + + @Override + public CommonResult> uploadMDImg(MultipartFile image, Long gid) { + try { + return CommonResult.successResponse(markDownFileManager.uploadMDImg(image, gid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult deleteMDImg(Long fileId) { + try { + markDownFileManager.deleteMDImg(fileId); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult> uploadMd(MultipartFile file, Long gid) { + try { + return CommonResult.successResponse(markDownFileManager.uploadMd(file, gid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ProblemFileServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ProblemFileServiceImpl.java new file mode 100644 index 0000000..68f7ded --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/ProblemFileServiceImpl.java @@ -0,0 +1,43 @@ +package top.hcode.hoj.service.file.impl; + +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.file.ProblemFileManager; +import top.hcode.hoj.service.file.ProblemFileService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:15 + * @Description: + */ +@Service +public class ProblemFileServiceImpl implements ProblemFileService { + + @Resource + private ProblemFileManager problemFileManager; + + @Override + public CommonResult importProblem(MultipartFile file) { + try { + problemFileManager.importProblem(file); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } + } + + @Override + public void exportProblem(List pidList, HttpServletResponse response) { + problemFileManager.exportProblem(pidList, response); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/TestCaseServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/TestCaseServiceImpl.java new file mode 100644 index 0000000..4412cd4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/TestCaseServiceImpl.java @@ -0,0 +1,45 @@ +package top.hcode.hoj.service.file.impl; + +import top.hcode.hoj.common.exception.StatusForbiddenException; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.file.TestCaseManager; +import top.hcode.hoj.service.file.TestCaseService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:08 + * @Description: + */ +@Service +public class TestCaseServiceImpl implements TestCaseService { + + @Resource + private TestCaseManager testCaseManager; + + @Override + public CommonResult> uploadTestcaseZip(MultipartFile file, Long gid) { + try { + return CommonResult.successResponse(testCaseManager.uploadTestcaseZip(file, gid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public void downloadTestcase(Long pid, HttpServletResponse response) throws StatusFailException, StatusForbiddenException { + testCaseManager.downloadTestcase(pid, response); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/UserFileServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/UserFileServiceImpl.java new file mode 100644 index 0000000..f92dcb1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/file/impl/UserFileServiceImpl.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.service.file.impl; + +import org.springframework.stereotype.Service; +import top.hcode.hoj.manager.file.UserFileManager; +import top.hcode.hoj.service.file.UserFileService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 15:04 + * @Description: + */ +@Service +public class UserFileServiceImpl implements UserFileService { + + @Resource + private UserFileManager userFileManager; + + + @Override + public void generateUserExcel(String key, HttpServletResponse response) throws IOException { + userFileManager.generateUserExcel(key, response); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/GroupRankService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/GroupRankService.java new file mode 100644 index 0000000..6c42227 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/GroupRankService.java @@ -0,0 +1,14 @@ +package top.hcode.hoj.service.group; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.vo.OIRankVo; + +public interface GroupRankService { + + public CommonResult> getGroupRankList(Integer limit, + Integer currentPage, + String searchUser, + Integer type, + Long gid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/GroupService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/GroupService.java new file mode 100644 index 0000000..4bab412 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/GroupService.java @@ -0,0 +1,29 @@ +package top.hcode.hoj.service.group; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.AccessVo; +import top.hcode.hoj.pojo.vo.GroupVo; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupService { + + public CommonResult> getGroupList(Integer limit, Integer currentPage, String keyword, Integer auth, Boolean onlyMine); + + public CommonResult getGroup(Long gid); + + public CommonResult getGroupAccess(Long gid); + + public CommonResult getGroupAuth(Long gid); + + public CommonResult addGroup(Group group); + + public CommonResult updateGroup(Group group); + + public CommonResult deleteGroup(Long gid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/announcement/GroupAnnouncementService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/announcement/GroupAnnouncementService.java new file mode 100644 index 0000000..9c8f45e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/announcement/GroupAnnouncementService.java @@ -0,0 +1,25 @@ +package top.hcode.hoj.service.group.announcement; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupAnnouncementService { + + public CommonResult> getAnnouncementList(Integer limit, Integer currentPage, Long gid); + + public CommonResult> getAdminAnnouncementList(Integer limit, Integer currentPage, Long gid); + + public CommonResult addAnnouncement(Announcement announcement); + + public CommonResult updateAnnouncement(Announcement announcement); + + public CommonResult deleteAnnouncement(Long aid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/announcement/impl/GroupAnnouncementServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/announcement/impl/GroupAnnouncementServiceImpl.java new file mode 100644 index 0000000..9796cfb --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/announcement/impl/GroupAnnouncementServiceImpl.java @@ -0,0 +1,91 @@ +package top.hcode.hoj.service.group.announcement.impl; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.group.announcement.GroupAnnouncementManager; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.service.group.announcement.GroupAnnouncementService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupAnnouncementServiceImpl implements GroupAnnouncementService { + + @Autowired + private GroupAnnouncementManager groupAnnouncementManager; + + @Override + public CommonResult> getAnnouncementList(Integer limit, Integer currentPage, Long gid) { + try { + return CommonResult.successResponse(groupAnnouncementManager.getAnnouncementList(limit, currentPage, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult> getAdminAnnouncementList(Integer limit, Integer currentPage, Long gid) { + try { + return CommonResult.successResponse(groupAnnouncementManager.getAdminAnnouncementList(limit, currentPage, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult addAnnouncement(Announcement announcement) { + try { + groupAnnouncementManager.addAnnouncement(announcement); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult updateAnnouncement(Announcement announcement) { + try { + groupAnnouncementManager.updateAnnouncement(announcement); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult deleteAnnouncement(Long aid) { + try { + groupAnnouncementManager.deleteAnnouncement(aid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestAnnouncementService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestAnnouncementService.java new file mode 100644 index 0000000..43773ca --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestAnnouncementService.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.service.group.contest; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.AnnouncementDto; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupContestAnnouncementService { + + public CommonResult> getContestAnnouncementList(Integer limit, Integer currentPage, Long cid); + + public CommonResult addContestAnnouncement(AnnouncementDto announcementDto); + + public CommonResult updateContestAnnouncement(AnnouncementDto announcementDto); + + public CommonResult deleteContestAnnouncement(Long aid, Long cid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestProblemService.java new file mode 100644 index 0000000..0bd6a3c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestProblemService.java @@ -0,0 +1,32 @@ +package top.hcode.hoj.service.group.contest; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ContestProblemDto; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupContestProblemService { + + public CommonResult> getContestProblemList(Integer limit, Integer currentPage, String keyword, Long cid, Integer problemType, String oj); + + public CommonResult> addProblem(ProblemDto problemDto); + + public CommonResult getContestProblem(Long pid, Long cid); + + public CommonResult updateContestProblem(ContestProblem contestProblem); + + public CommonResult deleteContestProblem(Long pid, Long cid); + + public CommonResult addProblemFromPublic(ContestProblemDto contestProblemDto); + + public CommonResult addProblemFromGroup(String problemId, Long cid, String displayId); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestService.java new file mode 100644 index 0000000..3940377 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/GroupContestService.java @@ -0,0 +1,30 @@ +package top.hcode.hoj.service.group.contest; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.vo.AdminContestVo; +import top.hcode.hoj.pojo.vo.ContestVo; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupContestService { + + public CommonResult> getContestList(Integer limit, Integer currentPage, Long gid); + + public CommonResult> getAdminContestList(Integer limit, Integer currentPage, Long gid); + + public CommonResult getContest(Long cid); + + public CommonResult addContest(AdminContestVo adminContestVo); + + public CommonResult updateContest(AdminContestVo adminContestVo); + + public CommonResult deleteContest(Long cid); + + public CommonResult changeContestVisible(Long cid, Boolean visible); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestAnnouncementServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestAnnouncementServiceImpl.java new file mode 100644 index 0000000..79671ea --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestAnnouncementServiceImpl.java @@ -0,0 +1,79 @@ +package top.hcode.hoj.service.group.contest.impl; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.group.contest.GroupContestAnnouncementManager; +import top.hcode.hoj.pojo.dto.AnnouncementDto; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.service.group.contest.GroupContestAnnouncementService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupContestAnnouncementServiceImpl implements GroupContestAnnouncementService { + + @Autowired + private GroupContestAnnouncementManager groupContestAnnouncementManager; + + @Override + public CommonResult> getContestAnnouncementList(Integer limit, Integer currentPage, Long cid) { + try { + return CommonResult.successResponse(groupContestAnnouncementManager.getContestAnnouncementList(limit, currentPage, cid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult addContestAnnouncement(AnnouncementDto announcementDto) { + try { + groupContestAnnouncementManager.addContestAnnouncement(announcementDto); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult updateContestAnnouncement(AnnouncementDto announcementDto) { + try { + groupContestAnnouncementManager.updateContestAnnouncement(announcementDto); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult deleteContestAnnouncement(Long aid, Long cid) { + try { + groupContestAnnouncementManager.deleteContestAnnouncement(aid, cid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestProblemServiceImpl.java new file mode 100644 index 0000000..e829a59 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestProblemServiceImpl.java @@ -0,0 +1,122 @@ +package top.hcode.hoj.service.group.contest.impl; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.group.contest.GroupContestProblemManager; +import top.hcode.hoj.pojo.dto.ContestProblemDto; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.contest.ContestProblem; +import top.hcode.hoj.service.group.contest.GroupContestProblemService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupContestProblemServiceImpl implements GroupContestProblemService { + + @Autowired + private GroupContestProblemManager groupContestProblemManager; + + @Override + public CommonResult> getContestProblemList(Integer limit, Integer currentPage, String keyword, Long cid, Integer problemType, String oj) { + try { + return CommonResult.successResponse(groupContestProblemManager.getContestProblemList(limit, currentPage, keyword, cid, problemType, oj)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult> addProblem(ProblemDto problemDto) { + try { + return CommonResult.successResponse(groupContestProblemManager.addProblem(problemDto)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult getContestProblem(Long pid, Long cid) { + try { + return CommonResult.successResponse(groupContestProblemManager.getContestProblem(pid, cid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult updateContestProblem(ContestProblem contestProblem) { + try { + groupContestProblemManager.updateContestProblem(contestProblem); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult deleteContestProblem(Long pid, Long cid) { + try { + groupContestProblemManager.deleteContestProblem(pid, cid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult addProblemFromPublic(ContestProblemDto contestProblemDto) { + try { + groupContestProblemManager.addProblemFromPublic(contestProblemDto); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult addProblemFromGroup(String problemId, Long cid, String displayId) { + try { + groupContestProblemManager.addProblemFromGroup(problemId, cid, displayId); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestServiceImpl.java new file mode 100644 index 0000000..2676d79 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/contest/impl/GroupContestServiceImpl.java @@ -0,0 +1,118 @@ +package top.hcode.hoj.service.group.contest.impl; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.group.contest.GroupContestManager; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.vo.AdminContestVo; +import top.hcode.hoj.pojo.vo.ContestVo; +import top.hcode.hoj.service.group.contest.GroupContestService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupContestServiceImpl implements GroupContestService { + + @Autowired + private GroupContestManager groupContestManager; + + @Override + public CommonResult> getContestList(Integer limit, Integer currentPage, Long gid) { + try { + return CommonResult.successResponse(groupContestManager.getContestList(limit, currentPage, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult> getAdminContestList(Integer limit, Integer currentPage, Long gid) { + try { + return CommonResult.successResponse(groupContestManager.getAdminContestList(limit, currentPage, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult getContest(Long tid) { + try { + return CommonResult.successResponse(groupContestManager.getContest(tid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult addContest(AdminContestVo adminContestVo) { + try { + groupContestManager.addContest(adminContestVo); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult updateContest(AdminContestVo adminContestVo) { + try { + groupContestManager.updateContest(adminContestVo); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult deleteContest(Long tid) { + try { + groupContestManager.deleteContest(tid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult changeContestVisible(Long tid, Boolean visible) { + try { + groupContestManager.changeContestVisible(tid, visible); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/discussion/GroupDiscussionService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/discussion/GroupDiscussionService.java new file mode 100644 index 0000000..41a5dde --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/discussion/GroupDiscussionService.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.service.group.discussion; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupDiscussionService { + + public CommonResult> getDiscussionList(Integer limit, Integer currentPage, Long gid, String pid); + + public CommonResult> getAdminDiscussionList(Integer limit, Integer currentPage, Long gid); + + public CommonResult addDiscussion(Discussion discussion); + + public CommonResult updateDiscussion(Discussion discussion); + + public CommonResult deleteDiscussion(Long did); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/discussion/impl/GroupDiscussionServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/discussion/impl/GroupDiscussionServiceImpl.java new file mode 100644 index 0000000..dad3212 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/discussion/impl/GroupDiscussionServiceImpl.java @@ -0,0 +1,91 @@ +package top.hcode.hoj.service.group.discussion.impl; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; + +import top.hcode.hoj.manager.group.discussion.GroupDiscussionManager; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.service.group.discussion.GroupDiscussionService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupDiscussionServiceImpl implements GroupDiscussionService { + + @Autowired + private GroupDiscussionManager groupDiscussionManager; + + @Override + public CommonResult> getDiscussionList(Integer limit, Integer currentPage, Long gid, String pid) { + try { + return CommonResult.successResponse(groupDiscussionManager.getDiscussionList(limit, currentPage, gid, pid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult> getAdminDiscussionList(Integer limit, Integer currentPage, Long gid) { + try { + return CommonResult.successResponse(groupDiscussionManager.getAdminDiscussionList(limit, currentPage, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult addDiscussion(Discussion discussion) { + try { + groupDiscussionManager.addDiscussion(discussion); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult updateDiscussion(Discussion discussion) { + try { + groupDiscussionManager.updateDiscussion(discussion); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult deleteDiscussion(Long did) { + try { + groupDiscussionManager.deleteDiscussion(did); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/impl/GroupRankServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/impl/GroupRankServiceImpl.java new file mode 100644 index 0000000..8d19a5d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/impl/GroupRankServiceImpl.java @@ -0,0 +1,36 @@ +package top.hcode.hoj.service.group.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.group.GroupRankManager; +import top.hcode.hoj.pojo.vo.OIRankVo; +import top.hcode.hoj.service.group.GroupRankService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 20:56 + * @Description: + */ +@Service +public class GroupRankServiceImpl implements GroupRankService { + + @Resource + private GroupRankManager groupRankManager; + + @Override + public CommonResult> getGroupRankList(Integer limit, + Integer currentPage, + String searchUser, + Integer type, + Long gid) { + try { + return CommonResult.successResponse(groupRankManager.getGroupRankList(limit, currentPage, searchUser, type, gid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/impl/GroupServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/impl/GroupServiceImpl.java new file mode 100644 index 0000000..626ccb4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/impl/GroupServiceImpl.java @@ -0,0 +1,99 @@ +package top.hcode.hoj.service.group.impl; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.group.GroupManager; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.vo.AccessVo; +import top.hcode.hoj.pojo.vo.GroupVo; +import top.hcode.hoj.service.group.GroupService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupServiceImpl implements GroupService { + + @Autowired + private GroupManager groupManager; + + @Override + public CommonResult> getGroupList(Integer limit, Integer currentPage, String keyword, Integer auth, Boolean onlyMine) { + return CommonResult.successResponse(groupManager.getGroupList(limit, currentPage, keyword, auth, onlyMine)); + } + + @Override + public CommonResult getGroup(Long gid) { + try { + return CommonResult.successResponse(groupManager.getGroup(gid)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult getGroupAccess(Long gid) { + try { + return CommonResult.successResponse(groupManager.getGroupAccess(gid)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult getGroupAuth(Long gid) { + return CommonResult.successResponse(groupManager.getGroupAuth(gid)); + } + + @Override + public CommonResult addGroup(Group group) { + try { + groupManager.addGroup(group); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult updateGroup(Group group) { + try { + groupManager.updateGroup(group); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult deleteGroup(Long gid) { + try { + groupManager.deleteGroup(gid); + return CommonResult.successResponse(); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/member/GroupMemberService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/member/GroupMemberService.java new file mode 100644 index 0000000..dad00bf --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/member/GroupMemberService.java @@ -0,0 +1,26 @@ +package top.hcode.hoj.service.group.member; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.group.GroupMember; +import top.hcode.hoj.pojo.vo.GroupMemberVo; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupMemberService { + + public CommonResult> getMemberList(Integer limit, Integer currentPage, String keyword, Integer auth, Long gid); + + public CommonResult> getApplyList(Integer limit, Integer currentPage, String keyword, Integer auth, Long gid); + + public CommonResult addMember(Long gid, String code, String reason); + + public CommonResult updateMember(GroupMember groupMember); + + public CommonResult deleteMember(String uid, Long gid); + + public CommonResult exitGroup(Long gid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/member/impl/GroupMemberServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/member/impl/GroupMemberServiceImpl.java new file mode 100644 index 0000000..d382376 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/member/impl/GroupMemberServiceImpl.java @@ -0,0 +1,106 @@ +package top.hcode.hoj.service.group.member.impl; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.group.member.GroupMemberManager; +import top.hcode.hoj.pojo.entity.group.GroupMember; +import top.hcode.hoj.pojo.vo.GroupMemberVo; +import top.hcode.hoj.service.group.member.GroupMemberService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupMemberServiceImpl implements GroupMemberService { + + @Autowired + private GroupMemberManager groupMemberManager; + + @Override + public CommonResult> getMemberList(Integer limit, Integer currentPage, String keyword, Integer auth, Long gid) { + try { + return CommonResult.successResponse(groupMemberManager.getMemberList(limit, currentPage, keyword, auth, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult> getApplyList(Integer limit, Integer currentPage, String keyword, Integer auth, Long gid) { + try { + return CommonResult.successResponse(groupMemberManager.getApplyList(limit, currentPage, keyword, auth, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult addMember(Long gid, String code, String reason) { + try { + groupMemberManager.addMember(gid, code, reason); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult updateMember(GroupMember groupMember) { + try { + groupMemberManager.updateMember(groupMember); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + + @Override + public CommonResult deleteMember(String uid, Long gid) { + try { + groupMemberManager.deleteMember(uid, gid); + return CommonResult.successResponse(); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + + @Override + public CommonResult exitGroup(Long gid) { + try { + groupMemberManager.exitGroup(gid); + return CommonResult.successResponse(); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/problem/GroupProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/problem/GroupProblemService.java new file mode 100644 index 0000000..556b7aa --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/problem/GroupProblemService.java @@ -0,0 +1,44 @@ +package top.hcode.hoj.service.group.problem; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.vo.ProblemVo; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupProblemService { + + public CommonResult> getProblemList(Integer limit, Integer currentPage, Long gid); + + public CommonResult> getAdminProblemList(Integer limit, Integer currentPage, Long gid); + + public CommonResult getProblem(Long pid); + + public CommonResult addProblem(ProblemDto problemDto); + + public CommonResult updateProblem(ProblemDto problemDto); + + public CommonResult deleteProblem(Long pid); + + public CommonResult> getProblemCases(Long pid, Boolean isUpload); + + public CommonResult> getAllProblemTagsList(Long gid); + + public CommonResult compileSpj(CompileDTO compileDTO, Long gid); + + public CommonResult compileInteractive(CompileDTO compileDTO, Long gid); + + public CommonResult changeProblemAuth(Long pid, Integer auth); + + public CommonResult applyPublic(Long pid, Boolean isApplied); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/problem/impl/GroupProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/problem/impl/GroupProblemServiceImpl.java new file mode 100644 index 0000000..fbbb625 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/problem/impl/GroupProblemServiceImpl.java @@ -0,0 +1,189 @@ +package top.hcode.hoj.service.group.problem.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.group.problem.GroupProblemManager; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.dto.ProblemDto; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.service.group.problem.GroupProblemService; + +import java.util.List; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupProblemServiceImpl implements GroupProblemService { + + @Autowired + private GroupProblemManager groupProblemManager; + + @Override + public CommonResult> getProblemList(Integer limit, Integer currentPage, Long gid) { + try { + return CommonResult.successResponse(groupProblemManager.getProblemList(limit, currentPage, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult> getAdminProblemList(Integer limit, Integer currentPage, Long gid) { + try { + return CommonResult.successResponse(groupProblemManager.getAdminProblemList(limit, currentPage, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult getProblem(Long pid) { + try { + return CommonResult.successResponse(groupProblemManager.getProblem(pid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult addProblem(ProblemDto problemDto) { + try { + groupProblemManager.addProblem(problemDto); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult updateProblem(ProblemDto problemDto) { + try { + groupProblemManager.updateProblem(problemDto); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult deleteProblem(Long pid) { + try { + groupProblemManager.deleteProblem(pid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult> getProblemCases(Long pid, Boolean isUpload) { + try { + return CommonResult.successResponse(groupProblemManager.getProblemCases(pid, isUpload)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult> getAllProblemTagsList(Long gid) { + try { + return CommonResult.successResponse(groupProblemManager.getAllProblemTagsList(gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult compileSpj(CompileDTO compileDTO, Long gid) { + try { + groupProblemManager.compileSpj(compileDTO, gid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult compileInteractive(CompileDTO compileDTO, Long gid) { + try { + groupProblemManager.compileInteractive(compileDTO, gid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult changeProblemAuth(Long pid, Integer auth) { + try { + groupProblemManager.changeProblemAuth(pid, auth); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult applyPublic(Long pid, Boolean isApplied) { + try { + groupProblemManager.applyPublic(pid, isApplied); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/GroupTrainingProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/GroupTrainingProblemService.java new file mode 100644 index 0000000..f8382ee --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/GroupTrainingProblemService.java @@ -0,0 +1,30 @@ +package top.hcode.hoj.service.group.training; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.TrainingDto; +import top.hcode.hoj.pojo.dto.TrainingProblemDto; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.pojo.vo.TrainingVo; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.HashMap; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupTrainingProblemService { + + public CommonResult> getTrainingProblemList(Integer limit, Integer currentPage, String keyword, Boolean queryExisted, Long tid); + + public CommonResult updateTrainingProblem(TrainingProblem trainingProblem); + + public CommonResult deleteTrainingProblem(Long pid, Long tid); + + public CommonResult addProblemFromPublic(TrainingProblemDto trainingProblemDto); + + public CommonResult addProblemFromGroup(String problemId, Long tid); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/GroupTrainingService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/GroupTrainingService.java new file mode 100644 index 0000000..fa7d97f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/GroupTrainingService.java @@ -0,0 +1,30 @@ +package top.hcode.hoj.service.group.training; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.TrainingDto; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.vo.TrainingVo; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +public interface GroupTrainingService { + + public CommonResult> getTrainingList(Integer limit, Integer currentPage, Long gid); + + public CommonResult> getAdminTrainingList(Integer limit, Integer currentPage, Long gid); + + public CommonResult getTraining(Long tid); + + public CommonResult addTraining(TrainingDto trainingDto); + + public CommonResult updateTraining(TrainingDto trainingDto); + + public CommonResult deleteTraining(Long tid); + + public CommonResult changeTrainingStatus(Long tid, Boolean status); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/impl/GroupTrainingProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/impl/GroupTrainingProblemServiceImpl.java new file mode 100644 index 0000000..312636f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/impl/GroupTrainingProblemServiceImpl.java @@ -0,0 +1,95 @@ +package top.hcode.hoj.service.group.training.impl; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.group.training.GroupTrainingManager; +import top.hcode.hoj.manager.group.training.GroupTrainingProblemManager; +import top.hcode.hoj.pojo.dto.TrainingProblemDto; +import top.hcode.hoj.pojo.entity.training.TrainingProblem; +import top.hcode.hoj.service.group.training.GroupTrainingProblemService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupTrainingProblemServiceImpl implements GroupTrainingProblemService { + + @Autowired + private GroupTrainingProblemManager groupTrainingProblemManager; + + @Override + public CommonResult> getTrainingProblemList(Integer limit, Integer currentPage, String keyword, Boolean queryExisted, Long tid) { + try { + return CommonResult.successResponse(groupTrainingProblemManager.getTrainingProblemList(limit, currentPage, keyword, queryExisted, tid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult updateTrainingProblem(TrainingProblem trainingProblem) { + try { + groupTrainingProblemManager.updateTrainingProblem(trainingProblem); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult deleteTrainingProblem(Long pid, Long tid) { + try { + groupTrainingProblemManager.deleteTrainingProblem(pid, tid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult addProblemFromPublic(TrainingProblemDto trainingProblemDto) { + try { + groupTrainingProblemManager.addProblemFromPublic(trainingProblemDto); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult addProblemFromGroup(String problemId, Long tid) { + try { + groupTrainingProblemManager.addProblemFromGroup(problemId, tid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/impl/GroupTrainingServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/impl/GroupTrainingServiceImpl.java new file mode 100644 index 0000000..179f8e2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/group/training/impl/GroupTrainingServiceImpl.java @@ -0,0 +1,118 @@ +package top.hcode.hoj.service.group.training.impl; + +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.group.training.GroupTrainingManager; +import top.hcode.hoj.pojo.dto.TrainingDto; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.vo.TrainingVo; +import top.hcode.hoj.service.group.training.GroupTrainingService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Service +public class GroupTrainingServiceImpl implements GroupTrainingService { + + @Autowired + private GroupTrainingManager groupTrainingManager; + + @Override + public CommonResult> getTrainingList(Integer limit, Integer currentPage, Long gid) { + try { + return CommonResult.successResponse(groupTrainingManager.getTrainingList(limit, currentPage, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult> getAdminTrainingList(Integer limit, Integer currentPage, Long gid) { + try { + return CommonResult.successResponse(groupTrainingManager.getAdminTrainingList(limit, currentPage, gid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult getTraining(Long tid) { + try { + return CommonResult.successResponse(groupTrainingManager.getTraining(tid)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult addTraining(TrainingDto trainingDto) { + try { + groupTrainingManager.addTraining(trainingDto); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult updateTraining(TrainingDto trainingDto) { + try { + groupTrainingManager.updateTraining(trainingDto); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult deleteTraining(Long tid) { + try { + groupTrainingManager.deleteTraining(tid); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult changeTrainingStatus(Long tid, Boolean status) { + try { + groupTrainingManager.changeTrainingStatus(tid, status); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/AdminNoticeService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/AdminNoticeService.java new file mode 100644 index 0000000..1ade551 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/AdminNoticeService.java @@ -0,0 +1,17 @@ +package top.hcode.hoj.service.msg; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.vo.AdminSysNoticeVo; + +public interface AdminNoticeService { + + public CommonResult> getSysNotice(Integer limit, Integer currentPage, String type); + + public CommonResult addSysNotice(AdminSysNotice adminSysNotice); + + public CommonResult deleteSysNotice(Long id); + + public CommonResult updateSysNotice(AdminSysNotice adminSysNotice); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/NoticeService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/NoticeService.java new file mode 100644 index 0000000..7fc5d79 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/NoticeService.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.service.msg; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.vo.SysMsgVo; + +public interface NoticeService { + + public CommonResult> getSysNotice(Integer limit,Integer currentPage); + + public CommonResult> getMineNotice(Integer limit, Integer currentPage); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/UserMessageService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/UserMessageService.java new file mode 100644 index 0000000..cc31cf9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/UserMessageService.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.service.msg; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.vo.UserMsgVo; +import top.hcode.hoj.pojo.vo.UserUnreadMsgCountVo; + +public interface UserMessageService { + + public CommonResult getUnreadMsgCount(); + + public CommonResult cleanMsg(String type, Long id); + + public CommonResult> getCommentMsg( Integer limit,Integer currentPage); + + public CommonResult> getReplyMsg(Integer limit, Integer currentPage); + + public CommonResult> getLikeMsg(Integer limit, Integer currentPage); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/AdminNoticeServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/AdminNoticeServiceImpl.java new file mode 100644 index 0000000..334915d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/AdminNoticeServiceImpl.java @@ -0,0 +1,60 @@ +package top.hcode.hoj.service.msg.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.msg.AdminNoticeManager; +import top.hcode.hoj.pojo.entity.msg.AdminSysNotice; +import top.hcode.hoj.pojo.vo.AdminSysNoticeVo; +import top.hcode.hoj.service.msg.AdminNoticeService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 11:55 + * @Description: + */ +@Service +public class AdminNoticeServiceImpl implements AdminNoticeService { + + @Resource + private AdminNoticeManager adminNoticeManager; + + @Override + public CommonResult> getSysNotice(Integer limit, Integer currentPage, String type) { + + return CommonResult.successResponse(adminNoticeManager.getSysNotice(limit, currentPage, type)); + } + + @Override + public CommonResult addSysNotice(AdminSysNotice adminSysNotice) { + try { + adminNoticeManager.addSysNotice(adminSysNotice); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult deleteSysNotice(Long id) { + try { + adminNoticeManager.deleteSysNotice(id); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult updateSysNotice(AdminSysNotice adminSysNotice) { + try { + adminNoticeManager.updateSysNotice(adminSysNotice); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/NoticeServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/NoticeServiceImpl.java new file mode 100644 index 0000000..95d5ac7 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/NoticeServiceImpl.java @@ -0,0 +1,32 @@ +package top.hcode.hoj.service.msg.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.msg.NoticeManager; +import top.hcode.hoj.pojo.vo.SysMsgVo; +import top.hcode.hoj.service.msg.NoticeService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 11:47 + * @Description: + */ +@Service +public class NoticeServiceImpl implements NoticeService { + + @Resource + private NoticeManager noticeManager; + + @Override + public CommonResult> getSysNotice(Integer limit, Integer currentPage) { + return CommonResult.successResponse(noticeManager.getSysNotice(limit, currentPage)); + } + + @Override + public CommonResult> getMineNotice(Integer limit, Integer currentPage) { + return CommonResult.successResponse(noticeManager.getMineNotice(limit, currentPage)); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/UserMessageServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/UserMessageServiceImpl.java new file mode 100644 index 0000000..0511d94 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/msg/impl/UserMessageServiceImpl.java @@ -0,0 +1,54 @@ +package top.hcode.hoj.service.msg.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.msg.UserMessageManager; +import top.hcode.hoj.pojo.vo.UserMsgVo; +import top.hcode.hoj.pojo.vo.UserUnreadMsgCountVo; +import top.hcode.hoj.service.msg.UserMessageService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 14:20 + * @Description: + */ +@Service +public class UserMessageServiceImpl implements UserMessageService { + + @Resource + private UserMessageManager userMessageManager; + + @Override + public CommonResult getUnreadMsgCount() { + return CommonResult.successResponse(userMessageManager.getUnreadMsgCount()); + } + + @Override + public CommonResult cleanMsg(String type, Long id) { + try { + userMessageManager.cleanMsg(type, id); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult> getCommentMsg(Integer limit, Integer currentPage) { + return CommonResult.successResponse(userMessageManager.getCommentMsg(limit, currentPage)); + } + + @Override + public CommonResult> getReplyMsg(Integer limit, Integer currentPage) { + return CommonResult.successResponse(userMessageManager.getReplyMsg(limit, currentPage)); + } + + @Override + public CommonResult> getLikeMsg(Integer limit, Integer currentPage) { + return CommonResult.successResponse(userMessageManager.getLikeMsg(limit, currentPage)); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/AccountService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/AccountService.java new file mode 100644 index 0000000..3feece0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/AccountService.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.service.oj; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ChangeEmailDto; +import top.hcode.hoj.pojo.dto.ChangePasswordDto; +import top.hcode.hoj.pojo.dto.CheckUsernameOrEmailDto; +import top.hcode.hoj.pojo.vo.*; + + +public interface AccountService { + + public CommonResult checkUsernameOrEmail(CheckUsernameOrEmailDto checkUsernameOrEmailDto); + + public CommonResult getUserHomeInfo(String uid, String username); + + public CommonResult getUserCalendarHeatmap(String uid, String username); + + public CommonResult changePassword(ChangePasswordDto changePasswordDto); + + public CommonResult changeEmail(ChangeEmailDto changeEmailDto); + + public CommonResult changeUserInfo(UserInfoVo userInfoVo); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/CommentService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/CommentService.java new file mode 100644 index 0000000..d36a415 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/CommentService.java @@ -0,0 +1,28 @@ +package top.hcode.hoj.service.oj; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ReplyDto; +import top.hcode.hoj.pojo.entity.discussion.Comment; +import top.hcode.hoj.pojo.entity.discussion.Reply; +import top.hcode.hoj.pojo.vo.CommentListVo; +import top.hcode.hoj.pojo.vo.CommentVo; +import top.hcode.hoj.pojo.vo.ReplyVo; + +import java.util.List; + +public interface CommentService { + + public CommonResult getComments(Long cid, Integer did, Integer limit, Integer currentPage); + + public CommonResult addComment(Comment comment); + + public CommonResult deleteComment(Comment comment); + + public CommonResult addCommentLike(Integer cid, Boolean toLike, Integer sourceId, String sourceType); + + public CommonResult> getAllReply(Integer commentId, Long cid); + + public CommonResult addReply(ReplyDto replyDto); + + public CommonResult deleteReply(ReplyDto replyDto); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/CommonService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/CommonService.java new file mode 100644 index 0000000..b121135 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/CommonService.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.service.oj; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.problem.CodeTemplate; +import top.hcode.hoj.pojo.entity.problem.Language; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; +import top.hcode.hoj.pojo.vo.CaptchaVo; +import top.hcode.hoj.pojo.vo.ProblemTagVo; + +import java.util.Collection; +import java.util.List; + +public interface CommonService { + + public CommonResult getCaptcha(); + + public CommonResult> getTrainingCategory(); + + public CommonResult> getAllProblemTagsList(String oj); + + public CommonResult> getProblemTagsAndClassification(String oj); + + public CommonResult> getProblemTags(Long pid); + + public CommonResult> getLanguages(Long pid, Boolean all); + + public CommonResult> getProblemLanguages(Long pid); + + public CommonResult> getProblemCodeTemplate(Long pid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestAdminService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestAdminService.java new file mode 100644 index 0000000..a06fb39 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestAdminService.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.service.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.CheckACDto; +import top.hcode.hoj.pojo.entity.contest.ContestPrint; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; + +public interface ContestAdminService { + + public CommonResult> getContestACInfo(Long cid, Integer currentPage, Integer limit); + + public CommonResult checkContestACInfo(CheckACDto checkACDto); + + public CommonResult> getContestPrint(Long cid, Integer currentPage, Integer limit); + + public CommonResult checkContestPrintStatus(Long id, Long cid); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestScoreboardService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestScoreboardService.java new file mode 100644 index 0000000..3865907 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestScoreboardService.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.service.oj; + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ContestRankDto; +import top.hcode.hoj.pojo.vo.ContestOutsideInfo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 22:18 + * @Description: + */ +public interface ContestScoreboardService { + + public CommonResult getContestOutsideInfo(Long cid); + + public CommonResult getContestOutsideScoreboard(ContestRankDto contestRankDto); + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestService.java new file mode 100644 index 0000000..0d8e9bd --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ContestService.java @@ -0,0 +1,46 @@ +package top.hcode.hoj.service.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ContestPrintDto; +import top.hcode.hoj.pojo.dto.ContestRankDto; +import top.hcode.hoj.pojo.dto.RegisterContestDto; +import top.hcode.hoj.pojo.dto.UserReadContestAnnouncementDto; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.*; + +import java.util.List; + +public interface ContestService { + + public CommonResult> getContestList(Integer limit, Integer currentPage, Integer status, Integer type, String keyword); + + public CommonResult getContestInfo(Long cid); + + public CommonResult toRegisterContest(RegisterContestDto registerContestDto); + + public CommonResult getContestAccess(Long cid); + + public CommonResult> getContestProblem(Long cid); + + public CommonResult getContestProblemDetails(Long cid, String displayId); + + public CommonResult> getContestSubmissionList(Integer limit, + Integer currentPage, + Boolean onlyMine, + String displayId, + Integer searchStatus, + String searchUsername, + Long searchCid, + Boolean beforeContestSubmit, + Boolean completeProblemID); + + public CommonResult getContestRank(ContestRankDto contestRankDto); + + public CommonResult> getContestAnnouncement(Long cid, Integer limit, Integer currentPage); + + public CommonResult> getContestUserNotReadAnnouncement(UserReadContestAnnouncementDto userReadContestAnnouncementDto); + + public CommonResult submitPrintText(ContestPrintDto contestPrintDto); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/DiscussionService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/DiscussionService.java new file mode 100644 index 0000000..2606642 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/DiscussionService.java @@ -0,0 +1,36 @@ +package top.hcode.hoj.service.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.entity.problem.Category; +import top.hcode.hoj.pojo.vo.DiscussionVo; + +import java.util.List; + +public interface DiscussionService { + + public CommonResult> getDiscussionList(Integer limit, + Integer currentPage, + Integer categoryId, + String pid, + Boolean onlyMine, + String keyword, + Boolean admin); + + public CommonResult getDiscussion(Integer did); + + public CommonResult addDiscussion(Discussion discussion); + + public CommonResult updateDiscussion(Discussion discussion); + + public CommonResult removeDiscussion(Integer did); + + public CommonResult addDiscussionLike(Integer did, Boolean toLike); + + public CommonResult> getDiscussionCategory(); + + public CommonResult addDiscussionReport(DiscussionReport discussionReport); + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/HomeService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/HomeService.java new file mode 100644 index 0000000..8b7d926 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/HomeService.java @@ -0,0 +1,32 @@ +package top.hcode.hoj.service.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.vo.ACMRankVo; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.pojo.vo.ContestVo; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 21:06 + * @Description: + */ +public interface HomeService { + + public CommonResult> getRecentContest(); + + public CommonResult>> getHomeCarousel(); + + public CommonResult> getRecentSevenACRank(); + + public CommonResult>> getRecentOtherContest(); + + public CommonResult> getCommonAnnouncement(Integer limit, Integer currentPage); + + public CommonResult> getWebConfig(); + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/JudgeService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/JudgeService.java new file mode 100644 index 0000000..af0eb9b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/JudgeService.java @@ -0,0 +1,45 @@ +package top.hcode.hoj.service.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.SubmitIdListDto; +import top.hcode.hoj.pojo.dto.TestJudgeDto; +import top.hcode.hoj.pojo.dto.SubmitJudgeDto; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import top.hcode.hoj.pojo.vo.JudgeVo; +import top.hcode.hoj.pojo.vo.SubmissionInfoVo; +import top.hcode.hoj.pojo.vo.TestJudgeVo; + +import java.util.HashMap; +import java.util.List; + +public interface JudgeService { + + public CommonResult submitProblemJudge(SubmitJudgeDto judgeDto); + + public CommonResult submitProblemTestJudge(TestJudgeDto testJudgeDto); + + public CommonResult resubmit(Long submitId); + + public CommonResult getSubmission(Long submitId); + + public CommonResult getTestJudgeResult(String testJudgeKey); + + public CommonResult> getJudgeList(Integer limit, + Integer currentPage, + Boolean onlyMine, + String searchPid, + Integer searchStatus, + String searchUsername, + Boolean completeProblemID, + Long gid); + + public CommonResult updateSubmission(Judge judge); + + public CommonResult> checkCommonJudgeResult(SubmitIdListDto submitIdListDto); + + public CommonResult> checkContestJudgeResult(SubmitIdListDto submitIdListDto); + + public CommonResult> getALLCaseResult(Long submitId); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/PassportService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/PassportService.java new file mode 100644 index 0000000..d3e5540 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/PassportService.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.service.oj; + + +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.ApplyResetPasswordDto; +import top.hcode.hoj.pojo.dto.LoginDto; +import top.hcode.hoj.pojo.dto.RegisterDto; +import top.hcode.hoj.pojo.dto.ResetPasswordDto; +import top.hcode.hoj.pojo.vo.RegisterCodeVo; +import top.hcode.hoj.pojo.vo.UserInfoVo; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 17:39 + * @Description: + */ +public interface PassportService { + + public CommonResult login(LoginDto loginDto, HttpServletResponse response, HttpServletRequest request); + + public CommonResult getRegisterCode(String email); + + public CommonResult register(RegisterDto registerDto); + + public CommonResult applyResetPassword(ApplyResetPasswordDto applyResetPasswordDto); + + public CommonResult resetPassword(ResetPasswordDto resetPasswordDto); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ProblemService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ProblemService.java new file mode 100644 index 0000000..db843c0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/ProblemService.java @@ -0,0 +1,29 @@ +package top.hcode.hoj.service.oj; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.PidListDto; +import top.hcode.hoj.pojo.vo.ProblemInfoVo; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.pojo.vo.RandomProblemVo; + +import java.util.HashMap; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 11:04 + * @Description: + */ +public interface ProblemService { + + public CommonResult> getProblemList(Integer limit, Integer currentPage, + String keyword, List tagId, Integer difficulty, String oj); + + public CommonResult getRandomProblem(); + + public CommonResult> getUserProblemStatus(PidListDto pidListDto); + + public CommonResult getProblemInfo(String problemId, Long gid); + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/RankService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/RankService.java new file mode 100644 index 0000000..a32bb0e --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/RankService.java @@ -0,0 +1,9 @@ +package top.hcode.hoj.service.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; + +public interface RankService { + + public CommonResult getRankList(Integer limit, Integer currentPage, String searchUser, Integer type); +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/TrainingService.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/TrainingService.java new file mode 100644 index 0000000..ae422a0 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/TrainingService.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.service.oj; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.pojo.dto.RegisterTrainingDto; +import top.hcode.hoj.pojo.vo.AccessVo; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.pojo.vo.TrainingRankVo; +import top.hcode.hoj.pojo.vo.TrainingVo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 20:29 + * @Description: + */ +public interface TrainingService { + + public CommonResult> getTrainingList(Integer limit, Integer currentPage, String keyword, Long categoryId, String auth); + + public CommonResult getTraining(Long tid); + + public CommonResult> getTrainingProblemList(Long tid); + + public CommonResult toRegisterTraining(RegisterTrainingDto registerTrainingDto); + + public CommonResult getTrainingAccess( Long tid); + + public CommonResult> getTrainingRank(Long tid, Integer limit, Integer currentPage); +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/AccountServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/AccountServiceImpl.java new file mode 100644 index 0000000..666f230 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/AccountServiceImpl.java @@ -0,0 +1,81 @@ +package top.hcode.hoj.service.oj.impl; + +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusSystemErrorException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.oj.AccountManager; +import top.hcode.hoj.pojo.dto.ChangeEmailDto; +import top.hcode.hoj.pojo.dto.ChangePasswordDto; +import top.hcode.hoj.pojo.dto.CheckUsernameOrEmailDto; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.service.oj.AccountService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 19:35 + * @Description: + */ +@Service +public class AccountServiceImpl implements AccountService { + + @Resource + private AccountManager accountManager; + + @Override + public CommonResult checkUsernameOrEmail(CheckUsernameOrEmailDto checkUsernameOrEmailDto) { + return CommonResult.successResponse(accountManager.checkUsernameOrEmail(checkUsernameOrEmailDto)); + } + + @Override + public CommonResult getUserHomeInfo(String uid, String username) { + try { + return CommonResult.successResponse(accountManager.getUserHomeInfo(uid, username)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult getUserCalendarHeatmap(String uid, String username) { + try { + return CommonResult.successResponse(accountManager.getUserCalendarHeatmap(uid, username)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult changePassword(ChangePasswordDto changePasswordDto) { + try { + return CommonResult.successResponse(accountManager.changePassword(changePasswordDto)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } + } + + @Override + public CommonResult changeEmail(ChangeEmailDto changeEmailDto) { + try { + return CommonResult.successResponse(accountManager.changeEmail(changeEmailDto)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } + } + + @Override + public CommonResult changeUserInfo(UserInfoVo userInfoVo) { + try { + return CommonResult.successResponse(accountManager.changeUserInfo(userInfoVo)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/CommentServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/CommentServiceImpl.java new file mode 100644 index 0000000..1a53df2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/CommentServiceImpl.java @@ -0,0 +1,106 @@ +package top.hcode.hoj.service.oj.impl; + +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.exception.AccessException; +import top.hcode.hoj.manager.oj.CommentManager; +import top.hcode.hoj.pojo.dto.ReplyDto; +import top.hcode.hoj.pojo.entity.discussion.Comment; +import top.hcode.hoj.pojo.vo.CommentListVo; +import top.hcode.hoj.pojo.vo.CommentVo; +import top.hcode.hoj.pojo.vo.ReplyVo; +import top.hcode.hoj.service.oj.CommentService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 16:21 + * @Description: + */ +@Service +public class CommentServiceImpl implements CommentService { + + @Resource + private CommentManager commentManager; + + @Override + public CommonResult getComments(Long cid, Integer did, Integer limit, Integer currentPage) { + try { + return CommonResult.successResponse(commentManager.getComments(cid, did, limit, currentPage)); + } catch (StatusForbiddenException | AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult addComment(Comment comment) { + try { + return CommonResult.successResponse(commentManager.addComment(comment)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException | AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult deleteComment(Comment comment) { + try { + commentManager.deleteComment(comment); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException | AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult addCommentLike(Integer cid, Boolean toLike, Integer sourceId, String sourceType) { + try { + commentManager.addCommentLike(cid, toLike, sourceId, sourceType); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult> getAllReply(Integer commentId, Long cid) { + try { + return CommonResult.successResponse(commentManager.getAllReply(commentId, cid)); + } catch (StatusForbiddenException | AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } + } + + @Override + public CommonResult addReply(ReplyDto replyDto) { + try { + return CommonResult.successResponse(commentManager.addReply(replyDto)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException | AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult deleteReply(ReplyDto replyDto) { + try { + commentManager.deleteReply(replyDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException | AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/CommonServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/CommonServiceImpl.java new file mode 100644 index 0000000..7fecd26 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/CommonServiceImpl.java @@ -0,0 +1,68 @@ +package top.hcode.hoj.service.oj.impl; + +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.oj.CommonManager; +import top.hcode.hoj.pojo.entity.problem.CodeTemplate; +import top.hcode.hoj.pojo.entity.problem.Language; +import top.hcode.hoj.pojo.entity.problem.Tag; +import top.hcode.hoj.pojo.entity.training.TrainingCategory; +import top.hcode.hoj.pojo.vo.CaptchaVo; +import top.hcode.hoj.pojo.vo.ProblemTagVo; +import top.hcode.hoj.service.oj.CommonService; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 16:42 + * @Description: + */ +@Service +public class CommonServiceImpl implements CommonService { + + @Resource + private CommonManager commonManager; + + @Override + public CommonResult getCaptcha() { + return CommonResult.successResponse(commonManager.getCaptcha()); + } + + @Override + public CommonResult> getTrainingCategory() { + return CommonResult.successResponse(commonManager.getTrainingCategory()); + } + + @Override + public CommonResult> getAllProblemTagsList(String oj) { + return CommonResult.successResponse(commonManager.getAllProblemTagsList(oj)); + } + + @Override + public CommonResult> getProblemTagsAndClassification(String oj) { + return CommonResult.successResponse(commonManager.getProblemTagsAndClassification(oj)); + } + + @Override + public CommonResult> getProblemTags(Long pid) { + return CommonResult.successResponse(commonManager.getProblemTags(pid)); + } + + @Override + public CommonResult> getLanguages(Long pid, Boolean all) { + return CommonResult.successResponse(commonManager.getLanguages(pid, all)); + } + + @Override + public CommonResult> getProblemLanguages(Long pid) { + return CommonResult.successResponse(commonManager.getProblemLanguages(pid)); + } + + @Override + public CommonResult> getProblemCodeTemplate(Long pid) { + return CommonResult.successResponse(commonManager.getProblemCodeTemplate(pid)); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestAdminServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestAdminServiceImpl.java new file mode 100644 index 0000000..7fa0561 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestAdminServiceImpl.java @@ -0,0 +1,70 @@ +package top.hcode.hoj.service.oj.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.oj.ContestAdminManager; +import top.hcode.hoj.pojo.dto.CheckACDto; +import top.hcode.hoj.pojo.entity.contest.ContestPrint; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.service.oj.ContestAdminService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 19:54 + * @Description: + */ + +@Service +public class ContestAdminServiceImpl implements ContestAdminService { + + @Resource + private ContestAdminManager contestAdminManager; + + @Override + public CommonResult> getContestACInfo(Long cid, Integer currentPage, Integer limit) { + try { + return CommonResult.successResponse(contestAdminManager.getContestACInfo(cid, currentPage, limit)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult checkContestACInfo(CheckACDto checkACDto) { + try { + contestAdminManager.checkContestACInfo(checkACDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult> getContestPrint(Long cid, Integer currentPage, Integer limit) { + try { + return CommonResult.successResponse(contestAdminManager.getContestPrint(cid, currentPage, limit)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult checkContestPrintStatus(Long id, Long cid) { + try { + contestAdminManager.checkContestPrintStatus(id, cid); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestScoreboardServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestScoreboardServiceImpl.java new file mode 100644 index 0000000..05b51d8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestScoreboardServiceImpl.java @@ -0,0 +1,49 @@ +package top.hcode.hoj.service.oj.impl; + +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.oj.ContestScoreboardManager; +import top.hcode.hoj.pojo.dto.ContestRankDto; +import top.hcode.hoj.pojo.vo.ContestOutsideInfo; +import top.hcode.hoj.service.oj.ContestScoreboardService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 22:18 + * @Description: + */ +@Service +public class ContestScoreboardServiceImpl implements ContestScoreboardService { + + @Resource + private ContestScoreboardManager contestScoreboardManager; + + @Override + public CommonResult getContestOutsideInfo(Long cid) { + try { + return CommonResult.successResponse(contestScoreboardManager.getContestOutsideInfo(cid)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult getContestOutsideScoreboard(ContestRankDto contestRankDto) { + try { + return CommonResult.successResponse(contestScoreboardManager.getContestOutsideScoreboard(contestRankDto)); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestServiceImpl.java new file mode 100644 index 0000000..b26a4a4 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ContestServiceImpl.java @@ -0,0 +1,160 @@ +package top.hcode.hoj.service.oj.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.oj.ContestManager; +import top.hcode.hoj.pojo.dto.ContestPrintDto; +import top.hcode.hoj.pojo.dto.ContestRankDto; +import top.hcode.hoj.pojo.dto.RegisterContestDto; +import top.hcode.hoj.pojo.dto.UserReadContestAnnouncementDto; +import top.hcode.hoj.pojo.entity.common.Announcement; +import top.hcode.hoj.pojo.vo.*; +import top.hcode.hoj.service.oj.ContestService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/12 15:06 + * @Description: + */ +@Service +public class ContestServiceImpl implements ContestService { + + @Resource + private ContestManager contestManager; + + @Override + public CommonResult> getContestList(Integer limit, Integer currentPage, Integer status, Integer type, String keyword) { + return CommonResult.successResponse(contestManager.getContestList(limit, currentPage, status, type, keyword)); + } + + @Override + public CommonResult getContestInfo(Long cid) { + try { + return CommonResult.successResponse(contestManager.getContestInfo(cid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult toRegisterContest(RegisterContestDto registerContestDto) { + try { + contestManager.toRegisterContest(registerContestDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult getContestAccess(Long cid) { + try { + return CommonResult.successResponse(contestManager.getContestAccess(cid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult> getContestProblem(Long cid) { + try { + return CommonResult.successResponse(contestManager.getContestProblem(cid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult getContestProblemDetails(Long cid, String displayId) { + try { + return CommonResult.successResponse(contestManager.getContestProblemDetails(cid, displayId)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult> getContestSubmissionList(Integer limit, + Integer currentPage, + Boolean onlyMine, + String displayId, + Integer searchStatus, + String searchUsername, + Long searchCid, + Boolean beforeContestSubmit, + Boolean completeProblemID) { + try { + return CommonResult.successResponse(contestManager.getContestSubmissionList(limit, + currentPage, + onlyMine, + displayId, + searchStatus, + searchUsername, + searchCid, + beforeContestSubmit, + completeProblemID)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult getContestRank(ContestRankDto contestRankDto) { + try { + return CommonResult.successResponse(contestManager.getContestRank(contestRankDto)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult> getContestAnnouncement(Long cid, Integer limit, Integer currentPage) { + try { + return CommonResult.successResponse(contestManager.getContestAnnouncement(cid, limit, currentPage)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult> getContestUserNotReadAnnouncement(UserReadContestAnnouncementDto userReadContestAnnouncementDto) { + + return CommonResult.successResponse(contestManager.getContestUserNotReadAnnouncement(userReadContestAnnouncementDto)); + } + + @Override + public CommonResult submitPrintText(ContestPrintDto contestPrintDto) { + try { + contestManager.submitPrintText(contestPrintDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/DiscussionServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/DiscussionServiceImpl.java new file mode 100644 index 0000000..fcf35ef --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/DiscussionServiceImpl.java @@ -0,0 +1,113 @@ +package top.hcode.hoj.service.oj.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.exception.AccessException; +import top.hcode.hoj.manager.oj.DiscussionManager; +import top.hcode.hoj.pojo.entity.discussion.Discussion; +import top.hcode.hoj.pojo.entity.discussion.DiscussionReport; +import top.hcode.hoj.pojo.entity.problem.Category; +import top.hcode.hoj.pojo.vo.DiscussionVo; +import top.hcode.hoj.service.oj.DiscussionService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 15:47 + * @Description: + */ +@Service +public class DiscussionServiceImpl implements DiscussionService { + + @Resource + private DiscussionManager discussionManager; + + @Override + public CommonResult> getDiscussionList(Integer limit, Integer currentPage, Integer categoryId, String pid, Boolean onlyMine, String keyword, Boolean admin) { + return CommonResult.successResponse(discussionManager.getDiscussionList(limit, currentPage, categoryId, pid, onlyMine, keyword, admin)); + } + + @Override + public CommonResult getDiscussion(Integer did) { + try { + return CommonResult.successResponse(discussionManager.getDiscussion(did)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusForbiddenException | AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult addDiscussion(Discussion discussion) { + try { + discussionManager.addDiscussion(discussion); + return CommonResult.successResponse(); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FAIL); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult updateDiscussion(Discussion discussion) { + try { + discussionManager.updateDiscussion(discussion); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult removeDiscussion(Integer did) { + try { + discussionManager.removeDiscussion(did); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult addDiscussionLike(Integer did, Boolean toLike) { + try { + discussionManager.addDiscussionLike(did, toLike); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult> getDiscussionCategory() { + + return CommonResult.successResponse(discussionManager.getDiscussionCategory()); + } + + @Override + public CommonResult addDiscussionReport(DiscussionReport discussionReport) { + try { + discussionManager.addDiscussionReport(discussionReport); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/HomeServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/HomeServiceImpl.java new file mode 100644 index 0000000..25c9bb1 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/HomeServiceImpl.java @@ -0,0 +1,57 @@ +package top.hcode.hoj.service.oj.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.oj.HomeManager; +import top.hcode.hoj.pojo.vo.ACMRankVo; +import top.hcode.hoj.pojo.vo.AnnouncementVo; +import top.hcode.hoj.pojo.vo.ContestVo; +import top.hcode.hoj.service.oj.HomeService; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 21:08 + * @Description: + */ +@Service +public class HomeServiceImpl implements HomeService { + + @Resource + private HomeManager homeManager; + + @Override + public CommonResult> getRecentContest() { + return CommonResult.successResponse(homeManager.getRecentContest()); + } + + @Override + public CommonResult>> getHomeCarousel() { + return CommonResult.successResponse(homeManager.getHomeCarousel()); + } + + @Override + public CommonResult> getRecentSevenACRank() { + return CommonResult.successResponse(homeManager.getRecentSevenACRank()); + } + + @Override + public CommonResult>> getRecentOtherContest() { + return CommonResult.successResponse(homeManager.getRecentOtherContest()); + } + + @Override + public CommonResult> getCommonAnnouncement(Integer limit, Integer currentPage) { + return CommonResult.successResponse(homeManager.getCommonAnnouncement(limit, currentPage)); + } + + @Override + public CommonResult> getWebConfig() { + return CommonResult.successResponse(homeManager.getWebConfig()); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/JudgeServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/JudgeServiceImpl.java new file mode 100644 index 0000000..84bb6ad --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/JudgeServiceImpl.java @@ -0,0 +1,151 @@ +package top.hcode.hoj.service.oj.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.*; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.exception.AccessException; +import top.hcode.hoj.manager.oj.JudgeManager; +import top.hcode.hoj.pojo.dto.SubmitIdListDto; +import top.hcode.hoj.pojo.dto.TestJudgeDto; +import top.hcode.hoj.pojo.dto.SubmitJudgeDto; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import top.hcode.hoj.pojo.vo.JudgeVo; +import top.hcode.hoj.pojo.vo.SubmissionInfoVo; +import top.hcode.hoj.pojo.vo.TestJudgeVo; +import top.hcode.hoj.service.oj.JudgeService; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 15:09 + * @Description: + */ +@Service +public class JudgeServiceImpl implements JudgeService { + + @Resource + private JudgeManager judgeManager; + + @Override + public CommonResult submitProblemJudge(SubmitJudgeDto judgeDto) { + try { + return CommonResult.successResponse(judgeManager.submitProblemJudge(judgeDto)); + } catch (StatusForbiddenException | AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusAccessDeniedException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult submitProblemTestJudge(TestJudgeDto testJudgeDto) { + try { + return CommonResult.successResponse(judgeManager.submitProblemTestJudge(testJudgeDto), "success"); + } catch (StatusForbiddenException | AccessException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusSystemErrorException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.SYSTEM_ERROR); + } + } + + @Override + public CommonResult resubmit(Long submitId) { + try { + return CommonResult.successResponse(judgeManager.resubmit(submitId)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult getSubmission(Long submitId) { + try { + return CommonResult.successResponse(judgeManager.getSubmission(submitId)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusAccessDeniedException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } + } + + @Override + public CommonResult getTestJudgeResult(String testJudgeKey) { + try { + return CommonResult.successResponse(judgeManager.getTestJudgeResult(testJudgeKey)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult> getJudgeList(Integer limit, + Integer currentPage, + Boolean onlyMine, + String searchPid, + Integer searchStatus, + String searchUsername, + Boolean completeProblemID, + Long gid) { + try { + return CommonResult.successResponse(judgeManager.getJudgeList(limit, + currentPage, + onlyMine, + searchPid, + searchStatus, + searchUsername, + completeProblemID, + gid)); + } catch (StatusAccessDeniedException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } + } + + @Override + public CommonResult updateSubmission(Judge judge) { + try { + judgeManager.updateSubmission(judge); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult> checkCommonJudgeResult(SubmitIdListDto submitIdListDto) { + return CommonResult.successResponse(judgeManager.checkCommonJudgeResult(submitIdListDto)); + } + + @Override + public CommonResult> checkContestJudgeResult(SubmitIdListDto submitIdListDto) { + try { + return CommonResult.successResponse(judgeManager.checkContestJudgeResult(submitIdListDto)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult> getALLCaseResult(Long submitId) { + try { + return CommonResult.successResponse(judgeManager.getALLCaseResult(submitId)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/PassportServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/PassportServiceImpl.java new file mode 100644 index 0000000..7f723ca --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/PassportServiceImpl.java @@ -0,0 +1,86 @@ +package top.hcode.hoj.service.oj.impl; + +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusAccessDeniedException; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.oj.PassportManager; +import top.hcode.hoj.pojo.dto.ApplyResetPasswordDto; +import top.hcode.hoj.pojo.dto.LoginDto; +import top.hcode.hoj.pojo.dto.RegisterDto; +import top.hcode.hoj.pojo.dto.ResetPasswordDto; +import top.hcode.hoj.pojo.vo.RegisterCodeVo; +import top.hcode.hoj.pojo.vo.UserInfoVo; +import top.hcode.hoj.service.oj.PassportService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 17:40 + * @Description: + */ +@Service +public class PassportServiceImpl implements PassportService { + + @Resource + private PassportManager passportManager; + + @Override + public CommonResult login(LoginDto loginDto, HttpServletResponse response, HttpServletRequest request) { + try { + return CommonResult.successResponse(passportManager.login(loginDto, response, request)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult getRegisterCode(String email) { + try { + return CommonResult.successResponse(passportManager.getRegisterCode(email)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusAccessDeniedException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult register(RegisterDto registerDto) { + try { + passportManager.register(registerDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusAccessDeniedException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } + } + + @Override + public CommonResult applyResetPassword(ApplyResetPasswordDto applyResetPasswordDto) { + try { + passportManager.applyResetPassword(applyResetPasswordDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult resetPassword(ResetPasswordDto resetPasswordDto) { + try { + passportManager.resetPassword(resetPasswordDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ProblemServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ProblemServiceImpl.java new file mode 100644 index 0000000..4607847 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/ProblemServiceImpl.java @@ -0,0 +1,65 @@ +package top.hcode.hoj.service.oj.impl; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.exception.StatusNotFoundException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.oj.ProblemManager; +import top.hcode.hoj.pojo.dto.PidListDto; +import top.hcode.hoj.pojo.vo.ProblemInfoVo; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.pojo.vo.RandomProblemVo; +import top.hcode.hoj.service.oj.ProblemService; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 11:06 + * @Description: + */ +@Service +public class ProblemServiceImpl implements ProblemService { + + @Resource + private ProblemManager problemManager; + + @Override + public CommonResult> getProblemList(Integer limit, Integer currentPage, String keyword, List tagId, Integer difficulty, String oj) { + return CommonResult.successResponse(problemManager.getProblemList(limit, currentPage, keyword, tagId, difficulty, oj)); + } + + @Override + public CommonResult getRandomProblem() { + try { + return CommonResult.successResponse(problemManager.getRandomProblem()); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult> getUserProblemStatus(PidListDto pidListDto) { + try { + return CommonResult.successResponse(problemManager.getUserProblemStatus(pidListDto)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } + } + + @Override + public CommonResult getProblemInfo(String problemId, Long gid) { + try { + return CommonResult.successResponse(problemManager.getProblemInfo(problemId, gid)); + } catch (StatusNotFoundException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.NOT_FOUND); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/RankServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/RankServiceImpl.java new file mode 100644 index 0000000..7cd2a1b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/RankServiceImpl.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.service.oj.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.manager.oj.RankManager; +import top.hcode.hoj.service.oj.RankService; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 20:56 + * @Description: + */ +@Service +public class RankServiceImpl implements RankService { + + @Resource + private RankManager rankManager; + + @Override + public CommonResult getRankList(Integer limit, Integer currentPage, String searchUser, Integer type) { + try { + return CommonResult.successResponse(rankManager.getRankList(limit, currentPage, searchUser, type)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/TrainingServiceImpl.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/TrainingServiceImpl.java new file mode 100644 index 0000000..d49e2d2 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/service/oj/impl/TrainingServiceImpl.java @@ -0,0 +1,96 @@ +package top.hcode.hoj.service.oj.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.StatusAccessDeniedException; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.manager.oj.TrainingManager; +import top.hcode.hoj.pojo.dto.RegisterTrainingDto; +import top.hcode.hoj.pojo.vo.AccessVo; +import top.hcode.hoj.pojo.vo.ProblemVo; +import top.hcode.hoj.pojo.vo.TrainingRankVo; +import top.hcode.hoj.pojo.vo.TrainingVo; +import top.hcode.hoj.service.oj.TrainingService; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/10 20:40 + * @Description: + */ +@Service +public class TrainingServiceImpl implements TrainingService { + + @Resource + private TrainingManager trainingManager; + + @Override + public CommonResult> getTrainingList(Integer limit, Integer currentPage, String keyword, Long categoryId, String auth) { + return CommonResult.successResponse(trainingManager.getTrainingList(limit, currentPage, keyword, categoryId, auth)); + } + + @Override + public CommonResult getTraining(Long tid) { + try { + return CommonResult.successResponse(trainingManager.getTraining(tid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusAccessDeniedException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult> getTrainingProblemList(Long tid) { + try { + return CommonResult.successResponse(trainingManager.getTrainingProblemList(tid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusAccessDeniedException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult toRegisterTraining(RegisterTrainingDto registerTrainingDto) { + try { + trainingManager.toRegisterTraining(registerTrainingDto); + return CommonResult.successResponse(); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } + + @Override + public CommonResult getTrainingAccess(Long tid) { + try { + return CommonResult.successResponse(trainingManager.getTrainingAccess(tid)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } + } + + @Override + public CommonResult> getTrainingRank(Long tid, Integer limit, Integer currentPage) { + try { + return CommonResult.successResponse(trainingManager.getTrainingRank(tid, limit, currentPage)); + } catch (StatusFailException e) { + return CommonResult.errorResponse(e.getMessage()); + } catch (StatusAccessDeniedException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.ACCESS_DENIED); + } catch (StatusForbiddenException e) { + return CommonResult.errorResponse(e.getMessage(), ResultStatus.FORBIDDEN); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/AccountProfile.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/AccountProfile.java new file mode 100644 index 0000000..ffe96f9 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/AccountProfile.java @@ -0,0 +1,56 @@ +package top.hcode.hoj.shiro; + +import lombok.Data; +import top.hcode.hoj.pojo.entity.user.Role; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/7/19 22:59 + * @Description: + */ +@Data +public class AccountProfile implements Serializable { + private String uid; + + private String username; + + private String password; + + private String nickname; + + private String school; + + private String course; + + private String number; + + private String gender; + + private String realname; + + private String cfUsername; + + private String email; + + private String avatar; + + private String signature; + + private int status; + + private Date gmtCreate; + + + private Date gmtModified; + + + private List roles; + + public String getId(){ //shiro登录用户实体默认主键获取方法要为getId + return uid; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/AccountRealm.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/AccountRealm.java new file mode 100644 index 0000000..876b1f5 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/AccountRealm.java @@ -0,0 +1,92 @@ +package top.hcode.hoj.shiro; + +import cn.hutool.core.bean.BeanUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.*; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.session.Session; +import org.apache.shiro.subject.PrincipalCollection; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import top.hcode.hoj.mapper.RoleAuthMapper; +import top.hcode.hoj.mapper.UserRoleMapper; +import top.hcode.hoj.pojo.entity.user.Auth; +import top.hcode.hoj.pojo.entity.user.Role; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.JwtUtils; + +import java.util.LinkedList; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/7/19 22:57 + * @Description: + */ +@Slf4j +@Component +public class AccountRealm extends AuthorizingRealm { + + @Autowired + private JwtUtils jwtUtils; + + @Autowired + private UserRoleMapper userRoleMapper; + + @Autowired + private RoleAuthMapper roleAuthMapper; + + @Override + public boolean supports(AuthenticationToken token) { + return token instanceof JwtToken; + } + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { + AccountProfile user = (AccountProfile) principals.getPrimaryPrincipal(); + //角色权限列表 + List permissionsNameList = new LinkedList<>(); + //用户角色列表 + List roleNameList = new LinkedList<>(); + //获取该用户角色所有的权限 + List roles = userRoleMapper.getRolesByUid(user.getUid()); + // 角色变动,同时需要修改会话里面的数据 + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userInfo = (UserRolesVo) session.getAttribute("userInfo"); + userInfo.setRoles(roles); + session.setAttribute("userInfo",userInfo); + for (Role role:roles) { + roleNameList.add(role.getRole()); + for (Auth auth : roleAuthMapper.getRoleAuths(role.getId()).getAuths()) { + permissionsNameList.add(auth.getPermission()); + } + } + SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(); + + authorizationInfo.addRoles(roleNameList); + //添加权限 + authorizationInfo.addStringPermissions(permissionsNameList); + return authorizationInfo; + } + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { + JwtToken jwt = (JwtToken) token; + String userId = jwtUtils.getClaimByToken((String) jwt.getPrincipal()).getSubject(); + UserRolesVo userRoles = userRoleMapper.getUserRoles(userId, null); + if(userRoles == null) { + throw new UnknownAccountException("账户不存在!"); + } + if(userRoles.getStatus() == 1) { + throw new LockedAccountException("该账户已被封禁,请联系管理员进行处理!"); + } + AccountProfile profile = new AccountProfile(); + BeanUtil.copyProperties(userRoles, profile); + // 写入会话,后续不必重复查询 + Session session = SecurityUtils.getSubject().getSession(); + session.setAttribute("userInfo", userRoles); + return new SimpleAuthenticationInfo(profile, jwt.getCredentials(), getName()); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/JwtFilter.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/JwtFilter.java new file mode 100644 index 0000000..28d6256 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/JwtFilter.java @@ -0,0 +1,143 @@ +package top.hcode.hoj.shiro; + + +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import io.jsonwebtoken.Claims; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.web.filter.authc.AuthenticatingFilter; +import org.apache.shiro.web.util.WebUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestMethod; +import top.hcode.hoj.common.result.CommonResult; +import top.hcode.hoj.common.result.ResultStatus; +import top.hcode.hoj.utils.JwtUtils; +import top.hcode.hoj.utils.RedisUtils; + + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @Author: Himit_ZH + * @Date: 2020/7/19 23:16 + * @Description: + */ +@Component +public class JwtFilter extends AuthenticatingFilter { + + @Autowired + private JwtUtils jwtUtils; + + private final static String TOKEN_KEY = "token-key:"; + + private final static String TOKEN_LOCK = "token-lock:"; + + private final static String TOKEN_REFRESH = "token-refresh:"; + + @Autowired + private RedisUtils redisUtils; + + @Override + protected AuthenticationToken createToken(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception { + // 获取 token + HttpServletRequest request = (HttpServletRequest) servletRequest; + String jwt = request.getHeader("Authorization"); + if (StringUtils.isEmpty(jwt)) { + return null; + } + return new JwtToken(jwt); + } + + @Override + protected boolean onAccessDenied(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception { + HttpServletRequest request = (HttpServletRequest) servletRequest; + String token = request.getHeader("Authorization"); + if (StringUtils.isEmpty(token)) { + return true; + } else { + // 判断是否已过期 + Claims claim = jwtUtils.getClaimByToken(token); + if (claim == null || jwtUtils.isTokenExpired(claim.getExpiration())) { + return true; + } + String userId = claim.getSubject(); + if (!redisUtils.hasKey(TOKEN_REFRESH + userId) && redisUtils.hasKey(TOKEN_KEY + userId)) { + //过了需更新token时间,但是还未过期,则进行token刷新 + HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; + HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; + this.refreshToken(httpRequest, httpResponse, userId); + } + } + // 执行自动登录 + return executeLogin(servletRequest, servletResponse); + } + + /** + * 刷新Token,并更新token到前端 + * + * @param request + * @param userId + * @param response + * @return + */ + private void refreshToken(HttpServletRequest request, HttpServletResponse response, String userId) throws IOException { + boolean lock = redisUtils.getLock(TOKEN_LOCK + userId, 20);// 获取锁20s + if (lock) { + String newToken = jwtUtils.generateToken(userId); + response.setHeader("Access-Control-Allow-Credentials", "true"); + response.setHeader("Authorization", newToken); //放到信息头部 + response.setHeader("Access-Control-Expose-Headers", "Refresh-Token,Authorization,Url-Type"); //让前端可用访问 + response.setHeader("Url-Type", request.getHeader("Url-Type")); // 为了前端能区别请求来源 + response.setHeader("Refresh-Token", "true"); //告知前端需要刷新token + } + redisUtils.releaseLock(TOKEN_LOCK + userId); + } + + + @Override + protected boolean onLoginFailure(AuthenticationToken token, AuthenticationException e, ServletRequest request, ServletResponse response) { + HttpServletResponse httpResponse = (HttpServletResponse) response; + HttpServletRequest httpRequest = (HttpServletRequest) request; + try { + //处理登录失败的异常 + Throwable throwable = e.getCause() == null ? e : e.getCause(); + CommonResult result = CommonResult.errorResponse(throwable.getMessage(), ResultStatus.ACCESS_DENIED); + String json = JSONUtil.toJsonStr(result); + httpResponse.setContentType("application/json;charset=utf-8"); + httpResponse.setHeader("Access-Control-Expose-Headers", "Refresh-Token,Authorization,Url-Type"); //让前端可用访问 + httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); + httpResponse.setHeader("Url-Type", httpRequest.getHeader("Url-Type")); // 为了前端能区别请求来源 + httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + httpResponse.getWriter().print(json); + } catch (IOException e1) { + } + return false; + } + + + /** + * 对跨域提供支持 + */ + @Override + protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception { + HttpServletRequest httpServletRequest = WebUtils.toHttp(request); + HttpServletResponse httpServletResponse = WebUtils.toHttp(response); + httpServletResponse.setHeader("Access-control-Allow-Origin", httpServletRequest.getHeader("Origin")); + httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE"); + httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers")); + httpServletResponse.setHeader("Access-Control-Expose-Headers", + "Refresh-Token,Authorization,Url-Type,Content-disposition,Content-Type"); //让前端可用访问 + // 跨域时会首先发送一个OPTIONS请求,这里我们给OPTIONS请求直接返回正常状态 + if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) { + httpServletResponse.setStatus(org.springframework.http.HttpStatus.OK.value()); + return false; + } + return super.preHandle(request, response); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/JwtToken.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/JwtToken.java new file mode 100644 index 0000000..5008f76 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/shiro/JwtToken.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.shiro; + +import org.apache.shiro.authc.AuthenticationToken; + +/** + * @Author: Himit_ZH + * @Date: 2020/7/19 22:58 + * @Description: + */ +public class JwtToken implements AuthenticationToken { + + private String token; + + public JwtToken(String token) { + this.token = token; + } + + @Override + public Object getPrincipal() { + return token; + } + + @Override + public Object getCredentials() { + return token; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/CodeForcesUtils.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/CodeForcesUtils.java new file mode 100644 index 0000000..4475a16 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/CodeForcesUtils.java @@ -0,0 +1,82 @@ +package top.hcode.hoj.utils; + +import cn.hutool.core.io.resource.ResourceUtil; +import lombok.extern.slf4j.Slf4j; + +import javax.script.*; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; +import java.util.List; + +@Slf4j(topic = "hoj") +public class CodeForcesUtils { + private static String RCPC; + + public static String getRCPC() { + return RCPC; + } + + public static void updateRCPC(List list) { + + ScriptEngine se = new ScriptEngineManager().getEngineByName("javascript"); + Bindings bindings = se.createBindings(); + bindings.put("string", 4); + se.setBindings(bindings, ScriptContext.ENGINE_SCOPE); + + String file = ResourceUtil.readUtf8Str("CodeForcesAES.js"); + try { + se.eval(file); + // 是否可调用 + if (se instanceof Invocable) { + Invocable in = (Invocable) se; + RCPC = (String) in.invokeFunction("getRCPC", list.get(0), list.get(1), list.get(2)); + } + } catch (ScriptException e) { + log.error("CodeForcesUtils.updateRCPC throw ScriptException ->", e); + } catch (NoSuchMethodException e) { + log.error("CodeForcesUtils.updateRCPC throw NoSuchMethodException ->", e); + } + } + + public static void downloadPDF(String urlStr, String savePath) { + try { + int byteRead; + URL url = new URL(urlStr); + URLConnection conn = url.openConnection(); + conn.setConnectTimeout(30000); + conn.setReadTimeout(30000); + conn.setRequestProperty("User-Agent", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36"); + conn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"); + conn.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8"); + conn.setRequestProperty("Accept-Encoding", "gzip, deflate, br");//注意编码,gzip可能会乱码 + conn.setRequestProperty("Content-Encoding", "utf8"); + conn.setRequestProperty("Connection", "keep-alive"); + conn.setRequestProperty("Upgrade-Insecure-Requests", "1"); + conn.setRequestProperty("cookie", "RCPC=" + getRCPC()); + conn.setRequestProperty("Cache-Control", "max-age=0"); + conn.setRequestProperty("Content-Type", "application/pdf"); + + InputStream inStream = conn.getInputStream(); + FileOutputStream fs = new FileOutputStream(savePath); + + byte[] buffer = new byte[1024]; + while ((byteRead = inStream.read(buffer)) != -1) { + fs.write(buffer, 0, byteRead); + } + inStream.close(); + fs.close(); + } catch (FileNotFoundException e1) { + log.error("CodeForcesUtils.downloadPDF throw FileNotFoundException ->", e1); + } catch (MalformedURLException e2) { + log.error("CodeForcesUtils.downloadPDF throw MalformedURLException ->", e2); + } catch (IOException e3) { + log.error("CodeForcesUtils.downloadPDF throw IOException ->", e3); + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ConfigUtils.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ConfigUtils.java new file mode 100644 index 0000000..0f4163c --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ConfigUtils.java @@ -0,0 +1,128 @@ +package top.hcode.hoj.utils; + +import cn.hutool.core.text.UnicodeUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.pojo.vo.ConfigVo; + +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/2 23:17 + * @Description: + */ +@Component +@Slf4j(topic = "hoj") +public class ConfigUtils { + + @Autowired + private ConfigVo configVo; + + public String getConfigContent() { + return buildYamlStr(configVo); + } + + public String buildYamlStr(ConfigVo configVo) { + return "hoj:\n" + + " jwt:\n" + + " # 加密秘钥\n" + + " secret: " + configVo.getTokenSecret() + "\n" + + " # token有效时长,1天,单位秒\n" + + " expire: " + configVo.getTokenExpire() + "\n" + + " checkRefreshExpire: " + configVo.getCheckRefreshExpire() + "\n" + + " header: token\n" + + " judge:\n" + + " # 调用判题服务器的token\n" + + " token: " + configVo.getJudgeToken() + "\n" + + " db:\n" + + " host: " + configVo.getMysqlHost() + "\n" + + " port: " + configVo.getMysqlPort() + "\n" + + " public-host: " + configVo.getMysqlPublicHost() + "\n" + + " public-port: " + configVo.getMysqlPublicPort() + "\n" + + " name: " + configVo.getMysqlDBName() + "\n" + + " username: " + configVo.getMysqlUsername() + "\n" + + " password: " + configVo.getMysqlPassword() + "\n" + + " mail:\n" + + " ssl: " + configVo.getEmailSsl() + "\n" + + " username: " + configVo.getEmailUsername() + "\n" + + " password: " + configVo.getEmailPassword() + "\n" + + " host: " + configVo.getEmailHost() + "\n" + + " port: " + configVo.getEmailPort() + "\n" + + " background-img: " + configVo.getEmailBGImg() + "\n" + + " redis:\n" + + " host: " + configVo.getRedisHost() + "\n" + + " port: " + configVo.getRedisPort() + "\n" + + " password: " + configVo.getRedisPassword() + "\n" + + " web-config:\n" + + " base-url: \"" + UnicodeUtil.toUnicode(configVo.getBaseUrl(), false) + "\"\n" + + " name: \"" + UnicodeUtil.toUnicode(configVo.getName(), false) + "\"\n" + + " short-name: \"" + UnicodeUtil.toUnicode(configVo.getShortName(), false) + "\"\n" + + " description: \"" + UnicodeUtil.toUnicode(configVo.getDescription(), false) + "\"\n" + + " register: " + configVo.getRegister() + "\n" + + " footer:\n" + + " record:\n" + + " name: \"" + UnicodeUtil.toUnicode(configVo.getRecordName(), false) + "\"\n" + + " url: \"" + UnicodeUtil.toUnicode(configVo.getRecordUrl(), false) + "\"\n" + + " project:\n" + + " name: \"" + UnicodeUtil.toUnicode(configVo.getProjectName(), false) + "\"\n" + + " url: \"" + UnicodeUtil.toUnicode(configVo.getProjectUrl(), false) + "\"\n" + + " hdu:\n" + + " account:\n" + + " username: " + listToStr(configVo.getHduUsernameList()) + "\n" + + " password: " + listToStr(configVo.getHduPasswordList()) + "\n" + + " cf:\n" + + " account:\n" + + " username: " + listToStr(configVo.getCfUsernameList()) + "\n" + + " password: " + listToStr(configVo.getCfPasswordList()) + "\n" + + " poj:\n" + + " account:\n" + + " username: " + listToStr(configVo.getPojUsernameList()) + "\n" + + " password: " + listToStr(configVo.getPojPasswordList()) + "\n" + + " atcoder:\n" + + " account:\n" + + " username: " + listToStr(configVo.getAtcoderUsernameList()) + "\n" + + " password: " + listToStr(configVo.getAtcoderPasswordList()) + "\n" + + " spoj:\n" + + " account:\n" + + " username: " + listToStr(configVo.getSpojUsernameList()) + "\n" + + " password: " + listToStr(configVo.getSpojPasswordList()) + "\n" + + " switch:\n" + + " judge:\n" + + " public: " + configVo.getOpenPublicJudge() + "\n" + + " group: " + configVo.getOpenGroupJudge() + "\n" + + " contest: " + configVo.getOpenContestJudge() + "\n" + + " hide-non-contest-code: " + configVo.getHideNonContestSubmissionCode() + "\n" + + " submit-interval: " + configVo.getDefaultSubmitInterval() + "\n" + + " discussion:\n" + + " public: " + configVo.getOpenPublicDiscussion() + "\n" + + " group: " + configVo.getOpenGroupDiscussion() + "\n" + + " ac-initial-value: " + configVo.getDefaultCreateDiscussionACInitValue() + "\n" + + " create-daily: " + configVo.getDefaultCreateDiscussionDailyLimit() + "\n" + + " comment:\n" + + " contest: " + configVo.getOpenContestComment() + "\n" + + " ac-initial-value: " + configVo.getDefaultCreateCommentACInitValue() + "\n" + + " group:\n" + + " ac-initial-value: " + configVo.getDefaultCreateGroupACInitValue() + "\n" + + " create-daily: " + configVo.getDefaultCreateGroupDailyLimit() + "\n" + + " create-total: " + configVo.getDefaultCreateGroupLimit(); + } + + private String listToStr(List list) { + if (CollectionUtils.isEmpty(list)) { + return ""; + } + StringBuilder listStr = new StringBuilder(); + for (int i = 0; i < list.size(); i++) { + if (i != list.size() - 1) { + listStr.append(list.get(i)).append(","); + } else { + listStr.append(list.get(i)); + } + } + return listStr.toString(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/Constants.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/Constants.java new file mode 100644 index 0000000..ab1cc33 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/Constants.java @@ -0,0 +1,333 @@ +package top.hcode.hoj.utils; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/1 13:00 + * @Description: 常量枚举类 + */ +public class Constants { + + /** + * @Description 提交评测结果的状态码 + * @Since 2021/1/1 + */ + public enum Judge { + STATUS_NOT_SUBMITTED(-10, "Not Submitted", null), + STATUS_SUBMITTED_UNKNOWN_RESULT(-5, "Submitted Unknown Result", null), + STATUS_CANCELLED(-4, "Cancelled","ca"), + STATUS_PRESENTATION_ERROR(-3, "Presentation Error", "pe"), + STATUS_COMPILE_ERROR(-2, "Compile Error", "ce"), + STATUS_WRONG_ANSWER(-1, "Wrong Answer", "wa"), + STATUS_ACCEPTED(0, "Accepted", "ac"), + STATUS_TIME_LIMIT_EXCEEDED(1, "Time Limit Exceeded", "tle"), + STATUS_MEMORY_LIMIT_EXCEEDED(2, "Memory Limit Exceeded", "mle"), + STATUS_RUNTIME_ERROR(3, "Runtime Error", "re"), + STATUS_SYSTEM_ERROR(4, "System Error", "se"), + STATUS_PENDING(5, "Pending", null), + STATUS_COMPILING(6, "Compiling", null), + STATUS_JUDGING(7, "Judging", null), + STATUS_PARTIAL_ACCEPTED(8, "Partial Accepted", "pa"), + STATUS_SUBMITTING(9, "Submitting", null), + STATUS_SUBMITTED_FAILED(10, "Submitted Failed", null), + STATUS_NULL(15, "No Status", null), + JUDGE_SERVER_SUBMIT_PREFIX(-1002, "Judge SubmitId-ServerId:", null); + + private Judge(Integer status, String name, String columnName) { + this.status = status; + this.name = name; + this.columnName = columnName; + } + + private final Integer status; + private final String name; + private final String columnName; + + public Integer getStatus() { + return status; + } + + public String getName() { + return name; + } + + public String getColumnName() { + return columnName; + } + } + + /** + * 等待判题的redis队列 + * @Since 2021/12/22 + */ + + public enum Queue{ + CONTEST_JUDGE_WAITING("Contest_Waiting_Handle_Queue"), + GENERAL_JUDGE_WAITING("General_Waiting_Handle_Queue"), + TEST_JUDGE_WAITING("Test_Judge_Waiting_Handle_Queue"), + CONTEST_REMOTE_JUDGE_WAITING_HANDLE("Contest_Remote_Waiting_Handle_Queue"), + GENERAL_REMOTE_JUDGE_WAITING_HANDLE("General_Remote_Waiting_Handle_Queue"); + + private Queue(String name) { + this.name = name; + } + private final String name; + public String getName() { + return name; + } + } + + public enum RemoteOJ { + HDU("HDU"), + CODEFORCES("CF"), + GYM("GYM"), + POJ("POJ"), + SPOJ("SPOJ"), + ATCODER("AC"); + + private final String name; + + private RemoteOJ(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public static Boolean isRemoteOJ(String name) { + for (RemoteOJ remoteOJ : RemoteOJ.values()) { + if (remoteOJ.getName().equals(name)) { + return true; + } + } + return false; + + } + public static RemoteOJ getRemoteOJ(String name){ + for (RemoteOJ remoteOJ : RemoteOJ.values()) { + if (remoteOJ.getName().equals(name)) { + return remoteOJ; + } + } + return null; + } + } + + + /** + * @Description 比赛相关的常量 + * @Since 2021/1/7 + */ + public enum Contest { + TYPE_ACM(0, "ACM"), + TYPE_OI(1, "OI"), + + STATUS_SCHEDULED(-1, "Scheduled"), + STATUS_RUNNING(0, "Running"), + STATUS_ENDED(1, "Ended"), + + AUTH_PUBLIC(0, "Public"), + AUTH_PRIVATE(1, "Private"), + AUTH_PROTECT(2, "Protect"), + + RECORD_NOT_AC_PENALTY(-1, "未AC通过算罚时"), + RECORD_NOT_AC_NOT_PENALTY(0, "未AC通过不罚时"), + RECORD_AC(1, "AC通过"), + + OI_CONTEST_RANK_CACHE(null,"oi_contest_rank_cache"), + + CONTEST_RANK_CAL_RESULT_CACHE(null,"contest_rank_cal_result_cache"), + + OI_RANK_RECENT_SCORE(null,"Recent"), + OI_RANK_HIGHEST_SCORE(null,"Highest"); + + private final Integer code; + private final String name; + + Contest(Integer code, String name) { + this.code = code; + this.name = name; + } + + public Integer getCode() { + return code; + } + + public String getName() { + return name; + } + } + + /** + * @Description 账户相关常量 + * @Since 2021/1/8 + */ + + public enum Account { + CODE_CHANGE_PASSWORD_FAIL("change-password-fail:"), + CODE_CHANGE_PASSWORD_LOCK("change-password-lock:"), + CODE_ACCOUNT_LOCK("account-lock:"), + CODE_CHANGE_EMAIL_FAIL("change-email-fail:"), + CODE_CHANGE_EMAIL_LOCK("change-email-lock:"), + + TRY_LOGIN_NUM("try-login-num:"), + + ACM_RANK_CACHE("acm_rank_cache"), + OI_RANK_CACHE("oi_rank_cache"), + + GROUP_RANK_CACHE("group_rank_cache"), + + SUPER_ADMIN_UID_LIST_CACHE("super_admin_uid_list_case"), + + SUBMIT_NON_CONTEST_LOCK("submit_non_contest_lock:"), + TEST_JUDGE_LOCK("test_judge_lock:"), + SUBMIT_CONTEST_LOCK("submit_contest_lock:"), + DISCUSSION_ADD_NUM_LOCK("discussion_add_num_lock:"), + GROUP_ADD_NUM_LOCK("group_add_num_lock"), + CONTEST_ADD_PRINT_LOCK("contest_add_print_lock:"), + + REMOTE_JUDGE_CF_ACCOUNT_NUM("remote_judge_cf_account:"); + + private final String code; + + Account(String code) { + this.code = code; + } + + public String getCode() { + return code; + } + } + + + /** + * @Description 文件操作的一些常量 + * @Since 2021/1/10 + */ + public enum File { + + + USER_AVATAR_FOLDER("/hoj/file/avatar"), + + GROUP_AVATAR_FOLDER("/hoj/file/avatar/group"), + + HOME_CAROUSEL_FOLDER("/hoj/file/carousel"), + + MARKDOWN_FILE_FOLDER("/hoj/file/md"), + + PROBLEM_FILE_FOLDER("/hoj/file/problem"), + + CONTEST_TEXT_PRINT_FOLDER("/hoj/file/contest_print"), + + IMG_API("/api/public/img/"), + + FILE_API("/api/public/file/"), + + TESTCASE_TMP_FOLDER("/hoj/file/zip"), + + TESTCASE_BASE_FOLDER("/hoj/testcase"), + + FILE_DOWNLOAD_TMP_FOLDER("/hoj/file/zip/download"), + + CONTEST_AC_SUBMISSION_TMP_FOLDER("/hoj/file/zip/contest_ac"); + + private final String path; + + File(String path) { + this.path = path; + } + + public String getPath() { + return path; + } + } + + + /** + * @Description 邮件任务的一些常量 + * @Since 2021/1/14 + */ + + public enum Email { + + OJ_URL("OJ_UR"), + OJ_NAME("OJ_NAME"), + OJ_SHORT_NAME("OJ_SHORT_NAME"), + EMAIL_FROM("EMAIL_FROM"), + EMAIL_BACKGROUND_IMG("EMAIL_BACKGROUND_IMG"), + REGISTER_KEY_PREFIX("register-user:"), + RESET_PASSWORD_KEY_PREFIX("reset-password:"), + RESET_EMAIL_LOCK("reset-email-lock:"), + REGISTER_EMAIL_LOCK("register-email-lock:"); + + private final String value; + + Email(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + } + + public enum Schedule { + RECENT_OTHER_CONTEST("recent-other-contest"); + + private final String code; + + Schedule(String code) { + this.code = code; + } + + public String getCode() { + return code; + + } + } + + /** + * @Description 训练题单的一些常量 + * @Since 2021/11/20 + */ + public enum Training { + + AUTH_PRIVATE("Private"), + AUTH_PUBLIC("Public"); + + private final String value; + + Training(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + } + + public enum JudgeMode { + DEFAULT("default"), + SPJ("spj"), + INTERACTIVE("interactive"); + + private final String mode; + + JudgeMode(String mode) { + this.mode = mode; + } + + public String getMode() { + return mode; + } + + public static JudgeMode getJudgeMode(String mode){ + for (JudgeMode judgeMode : JudgeMode.values()) { + if (judgeMode.getMode().equals(mode)) { + return judgeMode; + } + } + return null; + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/IpUtils.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/IpUtils.java new file mode 100644 index 0000000..aaacf15 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/IpUtils.java @@ -0,0 +1,65 @@ +package top.hcode.hoj.utils; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/30 11:12 + * @Description: + */ +@Slf4j(topic = "hoj") +public class IpUtils { + + public static String getUserIpAddr(HttpServletRequest request) { + String ipAddress = null; + try { + ipAddress = request.getHeader("x-forwarded-for"); + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("WL-Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getRemoteAddr(); + if (ipAddress.equals("127.0.0.1")) { + // 根据网卡取本机配置的IP + try { + ipAddress = InetAddress.getLocalHost().getHostAddress(); + } catch (UnknownHostException e) { + log.error("用户ip获取异常------->{}", e.getMessage()); + } + } + } + // 通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 + if (ipAddress != null) { + if (ipAddress.contains(",")) { + return ipAddress.split(",")[0]; + } else { + return ipAddress; + } + } else { + return ""; + } + } catch (Exception e) { + log.error("用户ip获取异常------->{}", e.getMessage()); + return ""; + } + } + + public static String getServiceIp() { + InetAddress address = null; + try { + address = InetAddress.getLocalHost(); + return address.getHostAddress(); //返回IP地址 + } catch (UnknownHostException e) { + log.error("本地ip获取异常---------->{}", e.getMessage()); + } + return null; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/JsoupUtils.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/JsoupUtils.java new file mode 100644 index 0000000..1675419 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/JsoupUtils.java @@ -0,0 +1,84 @@ +package top.hcode.hoj.utils; + +import cn.hutool.json.JSONObject; +import org.jsoup.Connection; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Entities; + +import java.io.IOException; +import java.util.Map; + +public class JsoupUtils { + + /** + * 获取连接 + * + * @param url api网址 + * @param params 请求参数 + * @param headers 用户头 + * @return 返回一个object + * @throws IOException + */ + public static Connection getConnectionFromUrl(String url, Map params, Map headers) throws IOException { + // 给url添加参数 + if (params != null) { + StringBuilder sb = new StringBuilder(); + sb.append(url); + if (url.indexOf("?") <= 0) { + sb.append("?"); + } + for (Map.Entry entry : params.entrySet()) { + sb.append(entry.getKey()).append("=").append(entry.getValue()); + } + url = sb.toString(); + } + Connection connection = Jsoup.connect(url); + // 设置用户代理 + connection.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"); + // 设置超时时间30秒 + connection.timeout(30000); + // 设置请求头 + if (headers != null) { + connection.headers(headers); + } + return connection; + } + + /** + * 通过jsoup连接返回json格式 + * + * @param connection Jsoup的connection连接 + * @return + * @throws IOException + */ + public static JSONObject getJsonFromConnection(Connection connection) throws IOException { + // 设置忽略请求类型 + connection.ignoreContentType(true); + String body = connection.execute().body(); + return new JSONObject(body); + } + + public static Connection.Response postResponse(Connection connection, Map postData) throws IOException { + connection.data(postData); + return connection.method(Connection.Method.POST).execute(); + } + + public static Connection.Response getResponse(Connection connection, Map getData) throws IOException { + //添加参数 + if (getData != null) { + connection.data(getData); + } + return connection.method(Connection.Method.GET).execute(); + } + public static Document getDocument(Connection connection, Map getData) throws IOException { + //添加参数 + if (getData != null) { + connection.data(getData); + } + Document document = connection.get(); + document.outputSettings().escapeMode(Entities.EscapeMode.xhtml); + document.outputSettings().prettyPrint(false); + return document; + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/JwtUtils.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/JwtUtils.java new file mode 100644 index 0000000..ab20b75 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/JwtUtils.java @@ -0,0 +1,74 @@ +package top.hcode.hoj.utils; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.util.Date; + + +@Slf4j +@Data +@Component +@ConfigurationProperties(prefix = "hoj.jwt") +public class JwtUtils { + + private String secret; + private long expire; + private String header; + private long checkRefreshExpire; + private final static String TOKEN_KEY = "token-key:"; + private final static String TOKEN_REFRESH = "token-refresh:"; + + @Autowired + private RedisUtils redisUtils; + + /** + * 生成jwt token + */ + public String generateToken(String userId) { + Date nowDate = new Date(); + //过期时间 + Date expireDate = new Date(nowDate.getTime() + expire * 1000); + + String token = Jwts.builder() + .setHeaderParam("type", "JWT") + .setSubject(userId) + .setIssuedAt(nowDate) + .setExpiration(expireDate) + .signWith(SignatureAlgorithm.HS512, secret) + .compact(); + redisUtils.set(TOKEN_REFRESH + userId, token, checkRefreshExpire); + redisUtils.set(TOKEN_KEY + userId, token, expire); + return token; + } + + public Claims getClaimByToken(String token) { + try { + return Jwts.parser() + .setSigningKey(secret) + .parseClaimsJws(token) + .getBody(); + } catch (Exception e) { + log.debug("validate is token error ", e); + return null; + } + } + + /** + * token是否过期 + * + * @return true:过期 + */ + public boolean isTokenExpired(Date expiration) { + return expiration.before(new Date()); + } + + +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/RedisUtils.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/RedisUtils.java new file mode 100644 index 0000000..711acef --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/RedisUtils.java @@ -0,0 +1,664 @@ +package top.hcode.hoj.utils; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/23 23:48 + * @Description: + */ + +@Component +@Slf4j(topic = "hoj") +public final class RedisUtils { + + @Autowired + private RedisTemplate redisTemplate; + // =============================common============================ + + public boolean getLock(String lockName, int expireTime) { + boolean result = false; + try { + boolean isExist = hasKey(lockName); + if (!isExist) { + set(lockName, 0); + expire(lockName, expireTime <= 0 ? 3600 : expireTime); + } + long reVal = incr(lockName, 1); + if (1 == reVal) { + //获取到锁 + result = true; + } + } catch (Exception e) { + log.error("获取锁过程出错-->", e.getMessage()); + } + return result; + } + + public boolean releaseLock(String lockName) { + + return expire(lockName, 10); + } + + /** + * 指定缓存失效时间 + * + * @param key 键 + * @param time 时间(秒) + */ + public boolean expire(String key, long time) { + try { + if (time > 0) { + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据key 获取过期时间 + * + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 + */ + public long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + /** + * 判断key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + public boolean hasKey(String key) { + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 删除缓存 + * + * @param key 可以传一个值 或多个 + */ + @SuppressWarnings("unchecked") + public void del(String... key) { + if (key != null && key.length > 0) { + if (key.length == 1) { + redisTemplate.delete(key[0]); + } else { + redisTemplate.delete(CollectionUtils.arrayToList(key)); + } + } + } + + + // ============================String============================= + + /** + * 普通缓存获取 + * + * @param key 键 + * @return 值 + */ + public Object get(String key) { + return key == null ? null : redisTemplate.opsForValue().get(key); + } + + /** + * 普通缓存放入 + * + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + + public boolean set(String key, Object value) { + try { + redisTemplate.opsForValue().set(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 普通缓存放入并设置时间 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + + public boolean set(String key, Object value, long time) { + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 递增 + * + * @param key 键 + * @param delta 要增加几(大于0) + */ + public long incr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递增因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, delta); + } + + + /** + * 递减 + * + * @param key 键 + * @param delta 要减少几(小于0) + */ + public long decr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递减因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, -delta); + } + + + // ================================Map================================= + + /** + * HashGet + * + * @param key 键 不能为null + * @param item 项 不能为null + */ + public Object hget(String key, String item) { + return redisTemplate.opsForHash().get(key, item); + } + + /** + * 获取hashKey对应的所有键值 + * + * @param key 键 + * @return 对应的多个键值 + */ + public Map hmget(String key) { + return redisTemplate.opsForHash().entries(key); + } + + /** + * HashSet + * + * @param key 键 + * @param map 对应多个键值 + */ + public boolean hmset(String key, Map map) { + try { + redisTemplate.opsForHash().putAll(key, map); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * HashSet 并设置时间 + * + * @param key 键 + * @param map 对应多个键值 + * @param time 时间(秒) + * @return true成功 false失败 + */ + public boolean hmset(String key, Map map, long time) { + try { + redisTemplate.opsForHash().putAll(key, map); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value) { + try { + redisTemplate.opsForHash().put(key, item, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value, long time) { + try { + redisTemplate.opsForHash().put(key, item, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 删除hash表中的值 + * + * @param key 键 不能为null + * @param item 项 可以使多个 不能为null + */ + public void hdel(String key, Object... item) { + redisTemplate.opsForHash().delete(key, item); + } + + + /** + * 判断hash表中是否有该项的值 + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return true 存在 false不存在 + */ + public boolean hHasKey(String key, String item) { + return redisTemplate.opsForHash().hasKey(key, item); + } + + + /** + * hash递增 如果不存在,就会创建一个 并把新增后的值返回 + * + * @param key 键 + * @param item 项 + * @param by 要增加几(大于0) + */ + public double hincr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, by); + } + + + /** + * hash递减 + * + * @param key 键 + * @param item 项 + * @param by 要减少记(小于0) + */ + public double hdecr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, -by); + } + + + // ============================set============================= + + /** + * 根据key获取Set中的所有值 + * + * @param key 键 + */ + public Set sGet(String key) { + try { + return redisTemplate.opsForSet().members(key); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + /** + * 根据value从一个set中查询,是否存在 + * + * @param key 键 + * @param value 值 + * @return true 存在 false不存在 + */ + public boolean sHasKey(String key, Object value) { + try { + return redisTemplate.opsForSet().isMember(key, value); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + + /** + * 将数据放入set缓存 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSet(String key, Object... values) { + try { + return redisTemplate.opsForSet().add(key, values); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + + /** + * 将set数据放入缓存 + * + * @param key 键 + * @param time 时间(秒) + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSetAndTime(String key, long time, Object... values) { + try { + Long count = redisTemplate.opsForSet().add(key, values); + if (time > 0) + expire(key, time); + return count; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + + /** + * 获取set缓存的长度 + * + * @param key 键 + */ + public long sGetSetSize(String key) { + try { + return redisTemplate.opsForSet().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + + /** + * 移除值为value的 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 移除的个数 + */ + + public long setRemove(String key, Object... values) { + try { + Long count = redisTemplate.opsForSet().remove(key, values); + return count; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + // ===============================list================================= + + /** + * 获取list缓存的内容 + * + * @param key 键 + * @param start 开始 + * @param end 结束 0 到 -1代表所有值 + */ + public List lGet(String key, long start, long end) { + try { + return redisTemplate.opsForList().range(key, start, end); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + /** + * 获取list缓存的长度 + * + * @param key 键 + */ + public long lGetListSize(String key) { + try { + return redisTemplate.opsForList().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + + /** + * 通过索引 获取list中的值 + * + * @param key 键 + * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 + */ + public Object lGetIndex(String key, long index) { + try { + return redisTemplate.opsForList().index(key, index); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + /** + * 将list右边放入缓存 + * + * @param key 键 + * @param value 值 + */ + public boolean lrPush(String key, Object value) { + try { + redisTemplate.opsForList().rightPush(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list左边放入缓存 + * + * @param key 键 + * @param value 值 + */ + public boolean llPush(String key, Object value) { + try { + redisTemplate.opsForList().leftPush(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list右边放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + */ + public boolean lrPush(String key, Object value, long time) { + try { + redisTemplate.opsForList().rightPush(key, value); + if (time > 0) + expire(key, time); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + } + + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lrPush(String key, List value) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + } + + + public boolean llPushList(String key, List value) { + try { + redisTemplate.opsForList().leftPushAll(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + } + + + public Object lrPop(String key) { + try { + return redisTemplate.opsForList().rightPop(key, 10, TimeUnit.SECONDS); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean llPush(String key, List value, long time) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + if (time > 0) + expire(key, time); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据索引修改list中的某条数据 + * + * @param key 键 + * @param index 索引 + * @param value 值 + * @return + */ + + public boolean lUpdateIndex(String key, long index, Object value) { + try { + redisTemplate.opsForList().set(key, index, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 移除N个值为value + * + * @param key 键 + * @param count 移除多少个 + * @param value 值 + * @return 移除的个数 + */ + + public long lRemove(String key, long count, Object value) { + try { + Long remove = redisTemplate.opsForList().remove(key, count, value); + return remove; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + + } + + + /** + * 给特定频道发布消息 + * + * @param channel 管道主题 + * @param message 消息 + * @return + */ + public void sendMessage(String channel, Object message) throws Exception { + redisTemplate.convertAndSend(channel, message); + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ServiceContextUtils.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ServiceContextUtils.java new file mode 100644 index 0000000..32e524f --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ServiceContextUtils.java @@ -0,0 +1,29 @@ +package top.hcode.hoj.utils; + +import org.springframework.core.annotation.AnnotationUtils; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; + +/** + * @Author Himit_ZH + * @Date 2022/5/9 + */ +public class ServiceContextUtils { + /** + * 先从method上获取注解,获取不到再从class上获取 + * + * @param method + * @param clazz + * @param annotationClass + * @param + * @return 注解对象 + */ + public static T getAnnotation(Method method, Class clazz, Class annotationClass) { + T annotation = AnnotationUtils.getAnnotation(method, annotationClass); + if (annotation == null) { + annotation = AnnotationUtils.findAnnotation(clazz, annotationClass); + } + return annotation; + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ShiroUtils.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ShiroUtils.java new file mode 100644 index 0000000..ecdc806 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/utils/ShiroUtils.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.utils; + +import org.apache.shiro.SecurityUtils; +import top.hcode.hoj.shiro.AccountProfile; + + +/** + * @Author: Himit_ZH + * @Date: 2020/7/20 14:13 + * @Description: + */ +public class ShiroUtils { + + private ShiroUtils() { + } + + public static AccountProfile getProfile(){ + return (AccountProfile) SecurityUtils.getSubject().getPrincipal(); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/AccessValidator.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/AccessValidator.java new file mode 100644 index 0000000..f910692 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/AccessValidator.java @@ -0,0 +1,57 @@ +package top.hcode.hoj.validator; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.annotation.HOJAccessEnum; +import top.hcode.hoj.exception.AccessException; +import top.hcode.hoj.pojo.vo.ConfigVo; + +/** + * @Author Himit_ZH + * @Date 2022/5/9 + */ +@Component +public class AccessValidator { + + @Autowired + private ConfigVo configVo; + + public void validateAccess(HOJAccessEnum hojAccessEnum) throws AccessException { + switch (hojAccessEnum) { + case PUBLIC_DISCUSSION: + if (!configVo.getOpenPublicDiscussion()) { + throw new AccessException("网站当前未开启公开讨论区的功能,不可访问!"); + } + break; + case GROUP_DISCUSSION: + if (!configVo.getOpenGroupDiscussion()) { + throw new AccessException("网站当前未开启团队讨论区的功能,不可访问!"); + } + break; + case CONTEST_COMMENT: + if (!configVo.getOpenContestComment()) { + throw new AccessException("网站当前未开启比赛评论区的功能,不可访问!"); + } + break; + case PUBLIC_JUDGE: + if (!configVo.getOpenPublicJudge()) { + throw new AccessException("网站当前未开启题目评测的功能,禁止提交或调试!"); + } + break; + case GROUP_JUDGE: + if (!configVo.getOpenGroupJudge()) { + throw new AccessException("网站当前未开启团队内题目评测的功能,禁止提交或调试!"); + } + break; + case CONTEST_JUDGE: + if (!configVo.getOpenContestJudge()) { + throw new AccessException("网站当前未开启比赛题目评测的功能,禁止提交或调试!"); + } + break; + case HIDE_NON_CONTEST_SUBMISSION_CODE: + if (configVo.getHideNonContestSubmissionCode()) { + throw new AccessException("网站当前开启了隐藏非比赛提交代码不显示的功能!"); + } + } + } +} diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/ContestValidator.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/ContestValidator.java new file mode 100644 index 0000000..9cd56d8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/ContestValidator.java @@ -0,0 +1,152 @@ +package top.hcode.hoj.validator; + +import cn.hutool.core.util.ReUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.pojo.entity.contest.ContestRegister; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.dao.contest.ContestRegisterEntityService; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 20:06 + * @Description: + */ +@Component +public class ContestValidator { + + @Resource + private ContestRegisterEntityService contestRegisterEntityService; + + @Autowired + private GroupValidator groupValidator; + + public boolean isSealRank(String uid, Contest contest, Boolean forceRefresh, Boolean isRoot) { + // 如果是管理员同时选择强制刷新榜单,则封榜无效 + Long gid = contest.getGid(); + boolean isContestAdmin = isRoot || contest.getUid().equals(uid); + if (forceRefresh && (isContestAdmin || (contest.getIsGroup() && groupValidator.isGroupRoot(uid, gid)))) { + return false; + } else if (contest.getSealRank() && contest.getSealRankTime() != null) { // 该比赛开启封榜模式 + Date now = new Date(); + // 如果现在时间处于封榜开始到比赛结束之间 + if (now.after(contest.getSealRankTime()) && now.before(contest.getEndTime())) { + return true; + } + // 或者没有开启赛后自动解除封榜,不可刷新榜单 + return !contest.getAutoRealRank() && now.after(contest.getEndTime()); + } + return false; + } + + + /** + * @param contest + * @param userRolesVo + * @param isRoot + * @MethodName validateContestAuth + * @Description 需要对该比赛做判断,是否处于开始或结束状态才可以获取,同时若是私有赛需要判断是否已注册(比赛管理员包括超级管理员可以直接获取) + * @Since 2021/1/17 + */ + public void validateContestAuth(Contest contest, UserRolesVo userRolesVo, Boolean isRoot) throws StatusFailException, StatusForbiddenException { + + if (contest == null || !contest.getVisible()) { + throw new StatusFailException("对不起,该比赛不存在!"); + } + + boolean isContestAdmin = isRoot || contest.getUid().equals(userRolesVo.getUid()); + Long gid = contest.getGid(); + // 若是比赛管理者 + if (isContestAdmin || (contest.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), gid))) { + return; + } + + // 判断一下比赛的状态,还未开始不能查看题目。 + if (contest.getStatus().intValue() != Constants.Contest.STATUS_RUNNING.getCode() && + contest.getStatus().intValue() != Constants.Contest.STATUS_ENDED.getCode()) { + throw new StatusForbiddenException("比赛还未开始,您无权访问该比赛!"); + } else { + + if (contest.getIsGroup() && !groupValidator.isGroupMember(userRolesVo.getUid(), gid)) { + throw new StatusForbiddenException("对不起,您并非团队内的成员无法参加该团队内的比赛!"); + } + + // 如果是处于比赛正在进行阶段,需要判断该场比赛是否为私有赛,私有赛需要判断该用户是否已注册 + if (contest.getAuth().intValue() == Constants.Contest.AUTH_PRIVATE.getCode()) { + QueryWrapper registerQueryWrapper = new QueryWrapper<>(); + registerQueryWrapper.eq("cid", contest.getId()).eq("uid", userRolesVo.getUid()); + ContestRegister register = contestRegisterEntityService.getOne(registerQueryWrapper); + if (register == null) { // 如果数据为空,表示未注册私有赛,不可访问 + throw new StatusForbiddenException("对不起,请先到比赛首页输入比赛密码进行注册!"); + } + + if (contest.getOpenAccountLimit() + && !validateAccountRule(contest.getAccountLimitRule(), userRolesVo.getUsername())) { + throw new StatusForbiddenException("对不起!本次比赛只允许特定账号规则的用户参赛!"); + } + } + } + + } + + + public void validateJudgeAuth(Contest contest, String uid) throws StatusForbiddenException { + + if (contest.getAuth().intValue() == Constants.Contest.AUTH_PRIVATE.getCode() || + contest.getAuth().intValue() == Constants.Contest.AUTH_PROTECT.getCode()) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("cid", contest.getId()).eq("uid", uid); + ContestRegister register = contestRegisterEntityService.getOne(queryWrapper, false); + // 如果还没注册 + if (register == null) { + throw new StatusForbiddenException("对不起,请你先注册该比赛,提交代码失败!"); + } + } + } + + + public boolean validateAccountRule(String accountRule, String username) { + + String prefix = ReUtil.get("([\\s\\S]*?)", + accountRule, 1); + String suffix = ReUtil.get("([\\s\\S]*?)", + accountRule, 1); + String start = ReUtil.get("([\\s\\S]*?)", + accountRule, 1); + String end = ReUtil.get("([\\s\\S]*?)", + accountRule, 1); + String extra = ReUtil.get("([\\s\\S]*?)", + accountRule, 1); + + int startNum = Integer.parseInt(start); + int endNum = Integer.parseInt(end); + + for (int i = startNum; i <= endNum; i++) { + if (username.equals(prefix + i + suffix)) { + return true; + } + } + // 额外账号列表 + if (!StringUtils.isEmpty(extra)) { + String[] accountList = extra.trim().split(" "); + for (String account : accountList) { + if (username.equals(account)) { + return true; + } + } + } + + return false; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/GroupValidator.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/GroupValidator.java new file mode 100644 index 0000000..207944a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/GroupValidator.java @@ -0,0 +1,60 @@ +package top.hcode.hoj.validator; + +import top.hcode.hoj.dao.group.GroupEntityService; +import top.hcode.hoj.dao.group.GroupMemberEntityService; +import top.hcode.hoj.pojo.entity.group.Group; +import top.hcode.hoj.pojo.entity.group.GroupMember; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Component +public class GroupValidator { + + @Autowired + private GroupMemberEntityService groupMemberEntityService; + + @Autowired + private GroupEntityService groupEntityService; + + public boolean isGroupMember(String uid, Long gid) { + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid).eq("uid", uid).in("auth", 3, 4, 5); + + GroupMember groupMember = groupMemberEntityService.getOne(groupMemberQueryWrapper,false); + + return groupMember != null || isGroupOwner(uid, gid); + } + + public boolean isGroupAdmin(String uid, Long gid) { + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid).eq("uid", uid).in("auth", 4, 5); + + GroupMember groupMember = groupMemberEntityService.getOne(groupMemberQueryWrapper,false); + + return groupMember != null || isGroupOwner(uid, gid); + } + + public boolean isGroupRoot(String uid, Long gid) { + + QueryWrapper groupMemberQueryWrapper = new QueryWrapper<>(); + groupMemberQueryWrapper.eq("gid", gid).eq("uid", uid).eq("auth", 5); + + GroupMember groupMember = groupMemberEntityService.getOne(groupMemberQueryWrapper,false); + + return groupMember != null; + } + + public boolean isGroupOwner(String uid, Long gid) { + + Group group = groupEntityService.getById(gid); + + return group != null && uid.equals(group.getUid()); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/JudgeValidator.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/JudgeValidator.java new file mode 100644 index 0000000..d9e963a --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/JudgeValidator.java @@ -0,0 +1,146 @@ +package top.hcode.hoj.validator; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.annotation.HOJAccessEnum; +import top.hcode.hoj.common.exception.StatusFailException; +import top.hcode.hoj.exception.AccessException; +import top.hcode.hoj.pojo.dto.TestJudgeDto; +import top.hcode.hoj.pojo.dto.SubmitJudgeDto; + +import javax.annotation.PostConstruct; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/11 11:20 + * @Description: + */ +@Component +public class JudgeValidator { + + @Autowired + private AccessValidator accessValidator; + + private final static List HOJ_LANGUAGE_LIST = Arrays.asList("C++", "C++ With O2", + "C", "C With O2", "Python3", "Python2", "Java", "Golang", "C#", "PHP", "PyPy2", "PyPy3", + "JavaScript Node", "JavaScript V8"); + + private static HashMap MODE_MAP_LANGUAGE; + + @PostConstruct + public void init() { + MODE_MAP_LANGUAGE = new HashMap<>(); + MODE_MAP_LANGUAGE.put("text/x-c++src", "C++ With O2"); + MODE_MAP_LANGUAGE.put("text/x-csrc", "C With O2"); + MODE_MAP_LANGUAGE.put("text/x-java", "Java"); + MODE_MAP_LANGUAGE.put("text/x-go", "Golang"); + MODE_MAP_LANGUAGE.put("text/x-csharp", "C#"); + MODE_MAP_LANGUAGE.put("text/x-php", "PHP"); + } + + public void validateSubmissionInfo(SubmitJudgeDto submitJudgeDto) throws StatusFailException, AccessException { + + if (submitJudgeDto.getGid() != null) { // 团队内的提交 + accessValidator.validateAccess(HOJAccessEnum.GROUP_JUDGE); + } else if (submitJudgeDto.getCid() != null && submitJudgeDto.getCid() != 0) { + accessValidator.validateAccess(HOJAccessEnum.CONTEST_JUDGE); + } else { + accessValidator.validateAccess(HOJAccessEnum.PUBLIC_JUDGE); + } + + if (!submitJudgeDto.getIsRemote() && !HOJ_LANGUAGE_LIST.contains(submitJudgeDto.getLanguage())) { + throw new StatusFailException("提交的代码的语言错误!请使用" + HOJ_LANGUAGE_LIST + "中之一的语言!"); + } + + if (submitJudgeDto.getCode().length() < 50 + && !submitJudgeDto.getLanguage().contains("Py") + && !submitJudgeDto.getLanguage().contains("PHP") + && !submitJudgeDto.getLanguage().contains("JavaScript")) { + throw new StatusFailException("提交的代码是无效的,代码字符长度请不要低于50!"); + } + + if (submitJudgeDto.getCode().length() > 65535) { + throw new StatusFailException("提交的代码是无效的,代码字符长度请不要超过65535!"); + } + } + + public void validateTestJudgeInfo(TestJudgeDto testJudgeDto) throws StatusFailException, AccessException { + String type = testJudgeDto.getType(); + switch (type) { + case "public": + accessValidator.validateAccess(HOJAccessEnum.PUBLIC_JUDGE); + break; + case "contest": + accessValidator.validateAccess(HOJAccessEnum.CONTEST_JUDGE); + break; + case "group": + accessValidator.validateAccess(HOJAccessEnum.GROUP_JUDGE); + break; + default: + throw new StatusFailException("请求参数type错误!"); + } + + if (StringUtils.isEmpty(testJudgeDto.getCode())) { + throw new StatusFailException("在线调试的代码不可为空!"); + } + + if (StringUtils.isEmpty(testJudgeDto.getLanguage())) { + throw new StatusFailException("在线调试的编程语言不可为空!"); + } + + // Remote Judge的编程语言需要转换成HOJ的编程语言才能进行自测 + if (testJudgeDto.getIsRemoteJudge() != null && testJudgeDto.getIsRemoteJudge()) { + String language = MODE_MAP_LANGUAGE.get(testJudgeDto.getMode()); + if (language != null) { + testJudgeDto.setLanguage(language); + } else { + String dtoLanguage = testJudgeDto.getLanguage(); + if (dtoLanguage.contains("PyPy 3") || dtoLanguage.contains("PyPy3")) { + testJudgeDto.setLanguage("PyPy3"); + } else if (dtoLanguage.contains("PyPy")) { + testJudgeDto.setLanguage("PyPy2"); + } else if (dtoLanguage.contains("Python 3")) { + testJudgeDto.setLanguage("Python3"); + } else if (dtoLanguage.contains("Python")) { + testJudgeDto.setLanguage("Python2"); + }else if (dtoLanguage.contains("Node")){ + testJudgeDto.setLanguage("JavaScript Node"); + }else if (dtoLanguage.contains("JavaScript")){ + testJudgeDto.setLanguage("JavaScript V8"); + } + } + } + + if (!HOJ_LANGUAGE_LIST.contains(testJudgeDto.getLanguage())) { + throw new StatusFailException("提交的代码的语言错误!请使用" + HOJ_LANGUAGE_LIST + "中之一的语言!"); + } + + if (StringUtils.isEmpty(testJudgeDto.getUserInput())) { + throw new StatusFailException("在线调试的输入数据不可为空!"); + } + + if (testJudgeDto.getUserInput().length() > 1000) { + throw new StatusFailException("在线调试的输入数据字符长度不能超过1000!"); + } + + if (testJudgeDto.getPid() == null) { + throw new StatusFailException("在线调试所属题目的id不能为空!"); + } + + if (testJudgeDto.getCode().length() < 50 + && !testJudgeDto.getLanguage().contains("Py") + && !testJudgeDto.getLanguage().contains("PHP") + && !testJudgeDto.getLanguage().contains("JavaScript")) { + throw new StatusFailException("提交的代码是无效的,代码字符长度请不要低于50!"); + } + + if (testJudgeDto.getCode().length() > 65535) { + throw new StatusFailException("提交的代码是无效的,代码字符长度请不要超过65535!"); + } + + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/TrainingValidator.java b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/TrainingValidator.java new file mode 100644 index 0000000..b6b4395 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/java/top/hcode/hoj/validator/TrainingValidator.java @@ -0,0 +1,109 @@ +package top.hcode.hoj.validator; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.StatusAccessDeniedException; +import top.hcode.hoj.common.exception.StatusForbiddenException; +import top.hcode.hoj.dao.training.TrainingRegisterEntityService; +import top.hcode.hoj.pojo.entity.training.Training; +import top.hcode.hoj.pojo.entity.training.TrainingRegister; +import top.hcode.hoj.pojo.vo.UserRolesVo; +import top.hcode.hoj.utils.Constants; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/21 20:55 + * @Description: + */ +@Component +public class TrainingValidator { + + @Resource + private TrainingRegisterEntityService trainingRegisterEntityService; + + @Autowired + private GroupValidator groupValidator; + + public void validateTrainingAuth(Training training) throws StatusAccessDeniedException, StatusForbiddenException { + Session session = SecurityUtils.getSubject().getSession(); + UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo"); + validateTrainingAuth(training, userRolesVo); + } + + + public void validateTrainingAuth(Training training, UserRolesVo userRolesVo) throws StatusAccessDeniedException, StatusForbiddenException { + + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); // 是否为超级管理员 + + if (training.getIsGroup()) { + if (!groupValidator.isGroupMember(userRolesVo.getUid(), training.getGid()) && !isRoot) { + throw new StatusForbiddenException("对不起,您并非该团队内的成员,无权操作!"); + } + } + + if (Constants.Training.AUTH_PRIVATE.getValue().equals(training.getAuth())) { + + if (userRolesVo == null) { + throw new StatusAccessDeniedException("该训练属于私有题单,请先登录以校验权限!"); + } + + boolean isAuthor = training.getAuthor().equals(userRolesVo.getUsername()); // 是否为该私有训练的创建者 + + if (isRoot + || isAuthor + || (training.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), training.getGid()))) { + return; + } + + // 如果三者都不是,需要做注册权限校验 + checkTrainingRegister(training.getId(), userRolesVo.getUid()); + } + } + + private void checkTrainingRegister(Long tid, String uid) throws StatusAccessDeniedException, StatusForbiddenException { + QueryWrapper trainingRegisterQueryWrapper = new QueryWrapper<>(); + trainingRegisterQueryWrapper.eq("tid", tid); + trainingRegisterQueryWrapper.eq("uid", uid); + TrainingRegister trainingRegister = trainingRegisterEntityService.getOne(trainingRegisterQueryWrapper, false); + + if (trainingRegister == null) { + throw new StatusAccessDeniedException("该训练属于私有,请先使用专属密码注册!"); + } + + if (!trainingRegister.getStatus()) { + throw new StatusForbiddenException("错误:你已被禁止参加该训练!"); + } + } + + public boolean isInTrainingOrAdmin(Training training, UserRolesVo userRolesVo) throws StatusAccessDeniedException { + if (Constants.Training.AUTH_PRIVATE.getValue().equals(training.getAuth())) { + if (userRolesVo == null) { + throw new StatusAccessDeniedException("该训练属于私有题单,请先登录以校验权限!"); + } + boolean isRoot = SecurityUtils.getSubject().hasRole("root"); // 是否为超级管理员 + boolean isAuthor = training.getAuthor().equals(userRolesVo.getUsername()); // 是否为该私有训练的创建者 + + + if (isRoot + || isAuthor + || (training.getIsGroup() && groupValidator.isGroupRoot(userRolesVo.getUid(), training.getGid()))) { + return true; + } + + // 如果三者都不是,需要做注册权限校验 + QueryWrapper trainingRegisterQueryWrapper = new QueryWrapper<>(); + trainingRegisterQueryWrapper.eq("tid", training.getId()); + trainingRegisterQueryWrapper.eq("uid", userRolesVo.getUid()); + TrainingRegister trainingRegister = trainingRegisterEntityService.getOne(trainingRegisterQueryWrapper, false); + + return trainingRegister != null && trainingRegister.getStatus(); + + } + return true; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/resources/CodeForcesAES.js b/src/hoj-springboot/DataBackup/src/main/resources/CodeForcesAES.js new file mode 100644 index 0000000..b27e347 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/CodeForcesAES.js @@ -0,0 +1,722 @@ +function getRCPC(a, b, c) { + a = toNumbers(a); + b = toNumbers(b); + c = toNumbers(c); + return toHex(slowAES.decrypt(c, 2, a, b)); +} + +function toNumbers(d) { + var e = []; + d.replace(/(..)/g, function(d) { + e.push(parseInt(d, 16)) + }); + return e +} + +function toHex() { + for (var d = [], d = 1 == arguments.length && arguments[0].constructor == Array ? arguments[0] : arguments, e = "", f = 0; f < d.length; f++) e += (16 > d[f] ? "0" : "") + d[f].toString(16); + return e.toLowerCase() +} + +var slowAES = { + /* + * START AES SECTION + */ + aes: { + // structure of valid key sizes + keySize: { + SIZE_128: 16, + SIZE_192: 24, + SIZE_256: 32 + }, + + // Rijndael S-box + sbox: [ + 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, + 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, + 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, + 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, + 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, + 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, + 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, + 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, + 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, + 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, + 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, + 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, + 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, + 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, + 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, + 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 + ], + + // Rijndael Inverted S-box + rsbox: [0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d], + + /* rotate the word eight bits to the left */ + rotate: function(word) { + var c = word[0]; + for (var i = 0; i < 3; i++) + word[i] = word[i + 1]; + word[3] = c; + + return word; + }, + + // Rijndael Rcon + Rcon: [ + 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, + 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, + 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, + 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, + 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, + 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, + 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, + 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, + 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, + 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, + 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, + 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, + 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, + 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, + 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, + 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, + 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, + 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb + ], + + G2X: [ + 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, + 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, + 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3e, 0x40, 0x42, 0x44, 0x46, + 0x48, 0x4a, 0x4c, 0x4e, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x5e, + 0x60, 0x62, 0x64, 0x66, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x74, 0x76, + 0x78, 0x7a, 0x7c, 0x7e, 0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c, 0x8e, + 0x90, 0x92, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e, 0xa0, 0xa2, 0xa4, 0xa6, + 0xa8, 0xaa, 0xac, 0xae, 0xb0, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, + 0xc0, 0xc2, 0xc4, 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xd0, 0xd2, 0xd4, 0xd6, + 0xd8, 0xda, 0xdc, 0xde, 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, + 0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0xfe, 0x1b, 0x19, 0x1f, 0x1d, + 0x13, 0x11, 0x17, 0x15, 0x0b, 0x09, 0x0f, 0x0d, 0x03, 0x01, 0x07, 0x05, + 0x3b, 0x39, 0x3f, 0x3d, 0x33, 0x31, 0x37, 0x35, 0x2b, 0x29, 0x2f, 0x2d, + 0x23, 0x21, 0x27, 0x25, 0x5b, 0x59, 0x5f, 0x5d, 0x53, 0x51, 0x57, 0x55, + 0x4b, 0x49, 0x4f, 0x4d, 0x43, 0x41, 0x47, 0x45, 0x7b, 0x79, 0x7f, 0x7d, + 0x73, 0x71, 0x77, 0x75, 0x6b, 0x69, 0x6f, 0x6d, 0x63, 0x61, 0x67, 0x65, + 0x9b, 0x99, 0x9f, 0x9d, 0x93, 0x91, 0x97, 0x95, 0x8b, 0x89, 0x8f, 0x8d, + 0x83, 0x81, 0x87, 0x85, 0xbb, 0xb9, 0xbf, 0xbd, 0xb3, 0xb1, 0xb7, 0xb5, + 0xab, 0xa9, 0xaf, 0xad, 0xa3, 0xa1, 0xa7, 0xa5, 0xdb, 0xd9, 0xdf, 0xdd, + 0xd3, 0xd1, 0xd7, 0xd5, 0xcb, 0xc9, 0xcf, 0xcd, 0xc3, 0xc1, 0xc7, 0xc5, + 0xfb, 0xf9, 0xff, 0xfd, 0xf3, 0xf1, 0xf7, 0xf5, 0xeb, 0xe9, 0xef, 0xed, + 0xe3, 0xe1, 0xe7, 0xe5 + ], + + G3X: [ + 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, + 0x14, 0x17, 0x12, 0x11, 0x30, 0x33, 0x36, 0x35, 0x3c, 0x3f, 0x3a, 0x39, + 0x28, 0x2b, 0x2e, 0x2d, 0x24, 0x27, 0x22, 0x21, 0x60, 0x63, 0x66, 0x65, + 0x6c, 0x6f, 0x6a, 0x69, 0x78, 0x7b, 0x7e, 0x7d, 0x74, 0x77, 0x72, 0x71, + 0x50, 0x53, 0x56, 0x55, 0x5c, 0x5f, 0x5a, 0x59, 0x48, 0x4b, 0x4e, 0x4d, + 0x44, 0x47, 0x42, 0x41, 0xc0, 0xc3, 0xc6, 0xc5, 0xcc, 0xcf, 0xca, 0xc9, + 0xd8, 0xdb, 0xde, 0xdd, 0xd4, 0xd7, 0xd2, 0xd1, 0xf0, 0xf3, 0xf6, 0xf5, + 0xfc, 0xff, 0xfa, 0xf9, 0xe8, 0xeb, 0xee, 0xed, 0xe4, 0xe7, 0xe2, 0xe1, + 0xa0, 0xa3, 0xa6, 0xa5, 0xac, 0xaf, 0xaa, 0xa9, 0xb8, 0xbb, 0xbe, 0xbd, + 0xb4, 0xb7, 0xb2, 0xb1, 0x90, 0x93, 0x96, 0x95, 0x9c, 0x9f, 0x9a, 0x99, + 0x88, 0x8b, 0x8e, 0x8d, 0x84, 0x87, 0x82, 0x81, 0x9b, 0x98, 0x9d, 0x9e, + 0x97, 0x94, 0x91, 0x92, 0x83, 0x80, 0x85, 0x86, 0x8f, 0x8c, 0x89, 0x8a, + 0xab, 0xa8, 0xad, 0xae, 0xa7, 0xa4, 0xa1, 0xa2, 0xb3, 0xb0, 0xb5, 0xb6, + 0xbf, 0xbc, 0xb9, 0xba, 0xfb, 0xf8, 0xfd, 0xfe, 0xf7, 0xf4, 0xf1, 0xf2, + 0xe3, 0xe0, 0xe5, 0xe6, 0xef, 0xec, 0xe9, 0xea, 0xcb, 0xc8, 0xcd, 0xce, + 0xc7, 0xc4, 0xc1, 0xc2, 0xd3, 0xd0, 0xd5, 0xd6, 0xdf, 0xdc, 0xd9, 0xda, + 0x5b, 0x58, 0x5d, 0x5e, 0x57, 0x54, 0x51, 0x52, 0x43, 0x40, 0x45, 0x46, + 0x4f, 0x4c, 0x49, 0x4a, 0x6b, 0x68, 0x6d, 0x6e, 0x67, 0x64, 0x61, 0x62, + 0x73, 0x70, 0x75, 0x76, 0x7f, 0x7c, 0x79, 0x7a, 0x3b, 0x38, 0x3d, 0x3e, + 0x37, 0x34, 0x31, 0x32, 0x23, 0x20, 0x25, 0x26, 0x2f, 0x2c, 0x29, 0x2a, + 0x0b, 0x08, 0x0d, 0x0e, 0x07, 0x04, 0x01, 0x02, 0x13, 0x10, 0x15, 0x16, + 0x1f, 0x1c, 0x19, 0x1a + ], + + G9X: [ + 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, + 0x6c, 0x65, 0x7e, 0x77, 0x90, 0x99, 0x82, 0x8b, 0xb4, 0xbd, 0xa6, 0xaf, + 0xd8, 0xd1, 0xca, 0xc3, 0xfc, 0xf5, 0xee, 0xe7, 0x3b, 0x32, 0x29, 0x20, + 0x1f, 0x16, 0x0d, 0x04, 0x73, 0x7a, 0x61, 0x68, 0x57, 0x5e, 0x45, 0x4c, + 0xab, 0xa2, 0xb9, 0xb0, 0x8f, 0x86, 0x9d, 0x94, 0xe3, 0xea, 0xf1, 0xf8, + 0xc7, 0xce, 0xd5, 0xdc, 0x76, 0x7f, 0x64, 0x6d, 0x52, 0x5b, 0x40, 0x49, + 0x3e, 0x37, 0x2c, 0x25, 0x1a, 0x13, 0x08, 0x01, 0xe6, 0xef, 0xf4, 0xfd, + 0xc2, 0xcb, 0xd0, 0xd9, 0xae, 0xa7, 0xbc, 0xb5, 0x8a, 0x83, 0x98, 0x91, + 0x4d, 0x44, 0x5f, 0x56, 0x69, 0x60, 0x7b, 0x72, 0x05, 0x0c, 0x17, 0x1e, + 0x21, 0x28, 0x33, 0x3a, 0xdd, 0xd4, 0xcf, 0xc6, 0xf9, 0xf0, 0xeb, 0xe2, + 0x95, 0x9c, 0x87, 0x8e, 0xb1, 0xb8, 0xa3, 0xaa, 0xec, 0xe5, 0xfe, 0xf7, + 0xc8, 0xc1, 0xda, 0xd3, 0xa4, 0xad, 0xb6, 0xbf, 0x80, 0x89, 0x92, 0x9b, + 0x7c, 0x75, 0x6e, 0x67, 0x58, 0x51, 0x4a, 0x43, 0x34, 0x3d, 0x26, 0x2f, + 0x10, 0x19, 0x02, 0x0b, 0xd7, 0xde, 0xc5, 0xcc, 0xf3, 0xfa, 0xe1, 0xe8, + 0x9f, 0x96, 0x8d, 0x84, 0xbb, 0xb2, 0xa9, 0xa0, 0x47, 0x4e, 0x55, 0x5c, + 0x63, 0x6a, 0x71, 0x78, 0x0f, 0x06, 0x1d, 0x14, 0x2b, 0x22, 0x39, 0x30, + 0x9a, 0x93, 0x88, 0x81, 0xbe, 0xb7, 0xac, 0xa5, 0xd2, 0xdb, 0xc0, 0xc9, + 0xf6, 0xff, 0xe4, 0xed, 0x0a, 0x03, 0x18, 0x11, 0x2e, 0x27, 0x3c, 0x35, + 0x42, 0x4b, 0x50, 0x59, 0x66, 0x6f, 0x74, 0x7d, 0xa1, 0xa8, 0xb3, 0xba, + 0x85, 0x8c, 0x97, 0x9e, 0xe9, 0xe0, 0xfb, 0xf2, 0xcd, 0xc4, 0xdf, 0xd6, + 0x31, 0x38, 0x23, 0x2a, 0x15, 0x1c, 0x07, 0x0e, 0x79, 0x70, 0x6b, 0x62, + 0x5d, 0x54, 0x4f, 0x46 + ], + + GBX: [ + 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, + 0x74, 0x7f, 0x62, 0x69, 0xb0, 0xbb, 0xa6, 0xad, 0x9c, 0x97, 0x8a, 0x81, + 0xe8, 0xe3, 0xfe, 0xf5, 0xc4, 0xcf, 0xd2, 0xd9, 0x7b, 0x70, 0x6d, 0x66, + 0x57, 0x5c, 0x41, 0x4a, 0x23, 0x28, 0x35, 0x3e, 0x0f, 0x04, 0x19, 0x12, + 0xcb, 0xc0, 0xdd, 0xd6, 0xe7, 0xec, 0xf1, 0xfa, 0x93, 0x98, 0x85, 0x8e, + 0xbf, 0xb4, 0xa9, 0xa2, 0xf6, 0xfd, 0xe0, 0xeb, 0xda, 0xd1, 0xcc, 0xc7, + 0xae, 0xa5, 0xb8, 0xb3, 0x82, 0x89, 0x94, 0x9f, 0x46, 0x4d, 0x50, 0x5b, + 0x6a, 0x61, 0x7c, 0x77, 0x1e, 0x15, 0x08, 0x03, 0x32, 0x39, 0x24, 0x2f, + 0x8d, 0x86, 0x9b, 0x90, 0xa1, 0xaa, 0xb7, 0xbc, 0xd5, 0xde, 0xc3, 0xc8, + 0xf9, 0xf2, 0xef, 0xe4, 0x3d, 0x36, 0x2b, 0x20, 0x11, 0x1a, 0x07, 0x0c, + 0x65, 0x6e, 0x73, 0x78, 0x49, 0x42, 0x5f, 0x54, 0xf7, 0xfc, 0xe1, 0xea, + 0xdb, 0xd0, 0xcd, 0xc6, 0xaf, 0xa4, 0xb9, 0xb2, 0x83, 0x88, 0x95, 0x9e, + 0x47, 0x4c, 0x51, 0x5a, 0x6b, 0x60, 0x7d, 0x76, 0x1f, 0x14, 0x09, 0x02, + 0x33, 0x38, 0x25, 0x2e, 0x8c, 0x87, 0x9a, 0x91, 0xa0, 0xab, 0xb6, 0xbd, + 0xd4, 0xdf, 0xc2, 0xc9, 0xf8, 0xf3, 0xee, 0xe5, 0x3c, 0x37, 0x2a, 0x21, + 0x10, 0x1b, 0x06, 0x0d, 0x64, 0x6f, 0x72, 0x79, 0x48, 0x43, 0x5e, 0x55, + 0x01, 0x0a, 0x17, 0x1c, 0x2d, 0x26, 0x3b, 0x30, 0x59, 0x52, 0x4f, 0x44, + 0x75, 0x7e, 0x63, 0x68, 0xb1, 0xba, 0xa7, 0xac, 0x9d, 0x96, 0x8b, 0x80, + 0xe9, 0xe2, 0xff, 0xf4, 0xc5, 0xce, 0xd3, 0xd8, 0x7a, 0x71, 0x6c, 0x67, + 0x56, 0x5d, 0x40, 0x4b, 0x22, 0x29, 0x34, 0x3f, 0x0e, 0x05, 0x18, 0x13, + 0xca, 0xc1, 0xdc, 0xd7, 0xe6, 0xed, 0xf0, 0xfb, 0x92, 0x99, 0x84, 0x8f, + 0xbe, 0xb5, 0xa8, 0xa3 + ], + + GDX: [ + 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, + 0x5c, 0x51, 0x46, 0x4b, 0xd0, 0xdd, 0xca, 0xc7, 0xe4, 0xe9, 0xfe, 0xf3, + 0xb8, 0xb5, 0xa2, 0xaf, 0x8c, 0x81, 0x96, 0x9b, 0xbb, 0xb6, 0xa1, 0xac, + 0x8f, 0x82, 0x95, 0x98, 0xd3, 0xde, 0xc9, 0xc4, 0xe7, 0xea, 0xfd, 0xf0, + 0x6b, 0x66, 0x71, 0x7c, 0x5f, 0x52, 0x45, 0x48, 0x03, 0x0e, 0x19, 0x14, + 0x37, 0x3a, 0x2d, 0x20, 0x6d, 0x60, 0x77, 0x7a, 0x59, 0x54, 0x43, 0x4e, + 0x05, 0x08, 0x1f, 0x12, 0x31, 0x3c, 0x2b, 0x26, 0xbd, 0xb0, 0xa7, 0xaa, + 0x89, 0x84, 0x93, 0x9e, 0xd5, 0xd8, 0xcf, 0xc2, 0xe1, 0xec, 0xfb, 0xf6, + 0xd6, 0xdb, 0xcc, 0xc1, 0xe2, 0xef, 0xf8, 0xf5, 0xbe, 0xb3, 0xa4, 0xa9, + 0x8a, 0x87, 0x90, 0x9d, 0x06, 0x0b, 0x1c, 0x11, 0x32, 0x3f, 0x28, 0x25, + 0x6e, 0x63, 0x74, 0x79, 0x5a, 0x57, 0x40, 0x4d, 0xda, 0xd7, 0xc0, 0xcd, + 0xee, 0xe3, 0xf4, 0xf9, 0xb2, 0xbf, 0xa8, 0xa5, 0x86, 0x8b, 0x9c, 0x91, + 0x0a, 0x07, 0x10, 0x1d, 0x3e, 0x33, 0x24, 0x29, 0x62, 0x6f, 0x78, 0x75, + 0x56, 0x5b, 0x4c, 0x41, 0x61, 0x6c, 0x7b, 0x76, 0x55, 0x58, 0x4f, 0x42, + 0x09, 0x04, 0x13, 0x1e, 0x3d, 0x30, 0x27, 0x2a, 0xb1, 0xbc, 0xab, 0xa6, + 0x85, 0x88, 0x9f, 0x92, 0xd9, 0xd4, 0xc3, 0xce, 0xed, 0xe0, 0xf7, 0xfa, + 0xb7, 0xba, 0xad, 0xa0, 0x83, 0x8e, 0x99, 0x94, 0xdf, 0xd2, 0xc5, 0xc8, + 0xeb, 0xe6, 0xf1, 0xfc, 0x67, 0x6a, 0x7d, 0x70, 0x53, 0x5e, 0x49, 0x44, + 0x0f, 0x02, 0x15, 0x18, 0x3b, 0x36, 0x21, 0x2c, 0x0c, 0x01, 0x16, 0x1b, + 0x38, 0x35, 0x22, 0x2f, 0x64, 0x69, 0x7e, 0x73, 0x50, 0x5d, 0x4a, 0x47, + 0xdc, 0xd1, 0xc6, 0xcb, 0xe8, 0xe5, 0xf2, 0xff, 0xb4, 0xb9, 0xae, 0xa3, + 0x80, 0x8d, 0x9a, 0x97 + ], + + GEX: [ + 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, + 0x48, 0x46, 0x54, 0x5a, 0xe0, 0xee, 0xfc, 0xf2, 0xd8, 0xd6, 0xc4, 0xca, + 0x90, 0x9e, 0x8c, 0x82, 0xa8, 0xa6, 0xb4, 0xba, 0xdb, 0xd5, 0xc7, 0xc9, + 0xe3, 0xed, 0xff, 0xf1, 0xab, 0xa5, 0xb7, 0xb9, 0x93, 0x9d, 0x8f, 0x81, + 0x3b, 0x35, 0x27, 0x29, 0x03, 0x0d, 0x1f, 0x11, 0x4b, 0x45, 0x57, 0x59, + 0x73, 0x7d, 0x6f, 0x61, 0xad, 0xa3, 0xb1, 0xbf, 0x95, 0x9b, 0x89, 0x87, + 0xdd, 0xd3, 0xc1, 0xcf, 0xe5, 0xeb, 0xf9, 0xf7, 0x4d, 0x43, 0x51, 0x5f, + 0x75, 0x7b, 0x69, 0x67, 0x3d, 0x33, 0x21, 0x2f, 0x05, 0x0b, 0x19, 0x17, + 0x76, 0x78, 0x6a, 0x64, 0x4e, 0x40, 0x52, 0x5c, 0x06, 0x08, 0x1a, 0x14, + 0x3e, 0x30, 0x22, 0x2c, 0x96, 0x98, 0x8a, 0x84, 0xae, 0xa0, 0xb2, 0xbc, + 0xe6, 0xe8, 0xfa, 0xf4, 0xde, 0xd0, 0xc2, 0xcc, 0x41, 0x4f, 0x5d, 0x53, + 0x79, 0x77, 0x65, 0x6b, 0x31, 0x3f, 0x2d, 0x23, 0x09, 0x07, 0x15, 0x1b, + 0xa1, 0xaf, 0xbd, 0xb3, 0x99, 0x97, 0x85, 0x8b, 0xd1, 0xdf, 0xcd, 0xc3, + 0xe9, 0xe7, 0xf5, 0xfb, 0x9a, 0x94, 0x86, 0x88, 0xa2, 0xac, 0xbe, 0xb0, + 0xea, 0xe4, 0xf6, 0xf8, 0xd2, 0xdc, 0xce, 0xc0, 0x7a, 0x74, 0x66, 0x68, + 0x42, 0x4c, 0x5e, 0x50, 0x0a, 0x04, 0x16, 0x18, 0x32, 0x3c, 0x2e, 0x20, + 0xec, 0xe2, 0xf0, 0xfe, 0xd4, 0xda, 0xc8, 0xc6, 0x9c, 0x92, 0x80, 0x8e, + 0xa4, 0xaa, 0xb8, 0xb6, 0x0c, 0x02, 0x10, 0x1e, 0x34, 0x3a, 0x28, 0x26, + 0x7c, 0x72, 0x60, 0x6e, 0x44, 0x4a, 0x58, 0x56, 0x37, 0x39, 0x2b, 0x25, + 0x0f, 0x01, 0x13, 0x1d, 0x47, 0x49, 0x5b, 0x55, 0x7f, 0x71, 0x63, 0x6d, + 0xd7, 0xd9, 0xcb, 0xc5, 0xef, 0xe1, 0xf3, 0xfd, 0xa7, 0xa9, 0xbb, 0xb5, + 0x9f, 0x91, 0x83, 0x8d + ], + + // Key Schedule Core + core: function(word, iteration) { + /* rotate the 32-bit word 8 bits to the left */ + word = this.rotate(word); + /* apply S-Box substitution on all 4 parts of the 32-bit word */ + for (var i = 0; i < 4; ++i) + word[i] = this.sbox[word[i]]; + /* XOR the output of the rcon operation with i to the first part (leftmost) only */ + word[0] = word[0] ^ this.Rcon[iteration]; + return word; + }, + + /* Rijndael's key expansion + * expands an 128,192,256 key into an 176,208,240 bytes key + * + * expandedKey is a pointer to an char array of large enough size + * key is a pointer to a non-expanded key + */ + expandKey: function(key, size) { + var expandedKeySize = (16 * (this.numberOfRounds(size) + 1)); + + /* current expanded keySize, in bytes */ + var currentSize = 0; + var rconIteration = 1; + var t = []; // temporary 4-byte variable + + var expandedKey = []; + for (var i = 0; i < expandedKeySize; i++) + expandedKey[i] = 0; + + /* set the 16,24,32 bytes of the expanded key to the input key */ + for (var j = 0; j < size; j++) + expandedKey[j] = key[j]; + currentSize += size; + + while (currentSize < expandedKeySize) { + /* assign the previous 4 bytes to the temporary value t */ + for (var k = 0; k < 4; k++) + t[k] = expandedKey[(currentSize - 4) + k]; + + /* every 16,24,32 bytes we apply the core schedule to t + * and increment rconIteration afterwards + */ + if (currentSize % size == 0) + t = this.core(t, rconIteration++); + + /* For 256-bit keys, we add an extra sbox to the calculation */ + if (size == this.keySize.SIZE_256 && ((currentSize % size) == 16)) + for (var l = 0; l < 4; l++) + t[l] = this.sbox[t[l]]; + + /* We XOR t with the four-byte block 16,24,32 bytes before the new expanded key. + * This becomes the next four bytes in the expanded key. + */ + for (var m = 0; m < 4; m++) { + expandedKey[currentSize] = expandedKey[currentSize - size] ^ t[m]; + currentSize++; + } + } + return expandedKey; + }, + + // Adds (XORs) the round key to the state + addRoundKey: function(state, roundKey) { + for (var i = 0; i < 16; i++) + state[i] ^= roundKey[i]; + return state; + }, + + // Creates a round key from the given expanded key and the + // position within the expanded key. + createRoundKey: function(expandedKey, roundKeyPointer) { + var roundKey = []; + for (var i = 0; i < 4; i++) + for (var j = 0; j < 4; j++) + roundKey[j * 4 + i] = expandedKey[roundKeyPointer + i * 4 + j]; + return roundKey; + }, + + /* substitute all the values from the state with the value in the SBox + * using the state value as index for the SBox + */ + subBytes: function(state, isInv) { + for (var i = 0; i < 16; i++) + state[i] = isInv ? this.rsbox[state[i]] : this.sbox[state[i]]; + return state; + }, + + /* iterate over the 4 rows and call shiftRow() with that row */ + shiftRows: function(state, isInv) { + for (var i = 0; i < 4; i++) + state = this.shiftRow(state, i * 4, i, isInv); + return state; + }, + + /* each iteration shifts the row to the left by 1 */ + shiftRow: function(state, statePointer, nbr, isInv) { + for (var i = 0; i < nbr; i++) { + if (isInv) { + var tmp = state[statePointer + 3]; + for (var j = 3; j > 0; j--) + state[statePointer + j] = state[statePointer + j - 1]; + state[statePointer] = tmp; + } else { + var tmp = state[statePointer]; + for (var j = 0; j < 3; j++) + state[statePointer + j] = state[statePointer + j + 1]; + state[statePointer + 3] = tmp; + } + } + return state; + }, + + // galois multiplication of 8 bit characters a and b + galois_multiplication: function(a, b) { + var p = 0; + for (var counter = 0; counter < 8; counter++) { + if ((b & 1) == 1) + p ^= a; + if (p > 0x100) p ^= 0x100; + var hi_bit_set = (a & 0x80); //keep p 8 bit + a <<= 1; + if (a > 0x100) a ^= 0x100; //keep a 8 bit + if (hi_bit_set == 0x80) + a ^= 0x1b; + if (a > 0x100) a ^= 0x100; //keep a 8 bit + b >>= 1; + if (b > 0x100) b ^= 0x100; //keep b 8 bit + } + return p; + }, + + // galois multipication of the 4x4 matrix + mixColumns: function(state, isInv) { + var column = []; + /* iterate over the 4 columns */ + for (var i = 0; i < 4; i++) { + /* construct one column by iterating over the 4 rows */ + for (var j = 0; j < 4; j++) + column[j] = state[(j * 4) + i]; + /* apply the mixColumn on one column */ + column = this.mixColumn(column, isInv); + /* put the values back into the state */ + for (var k = 0; k < 4; k++) + state[(k * 4) + i] = column[k]; + } + return state; + }, + + // galois multipication of 1 column of the 4x4 matrix + mixColumn: function(column, isInv) { + var mult = []; + if (isInv) + mult = [14, 9, 13, 11]; + else + mult = [2, 1, 1, 3]; + var cpy = []; + for (var i = 0; i < 4; i++) + cpy[i] = column[i]; + + column[0] = this.galois_multiplication(cpy[0], mult[0]) ^ + this.galois_multiplication(cpy[3], mult[1]) ^ + this.galois_multiplication(cpy[2], mult[2]) ^ + this.galois_multiplication(cpy[1], mult[3]); + column[1] = this.galois_multiplication(cpy[1], mult[0]) ^ + this.galois_multiplication(cpy[0], mult[1]) ^ + this.galois_multiplication(cpy[3], mult[2]) ^ + this.galois_multiplication(cpy[2], mult[3]); + column[2] = this.galois_multiplication(cpy[2], mult[0]) ^ + this.galois_multiplication(cpy[1], mult[1]) ^ + this.galois_multiplication(cpy[0], mult[2]) ^ + this.galois_multiplication(cpy[3], mult[3]); + column[3] = this.galois_multiplication(cpy[3], mult[0]) ^ + this.galois_multiplication(cpy[2], mult[1]) ^ + this.galois_multiplication(cpy[1], mult[2]) ^ + this.galois_multiplication(cpy[0], mult[3]); + return column; + }, + + // applies the 4 operations of the forward round in sequence + round: function(state, roundKey) { + state = this.subBytes(state, false); + state = this.shiftRows(state, false); + state = this.mixColumns(state, false); + state = this.addRoundKey(state, roundKey); + return state; + }, + + // applies the 4 operations of the inverse round in sequence + invRound: function(state, roundKey) { + state = this.shiftRows(state, true); + state = this.subBytes(state, true); + state = this.addRoundKey(state, roundKey); + state = this.mixColumns(state, true); + return state; + }, + + /* + * Perform the initial operations, the standard round, and the final operations + * of the forward aes, creating a round key for each round + */ + main: function(state, expandedKey, nbrRounds) { + state = this.addRoundKey(state, this.createRoundKey(expandedKey, 0)); + for (var i = 1; i < nbrRounds; i++) + state = this.round(state, this.createRoundKey(expandedKey, 16 * i)); + state = this.subBytes(state, false); + state = this.shiftRows(state, false); + state = this.addRoundKey(state, this.createRoundKey(expandedKey, 16 * nbrRounds)); + return state; + }, + + /* + * Perform the initial operations, the standard round, and the final operations + * of the inverse aes, creating a round key for each round + */ + invMain: function(state, expandedKey, nbrRounds) { + state = this.addRoundKey(state, this.createRoundKey(expandedKey, 16 * nbrRounds)); + for (var i = nbrRounds - 1; i > 0; i--) + state = this.invRound(state, this.createRoundKey(expandedKey, 16 * i)); + state = this.shiftRows(state, true); + state = this.subBytes(state, true); + state = this.addRoundKey(state, this.createRoundKey(expandedKey, 0)); + return state; + }, + + numberOfRounds: function(size) { + var nbrRounds; + switch (size) /* set the number of rounds */ { + case this.keySize.SIZE_128: + nbrRounds = 10; + break; + case this.keySize.SIZE_192: + nbrRounds = 12; + break; + case this.keySize.SIZE_256: + nbrRounds = 14; + break; + default: + return null; + break; + } + return nbrRounds; + }, + + // encrypts a 128 bit input block against the given key of size specified + encrypt: function(input, key, size) { + var output = []; + var block = []; /* the 128 bit block to encode */ + var nbrRounds = this.numberOfRounds(size); + /* Set the block values, for the block: + * a0,0 a0,1 a0,2 a0,3 + * a1,0 a1,1 a1,2 a1,3 + * a2,0 a2,1 a2,2 a2,3 + * a3,0 a3,1 a3,2 a3,3 + * the mapping order is a0,0 a1,0 a2,0 a3,0 a0,1 a1,1 ... a2,3 a3,3 + */ + for (var i = 0; i < 4; i++) /* iterate over the columns */ + for (var j = 0; j < 4; j++) /* iterate over the rows */ + block[(i + (j * 4))] = input[(i * 4) + j]; + + /* expand the key into an 176, 208, 240 bytes key */ + var expandedKey = this.expandKey(key, size); /* the expanded key */ + /* encrypt the block using the expandedKey */ + block = this.main(block, expandedKey, nbrRounds); + for (var k = 0; k < 4; k++) /* unmap the block again into the output */ + for (var l = 0; l < 4; l++) /* iterate over the rows */ + output[(k * 4) + l] = block[(k + (l * 4))]; + return output; + }, + + // decrypts a 128 bit input block against the given key of size specified + decrypt: function(input, key, size) { + var output = []; + var block = []; /* the 128 bit block to decode */ + var nbrRounds = this.numberOfRounds(size); + /* Set the block values, for the block: + * a0,0 a0,1 a0,2 a0,3 + * a1,0 a1,1 a1,2 a1,3 + * a2,0 a2,1 a2,2 a2,3 + * a3,0 a3,1 a3,2 a3,3 + * the mapping order is a0,0 a1,0 a2,0 a3,0 a0,1 a1,1 ... a2,3 a3,3 + */ + for (var i = 0; i < 4; i++) /* iterate over the columns */ + for (var j = 0; j < 4; j++) /* iterate over the rows */ + block[(i + (j * 4))] = input[(i * 4) + j]; + /* expand the key into an 176, 208, 240 bytes key */ + var expandedKey = this.expandKey(key, size); + /* decrypt the block using the expandedKey */ + block = this.invMain(block, expandedKey, nbrRounds); + for (var k = 0; k < 4; k++) /* unmap the block again into the output */ + for (var l = 0; l < 4; l++) /* iterate over the rows */ + output[(k * 4) + l] = block[(k + (l * 4))]; + return output; + } + }, + /* + * END AES SECTION + */ + + /* + * START MODE OF OPERATION SECTION + */ + //structure of supported modes of operation + modeOfOperation: { + OFB: 0, + CFB: 1, + CBC: 2 + }, + + // get a 16 byte block (aes operates on 128bits) + getBlock: function(bytesIn, start, end, mode) { + if (end - start > 16) + end = start + 16; + + return bytesIn.slice(start, end); + }, + + /* + * Mode of Operation Encryption + * bytesIn - Input String as array of bytes + * mode - mode of type modeOfOperation + * key - a number array of length 'size' + * size - the bit length of the key + * iv - the 128 bit number array Initialization Vector + */ + encrypt: function(bytesIn, mode, key, iv) { + var size = key.length; + if (iv.length % 16) { + throw 'iv length must be 128 bits.'; + } + // the AES input/output + var byteArray = []; + var input = []; + var output = []; + var ciphertext = []; + var cipherOut = []; + // char firstRound + var firstRound = true; + if (mode == this.modeOfOperation.CBC) + this.padBytesIn(bytesIn); + if (bytesIn !== null) { + for (var j = 0; j < Math.ceil(bytesIn.length / 16); j++) { + var start = j * 16; + var end = j * 16 + 16; + if (j * 16 + 16 > bytesIn.length) + end = bytesIn.length; + byteArray = this.getBlock(bytesIn, start, end, mode); + if (mode == this.modeOfOperation.CFB) { + if (firstRound) { + output = this.aes.encrypt(iv, key, size); + firstRound = false; + } else + output = this.aes.encrypt(input, key, size); + for (var i = 0; i < 16; i++) + ciphertext[i] = byteArray[i] ^ output[i]; + for (var k = 0; k < end - start; k++) + cipherOut.push(ciphertext[k]); + input = ciphertext; + } else if (mode == this.modeOfOperation.OFB) { + if (firstRound) { + output = this.aes.encrypt(iv, key, size); + firstRound = false; + } else + output = this.aes.encrypt(input, key, size); + for (var i = 0; i < 16; i++) + ciphertext[i] = byteArray[i] ^ output[i]; + for (var k = 0; k < end - start; k++) + cipherOut.push(ciphertext[k]); + input = output; + } else if (mode == this.modeOfOperation.CBC) { + for (var i = 0; i < 16; i++) + input[i] = byteArray[i] ^ ((firstRound) ? iv[i] : ciphertext[i]); + firstRound = false; + ciphertext = this.aes.encrypt(input, key, size); + // always 16 bytes because of the padding for CBC + for (var k = 0; k < 16; k++) + cipherOut.push(ciphertext[k]); + } + } + } + return cipherOut; + }, + + /* + * Mode of Operation Decryption + * cipherIn - Encrypted String as array of bytes + * originalsize - The unencrypted string length - required for CBC + * mode - mode of type modeOfOperation + * key - a number array of length 'size' + * size - the bit length of the key + * iv - the 128 bit number array Initialization Vector + */ + decrypt: function(cipherIn, mode, key, iv) { + var size = key.length; + if (iv.length % 16) { + throw 'iv length must be 128 bits.'; + } + // the AES input/output + var ciphertext = []; + var input = []; + var output = []; + var byteArray = []; + var bytesOut = []; + // char firstRound + var firstRound = true; + if (cipherIn !== null) { + for (var j = 0; j < Math.ceil(cipherIn.length / 16); j++) { + var start = j * 16; + var end = j * 16 + 16; + if (j * 16 + 16 > cipherIn.length) + end = cipherIn.length; + ciphertext = this.getBlock(cipherIn, start, end, mode); + if (mode == this.modeOfOperation.CFB) { + if (firstRound) { + output = this.aes.encrypt(iv, key, size); + firstRound = false; + } else + output = this.aes.encrypt(input, key, size); + for (i = 0; i < 16; i++) + byteArray[i] = output[i] ^ ciphertext[i]; + for (var k = 0; k < end - start; k++) + bytesOut.push(byteArray[k]); + input = ciphertext; + } else if (mode == this.modeOfOperation.OFB) { + if (firstRound) { + output = this.aes.encrypt(iv, key, size); + firstRound = false; + } else + output = this.aes.encrypt(input, key, size); + for (i = 0; i < 16; i++) + byteArray[i] = output[i] ^ ciphertext[i]; + for (var k = 0; k < end - start; k++) + bytesOut.push(byteArray[k]); + input = output; + } else if (mode == this.modeOfOperation.CBC) { + output = this.aes.decrypt(ciphertext, key, size); + for (i = 0; i < 16; i++) + byteArray[i] = ((firstRound) ? iv[i] : input[i]) ^ output[i]; + firstRound = false; + for (var k = 0; k < end - start; k++) + bytesOut.push(byteArray[k]); + input = ciphertext; + } + } + if (mode == this.modeOfOperation.CBC) + this.unpadBytesOut(bytesOut); + } + return bytesOut; + }, + padBytesIn: function(data) { + var len = data.length; + var padByte = 16 - (len % 16); + for (var i = 0; i < padByte; i++) { + data.push(padByte); + } + }, + unpadBytesOut: function(data) { + var padCount = 0; + var padByte = -1; + var blockSize = 16; + if (data.length > 16) { + for (var i = data.length - 1; i >= data.length - 1 - blockSize; i--) { + if (data[i] <= blockSize) { + if (padByte == -1) + padByte = data[i]; + if (data[i] != padByte) { + padCount = 0; + break; + } + padCount++; + } else + break; + if (padCount == padByte) + break; + } + if (padCount > 0) + data.splice(data.length - padCount, padCount); + } + } + /* + * END MODE OF OPERATION SECTION + */ +}; \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/resources/application-dev.yml b/src/hoj-springboot/DataBackup/src/main/resources/application-dev.yml new file mode 100644 index 0000000..eceb93b --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/application-dev.yml @@ -0,0 +1,120 @@ +# redis配置 +redis-host: 127.0.0.1 +redis-port: 6379 +redis-password: hoj123456 + +# 本服务连接mysql的地址和端口号 +mysql-host: 127.0.0.1 +mysql-port: 3306 +# mysql的公网地址和端口号 +mysql-public-host: 127.0.0.1 +mysql-public-port: 3306 +mysql-username: root +mysql-password: hoj123456 +mysql-name: hoj + +# token密钥,default表示随机生成 +jwt-token-secret: default +# token过期时间 单位s +jwt-token-expire: 86400 +# token可刷新的过期时间 单位s +jwt-token-fresh-expire: 43200 + +# 网站是否开启远程评测 +open-remote-judge: true +# 调用评测服务的token, default表示随机生成 +judge-token: default + +# 邮箱服务地址 +email-host: smtp.qq.com +# 邮箱服务端口号 +email-port: 465 +# 邮箱账号 +email-username: your_email_username +# 邮箱授权码 +email-password: your_email_password + +# 以下为各个remote judge平台的账号配置 +hdu-username-list: +hdu-password-list: +poj-username-list: +poj-password-list: +cf-username-list: +cf-password-list: +atcoder-username-list: +atcoder-password-list: +spoj-username-list: +spoj-password-list: +# 是否强制用配置更新覆盖remote judge的账号 +forced-update-remote-judge-account: false + +server: + port: 6688 + servlet: + encoding: + force: true + +spring: + # 配置文件上传限制 + servlet: + multipart: + max-file-size: 512MB + max-request-size: 512MB + + redis: + host: ${redis-host} + port: ${redis-port} + timeout: 60000 + jedis: + pool: + min-idle: 10 #连接池中的最小空闲连接 + max-idle: 50 #连接池中的最大空闲连接 + max-active: 200 #连接池最大连接数(使用负值表示没有限制) + max-wait: -1 #连接池最大阻塞等待时间(使用负值表示没有限制) + password: ${redis-password} + datasource: + username: ${mysql-username} + password: ${mysql-password} + url: jdbc:mysql://${mysql-host}:${mysql-port}/${mysql-name}?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.alibaba.druid.pool.DruidDataSource + initial-size: 10 # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时 + min-idle: 20 # 最小连接池数量 + maxActive: 200 # 最大连接池数量 + maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置 + timeBetweenEvictionRunsMillis: 60000 # 关闭空闲连接的检测时间间隔.Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。 + minEvictableIdleTimeMillis: 300000 # 连接的最小生存时间.连接保持空闲而不被驱逐的最小时间 + validationQuery: SELECT 1 FROM DUAL # 验证数据库服务可用性的sql.用来检测连接是否有效的sql 因数据库方言而差, 例如 oracle 应该写成 SELECT 1 FROM DUAL + testWhileIdle: true # 申请连接时检测空闲时间,根据空闲时间再检测连接是否有效.建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRun + testOnBorrow: false # 申请连接时直接检测连接是否有效.申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 + testOnReturn: false # 归还连接时检测连接是否有效.归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 + poolPreparedStatements: true # 开启PSCache + maxPoolPreparedStatementPerConnectionSize: 20 #设置PSCache值 + connectionErrorRetryAttempts: 3 # 连接出错后再尝试连接三次 + breakAfterAcquireFailure: true # 数据库服务宕机自动重连机制 + timeBetweenConnectErrorMillis: 300000 # 连接出错后重试时间间隔 + asyncInit: true # 异步初始化策略 + remove-abandoned: true # 是否自动回收超时连接 + remove-abandoned-timeout: 1800 # 超时时间(以秒数为单位) + transaction-query-timeout: 6000 # 事务超时时间 + filters: stat,wall,log4j #数据库日志 + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 + thymeleaf: + encoding: UTF-8 + +shiro-redis: + enabled: true + redis-manager: + host: ${redis-host}:${redis-port} + password: ${redis-password} + +logging: + level: + com: + alibaba: + nacos: + client: + naming: info + root: info + file: + path: ./hoj_backend \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/resources/application-prod.yml b/src/hoj-springboot/DataBackup/src/main/resources/application-prod.yml new file mode 100644 index 0000000..50f08d6 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/application-prod.yml @@ -0,0 +1,124 @@ +# 默认以下配置默认会读取环境变量的值 + +# redis配置 +redis-host: ${REDIS_HOST:172.20.0.2} +redis-port: ${REDIS_PORT:6379} +redis-password: ${REDIS_PASSWORD:hoj123456} + +# 本服务连接mysql的地址和端口号 +mysql-host: ${MYSQL_HOST:172.20.0.3} +mysql-port: ${MYSQL_PORT:3306} +# mysql的公网地址和端口号 +mysql-public-host: ${MYSQL_PUBLIC_HOST:172.20.0.3} +mysql-public-port: ${MYSQL_PUBLIC_PORT:3306} +mysql-username: ${MYSQL_USERNAME:root} +mysql-password: ${MYSQL_ROOT_PASSWORD:hoj123456} +mysql-name: ${MYSQL_DATABASE_NAME:hoj} + +# token密钥,default表示随机生成 +jwt-token-secret: ${JWT_TOKEN_SECRET:default} +# token过期时间 单位s +jwt-token-expire: ${JWT_TOKEN_EXPIRE:86400} +# token可刷新的过期时间 单位s +jwt-token-fresh-expire: ${JWT_TOKEN_FRESH_EXPIRE:43200} + +# 网站是否开启远程评测 +open-remote-judge: ${OPEN_REMOTE_JUDGE:true} +# 调用评测服务的token, default表示随机生成 +judge-token: ${JUDGE_TOKEN:default} + +# 邮箱服务地址 +email-host: ${EMAIL_SERVER_HOST:smtp.qq.com} +# 邮箱服务端口号 +email-port: ${EMAIL_SERVER_PORT:465} +# 邮箱账号 +email-username: ${EMAIL_USERNAME:your_email_username} +# 邮箱授权码 +email-password: ${EMAIL_PASSWORD:your_email_password} + +# 以下为各个remote judge平台的账号配置 +hdu-username-list: ${HDU_ACCOUNT_USERNAME_LIST:} +hdu-password-list: ${HDU_ACCOUNT_PASSWORD_LIST:} +poj-username-list: ${POJ_ACCOUNT_USERNAME_LIST:} +poj-password-list: ${POJ_ACCOUNT_PASSWORD_LIST:} +cf-username-list: ${CF_ACCOUNT_USERNAME_LIST:} +cf-password-list: ${CF_ACCOUNT_PASSWORD_LIST:} +atcoder-username-list: ${ATCODER_ACCOUNT_USERNAME_LIST:} +atcoder-password-list: ${ATCODER_ACCOUNT_PASSWORD_LIST:} +spoj-username-list: ${SPOJ_ACCOUNT_USERNAME_LIST:} +spoj-password-list: ${SPOJ_ACCOUNT_PASSWORD_LIST:} +# 是否强制用配置更新覆盖remote judge的账号 +forced-update-remote-judge-account: ${FORCED_UPDATE_REMOTE_JUDGE_ACCOUNT:false} + +server: + port: ${BACKEND_SERVER_PORT:6688} + servlet: + encoding: + force: true + +spring: + # 配置文件上传限制 + servlet: + multipart: + max-file-size: 512MB + max-request-size: 512MB + + redis: + host: ${redis-host} + port: ${redis-port} + timeout: 60000 + jedis: + pool: + min-idle: 10 #连接池中的最小空闲连接 + max-idle: 50 #连接池中的最大空闲连接 + max-active: 200 #连接池最大连接数(使用负值表示没有限制) + max-wait: -1 #连接池最大阻塞等待时间(使用负值表示没有限制) + password: ${redis-password} + datasource: + username: ${mysql-username} + password: ${mysql-password} + url: jdbc:mysql://${mysql-host}:${mysql-port}/${mysql-name}?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.alibaba.druid.pool.DruidDataSource + initial-size: 10 # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时 + min-idle: 20 # 最小连接池数量 + maxActive: 200 # 最大连接池数量 + maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置 + timeBetweenEvictionRunsMillis: 60000 # 关闭空闲连接的检测时间间隔.Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。 + minEvictableIdleTimeMillis: 300000 # 连接的最小生存时间.连接保持空闲而不被驱逐的最小时间 + validationQuery: SELECT 1 FROM DUAL # 验证数据库服务可用性的sql.用来检测连接是否有效的sql 因数据库方言而差, 例如 oracle 应该写成 SELECT 1 FROM DUAL + testWhileIdle: true # 申请连接时检测空闲时间,根据空闲时间再检测连接是否有效.建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRun + testOnBorrow: false # 申请连接时直接检测连接是否有效.申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 + testOnReturn: false # 归还连接时检测连接是否有效.归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 + poolPreparedStatements: true # 开启PSCache + maxPoolPreparedStatementPerConnectionSize: 20 #设置PSCache值 + connectionErrorRetryAttempts: 3 # 连接出错后再尝试连接三次 + breakAfterAcquireFailure: true # 数据库服务宕机自动重连机制 + timeBetweenConnectErrorMillis: 300000 # 连接出错后重试时间间隔 + asyncInit: true # 异步初始化策略 + remove-abandoned: true # 是否自动回收超时连接 + remove-abandoned-timeout: 1800 # 超时时间(以秒数为单位) + transaction-query-timeout: 6000 # 事务超时时间 + filters: stat,wall,log4j #数据库日志 + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 + thymeleaf: + encoding: UTF-8 + +shiro-redis: + enabled: true + redis-manager: + host: ${redis-host}:${redis-port} + password: ${redis-password} + +logging: + level: + com: + alibaba: + nacos: + client: + naming: error + gargoylesoftware: off + root: error + config: classpath:logback-spring.xml + file: + path: /hoj/log/backend \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/resources/application.yml b/src/hoj-springboot/DataBackup/src/main/resources/application.yml new file mode 100644 index 0000000..ceee3ab --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/application.yml @@ -0,0 +1,13 @@ +mybatis-plus: + mapper-locations: classpath*:top/hcode/hoj/mapper/xml/**Mapper.xml + type-aliases-package: top.hcode.hoj.pojo.entity + configuration: + cache-enabled: true + # 关闭打印 mybatis-plus 的 LOGO + global-config: + banner: false + +# 消费者将要去访问的微服务名称(注册成功进入nacos的微服务提供者) +service-url: + name: hoj-judgeserver # 服务名 + diff --git a/src/hoj-springboot/DataBackup/src/main/resources/banner.txt b/src/hoj-springboot/DataBackup/src/main/resources/banner.txt new file mode 100644 index 0000000..005a375 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/banner.txt @@ -0,0 +1,21 @@ +${AnsiColor.BRIGHT_YELLOW} + + ,--, ,----.. + ,--.'| ,----.. / / \ ,---, ,---,. + ,--, | : / / \ / . : .' .' `\ ,' .' | +,---.'| : '| : : . / ;. \,---.' \ ,---.' | +| | : _' |. | ;. /. ; / ` ;| | .`\ || | .' +: : |.' |. ; /--` ; | ; \ ; |: : | ' |: : |-, +| ' ' ; :; | ; | : | ; | '| ' ' ; :: | ;/| +' | .'. || : | . | ' ' ' :' | ; . || : .' +| | : | '. | '___ ' ; \; / || | : | '| | |-, +' : | : ;' ; : .'| \ \ ', / ' : | / ; ' : ;/| +| | ' ,/ ' | '/ : ; : / | | '` ,/ | | \ +; : ;--' | : / \ \ .' ; : .' | : .' +| ,/ \ \ .' `---` | ,.' | | ,' +'---' `---` '---' `----' + Hcode Online Judge(HOJ) - Backend + @Author Himit_ZH + @Last Update 20220821 + ->Github<- https://www.github.com/HimitZH/HOJ + ->Gitee<- https://gitee.com/himitzh0730/hoj \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/resources/bootstrap.yml b/src/hoj-springboot/DataBackup/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..437a60d --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/bootstrap.yml @@ -0,0 +1,31 @@ +# nacos配置 +nacos-url: ${NACOS_URL:127.0.0.1:8848} +nacos-username: ${NACOS_USERNAME:root} +nacos-password: ${NACOS_PASSWORD:hoj123456} + +spring: + profiles: + active: prod + application: + name: hoj-data-backup + cloud: + nacos: + discovery: + username: ${nacos-username} + password: ${nacos-password} + server-addr: ${nacos-url} # Nacos 作为服务注册中心 nacos的地址 + config: + username: ${nacos-username} + password: ${nacos-password} + server-addr: ${nacos-url} #Nacos 作为配置中心地址 nacos的地址 + file-extension: yml #指定yaml格式的配置 + group: DEFAULT_GROUP # 指定分组 + type: yaml + #namespace:命名空间ID 默认为public + prefix: hoj + url: http://${nacos-url} + +# ${spring.application.name}-${spring.profile.active}.${spring.cloud.naces.config.file-extension} +# ${spring.cloud.nacos.config.prefix}-${spring.profile.active}.${spring.cloud.naces.config.file-extension} +# hoj-prod.yml + diff --git a/src/hoj-springboot/DataBackup/src/main/resources/email-rule.yml b/src/hoj-springboot/DataBackup/src/main/resources/email-rule.yml new file mode 100644 index 0000000..91a2579 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/email-rule.yml @@ -0,0 +1,39 @@ +# 邮箱地址黑名单 +hoj: + blacklist: + - "@ccmail.uk" + - "@exdonuts.com" + - "@hamham.uk" + - "@digdig.org" + - "@owleyes.ch" + - "@stayhome.li" + - "@fanclub.pm" + - "@hotsoup.be" + - "@simaenaga.com" + - "@tapi.re" + - "@fuwari.be" + - "@magim.be" + - "@mirai.re" + - "@moimoi.re" + - "@heisei.be" + - "@honeys.be" + - "@mbox.re" + - "@uma3.be" + - "@fuwa.li" + - "@kpost.be" + - "@risu.be" + - "@fuwa.be" + - "@usako.net" + - "@eay.jp" + - "@via.tokyo.jp" + - "@ichigo.me" + - "@choco.la" + - "@cream.pink" + - "@merry.pink" + - "@neko2.net" + - "@fuwamofu.com" + - "@ruru.be" + - "@macr2.com" + - "@f5.si" + - "@ahk.jp" + - "@svk.jp" \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/resources/logback-spring.xml b/src/hoj-springboot/DataBackup/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..4fc87af --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/logback-spring.xml @@ -0,0 +1,78 @@ + + + + + hoj + + + + + + %yellow(%d{yyyy-MM-dd HH:mm:ss}) %red([%thread]) %highlight(%-5level) %cyan(%logger{50}) - %magenta(%msg) %n + + UTF-8 + + + + + + + info + + DENY + + ACCEPT + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n + + UTF-8 + + + + + ${logging.path}/hoj.info.%d{yyyy-MM-dd}.%i.log + + 7 + + 200MB + + 1GB + + + + + + error + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n + + + + + + ${logging.path}/hoj.error.%d{yyyy-MM-dd}.%i.log + + 7 + + 200MB + + 1GB + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_registerCode.html b/src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_registerCode.html new file mode 100644 index 0000000..0135a59 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_registerCode.html @@ -0,0 +1,74 @@ + + + + + [[${OJ_SHORT_NAME}]]用户注册验证码 + + +
+
+
+ +
+
+
+

+ Dear New [[${OJ_SHORT_NAME}]]er +

+
+
+

+ 来自 邮件提醒 +

+

+ 您收到这封电子邮件是因为您 (也可能是某人冒充您的名义) 在 [[${OJ_SHORT_NAME}]] 上进行注册。假如这不是您本人所申请, + 请不用理会这封电子邮件, 但是如果您持续收到这类的信件骚扰, 请您尽快联络管理员。 +

+
+ 请使用以下验证码完成后续注册流程:
+
+ 注意:请您在收到邮件10分钟内([[${EXPIRE_TIME}]]前)使用,否则该验证码将会失效。 +
+     + +
+
+ +
+

+ 欢迎常来访问!
+ © 2021 +

+

+
+
+
+ + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_resetPassword.html b/src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_resetPassword.html new file mode 100644 index 0000000..f478d42 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_resetPassword.html @@ -0,0 +1,72 @@ + + + + + [[${OJ_SHORT_NAME}]]的重置密码邮件 + + +
+
+
+ +
+
+
+

+

+
+
+

+ 来自 邮件提醒 +

+

+ 您收到这封电子邮件是因为您 (也可能是某人冒充您的名义) 在 [[${OJ_SHORT_NAME}]] 上进行密码重置操作。假如这不是您本人所申请, 请不用理会这封电子邮件, 但是如果您持续收到这类的信件骚扰, 请您尽快联络管理员。 +

+
+ 请点击下面的链接完成后续重置密码的流程:
+ CLICK HERE
+ 注意:请您在收到邮件10分钟内([[${EXPIRE_TIME}]]前)使用,否则该重置密码链接将会失效。 +
+     + +
+
+ +
+

+ 欢迎常来访问!
+ © 2021 +

+

+
+
+
+ + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_testEmail.html b/src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_testEmail.html new file mode 100644 index 0000000..97ff2c3 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/main/resources/templates/emailTemplate_testEmail.html @@ -0,0 +1,72 @@ + + + + + [[${OJ_SHORT_NAME}]]超级管理员测试邮箱可用性邮件 + + +
+
+
+ +
+
+
+

+ Dear Super Admin +

+
+
+

+ 来自 邮件提醒 +

+

+ 您收到这封电子邮件是因为您在 [[${OJ_SHORT_NAME}]] 上进行邮箱配置更新,然后进行邮箱可行性的测试。 +

+
+ 经过本邮件的接收,可证实:
+ Test Success
+
+     + +
+
+ +
+

+ 欢迎常来访问!
+ © 2021 +

+

+
+
+
+ + \ No newline at end of file diff --git a/src/hoj-springboot/DataBackup/src/test/java/top/hcode/hoj/DataBackupApplicationTests.java b/src/hoj-springboot/DataBackup/src/test/java/top/hcode/hoj/DataBackupApplicationTests.java new file mode 100644 index 0000000..f7ff9e8 --- /dev/null +++ b/src/hoj-springboot/DataBackup/src/test/java/top/hcode/hoj/DataBackupApplicationTests.java @@ -0,0 +1,269 @@ +package top.hcode.hoj; + +import cn.hutool.core.util.ReUtil; + +import cn.hutool.crypto.SecureUtil; +import com.alibaba.cloud.nacos.NacosDiscoveryProperties; +import com.alibaba.nacos.api.exception.NacosException; +import com.alibaba.nacos.api.naming.NamingService; +import com.alibaba.nacos.api.naming.pojo.Instance; + +import org.jsoup.Connection; +import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.util.StringUtils; +import org.springframework.web.client.RestTemplate; +import top.hcode.hoj.mapper.*; +import top.hcode.hoj.pojo.entity.problem.Language; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.dao.common.impl.AnnouncementEntityServiceImpl; +import top.hcode.hoj.dao.discussion.impl.DiscussionEntityServiceImpl; +import top.hcode.hoj.dao.problem.impl.LanguageEntityServiceImpl; +import top.hcode.hoj.dao.user.impl.UserInfoEntityServiceImpl; +import top.hcode.hoj.dao.user.impl.UserRoleEntityServiceImpl; +import top.hcode.hoj.utils.IpUtils; +import top.hcode.hoj.utils.JsoupUtils; +import top.hcode.hoj.utils.RedisUtils; + +import java.io.IOException; +import java.net.*; +import java.util.*; +import java.util.regex.Pattern; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/24 17:24 + * @Description: + */ +@SpringBootTest +public class DataBackupApplicationTests { + + @Autowired + private JudgeMapper judgeMapper; + + @Autowired + private UserRoleMapper userRoleMapper; + + @Autowired + private UserRoleEntityServiceImpl userRoleService; + + @Autowired + private RoleAuthMapper roleAuthMapper; + + @Autowired + private ContestMapper contestMapper; + + @Autowired + private UserInfoEntityServiceImpl userInfoService; + + + @Autowired + private AnnouncementEntityServiceImpl announcementService; + + @Autowired + private DiscussionEntityServiceImpl discussionService; + + @Test + public void Test1() { + String hoj123456 = SecureUtil.md5("hoj123456"); + System.out.println(hoj123456); + } + + @Autowired + private NacosDiscoveryProperties discoveryProperties; + + @Test + public void Test2() { + String clusterName = discoveryProperties.getClusterName(); + System.out.println(clusterName); + // 获取该微服务的所有健康实例 + // 获取服务发现的相关API + NamingService namingService = discoveryProperties.namingServiceInstance(); + try { + // 获取该微服务的所有健康实例 + List instances = namingService.selectInstances("hoj-judge-server", true); + System.out.println(instances); + } catch (NacosException e) { + e.printStackTrace(); + } + + } + + @Test + public void Test3() { + String serviceIp = IpUtils.getServiceIp(); + System.out.println(serviceIp); + } + + + @Autowired + private RestTemplate restTemplate; + + @Test + public void Test5() throws IOException { + Enumeration ifaces = null; + try { + ifaces = NetworkInterface.getNetworkInterfaces(); + } catch (SocketException e) { + + } + String siteLocalAddress = null; + while (ifaces.hasMoreElements()) { + NetworkInterface iface = ifaces.nextElement(); + Enumeration addresses = iface.getInetAddresses(); + while (addresses.hasMoreElements()) { + InetAddress addr = addresses.nextElement(); + String hostAddress = addr.getHostAddress(); + if (addr instanceof Inet4Address) { + if (addr.isSiteLocalAddress()) { + siteLocalAddress = hostAddress; + } else { + break; + } + } + } + } + System.out.println(siteLocalAddress == null ? "" : siteLocalAddress); + } + + @Autowired + private RedisUtils redisUtils; + @Autowired + private UserInfoMapper userInfoMapper; + + @Test + public void Test6() throws IOException { + String JUDGE_NAME = "HDU"; + String HOST = "http://acm.hdu.edu.cn"; + String PROBLEM_URL = "/showproblem.php?pid=%s"; + Problem info = new Problem(); + String url = HOST + String.format(PROBLEM_URL, 1016); + Connection connection = JsoupUtils.getConnectionFromUrl(url, null, null); + Document document = JsoupUtils.getDocument(connection, null); + String html = document.html(); + info.setDescription(ReUtil.get(">Problem Description
([\\s\\S]*?)
", html, 1).replaceAll("src=\"../../", "src=\"" + HOST + "/")); + info.setInput(ReUtil.get(">Input
([\\s\\S]*?)
", html, 1)); + info.setOutput(ReUtil.get(">Output
([\\s\\S]*?)
", html, 1)); + info.setIsRemote(true); + System.out.println(info.getDescription()); + System.out.println(info.getInput()); + System.out.println(info.getOutput()); + } + + @Test + public void Test7() throws IOException { + String JUDGE_NAME = "CF"; + String HOST = "https://codeforces.com"; + String PROBLEM_URL = "/problemset/problem/%s/%s"; + + String problemId = "750A"; + String contestId = ReUtil.get("([0-9]+)[A-Z]{1}[0-9]{0,1}", problemId, 1); + String problemNum = ReUtil.get("[0-9]+([A-Z]{1}[0-9]{0,1})", problemId, 1); + + + String url = HOST + String.format(PROBLEM_URL, contestId, problemNum); + Connection connection = JsoupUtils.getConnectionFromUrl(url, null, null); + Document document = JsoupUtils.getDocument(connection, null); + String html = document.html(); + Problem info = new Problem(); + info.setProblemId(JUDGE_NAME + "-" + problemId); + + info.setTitle(ReUtil.get("
\\s*" + problemNum + "\\. ([\\s\\S]*?)
", html, 1).trim()); + + info.setTimeLimit(1000 * Integer.parseInt(ReUtil.get("([\\d\\.]+) (seconds?|s)\\s*", html, 1))); + + info.setMemoryLimit(Integer.parseInt(ReUtil.get("(\\d+) (megabytes|MB)\\s*", html, 1))); + + String tmpDesc = ReUtil.get("standard output\\s*
([\\s\\S]*?)
[\\s\\S]*?)
\\s*Input\\s*
([\\s\\S]*?)
", html, 1)); + + info.setOutput(ReUtil.get("
\\s*Output\\s*
([\\s\\S]*?)
", html, 1)); + + + List inputExampleList = ReUtil.findAll(Pattern.compile("
Input
([\\s\\S]*?)
"), html, 1); + + List outputExampleList = ReUtil.findAll(Pattern.compile("
Output
([\\s\\S]*?)
"), html, 1); + + + StringBuilder sb = new StringBuilder(); + + for (int i = 0; i < inputExampleList.size() && i < outputExampleList.size(); i++) { + sb.append(""); + sb.append(inputExampleList.get(i).replace("
", "")).append(""); + sb.append(""); + sb.append(outputExampleList.get(i).replace("
", "")).append("
"); + } + + info.setExamples(sb.toString()); + + System.out.println(info.getExamples()); + + info.setHint(ReUtil.get("
\\s*Note\\s*
([\\s\\S]*?)
", html, 1)); + info.setIsRemote(true); + info.setSource(String.format("

Problem:%s

" + + "Contest:" + ReUtil.get("(]+/contest/\\d+\">.+?)", html, 1).replace("/contest", HOST + "/contest") + .replace("color: black", "color: #009688;") + "

", + contestId, problemNum, JUDGE_NAME + "-" + problemId)); + + List all = ReUtil.findAll(Pattern.compile("([\\s\\S]*?)"), html, 1); + } + + + @Autowired + private LanguageEntityServiceImpl languageService; + + @Test + public void Test8() throws IOException { + LinkedHashMap languageList = new LinkedHashMap<>(); + languageList.put("GNU GCC C11 5.1.0", "text/x-csrc"); + languageList.put("Clang++17 Diagnostics", "text/x-c++src"); + languageList.put("GNU G++11 5.1.0", "text/x-c++src"); + languageList.put("GNU G++14 6.4.0", "text/x-c++src"); + languageList.put("GNU G++17 7.3.0", "text/x-c++src"); + languageList.put("Microsoft Visual C++ 2010", "text/x-c++src"); + languageList.put("Microsoft Visual C++ 2017", "text/x-c++src"); + languageList.put("C# Mono 6.8", "text/x-csharp"); + languageList.put("D DMD32 v2.091.0", "text/x-d"); + languageList.put("Go 1.15.6", "text/x-go"); + languageList.put("Haskell GHC 8.10.1", "text/x-haskell"); + languageList.put("Java 1.8.0_241", "text/x-java"); + languageList.put("Kotlin 1.4.0", "text/x-java"); + languageList.put("OCaml 4.02.1", "text/x-ocaml"); + languageList.put("Delphi 7", "text/x-pascal"); + languageList.put("Free Pascal 3.0.2", "text/x-pascal"); + languageList.put("PascalABC.NET 3.4.2", "text/x-pascal"); + languageList.put("Perl 5.20.1", "text/x-perl"); + languageList.put("PHP 7.2.13", "text/x-php"); + languageList.put("Python 2.7.18", "text/x-python"); + languageList.put("Python 3.9.1", "text/x-python"); + languageList.put("PyPy 2.7 (7.3.0)", "text/x-python"); + languageList.put("PyPy 3.7 (7.3.0)", "text/x-python"); + languageList.put("Ruby 3.0.0", "text/x-ruby"); + languageList.put("Rust 1.49.0", "text/x-rustsrc"); + languageList.put("Scala 2.12.8", "text/x-scala"); + languageList.put("JavaScript V8 4.8.0", "text/javascript"); + languageList.put("Node.js 12.6.3", "text/javascript"); + languageList.put("C# 8, .NET Core 3.1", "text/x-csharp"); + languageList.put("Java 11.0.6", "text/x-java"); + + List languageList1 = new LinkedList<>(); + for (String key : languageList.keySet()) { + String tmp = languageList.get(key); + languageList1.add(new Language().setName(key).setDescription(key).setOj("CF").setIsSpj(false).setContentType(tmp)); + + } + boolean b = languageService.saveOrUpdateBatch(languageList1); + System.out.println(b); + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/pom.xml b/src/hoj-springboot/JudgeServer/pom.xml new file mode 100644 index 0000000..e67d582 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/pom.xml @@ -0,0 +1,134 @@ + + + + hoj-springboot + top.hcode + 1.0-SNAPSHOT + + 4.0.0 + JudgeServer + jar + + + + + org.springframework.boot + spring-boot-maven-plugin + + + top.hcode.hoj.JudgeServerApplication + ZIP + + + + + repackage + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + UTF-8 + + + + + + + + top.hcode + api + 1.0-SNAPSHOT + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + com.alibaba.nacos + nacos-client + + + + + com.alibaba.nacos + nacos-client + 1.4.2 + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + org.projectlombok + lombok + true + + + com.alibaba + druid + + + com.baomidou + mybatis-plus-boot-starter + + + mysql + mysql-connector-java + + + + cn.hutool + hutool-all + 5.7.2 + + + + com.github.oshi + oshi-core + 5.6.1 + + + + + org.jsoup + jsoup + 1.13.1 + + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + org.junit.jupiter + junit-jupiter-api + + + + \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java b/src/hoj-springboot/JudgeServer/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java new file mode 100644 index 0000000..5e4ccdc --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java @@ -0,0 +1,2098 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.alibaba.druid.pool; + +import com.alibaba.druid.DruidRuntimeException; +import com.alibaba.druid.filter.Filter; +import com.alibaba.druid.filter.FilterChainImpl; +import com.alibaba.druid.filter.FilterManager; +import com.alibaba.druid.pool.vendor.NullExceptionSorter; +import com.alibaba.druid.proxy.jdbc.DataSourceProxy; +import com.alibaba.druid.proxy.jdbc.TransactionInfo; +import com.alibaba.druid.stat.JdbcDataSourceStat; +import com.alibaba.druid.stat.JdbcSqlStat; +import com.alibaba.druid.stat.JdbcStatManager; +import com.alibaba.druid.support.logging.Log; +import com.alibaba.druid.support.logging.LogFactory; +import com.alibaba.druid.util.*; + +import javax.management.JMException; +import javax.management.ObjectName; +import javax.management.openmbean.CompositeDataSupport; +import javax.security.auth.callback.NameCallback; +import javax.security.auth.callback.PasswordCallback; +import javax.sql.DataSource; +import java.io.PrintWriter; +import java.io.Serializable; +import java.sql.*; +import java.util.Date; +import java.util.*; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; +import java.util.concurrent.atomic.AtomicLongFieldUpdater; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; +import java.util.logging.Logger; + +public abstract class DruidAbstractDataSource extends WrapperAdapter implements DruidAbstractDataSourceMBean, DataSource, DataSourceProxy, Serializable { + private static final long serialVersionUID = 1L; + private static final Log LOG = LogFactory.getLog(DruidAbstractDataSource.class); + public static final int DEFAULT_INITIAL_SIZE = 0; + public static final int DEFAULT_MAX_ACTIVE_SIZE = 8; + public static final int DEFAULT_MAX_IDLE = 8; + public static final int DEFAULT_MIN_IDLE = 0; + public static final int DEFAULT_MAX_WAIT = -1; + public static final String DEFAULT_VALIDATION_QUERY = null; + public static final boolean DEFAULT_TEST_ON_BORROW = false; + public static final boolean DEFAULT_TEST_ON_RETURN = false; + public static final boolean DEFAULT_WHILE_IDLE = true; + public static final long DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS = 60000L; + public static final long DEFAULT_TIME_BETWEEN_CONNECT_ERROR_MILLIS = 500L; + public static final int DEFAULT_NUM_TESTS_PER_EVICTION_RUN = 3; + public static final long DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS = 1800000L; + public static final long DEFAULT_MAX_EVICTABLE_IDLE_TIME_MILLIS = 25200000L; + public static final long DEFAULT_PHY_TIMEOUT_MILLIS = -1L; + protected volatile boolean defaultAutoCommit = true; + protected volatile Boolean defaultReadOnly; + protected volatile Integer defaultTransactionIsolation; + protected volatile String defaultCatalog = null; + protected String name; + protected volatile String username; + protected volatile String password; + protected volatile String jdbcUrl; + protected volatile String driverClass; + protected volatile ClassLoader driverClassLoader; + protected volatile Properties connectProperties = new Properties(); + protected volatile PasswordCallback passwordCallback; + protected volatile NameCallback userCallback; + protected volatile int initialSize = 0; + protected volatile int maxActive = 8; + protected volatile int minIdle = 0; + protected volatile int maxIdle = 8; + protected volatile long maxWait = -1L; + protected int notFullTimeoutRetryCount = 0; + protected volatile String validationQuery; + protected volatile int validationQueryTimeout; + protected volatile boolean testOnBorrow; + protected volatile boolean testOnReturn; + protected volatile boolean testWhileIdle; + protected volatile boolean poolPreparedStatements; + protected volatile boolean sharePreparedStatements; + protected volatile int maxPoolPreparedStatementPerConnectionSize; + protected volatile boolean inited; + protected volatile boolean initExceptionThrow; + protected PrintWriter logWriter; + protected List filters; + private boolean clearFiltersEnable; + protected volatile ExceptionSorter exceptionSorter; + protected Driver driver; + protected volatile int queryTimeout; + protected volatile int transactionQueryTimeout; + protected long createTimespan; + protected volatile int maxWaitThreadCount; + protected volatile boolean accessToUnderlyingConnectionAllowed; + protected volatile long timeBetweenEvictionRunsMillis; + protected volatile int numTestsPerEvictionRun; + protected volatile long minEvictableIdleTimeMillis; + protected volatile long maxEvictableIdleTimeMillis; + protected volatile long keepAliveBetweenTimeMillis; + protected volatile long phyTimeoutMillis; + protected volatile long phyMaxUseCount; + protected volatile boolean removeAbandoned; + protected volatile long removeAbandonedTimeoutMillis; + protected volatile boolean logAbandoned; + protected volatile int maxOpenPreparedStatements; + protected volatile List connectionInitSqls; + protected volatile String dbType; + protected volatile long timeBetweenConnectErrorMillis; + protected volatile ValidConnectionChecker validConnectionChecker; + protected final Map activeConnections; + protected static final Object PRESENT = new Object(); + protected long id; + protected int connectionErrorRetryAttempts; + protected boolean breakAfterAcquireFailure; + protected long transactionThresholdMillis; + protected final Date createdTime; + protected Date initedTime; + protected volatile long errorCount; + protected volatile long dupCloseCount; + protected volatile long startTransactionCount; + protected volatile long commitCount; + protected volatile long rollbackCount; + protected volatile long cachedPreparedStatementHitCount; + protected volatile long preparedStatementCount; + protected volatile long closedPreparedStatementCount; + protected volatile long cachedPreparedStatementCount; + protected volatile long cachedPreparedStatementDeleteCount; + protected volatile long cachedPreparedStatementMissCount; + static final AtomicLongFieldUpdater errorCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "errorCount"); + static final AtomicLongFieldUpdater dupCloseCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "dupCloseCount"); + static final AtomicLongFieldUpdater startTransactionCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "startTransactionCount"); + static final AtomicLongFieldUpdater commitCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "commitCount"); + static final AtomicLongFieldUpdater rollbackCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "rollbackCount"); + static final AtomicLongFieldUpdater cachedPreparedStatementHitCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "cachedPreparedStatementHitCount"); + static final AtomicLongFieldUpdater preparedStatementCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "preparedStatementCount"); + static final AtomicLongFieldUpdater closedPreparedStatementCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "closedPreparedStatementCount"); + static final AtomicLongFieldUpdater cachedPreparedStatementCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "cachedPreparedStatementCount"); + static final AtomicLongFieldUpdater cachedPreparedStatementDeleteCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "cachedPreparedStatementDeleteCount"); + static final AtomicLongFieldUpdater cachedPreparedStatementMissCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "cachedPreparedStatementMissCount"); + protected final Histogram transactionHistogram; + private boolean dupCloseLogEnable; + private ObjectName objectName; + protected volatile long executeCount; + protected volatile long executeQueryCount; + protected volatile long executeUpdateCount; + protected volatile long executeBatchCount; + static final AtomicLongFieldUpdater executeQueryCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "executeQueryCount"); + static final AtomicLongFieldUpdater executeUpdateCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "executeUpdateCount"); + static final AtomicLongFieldUpdater executeBatchCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "executeBatchCount"); + static final AtomicLongFieldUpdater executeCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "executeCount"); + protected volatile Throwable createError; + protected volatile Throwable lastError; + protected volatile long lastErrorTimeMillis; + protected volatile Throwable lastCreateError; + protected volatile long lastCreateErrorTimeMillis; + protected volatile long lastCreateStartTimeMillis; + protected boolean isOracle; + protected boolean isMySql; + protected boolean useOracleImplicitCache; + protected ReentrantLock lock; + protected Condition notEmpty; + protected Condition empty; + protected ReentrantLock activeConnectionLock; + protected volatile int createErrorCount; + protected volatile int creatingCount; + protected volatile int directCreateCount; + protected volatile long createCount; + protected volatile long destroyCount; + protected volatile long createStartNanos; + static final AtomicIntegerFieldUpdater createErrorCountUpdater = AtomicIntegerFieldUpdater.newUpdater(DruidAbstractDataSource.class, "createErrorCount"); + static final AtomicIntegerFieldUpdater creatingCountUpdater = AtomicIntegerFieldUpdater.newUpdater(DruidAbstractDataSource.class, "creatingCount"); + static final AtomicIntegerFieldUpdater directCreateCountUpdater = AtomicIntegerFieldUpdater.newUpdater(DruidAbstractDataSource.class, "directCreateCount"); + static final AtomicLongFieldUpdater createCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "createCount"); + static final AtomicLongFieldUpdater destroyCountUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "destroyCount"); + static final AtomicLongFieldUpdater createStartNanosUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "createStartNanos"); + private Boolean useUnfairLock; + private boolean useLocalSessionState; + protected long timeBetweenLogStatsMillis; + protected DruidDataSourceStatLogger statLogger; + private boolean asyncCloseConnectionEnable; + protected int maxCreateTaskCount; + protected boolean failFast; + protected volatile int failContinuous; + protected volatile long failContinuousTimeMillis; + protected ScheduledExecutorService destroyScheduler; + protected ScheduledExecutorService createScheduler; + static final AtomicLongFieldUpdater failContinuousTimeMillisUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "failContinuousTimeMillis"); + static final AtomicIntegerFieldUpdater failContinuousUpdater = AtomicIntegerFieldUpdater.newUpdater(DruidAbstractDataSource.class, "failContinuous"); + protected boolean initVariants; + protected boolean initGlobalVariants; + protected volatile boolean onFatalError; + protected volatile int onFatalErrorMaxActive; + protected volatile int fatalErrorCount; + protected volatile int fatalErrorCountLastShrink; + protected volatile long lastFatalErrorTimeMillis; + protected volatile String lastFatalErrorSql; + protected volatile Throwable lastFatalError; + protected volatile long connectionIdSeed; + protected volatile long statementIdSeed; + protected volatile long resultSetIdSeed; + protected volatile long transactionIdSeed; + protected volatile long metaDataIdSeed; + static final AtomicLongFieldUpdater connectionIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "connectionIdSeed"); + static final AtomicLongFieldUpdater statementIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "statementIdSeed"); + static final AtomicLongFieldUpdater resultSetIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "resultSetIdSeed"); + static final AtomicLongFieldUpdater transactionIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "transactionIdSeed"); + static final AtomicLongFieldUpdater metaDataIdSeedUpdater = AtomicLongFieldUpdater.newUpdater(DruidAbstractDataSource.class, "metaDataIdSeed"); + + public DruidAbstractDataSource(boolean lockFair) { + this.validationQuery = DEFAULT_VALIDATION_QUERY; + this.validationQueryTimeout = -1; + this.testOnBorrow = false; + this.testOnReturn = false; + this.testWhileIdle = true; + this.poolPreparedStatements = false; + this.sharePreparedStatements = false; + this.maxPoolPreparedStatementPerConnectionSize = 10; + this.inited = false; + this.initExceptionThrow = true; + this.logWriter = new PrintWriter(System.out); + this.filters = new CopyOnWriteArrayList(); + this.clearFiltersEnable = true; + this.exceptionSorter = null; + this.maxWaitThreadCount = -1; + this.accessToUnderlyingConnectionAllowed = true; + this.timeBetweenEvictionRunsMillis = 60000L; + this.numTestsPerEvictionRun = 3; + this.minEvictableIdleTimeMillis = 1800000L; + this.maxEvictableIdleTimeMillis = 25200000L; + this.keepAliveBetweenTimeMillis = 120000L; + this.phyTimeoutMillis = -1L; + this.phyMaxUseCount = -1L; + this.removeAbandonedTimeoutMillis = 300000L; + this.maxOpenPreparedStatements = -1; + this.timeBetweenConnectErrorMillis = 500L; + this.validConnectionChecker = null; + this.activeConnections = new IdentityHashMap(); + this.connectionErrorRetryAttempts = 1; + this.breakAfterAcquireFailure = false; + this.transactionThresholdMillis = 0L; + this.createdTime = new Date(); + this.errorCount = 0L; + this.dupCloseCount = 0L; + this.startTransactionCount = 0L; + this.commitCount = 0L; + this.rollbackCount = 0L; + this.cachedPreparedStatementHitCount = 0L; + this.preparedStatementCount = 0L; + this.closedPreparedStatementCount = 0L; + this.cachedPreparedStatementCount = 0L; + this.cachedPreparedStatementDeleteCount = 0L; + this.cachedPreparedStatementMissCount = 0L; + this.transactionHistogram = new Histogram(new long[]{1L, 10L, 100L, 1000L, 10000L, 100000L}); + this.dupCloseLogEnable = false; + this.executeCount = 0L; + this.executeQueryCount = 0L; + this.executeUpdateCount = 0L; + this.executeBatchCount = 0L; + this.isOracle = false; + this.isMySql = false; + this.useOracleImplicitCache = true; + this.activeConnectionLock = new ReentrantLock(); + this.createErrorCount = 0; + this.creatingCount = 0; + this.directCreateCount = 0; + this.createCount = 0L; + this.destroyCount = 0L; + this.createStartNanos = 0L; + this.useUnfairLock = null; + this.useLocalSessionState = true; + this.statLogger = new DruidDataSourceStatLoggerImpl(); + this.asyncCloseConnectionEnable = false; + this.maxCreateTaskCount = 3; + this.failFast = false; + this.failContinuous = 0; + this.failContinuousTimeMillis = 0L; + this.initVariants = false; + this.initGlobalVariants = false; + this.onFatalError = false; + this.onFatalErrorMaxActive = 0; + this.fatalErrorCount = 0; + this.fatalErrorCountLastShrink = 0; + this.lastFatalErrorTimeMillis = 0L; + this.lastFatalErrorSql = null; + this.lastFatalError = null; + this.connectionIdSeed = 10000L; + this.statementIdSeed = 20000L; + this.resultSetIdSeed = 50000L; + this.transactionIdSeed = 60000L; + this.metaDataIdSeed = 80000L; + this.lock = new ReentrantLock(lockFair); + this.notEmpty = this.lock.newCondition(); + this.empty = this.lock.newCondition(); + } + + public boolean isUseLocalSessionState() { + return this.useLocalSessionState; + } + + public void setUseLocalSessionState(boolean useLocalSessionState) { + this.useLocalSessionState = useLocalSessionState; + } + + public DruidDataSourceStatLogger getStatLogger() { + return this.statLogger; + } + + public void setStatLoggerClassName(String className) { + try { + Class clazz = Class.forName(className); + DruidDataSourceStatLogger statLogger = (DruidDataSourceStatLogger)clazz.newInstance(); + this.setStatLogger(statLogger); + } catch (Exception var4) { + throw new IllegalArgumentException(className, var4); + } + } + + public void setStatLogger(DruidDataSourceStatLogger statLogger) { + this.statLogger = statLogger; + } + + public long getTimeBetweenLogStatsMillis() { + return this.timeBetweenLogStatsMillis; + } + + public void setTimeBetweenLogStatsMillis(long timeBetweenLogStatsMillis) { + this.timeBetweenLogStatsMillis = timeBetweenLogStatsMillis; + } + + public boolean isOracle() { + return this.isOracle; + } + + public void setOracle(boolean isOracle) { + if (this.inited) { + throw new IllegalStateException(); + } else { + this.isOracle = isOracle; + } + } + + public boolean isUseUnfairLock() { + return this.lock.isFair(); + } + + public void setUseUnfairLock(boolean useUnfairLock) { + if (this.lock.isFair() != !useUnfairLock) { + if (!this.inited) { + ReentrantLock lock = this.lock; + lock.lock(); + + try { + if (!this.inited) { + this.lock = new ReentrantLock(!useUnfairLock); + this.notEmpty = this.lock.newCondition(); + this.empty = this.lock.newCondition(); + this.useUnfairLock = useUnfairLock; + } + } finally { + lock.unlock(); + } + } + + } + } + + public boolean isUseOracleImplicitCache() { + return this.useOracleImplicitCache; + } + + public void setUseOracleImplicitCache(boolean useOracleImplicitCache) { + if (this.useOracleImplicitCache != useOracleImplicitCache) { + this.useOracleImplicitCache = useOracleImplicitCache; + boolean isOracleDriver10 = this.isOracle() && this.driver != null && this.driver.getMajorVersion() == 10; + if (isOracleDriver10 && useOracleImplicitCache) { + this.getConnectProperties().setProperty("oracle.jdbc.FreeMemoryOnEnterImplicitCache", "true"); + } else { + this.getConnectProperties().remove("oracle.jdbc.FreeMemoryOnEnterImplicitCache"); + } + } + + } + + public Throwable getLastCreateError() { + return this.lastCreateError; + } + + public Throwable getLastError() { + return this.lastError; + } + + public long getLastErrorTimeMillis() { + return this.lastErrorTimeMillis; + } + + public Date getLastErrorTime() { + return this.lastErrorTimeMillis <= 0L ? null : new Date(this.lastErrorTimeMillis); + } + + public long getLastCreateErrorTimeMillis() { + return this.lastCreateErrorTimeMillis; + } + + public Date getLastCreateErrorTime() { + return this.lastCreateErrorTimeMillis <= 0L ? null : new Date(this.lastCreateErrorTimeMillis); + } + + public int getTransactionQueryTimeout() { + return this.transactionQueryTimeout <= 0 ? this.queryTimeout : this.transactionQueryTimeout; + } + + public void setTransactionQueryTimeout(int transactionQueryTimeout) { + this.transactionQueryTimeout = transactionQueryTimeout; + } + + public long getExecuteCount() { + return this.executeCount + this.executeQueryCount + this.executeUpdateCount + this.executeBatchCount; + } + + public long getExecuteUpdateCount() { + return this.executeUpdateCount; + } + + public long getExecuteQueryCount() { + return this.executeQueryCount; + } + + public long getExecuteBatchCount() { + return this.executeBatchCount; + } + + public long getAndResetExecuteCount() { + return executeCountUpdater.getAndSet(this, 0L) + executeQueryCountUpdater.getAndSet(this, 0L) + executeUpdateCountUpdater.getAndSet(this, 0L) + executeBatchCountUpdater.getAndSet(this, 0L); + } + + public long getExecuteCount2() { + return this.executeCount; + } + + public void incrementExecuteCount() { + executeCountUpdater.incrementAndGet(this); + } + + public void incrementExecuteUpdateCount() { + ++this.executeUpdateCount; + } + + public void incrementExecuteQueryCount() { + ++this.executeQueryCount; + } + + public void incrementExecuteBatchCount() { + ++this.executeBatchCount; + } + + public boolean isDupCloseLogEnable() { + return this.dupCloseLogEnable; + } + + public void setDupCloseLogEnable(boolean dupCloseLogEnable) { + this.dupCloseLogEnable = dupCloseLogEnable; + } + + public ObjectName getObjectName() { + return this.objectName; + } + + public void setObjectName(ObjectName objectName) { + this.objectName = objectName; + } + + public Histogram getTransactionHistogram() { + return this.transactionHistogram; + } + + public void incrementCachedPreparedStatementCount() { + cachedPreparedStatementCountUpdater.incrementAndGet(this); + } + + public void decrementCachedPreparedStatementCount() { + cachedPreparedStatementCountUpdater.decrementAndGet(this); + } + + public void incrementCachedPreparedStatementDeleteCount() { + cachedPreparedStatementDeleteCountUpdater.incrementAndGet(this); + } + + public void incrementCachedPreparedStatementMissCount() { + cachedPreparedStatementMissCountUpdater.incrementAndGet(this); + } + + public long getCachedPreparedStatementMissCount() { + return this.cachedPreparedStatementMissCount; + } + + public long getCachedPreparedStatementAccessCount() { + return this.cachedPreparedStatementMissCount + this.cachedPreparedStatementHitCount; + } + + public long getCachedPreparedStatementDeleteCount() { + return this.cachedPreparedStatementDeleteCount; + } + + public long getCachedPreparedStatementCount() { + return this.cachedPreparedStatementCount; + } + + public void incrementClosedPreparedStatementCount() { + closedPreparedStatementCountUpdater.incrementAndGet(this); + } + + public long getClosedPreparedStatementCount() { + return this.closedPreparedStatementCount; + } + + public void incrementPreparedStatementCount() { + preparedStatementCountUpdater.incrementAndGet(this); + } + + public long getPreparedStatementCount() { + return this.preparedStatementCount; + } + + public void incrementCachedPreparedStatementHitCount() { + cachedPreparedStatementHitCountUpdater.incrementAndGet(this); + } + + public long getCachedPreparedStatementHitCount() { + return this.cachedPreparedStatementHitCount; + } + + public long getTransactionThresholdMillis() { + return this.transactionThresholdMillis; + } + + public void setTransactionThresholdMillis(long transactionThresholdMillis) { + this.transactionThresholdMillis = transactionThresholdMillis; + } + + public abstract void logTransaction(TransactionInfo var1); + + public long[] getTransactionHistogramValues() { + return this.transactionHistogram.toArray(); + } + + public long[] getTransactionHistogramRanges() { + return this.transactionHistogram.getRanges(); + } + + public long getCommitCount() { + return this.commitCount; + } + + public void incrementCommitCount() { + commitCountUpdater.incrementAndGet(this); + } + + public long getRollbackCount() { + return this.rollbackCount; + } + + public void incrementRollbackCount() { + rollbackCountUpdater.incrementAndGet(this); + } + + public long getStartTransactionCount() { + return this.startTransactionCount; + } + + public void incrementStartTransactionCount() { + startTransactionCountUpdater.incrementAndGet(this); + } + + public boolean isBreakAfterAcquireFailure() { + return this.breakAfterAcquireFailure; + } + + public void setBreakAfterAcquireFailure(boolean breakAfterAcquireFailure) { + this.breakAfterAcquireFailure = breakAfterAcquireFailure; + } + + public int getConnectionErrorRetryAttempts() { + return this.connectionErrorRetryAttempts; + } + + public void setConnectionErrorRetryAttempts(int connectionErrorRetryAttempts) { + this.connectionErrorRetryAttempts = connectionErrorRetryAttempts; + } + + public long getDupCloseCount() { + return this.dupCloseCount; + } + + public int getMaxPoolPreparedStatementPerConnectionSize() { + return this.maxPoolPreparedStatementPerConnectionSize; + } + + public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) { + if (maxPoolPreparedStatementPerConnectionSize > 0) { + this.poolPreparedStatements = true; + } else { + this.poolPreparedStatements = false; + } + + this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize; + } + + public boolean isSharePreparedStatements() { + return this.sharePreparedStatements; + } + + public void setSharePreparedStatements(boolean sharePreparedStatements) { + this.sharePreparedStatements = sharePreparedStatements; + } + + public void incrementDupCloseCount() { + dupCloseCountUpdater.incrementAndGet(this); + } + + public ValidConnectionChecker getValidConnectionChecker() { + return this.validConnectionChecker; + } + + public void setValidConnectionChecker(ValidConnectionChecker validConnectionChecker) { + this.validConnectionChecker = validConnectionChecker; + } + + public String getValidConnectionCheckerClassName() { + return this.validConnectionChecker == null ? null : this.validConnectionChecker.getClass().getName(); + } + + public void setValidConnectionCheckerClassName(String validConnectionCheckerClass) throws Exception { + Class clazz = Utils.loadClass(validConnectionCheckerClass); + ValidConnectionChecker validConnectionChecker = null; + if (clazz != null) { + validConnectionChecker = (ValidConnectionChecker)clazz.newInstance(); + this.validConnectionChecker = validConnectionChecker; + } else { + LOG.error("load validConnectionCheckerClass error : " + validConnectionCheckerClass); + } + + } + + public String getDbType() { + return this.dbType; + } + + public void setDbType(String dbType) { + this.dbType = dbType; + } + + public void addConnectionProperty(String name, String value) { + if (!StringUtils.equals(this.connectProperties.getProperty(name), value)) { + if (this.inited) { + throw new UnsupportedOperationException(); + } else { + this.connectProperties.put(name, value); + } + } + } + + public Collection getConnectionInitSqls() { + Collection result = this.connectionInitSqls; + return result == null ? Collections.emptyList() : result; + } + + public void setConnectionInitSqls(Collection connectionInitSqls) { + if (connectionInitSqls != null && connectionInitSqls.size() > 0) { + ArrayList newVal = null; + Iterator var3 = connectionInitSqls.iterator(); + + while(var3.hasNext()) { + Object o = var3.next(); + if (o != null) { + String s = o.toString(); + s = s.trim(); + if (s.length() != 0) { + if (newVal == null) { + newVal = new ArrayList(); + } + + newVal.add(s); + } + } + } + + this.connectionInitSqls = newVal; + } else { + this.connectionInitSqls = null; + } + + } + + public long getTimeBetweenConnectErrorMillis() { + return this.timeBetweenConnectErrorMillis; + } + + public void setTimeBetweenConnectErrorMillis(long timeBetweenConnectErrorMillis) { + this.timeBetweenConnectErrorMillis = timeBetweenConnectErrorMillis; + } + + public int getMaxOpenPreparedStatements() { + return this.maxPoolPreparedStatementPerConnectionSize; + } + + public void setMaxOpenPreparedStatements(int maxOpenPreparedStatements) { + this.setMaxPoolPreparedStatementPerConnectionSize(maxOpenPreparedStatements); + } + + public boolean isLogAbandoned() { + return this.logAbandoned; + } + + public void setLogAbandoned(boolean logAbandoned) { + this.logAbandoned = logAbandoned; + } + + public int getRemoveAbandonedTimeout() { + return (int)(this.removeAbandonedTimeoutMillis / 1000L); + } + + public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) { + this.removeAbandonedTimeoutMillis = (long)removeAbandonedTimeout * 1000L; + } + + public void setRemoveAbandonedTimeoutMillis(long removeAbandonedTimeoutMillis) { + this.removeAbandonedTimeoutMillis = removeAbandonedTimeoutMillis; + } + + public long getRemoveAbandonedTimeoutMillis() { + return this.removeAbandonedTimeoutMillis; + } + + public boolean isRemoveAbandoned() { + return this.removeAbandoned; + } + + public void setRemoveAbandoned(boolean removeAbandoned) { + this.removeAbandoned = removeAbandoned; + } + + public long getMinEvictableIdleTimeMillis() { + return this.minEvictableIdleTimeMillis; + } + + public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) { + if (minEvictableIdleTimeMillis < 30000L) { + LOG.error("minEvictableIdleTimeMillis should be greater than 30000"); + } + + this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis; + } + + public long getKeepAliveBetweenTimeMillis() { + return this.keepAliveBetweenTimeMillis; + } + + public void setKeepAliveBetweenTimeMillis(long keepAliveBetweenTimeMillis) { + if (keepAliveBetweenTimeMillis < 30000L) { + LOG.error("keepAliveBetweenTimeMillis should be greater than 30000"); + } + + this.keepAliveBetweenTimeMillis = keepAliveBetweenTimeMillis; + } + + public long getMaxEvictableIdleTimeMillis() { + return this.maxEvictableIdleTimeMillis; + } + + public void setMaxEvictableIdleTimeMillis(long maxEvictableIdleTimeMillis) { + if (maxEvictableIdleTimeMillis < 30000L) { + LOG.error("maxEvictableIdleTimeMillis should be greater than 30000"); + } + + if (maxEvictableIdleTimeMillis < this.minEvictableIdleTimeMillis) { + throw new IllegalArgumentException("maxEvictableIdleTimeMillis must be grater than minEvictableIdleTimeMillis"); + } else { + this.maxEvictableIdleTimeMillis = maxEvictableIdleTimeMillis; + } + } + + public long getPhyTimeoutMillis() { + return this.phyTimeoutMillis; + } + + public void setPhyTimeoutMillis(long phyTimeoutMillis) { + this.phyTimeoutMillis = phyTimeoutMillis; + } + + public long getPhyMaxUseCount() { + return this.phyMaxUseCount; + } + + public void setPhyMaxUseCount(long phyMaxUseCount) { + this.phyMaxUseCount = phyMaxUseCount; + } + + public int getNumTestsPerEvictionRun() { + return this.numTestsPerEvictionRun; + } + + /** @deprecated */ + @Deprecated + public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) { + this.numTestsPerEvictionRun = numTestsPerEvictionRun; + } + + public long getTimeBetweenEvictionRunsMillis() { + return this.timeBetweenEvictionRunsMillis; + } + + public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) { + this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis; + } + + public int getMaxWaitThreadCount() { + return this.maxWaitThreadCount; + } + + public void setMaxWaitThreadCount(int maxWaithThreadCount) { + this.maxWaitThreadCount = maxWaithThreadCount; + } + + public String getValidationQuery() { + return this.validationQuery; + } + + public void setValidationQuery(String validationQuery) { + this.validationQuery = validationQuery; + } + + public int getValidationQueryTimeout() { + return this.validationQueryTimeout; + } + + public void setValidationQueryTimeout(int validationQueryTimeout) { + if (validationQueryTimeout < 0 && "sqlserver".equals(this.dbType)) { + LOG.error("validationQueryTimeout should be >= 0"); + } + + this.validationQueryTimeout = validationQueryTimeout; + } + + public boolean isAccessToUnderlyingConnectionAllowed() { + return this.accessToUnderlyingConnectionAllowed; + } + + public void setAccessToUnderlyingConnectionAllowed(boolean accessToUnderlyingConnectionAllowed) { + this.accessToUnderlyingConnectionAllowed = accessToUnderlyingConnectionAllowed; + } + + public boolean isTestOnBorrow() { + return this.testOnBorrow; + } + + public void setTestOnBorrow(boolean testOnBorrow) { + this.testOnBorrow = testOnBorrow; + } + + public boolean isTestOnReturn() { + return this.testOnReturn; + } + + public void setTestOnReturn(boolean testOnReturn) { + this.testOnReturn = testOnReturn; + } + + public boolean isTestWhileIdle() { + return this.testWhileIdle; + } + + public void setTestWhileIdle(boolean testWhileIdle) { + this.testWhileIdle = testWhileIdle; + } + + public boolean isDefaultAutoCommit() { + return this.defaultAutoCommit; + } + + public void setDefaultAutoCommit(boolean defaultAutoCommit) { + this.defaultAutoCommit = defaultAutoCommit; + } + + public Boolean getDefaultReadOnly() { + return this.defaultReadOnly; + } + + public void setDefaultReadOnly(Boolean defaultReadOnly) { + this.defaultReadOnly = defaultReadOnly; + } + + public Integer getDefaultTransactionIsolation() { + return this.defaultTransactionIsolation; + } + + public void setDefaultTransactionIsolation(Integer defaultTransactionIsolation) { + this.defaultTransactionIsolation = defaultTransactionIsolation; + } + + public String getDefaultCatalog() { + return this.defaultCatalog; + } + + public void setDefaultCatalog(String defaultCatalog) { + this.defaultCatalog = defaultCatalog; + } + + public PasswordCallback getPasswordCallback() { + return this.passwordCallback; + } + + public void setPasswordCallback(PasswordCallback passwordCallback) { + this.passwordCallback = passwordCallback; + } + + public void setPasswordCallbackClassName(String passwordCallbackClassName) throws Exception { + Class clazz = Utils.loadClass(passwordCallbackClassName); + if (clazz != null) { + this.passwordCallback = (PasswordCallback)clazz.newInstance(); + } else { + LOG.error("load passwordCallback error : " + passwordCallbackClassName); + this.passwordCallback = null; + } + + } + + public NameCallback getUserCallback() { + return this.userCallback; + } + + public void setUserCallback(NameCallback userCallback) { + this.userCallback = userCallback; + } + + public boolean isInitVariants() { + return this.initVariants; + } + + public void setInitVariants(boolean initVariants) { + this.initVariants = initVariants; + } + + public boolean isInitGlobalVariants() { + return this.initGlobalVariants; + } + + public void setInitGlobalVariants(boolean initGlobalVariants) { + this.initGlobalVariants = initGlobalVariants; + } + + public int getQueryTimeout() { + return this.queryTimeout; + } + + public void setQueryTimeout(int seconds) { + this.queryTimeout = seconds; + } + + public String getName() { + return this.name != null ? this.name : "DataSource-" + System.identityHashCode(this); + } + + public void setName(String name) { + this.name = name; + } + + public boolean isPoolPreparedStatements() { + return this.poolPreparedStatements; + } + + public abstract void setPoolPreparedStatements(boolean var1); + + public long getMaxWait() { + return this.maxWait; + } + + public void setMaxWait(long maxWaitMillis) { + if (maxWaitMillis != this.maxWait) { + if (maxWaitMillis > 0L && this.useUnfairLock == null && !this.inited) { + ReentrantLock lock = this.lock; + lock.lock(); + + try { + if (!this.inited && !lock.isFair()) { + this.lock = new ReentrantLock(true); + this.notEmpty = this.lock.newCondition(); + this.empty = this.lock.newCondition(); + } + } finally { + lock.unlock(); + } + } + + if (this.inited) { + LOG.error("maxWait changed : " + this.maxWait + " -> " + maxWaitMillis); + } + + this.maxWait = maxWaitMillis; + } + } + + public int getNotFullTimeoutRetryCount() { + return this.notFullTimeoutRetryCount; + } + + public void setNotFullTimeoutRetryCount(int notFullTimeoutRetryCount) { + this.notFullTimeoutRetryCount = notFullTimeoutRetryCount; + } + + public int getMinIdle() { + return this.minIdle; + } + + public void setMinIdle(int value) { + if (value != this.minIdle) { + if (this.inited && value > this.maxActive) { + throw new IllegalArgumentException("minIdle greater than maxActive, " + this.maxActive + " < " + this.minIdle); + } else if (this.minIdle < 0) { + throw new IllegalArgumentException("minIdle must > 0"); + } else { + this.minIdle = value; + } + } + } + + public int getMaxIdle() { + return this.maxIdle; + } + + /** @deprecated */ + @Deprecated + public void setMaxIdle(int maxIdle) { + LOG.error("maxIdle is deprecated"); + this.maxIdle = maxIdle; + } + + public int getInitialSize() { + return this.initialSize; + } + + public void setInitialSize(int initialSize) { + if (this.initialSize != initialSize) { + if (this.inited) { + throw new UnsupportedOperationException(); + } else { + this.initialSize = initialSize; + } + } + } + + public long getCreateErrorCount() { + return (long)this.createErrorCount; + } + + public int getMaxActive() { + return this.maxActive; + } + + public abstract void setMaxActive(int var1); + + public String getUsername() { + return this.username; + } + + public void setUsername(String username) { + if (!StringUtils.equals(this.username, username)) { +// if (this.inited) { +// throw new UnsupportedOperationException(); +// } else { + this.username = username; +// } + } + } + + public String getPassword() { + return this.password; + } + + public void setPassword(String password) { + if (!StringUtils.equals(this.password, password)) { + if (this.inited) { + LOG.info("password changed"); + } + + this.password = password; + } + } + + public Properties getConnectProperties() { + return this.connectProperties; + } + + public abstract void setConnectProperties(Properties var1); + + public void setConnectionProperties(String connectionProperties) { + if (connectionProperties != null && connectionProperties.trim().length() != 0) { + String[] entries = connectionProperties.split(";"); + Properties properties = new Properties(); + + for(int i = 0; i < entries.length; ++i) { + String entry = entries[i]; + if (entry.length() > 0) { + int index = entry.indexOf(61); + if (index > 0) { + String name = entry.substring(0, index); + String value = entry.substring(index + 1); + properties.setProperty(name, value); + } else { + properties.setProperty(entry, ""); + } + } + } + + this.setConnectProperties(properties); + } else { + this.setConnectProperties((Properties)null); + } + } + + public String getUrl() { + return this.jdbcUrl; + } + + public String getRawJdbcUrl() { + return this.jdbcUrl; + } + + public void setUrl(String jdbcUrl) { + if (!StringUtils.equals(this.jdbcUrl, jdbcUrl)) { +// if (this.inited) { +// throw new UnsupportedOperationException(); +// } else { + if (jdbcUrl != null) { + jdbcUrl = jdbcUrl.trim(); + } + + this.jdbcUrl = jdbcUrl; +// } + } + } + + public String getDriverClassName() { + return this.driverClass; + } + + public void setDriverClassName(String driverClass) { + if (driverClass != null && driverClass.length() > 256) { + throw new IllegalArgumentException("driverClassName length > 256."); + } else { + if ("oracle.jdbc.driver.OracleDriver".equalsIgnoreCase(driverClass)) { + driverClass = "oracle.jdbc.OracleDriver"; + LOG.warn("oracle.jdbc.driver.OracleDriver is deprecated.Having use oracle.jdbc.OracleDriver."); + } + + if (this.inited) { + if (!StringUtils.equals(this.driverClass, driverClass)) { + throw new UnsupportedOperationException(); + } + } else { + this.driverClass = driverClass; + } + } + } + + public ClassLoader getDriverClassLoader() { + return this.driverClassLoader; + } + + public void setDriverClassLoader(ClassLoader driverClassLoader) { + this.driverClassLoader = driverClassLoader; + } + + public PrintWriter getLogWriter() { + return this.logWriter; + } + + public void setLogWriter(PrintWriter out) throws SQLException { + this.logWriter = out; + } + + public void setLoginTimeout(int seconds) { + DriverManager.setLoginTimeout(seconds); + } + + public int getLoginTimeout() { + return DriverManager.getLoginTimeout(); + } + + public Driver getDriver() { + return this.driver; + } + + public void setDriver(Driver driver) { + this.driver = driver; + } + + public int getDriverMajorVersion() { + return this.driver == null ? -1 : this.driver.getMajorVersion(); + } + + public int getDriverMinorVersion() { + return this.driver == null ? -1 : this.driver.getMinorVersion(); + } + + public ExceptionSorter getExceptionSorter() { + return this.exceptionSorter; + } + + public String getExceptionSorterClassName() { + return this.exceptionSorter == null ? null : this.exceptionSorter.getClass().getName(); + } + + public void setExceptionSorter(ExceptionSorter exceptionSoter) { + this.exceptionSorter = exceptionSoter; + } + + public void setExceptionSorterClassName(String exceptionSorter) throws Exception { + this.setExceptionSorter(exceptionSorter); + } + + public void setExceptionSorter(String exceptionSorter) throws SQLException { + if (exceptionSorter == null) { + this.exceptionSorter = NullExceptionSorter.getInstance(); + } else { + exceptionSorter = exceptionSorter.trim(); + if (exceptionSorter.length() == 0) { + this.exceptionSorter = NullExceptionSorter.getInstance(); + } else { + Class clazz = Utils.loadClass(exceptionSorter); + if (clazz == null) { + LOG.error("load exceptionSorter error : " + exceptionSorter); + } else { + try { + this.exceptionSorter = (ExceptionSorter)clazz.newInstance(); + } catch (Exception var4) { + throw new SQLException("create exceptionSorter error", var4); + } + } + + } + } + } + + public List getProxyFilters() { + return this.filters; + } + + public void setProxyFilters(List filters) { + if (filters != null) { + this.filters.addAll(filters); + } + + } + + public String[] getFilterClasses() { + List filterConfigList = this.getProxyFilters(); + List classes = new ArrayList(); + Iterator var3 = filterConfigList.iterator(); + + while(var3.hasNext()) { + Filter filter = (Filter)var3.next(); + classes.add(filter.getClass().getName()); + } + + return (String[])classes.toArray(new String[classes.size()]); + } + + public void setFilters(String filters) throws SQLException { + if (filters != null && filters.startsWith("!")) { + filters = filters.substring(1); + this.clearFilters(); + } + + this.addFilters(filters); + } + + public void addFilters(String filters) throws SQLException { + if (filters != null && filters.length() != 0) { + String[] filterArray = filters.split("\\,"); + String[] var3 = filterArray; + int var4 = filterArray.length; + + for(int var5 = 0; var5 < var4; ++var5) { + String item = var3[var5]; + FilterManager.loadFilter(this.filters, item.trim()); + } + + } + } + + public void clearFilters() { + if (this.isClearFiltersEnable()) { + this.filters.clear(); + } + } + + public void validateConnection(Connection conn) throws SQLException { + String query = this.getValidationQuery(); + if (conn.isClosed()) { + throw new SQLException("validateConnection: connection closed"); + } else if (this.validConnectionChecker != null) { + boolean result = true; + Exception error = null; + + try { + result = this.validConnectionChecker.isValidConnection(conn, this.validationQuery, this.validationQueryTimeout); + if (result && this.onFatalError) { + this.lock.lock(); + + try { + if (this.onFatalError) { + this.onFatalError = false; + } + } finally { + this.lock.unlock(); + } + } + } catch (SQLException var24) { + throw var24; + } catch (Exception var25) { + error = var25; + } + + if (!result) { + SQLException sqlError = error != null ? new SQLException("validateConnection false", error) : new SQLException("validateConnection false"); + throw sqlError; + } + } else { + if (null != query) { + Statement stmt = null; + ResultSet rs = null; + + try { + stmt = conn.createStatement(); + if (this.getValidationQueryTimeout() > 0) { + stmt.setQueryTimeout(this.getValidationQueryTimeout()); + } + + rs = stmt.executeQuery(query); + if (!rs.next()) { + throw new SQLException("validationQuery didn't return a row"); + } + + if (this.onFatalError) { + this.lock.lock(); + + try { + if (this.onFatalError) { + this.onFatalError = false; + } + } finally { + this.lock.unlock(); + } + } + } finally { + JdbcUtils.close(rs); + JdbcUtils.close(stmt); + } + } + + } + } + + /** @deprecated */ + protected boolean testConnectionInternal(Connection conn) { + return this.testConnectionInternal((DruidConnectionHolder)null, conn); + } + + protected boolean testConnectionInternal(DruidConnectionHolder holder, Connection conn) { + String sqlFile = JdbcSqlStat.getContextSqlFile(); + String sqlName = JdbcSqlStat.getContextSqlName(); + if (sqlFile != null) { + JdbcSqlStat.setContextSqlFile((String)null); + } + + if (sqlName != null) { + JdbcSqlStat.setContextSqlName((String)null); + } + + try { + boolean valid; + if (this.validConnectionChecker == null) { + if (conn.isClosed()) { + valid = false; + return valid; + } else if (null == this.validationQuery) { + valid = true; + return valid; + } else { + Statement stmt = null; + ResultSet rset = null; + + boolean var7; + try { + stmt = conn.createStatement(); + if (this.getValidationQueryTimeout() > 0) { + stmt.setQueryTimeout(this.validationQueryTimeout); + } + + rset = stmt.executeQuery(this.validationQuery); + if (!rset.next()) { + var7 = false; + return var7; + } + } finally { + JdbcUtils.close(rset); + JdbcUtils.close(stmt); + } + + if (this.onFatalError) { + this.lock.lock(); + + try { + if (this.onFatalError) { + this.onFatalError = false; + } + } finally { + this.lock.unlock(); + } + } + + var7 = true; + return var7; + } + } else { + valid = this.validConnectionChecker.isValidConnection(conn, this.validationQuery, this.validationQueryTimeout); + long currentTimeMillis = System.currentTimeMillis(); + if (holder != null) { + holder.lastValidTimeMillis = currentTimeMillis; + } + + if (valid && this.isMySql) { + long lastPacketReceivedTimeMs = MySqlUtils.getLastPacketReceivedTimeMs(conn); + if (lastPacketReceivedTimeMs > 0L) { + long mysqlIdleMillis = currentTimeMillis - lastPacketReceivedTimeMs; + if (lastPacketReceivedTimeMs > 0L && mysqlIdleMillis >= this.timeBetweenEvictionRunsMillis) { + this.discardConnection(conn); + String errorMsg = "discard long time none received connection. , jdbcUrl : " + this.jdbcUrl + ", jdbcUrl : " + this.jdbcUrl + ", lastPacketReceivedIdleMillis : " + mysqlIdleMillis; + LOG.error(errorMsg); + boolean var13 = false; + return var13; + } + } + } + + if (valid && this.onFatalError) { + this.lock.lock(); + + try { + if (this.onFatalError) { + this.onFatalError = false; + } + } finally { + this.lock.unlock(); + } + } + + boolean var46 = valid; + return var46; + } + } catch (Throwable var41) { + boolean var6 = false; + return var6; + } finally { + if (sqlFile != null) { + JdbcSqlStat.setContextSqlFile(sqlFile); + } + + if (sqlName != null) { + JdbcSqlStat.setContextSqlName(sqlName); + } + + } + } + + public Set getActiveConnections() { + this.activeConnectionLock.lock(); + + HashSet var1; + try { + var1 = new HashSet(this.activeConnections.keySet()); + } finally { + this.activeConnectionLock.unlock(); + } + + return var1; + } + + public List getActiveConnectionStackTrace() { + List list = new ArrayList(); + Iterator var2 = this.getActiveConnections().iterator(); + + while(var2.hasNext()) { + DruidPooledConnection conn = (DruidPooledConnection)var2.next(); + list.add(Utils.toString(conn.getConnectStackTrace())); + } + + return list; + } + + public long getCreateTimespanNano() { + return this.createTimespan; + } + + public long getCreateTimespanMillis() { + return this.createTimespan / 1000000L; + } + + public Driver getRawDriver() { + return this.driver; + } + + public boolean isClearFiltersEnable() { + return this.clearFiltersEnable; + } + + public void setClearFiltersEnable(boolean clearFiltersEnable) { + this.clearFiltersEnable = clearFiltersEnable; + } + + public long createConnectionId() { + return connectionIdSeedUpdater.incrementAndGet(this); + } + + public long createStatementId() { + return statementIdSeedUpdater.getAndIncrement(this); + } + + public long createMetaDataId() { + return metaDataIdSeedUpdater.getAndIncrement(this); + } + + public long createResultSetId() { + return resultSetIdSeedUpdater.getAndIncrement(this); + } + + public long createTransactionId() { + return transactionIdSeedUpdater.getAndIncrement(this); + } + + void initStatement(DruidPooledConnection conn, Statement stmt) throws SQLException { + boolean transaction = !conn.getConnectionHolder().underlyingAutoCommit; + int queryTimeout = transaction ? this.getTransactionQueryTimeout() : this.getQueryTimeout(); + if (queryTimeout > 0) { + stmt.setQueryTimeout(queryTimeout); + } + + } + + public void handleConnectionException(DruidPooledConnection conn, Throwable t) throws SQLException { + this.handleConnectionException(conn, t, (String)null); + } + + public abstract void handleConnectionException(DruidPooledConnection var1, Throwable var2, String var3) throws SQLException; + + protected abstract void recycle(DruidPooledConnection var1) throws SQLException; + + public Connection createPhysicalConnection(String url, Properties info) throws SQLException { + Object conn; + if (this.getProxyFilters().size() == 0) { + conn = this.getDriver().connect(url, info); + } else { + conn = (new FilterChainImpl(this)).connection_connect(info); + } + + createCountUpdater.incrementAndGet(this); + return (Connection)conn; + } + + public PhysicalConnectionInfo createPhysicalConnection() throws SQLException { + String url = this.getUrl(); + Properties connectProperties = this.getConnectProperties(); + String user; + if (this.getUserCallback() != null) { + user = this.getUserCallback().getName(); + } else { + user = this.getUsername(); + } + + String password = this.getPassword(); + PasswordCallback passwordCallback = this.getPasswordCallback(); + if (passwordCallback != null) { + if (passwordCallback instanceof DruidPasswordCallback) { + DruidPasswordCallback druidPasswordCallback = (DruidPasswordCallback)passwordCallback; + druidPasswordCallback.setUrl(url); + druidPasswordCallback.setProperties(connectProperties); + } + + char[] chars = passwordCallback.getPassword(); + if (chars != null) { + password = new String(chars); + } + } + + Properties physicalConnectProperties = new Properties(); + if (connectProperties != null) { + physicalConnectProperties.putAll(connectProperties); + } + + if (user != null && user.length() != 0) { + physicalConnectProperties.put("user", user); + } + + if (password != null && password.length() != 0) { + physicalConnectProperties.put("password", password); + } + + Connection conn = null; + long connectStartNanos = System.nanoTime(); + Map variables = this.initVariants ? new HashMap() : null; + Map globalVariables = this.initGlobalVariants ? new HashMap() : null; + createStartNanosUpdater.set(this, connectStartNanos); + creatingCountUpdater.incrementAndGet(this); + boolean var27 = false; + + long connectedNanos; + long initedNanos; + long validatedNanos; + try { + var27 = true; + conn = this.createPhysicalConnection(url, physicalConnectProperties); + connectedNanos = System.nanoTime(); + if (conn == null) { + throw new SQLException("connect error, url " + url + ", driverClass " + this.driverClass); + } + + this.initPhysicalConnection(conn, variables, globalVariables); + initedNanos = System.nanoTime(); + this.validateConnection(conn); + validatedNanos = System.nanoTime(); + this.setFailContinuous(false); + this.setCreateError((Throwable)null); + var27 = false; + } catch (SQLException var28) { + this.setCreateError(var28); + JdbcUtils.close(conn); + throw var28; + } catch (RuntimeException var29) { + this.setCreateError(var29); + JdbcUtils.close(conn); + throw var29; + } catch (Error var30) { + createErrorCountUpdater.incrementAndGet(this); + this.setCreateError(var30); + JdbcUtils.close(conn); + throw var30; + } finally { + if (var27) { + long nano = System.nanoTime() - connectStartNanos; + this.createTimespan += nano; + creatingCountUpdater.decrementAndGet(this); + } + } + + long nano = System.nanoTime() - connectStartNanos; + this.createTimespan += nano; + creatingCountUpdater.decrementAndGet(this); + return new PhysicalConnectionInfo(conn, connectStartNanos, connectedNanos, initedNanos, validatedNanos, variables, globalVariables); + } + + protected void setCreateError(Throwable ex) { + if (ex == null) { + this.lock.lock(); + + try { + if (this.createError != null) { + this.createError = null; + } + } finally { + this.lock.unlock(); + } + + } else { + createErrorCountUpdater.incrementAndGet(this); + long now = System.currentTimeMillis(); + this.lock.lock(); + + try { + this.createError = ex; + this.lastCreateError = ex; + this.lastCreateErrorTimeMillis = now; + } finally { + this.lock.unlock(); + } + + } + } + + public boolean isFailContinuous() { + return failContinuousUpdater.get(this) == 1; + } + + protected void setFailContinuous(boolean fail) { + if (fail) { + failContinuousTimeMillisUpdater.set(this, System.currentTimeMillis()); + } else { + failContinuousTimeMillisUpdater.set(this, 0L); + } + + boolean currentState = failContinuousUpdater.get(this) == 1; + if (currentState != fail) { + if (fail) { + failContinuousUpdater.set(this, 1); + if (LOG.isInfoEnabled()) { + LOG.info("{dataSource-" + this.getID() + "} failContinuous is true"); + } + } else { + failContinuousUpdater.set(this, 0); + if (LOG.isInfoEnabled()) { + LOG.info("{dataSource-" + this.getID() + "} failContinuous is false"); + } + } + + } + } + + public void initPhysicalConnection(Connection conn) throws SQLException { + this.initPhysicalConnection(conn, (Map)null, (Map)null); + } + + public void initPhysicalConnection(Connection conn, Map variables, Map globalVariables) throws SQLException { + if (conn.getAutoCommit() != this.defaultAutoCommit) { + conn.setAutoCommit(this.defaultAutoCommit); + } + + if (this.defaultReadOnly != null && conn.isReadOnly() != this.defaultReadOnly) { + conn.setReadOnly(this.defaultReadOnly); + } + + if (this.getDefaultTransactionIsolation() != null && conn.getTransactionIsolation() != this.getDefaultTransactionIsolation()) { + conn.setTransactionIsolation(this.getDefaultTransactionIsolation()); + } + + if (this.getDefaultCatalog() != null && this.getDefaultCatalog().length() != 0) { + conn.setCatalog(this.getDefaultCatalog()); + } + + Collection initSqls = this.getConnectionInitSqls(); + if (initSqls.size() != 0 || variables != null || globalVariables != null) { + Statement stmt = null; + + try { + stmt = conn.createStatement(); + Iterator var6 = initSqls.iterator(); + + String name; + while(var6.hasNext()) { + name = (String)var6.next(); + if (name != null) { + stmt.execute(name); + } + } + + if ("mysql".equals(this.dbType) || "aliyun_ads".equals(this.dbType)) { + ResultSet rs; + Object value; + if (variables != null) { + rs = null; + + try { + rs = stmt.executeQuery("show variables"); + + while(rs.next()) { + name = rs.getString(1); + value = rs.getObject(2); + variables.put(name, value); + } + } finally { + JdbcUtils.close(rs); + } + } + + if (globalVariables != null) { + rs = null; + + try { + rs = stmt.executeQuery("show global variables"); + + while(rs.next()) { + name = rs.getString(1); + value = rs.getObject(2); + globalVariables.put(name, value); + } + } finally { + JdbcUtils.close(rs); + } + } + } + } finally { + JdbcUtils.close(stmt); + } + + } + } + + public abstract int getActivePeak(); + + public CompositeDataSupport getCompositeData() throws JMException { + JdbcDataSourceStat stat = this.getDataSourceStat(); + Map map = new HashMap(); + map.put("ID", this.getID()); + map.put("URL", this.getUrl()); + map.put("Name", this.getName()); + map.put("FilterClasses", this.getFilterClasses()); + map.put("CreatedTime", this.getCreatedTime()); + map.put("RawDriverClassName", this.getDriverClassName()); + map.put("RawUrl", this.getUrl()); + map.put("RawDriverMajorVersion", this.getRawDriverMajorVersion()); + map.put("RawDriverMinorVersion", this.getRawDriverMinorVersion()); + map.put("Properties", this.getProperties()); + map.put("ConnectionActiveCount", (long)this.getActiveCount()); + map.put("ConnectionActiveCountMax", this.getActivePeak()); + map.put("ConnectionCloseCount", this.getCloseCount()); + map.put("ConnectionCommitCount", this.getCommitCount()); + map.put("ConnectionRollbackCount", this.getRollbackCount()); + map.put("ConnectionConnectLastTime", stat.getConnectionStat().getConnectLastTime()); + map.put("ConnectionConnectErrorCount", this.getCreateCount()); + if (this.createError != null) { + map.put("ConnectionConnectErrorLastTime", this.getLastCreateErrorTime()); + map.put("ConnectionConnectErrorLastMessage", this.createError.getMessage()); + map.put("ConnectionConnectErrorLastStackTrace", Utils.getStackTrace(this.createError)); + } else { + map.put("ConnectionConnectErrorLastTime", (Object)null); + map.put("ConnectionConnectErrorLastMessage", (Object)null); + map.put("ConnectionConnectErrorLastStackTrace", (Object)null); + } + + map.put("StatementCreateCount", stat.getStatementStat().getCreateCount()); + map.put("StatementPrepareCount", stat.getStatementStat().getPrepareCount()); + map.put("StatementPreCallCount", stat.getStatementStat().getPrepareCallCount()); + map.put("StatementExecuteCount", stat.getStatementStat().getExecuteCount()); + map.put("StatementRunningCount", stat.getStatementStat().getRunningCount()); + map.put("StatementConcurrentMax", stat.getStatementStat().getConcurrentMax()); + map.put("StatementCloseCount", stat.getStatementStat().getCloseCount()); + map.put("StatementErrorCount", stat.getStatementStat().getErrorCount()); + map.put("StatementLastErrorTime", (Object)null); + map.put("StatementLastErrorMessage", (Object)null); + map.put("StatementLastErrorStackTrace", (Object)null); + map.put("StatementExecuteMillisTotal", stat.getStatementStat().getMillisTotal()); + map.put("StatementExecuteLastTime", stat.getStatementStat().getExecuteLastTime()); + map.put("ConnectionConnectingCount", stat.getConnectionStat().getConnectingCount()); + map.put("ResultSetCloseCount", stat.getResultSetStat().getCloseCount()); + map.put("ResultSetOpenCount", stat.getResultSetStat().getOpenCount()); + map.put("ResultSetOpenningCount", stat.getResultSetStat().getOpeningCount()); + map.put("ResultSetOpenningMax", stat.getResultSetStat().getOpeningMax()); + map.put("ResultSetFetchRowCount", stat.getResultSetStat().getFetchRowCount()); + map.put("ResultSetLastOpenTime", stat.getResultSetStat().getLastOpenTime()); + map.put("ResultSetErrorCount", stat.getResultSetStat().getErrorCount()); + map.put("ResultSetOpenningMillisTotal", stat.getResultSetStat().getAliveMillisTotal()); + map.put("ResultSetLastErrorTime", stat.getResultSetStat().getLastErrorTime()); + map.put("ResultSetLastErrorMessage", (Object)null); + map.put("ResultSetLastErrorStackTrace", (Object)null); + map.put("ConnectionConnectCount", this.getConnectCount()); + if (this.createError != null) { + map.put("ConnectionErrorLastMessage", this.createError.getMessage()); + map.put("ConnectionErrorLastStackTrace", Utils.getStackTrace(this.createError)); + } else { + map.put("ConnectionErrorLastMessage", (Object)null); + map.put("ConnectionErrorLastStackTrace", (Object)null); + } + + map.put("ConnectionConnectMillisTotal", stat.getConnectionStat().getConnectMillis()); + map.put("ConnectionConnectingCountMax", stat.getConnectionStat().getConnectingMax()); + map.put("ConnectionConnectMillisMax", stat.getConnectionStat().getConnectMillisMax()); + map.put("ConnectionErrorLastTime", stat.getConnectionStat().getErrorLastTime()); + map.put("ConnectionAliveMillisMax", stat.getConnectionConnectAliveMillisMax()); + map.put("ConnectionAliveMillisMin", stat.getConnectionConnectAliveMillisMin()); + map.put("ConnectionHistogram", stat.getConnectionHistogramValues()); + map.put("StatementHistogram", stat.getStatementStat().getHistogramValues()); + return new CompositeDataSupport(JdbcStatManager.getDataSourceCompositeType(), map); + } + + public long getID() { + return this.id; + } + + public Date getCreatedTime() { + return this.createdTime; + } + + public abstract int getRawDriverMajorVersion(); + + public abstract int getRawDriverMinorVersion(); + + public abstract String getProperties(); + + public Logger getParentLogger() throws SQLFeatureNotSupportedException { + throw new SQLFeatureNotSupportedException(); + } + + public void closePreapredStatement(PreparedStatementHolder stmtHolder) { + if (stmtHolder != null) { + closedPreparedStatementCountUpdater.incrementAndGet(this); + this.decrementCachedPreparedStatementCount(); + this.incrementCachedPreparedStatementDeleteCount(); + JdbcUtils.close(stmtHolder.statement); + } + } + + protected void cloneTo(DruidAbstractDataSource to) { + to.defaultAutoCommit = this.defaultAutoCommit; + to.defaultReadOnly = this.defaultReadOnly; + to.defaultTransactionIsolation = this.defaultTransactionIsolation; + to.defaultCatalog = this.defaultCatalog; + to.name = this.name; + to.username = this.username; + to.password = this.password; + to.jdbcUrl = this.jdbcUrl; + to.driverClass = this.driverClass; + to.connectProperties = this.connectProperties; + to.passwordCallback = this.passwordCallback; + to.userCallback = this.userCallback; + to.initialSize = this.initialSize; + to.maxActive = this.maxActive; + to.minIdle = this.minIdle; + to.maxIdle = this.maxIdle; + to.maxWait = this.maxWait; + to.validationQuery = this.validationQuery; + to.validationQueryTimeout = this.validationQueryTimeout; + to.testOnBorrow = this.testOnBorrow; + to.testOnReturn = this.testOnReturn; + to.testWhileIdle = this.testWhileIdle; + to.poolPreparedStatements = this.poolPreparedStatements; + to.sharePreparedStatements = this.sharePreparedStatements; + to.maxPoolPreparedStatementPerConnectionSize = this.maxPoolPreparedStatementPerConnectionSize; + to.logWriter = this.logWriter; + if (this.filters != null) { + to.filters = new ArrayList(this.filters); + } + + to.exceptionSorter = this.exceptionSorter; + to.driver = this.driver; + to.queryTimeout = this.queryTimeout; + to.transactionQueryTimeout = this.transactionQueryTimeout; + to.accessToUnderlyingConnectionAllowed = this.accessToUnderlyingConnectionAllowed; + to.timeBetweenEvictionRunsMillis = this.timeBetweenEvictionRunsMillis; + to.numTestsPerEvictionRun = this.numTestsPerEvictionRun; + to.minEvictableIdleTimeMillis = this.minEvictableIdleTimeMillis; + to.removeAbandoned = this.removeAbandoned; + to.removeAbandonedTimeoutMillis = this.removeAbandonedTimeoutMillis; + to.logAbandoned = this.logAbandoned; + to.maxOpenPreparedStatements = this.maxOpenPreparedStatements; + if (this.connectionInitSqls != null) { + to.connectionInitSqls = new ArrayList(this.connectionInitSqls); + } + + to.dbType = this.dbType; + to.timeBetweenConnectErrorMillis = this.timeBetweenConnectErrorMillis; + to.validConnectionChecker = this.validConnectionChecker; + to.connectionErrorRetryAttempts = this.connectionErrorRetryAttempts; + to.breakAfterAcquireFailure = this.breakAfterAcquireFailure; + to.transactionThresholdMillis = this.transactionThresholdMillis; + to.dupCloseLogEnable = this.dupCloseLogEnable; + to.isOracle = this.isOracle; + to.useOracleImplicitCache = this.useOracleImplicitCache; + to.asyncCloseConnectionEnable = this.asyncCloseConnectionEnable; + to.createScheduler = this.createScheduler; + to.destroyScheduler = this.destroyScheduler; + } + + public abstract void discardConnection(Connection var1); + + public boolean isAsyncCloseConnectionEnable() { + return this.isRemoveAbandoned() ? true : this.asyncCloseConnectionEnable; + } + + public void setAsyncCloseConnectionEnable(boolean asyncCloseConnectionEnable) { + this.asyncCloseConnectionEnable = asyncCloseConnectionEnable; + } + + public ScheduledExecutorService getCreateScheduler() { + return this.createScheduler; + } + + public void setCreateScheduler(ScheduledExecutorService createScheduler) { + if (this.isInited()) { + throw new DruidRuntimeException("dataSource inited."); + } else { + this.createScheduler = createScheduler; + } + } + + public ScheduledExecutorService getDestroyScheduler() { + return this.destroyScheduler; + } + + public void setDestroyScheduler(ScheduledExecutorService destroyScheduler) { + if (this.isInited()) { + throw new DruidRuntimeException("dataSource inited."); + } else { + this.destroyScheduler = destroyScheduler; + } + } + + public boolean isInited() { + return this.inited; + } + + public int getMaxCreateTaskCount() { + return this.maxCreateTaskCount; + } + + public void setMaxCreateTaskCount(int maxCreateTaskCount) { + if (maxCreateTaskCount < 1) { + throw new IllegalArgumentException(); + } else { + this.maxCreateTaskCount = maxCreateTaskCount; + } + } + + public boolean isFailFast() { + return this.failFast; + } + + public void setFailFast(boolean failFast) { + this.failFast = failFast; + } + + public int getOnFatalErrorMaxActive() { + return this.onFatalErrorMaxActive; + } + + public void setOnFatalErrorMaxActive(int onFatalErrorMaxActive) { + this.onFatalErrorMaxActive = onFatalErrorMaxActive; + } + + public boolean isOnFatalError() { + return this.onFatalError; + } + + public boolean isInitExceptionThrow() { + return this.initExceptionThrow; + } + + public void setInitExceptionThrow(boolean initExceptionThrow) { + this.initExceptionThrow = initExceptionThrow; + } + + public static class PhysicalConnectionInfo { + private Connection connection; + private long connectStartNanos; + private long connectedNanos; + private long initedNanos; + private long validatedNanos; + private Map vairiables; + private Map globalVairiables; + long createTaskId; + + public PhysicalConnectionInfo(Connection connection, long connectStartNanos, long connectedNanos, long initedNanos, long validatedNanos) { + this(connection, connectStartNanos, connectedNanos, initedNanos, validatedNanos, (Map)null, (Map)null); + } + + public PhysicalConnectionInfo(Connection connection, long connectStartNanos, long connectedNanos, long initedNanos, long validatedNanos, Map vairiables, Map globalVairiables) { + this.connection = connection; + this.connectStartNanos = connectStartNanos; + this.connectedNanos = connectedNanos; + this.initedNanos = initedNanos; + this.validatedNanos = validatedNanos; + this.vairiables = vairiables; + this.globalVairiables = globalVairiables; + } + + public Connection getPhysicalConnection() { + return this.connection; + } + + public long getConnectStartNanos() { + return this.connectStartNanos; + } + + public long getConnectedNanos() { + return this.connectedNanos; + } + + public long getInitedNanos() { + return this.initedNanos; + } + + public long getValidatedNanos() { + return this.validatedNanos; + } + + public long getConnectNanoSpan() { + return this.connectedNanos - this.connectStartNanos; + } + + public Map getVairiables() { + return this.vairiables; + } + + public Map getGlobalVairiables() { + return this.globalVairiables; + } + } +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/JudgeServerApplication.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/JudgeServerApplication.java new file mode 100644 index 0000000..115e2e3 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/JudgeServerApplication.java @@ -0,0 +1,22 @@ +package top.hcode.hoj; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/29 22:12 + * @Description: 判题机服务系统启动类 + */ +@EnableDiscoveryClient +@SpringBootApplication +@EnableAsync(proxyTargetClass=true) //开启异步注解 +@EnableTransactionManagement +public class JudgeServerApplication { + public static void main(String[] args) { + SpringApplication.run(JudgeServerApplication.class,args); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/CommonResult.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/CommonResult.java new file mode 100644 index 0000000..8bbde9a --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/CommonResult.java @@ -0,0 +1,73 @@ +package top.hcode.hoj.common; + +import lombok.Data; + +@Data +public class CommonResult{ + + private final Integer status; // 状态码 + + private final T data; // 返回的数据 + + private final String msg; // 自定义信息 + + + /** + * 成功的结果 + * + * @param data 返回结果 + * @param msg 返回信息 + */ + public static CommonResult successResponse(T data, String msg) { + return new CommonResult<>(ResultStatus.SUCCESS.getStatus(), data, msg); + } + + + /** + * 成功的结果 + * + * @param data 返回结果 + */ + public static CommonResult successResponse(T data) { + return new CommonResult(ResultStatus.SUCCESS.getStatus(), data, "success"); + } + + /** + * 成功的结果 + * + * @param msg 返回信息 + */ + public static CommonResult successResponse(String msg) { + return new CommonResult(ResultStatus.SUCCESS.getStatus(), null, msg); + } + + /** + * 成功的结果 + */ + public static CommonResult successResponse() { + return new CommonResult(ResultStatus.SUCCESS.getStatus(), null, "success"); + } + + + /** + * 失败的结果,无异常 + * + * @param msg 返回信息 + */ + public static CommonResult errorResponse(String msg) { + return new CommonResult(ResultStatus.FAIL.getStatus(), null, msg); + } + + public static CommonResult errorResponse(ResultStatus resultStatus) { + return new CommonResult(resultStatus.getStatus(), null, resultStatus.getDescription()); + } + + public static CommonResult errorResponse(String msg, ResultStatus resultStatus) { + return new CommonResult(resultStatus.getStatus(), null, msg); + } + + public static CommonResult errorResponse(String msg, Integer status) { + return new CommonResult(status, null, msg); + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/ResultStatus.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/ResultStatus.java new file mode 100644 index 0000000..aa1329e --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/ResultStatus.java @@ -0,0 +1,31 @@ +package top.hcode.hoj.common; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/9 15:17 + * @Description: + */ +@Getter +@AllArgsConstructor +public enum ResultStatus { + + SUCCESS(200,"成功"), + + FAIL(400,"失败"), + + ACCESS_DENIED(401,"访问受限"), + + FORBIDDEN(403,"拒绝访问"), + + NOT_FOUND(404,"数据不存在"), + + SYSTEM_ERROR(500,"系统错误"); + + + private int status; + + private String description; +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/CompileError.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/CompileError.java new file mode 100644 index 0000000..1db9227 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/CompileError.java @@ -0,0 +1,22 @@ +package top.hcode.hoj.common.exception; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/31 00:16 + * @Description: + */ +@Data +public class CompileError extends Exception { + private String message; + private String stdout; + private String stderr; + + public CompileError(String message, String stdout, String stderr) { + super(message); + this.message = message; + this.stdout = stdout; + this.stderr = stderr; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/RuntimeError.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/RuntimeError.java new file mode 100644 index 0000000..ad97b38 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/RuntimeError.java @@ -0,0 +1,22 @@ +package top.hcode.hoj.common.exception; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/31 00:16 + * @Description: + */ +@Data +public class RuntimeError extends Exception { + private String message; + private String stdout; + private String stderr; + + public RuntimeError(String message, String stdout, String stderr) { + super(message); + this.message = message; + this.stdout = stdout; + this.stderr = stderr; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SubmitError.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SubmitError.java new file mode 100644 index 0000000..44e007c --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SubmitError.java @@ -0,0 +1,22 @@ +package top.hcode.hoj.common.exception; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/16 13:52 + * @Description: + */ +@Data +public class SubmitError extends Exception { + private String message; + private String stdout; + private String stderr; + + public SubmitError(String message, String stdout, String stderr) { + super(message); + this.message = message; + this.stdout = stdout; + this.stderr = stderr; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SystemError.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SystemError.java new file mode 100644 index 0000000..003442d --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/common/exception/SystemError.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.common.exception; + +import lombok.Data; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/31 00:17 + * @Description: + */ +@Data +public class SystemError extends Exception { + private String message; + private String stdout; + private String stderr; + + public SystemError(String message, String stdout, String stderr) { + super(message + " " + stderr); + this.message = message; + this.stdout = stdout; + this.stderr = stderr; + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/AsyncTaskConfig.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/AsyncTaskConfig.java new file mode 100644 index 0000000..ec77a4b --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/AsyncTaskConfig.java @@ -0,0 +1,48 @@ +package top.hcode.hoj.config; + +import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.AsyncConfigurer; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * @Author: Himit_ZH + * @Date: 2020/11/6 23:36 + * @Description: + */ +@Configuration +public class AsyncTaskConfig implements AsyncConfigurer { + @Override + public Executor getAsyncExecutor() { + ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); + // 线程池维护线程的最少数量 + taskExecutor.setCorePoolSize(10); + // 线程池维护线程的最大数量 + taskExecutor.setMaxPoolSize(50); + // 缓存队列 + taskExecutor.setQueueCapacity(200); + //活跃时间 + taskExecutor.setKeepAliveSeconds(10); + // 对拒绝task的处理策略 + //(1) 默认的ThreadPoolExecutor.AbortPolicy 处理程序遭到拒绝将抛出运行时RejectedExecutionException; + //(2) ThreadPoolExecutor.CallerRunsPolicy 线程调用运行该任务的 execute 本身。此策略提供简单的反馈控制机制,能够减缓新任务的提交速度 + //(3) ThreadPoolExecutor.DiscardPolicy 不能执行的任务将被删除; + //(4) ThreadPoolExecutor.DiscardOldestPolicy 如果执行程序尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序(如果再次失败,则重复此过程) + taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + // 线程名前缀,方便排查问题 + taskExecutor.setThreadNamePrefix("order-send-thread-"); + // 注意一定要初始化 + taskExecutor.initialize(); + + return taskExecutor; + + } + + @Override + public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { + return null; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/DruidConfiguration.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/DruidConfiguration.java new file mode 100644 index 0000000..d2e63de --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/DruidConfiguration.java @@ -0,0 +1,65 @@ +package top.hcode.hoj.config; + +import com.alibaba.druid.pool.DruidDataSource; +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/21 17:57 + * @Description: + */ +@Configuration +@RefreshScope +@Data +public class DruidConfiguration { + + @Value("${hoj.db.username:root}") + private String username; + + @Value("${hoj.db.password:hoj123456}") + private String password; + + @Value("${hoj.db.public-host:172.20.0.3}") + private String host; + + @Value("${hoj.db.port:3306}") + private Integer port; + + @Value("${hoj.db.name:hoj}") + private String name; + + @Value("${spring.datasource.driver-class-name}") + private String driverClassName; + + @Value("${spring.datasource.initial-size}") + private Integer initialSize; + + @Value("${spring.datasource.min-idle}") + private Integer minIdle; + + @Value("${spring.datasource.maxActive}") + private Integer maxActive; + + @Value("${spring.datasource.maxWait}") + private Integer maxWait; + + @Bean(name = "datasource") + @RefreshScope + public DruidDataSource dataSource() { + DruidDataSource datasource = new DruidDataSource(); + String url = "jdbc:mysql://" + host + ":" + port + "/" + name + "?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true"; + datasource.setUrl(url); + datasource.setUsername(username); + datasource.setPassword(password); + datasource.setDriverClassName(driverClassName); + datasource.setMaxActive(maxActive); + datasource.setInitialSize(initialSize); + datasource.setMinIdle(minIdle); + datasource.setMaxWait(maxWait); + return datasource; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/MyMetaObjectConfig.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/MyMetaObjectConfig.java new file mode 100644 index 0000000..4a28463 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/MyMetaObjectConfig.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.config; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/4 14:14 + * @Description: 处理mybatis-plus自动填充时间 + */ +@Component +public class MyMetaObjectConfig implements MetaObjectHandler { + + @Override + public void insertFill(MetaObject metaObject) { + this.setFieldValByName("gmtCreate",new Date(),metaObject); + this.setFieldValByName("gmtModified",new Date(),metaObject); + } + + @Override + public void updateFill(MetaObject metaObject) { + this.setFieldValByName("gmtModified", new Date(), metaObject); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/MybatisPlusConfig.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/MybatisPlusConfig.java new file mode 100644 index 0000000..5f81911 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/MybatisPlusConfig.java @@ -0,0 +1,24 @@ +package top.hcode.hoj.config; +import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * @Author: Himit_ZH + * @Date: 2020/7/19 21:04 + * @Description: + */ +@Configuration +@EnableTransactionManagement +@MapperScan("top.hcode.hoj.mapper") +public class MybatisPlusConfig { + + // 注册乐观锁插件 + @Bean + public OptimisticLockerInterceptor optimisticLockerInterceptor() { + return new OptimisticLockerInterceptor(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/NacosConfig.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/NacosConfig.java new file mode 100644 index 0000000..aedb0f1 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/NacosConfig.java @@ -0,0 +1,75 @@ +package top.hcode.hoj.config; + +import com.alibaba.cloud.nacos.NacosDiscoveryProperties; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import top.hcode.hoj.util.IpUtils; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2021/2/6 00:46 + * @Description: + */ +@Configuration +public class NacosConfig { + + private static final int cpuNum = Runtime.getRuntime().availableProcessors(); + + + @Value("${hoj-judge-server.max-task-num}") + private Integer maxTaskNum; + + @Value("${hoj-judge-server.remote-judge.max-task-num}") + private Integer maxRemoteTaskNum; + + @Value("${hoj-judge-server.remote-judge.open}") + private Boolean openRemoteJudge; + + @Value("${hoj-judge-server.ip}") + private String ip; + + @Value("${hoj-judge-server.port}") + private Integer port; + + @Value("${hoj-judge-server.name}") + private String name; + + + /** + * 用于改变程序自动获取的本机ip + */ + @Bean + @Primary + public NacosDiscoveryProperties nacosProperties() { + NacosDiscoveryProperties nacosDiscoveryProperties = new NacosDiscoveryProperties(); + //此处我只改了ip,其他参数可以根据自己的需求改变 + nacosDiscoveryProperties.setIp(IpUtils.getServiceIp()); + HashMap meta = new HashMap<>(); + int max = cpuNum * 2 + 1; + if (maxTaskNum != -1) { + max = maxTaskNum; + } + meta.put("maxTaskNum", String.valueOf(max)); + if (openRemoteJudge) { + max = (cpuNum * 2 + 1) * 2; + if (maxRemoteTaskNum != -1) { + max = maxRemoteTaskNum; + } + meta.put("maxRemoteTaskNum", String.valueOf(max)); + } + meta.put("judgeName", name); + nacosDiscoveryProperties.setMetadata(meta); + if (!ip.equals("-1")) { + nacosDiscoveryProperties.setIp(ip); + } + nacosDiscoveryProperties.setPort(port); + + nacosDiscoveryProperties.setService("hoj-judge-server"); + return nacosDiscoveryProperties; + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/RestTemplateConfig.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/RestTemplateConfig.java new file mode 100644 index 0000000..828506b --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/RestTemplateConfig.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class RestTemplateConfig { + @Bean + public RestTemplate restTemplate(ClientHttpRequestFactory factory) { + return new RestTemplate(factory); + } + + @Bean + public ClientHttpRequestFactory simpleClientHttpRequestFactory() { + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + factory.setReadTimeout(90000);//单位为ms + factory.setConnectTimeout(10000);//单位为ms + return factory; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/StartupRunner.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/StartupRunner.java new file mode 100644 index 0000000..37738b4 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/config/StartupRunner.java @@ -0,0 +1,97 @@ +package top.hcode.hoj.config; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.dao.JudgeServerEntityService; +import top.hcode.hoj.pojo.entity.judge.JudgeServer; +import top.hcode.hoj.util.IpUtils; + +import java.util.HashMap; + + +/** + * @Author: Himit_ZH + * @Date: 2021/2/19 22:11 + * @Description:项目启动加载类,启动完毕将该判题机加入到redis里面 + */ +@Component +@Slf4j +public class StartupRunner implements CommandLineRunner { + + @Value("${hoj-judge-server.max-task-num}") + private Integer maxTaskNum; + + @Value("${hoj-judge-server.remote-judge.max-task-num}") + private Integer maxRemoteTaskNum; + + @Value("${hoj-judge-server.remote-judge.open}") + private Boolean openRemoteJudge; + + @Value("${hoj-judge-server.name}") + private String name; + + @Value("${hoj-judge-server.ip}") + private String ip; + + @Value("${hoj-judge-server.port}") + private Integer port; + + private static final int cpuNum = Runtime.getRuntime().availableProcessors(); + + @Autowired + private JudgeServerEntityService judgeServerEntityService; + + @Override + @Transactional + public void run(String... args) { + + log.info("IP of the current judge server:" + ip); + log.info("Port of the current judge server:" + port); + + if (maxTaskNum == -1) { + maxTaskNum = cpuNum + 1; + } + if (ip.equals("-1")) { + ip = IpUtils.getLocalIpv4Address(); + } + UpdateWrapper judgeServerQueryWrapper = new UpdateWrapper<>(); + judgeServerQueryWrapper.eq("ip", ip).eq("port", port); + judgeServerEntityService.remove(judgeServerQueryWrapper); + boolean isOk1 = judgeServerEntityService.save(new JudgeServer() + .setCpuCore(cpuNum) + .setIp(ip) + .setPort(port) + .setUrl(ip + ":" + port) + .setMaxTaskNumber(maxTaskNum) + .setIsRemote(false) + .setName(name)); + boolean isOk2 = true; + if (openRemoteJudge) { + if (maxRemoteTaskNum == -1) { + maxRemoteTaskNum = cpuNum * 2 + 1; + } + isOk2 = judgeServerEntityService.save(new JudgeServer() + .setCpuCore(cpuNum) + .setIp(ip) + .setPort(port) + .setUrl(ip + ":" + port) + .setMaxTaskNumber(maxRemoteTaskNum) + .setIsRemote(true) + .setName(name)); + } + + if (!isOk1 || !isOk2) { + log.error("初始化判题机信息到数据库失败,请重新启动试试!"); + } else { + HashMap judgeServerInfo = judgeServerEntityService.getJudgeServerInfo(); + log.info("HOJ-JudgeServer had successfully started! The judge config and sandbox config Info:" + judgeServerInfo); + } + + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/controller/JudgeController.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/controller/JudgeController.java new file mode 100644 index 0000000..84f1537 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/controller/JudgeController.java @@ -0,0 +1,138 @@ +package top.hcode.hoj.controller; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; +import top.hcode.hoj.common.CommonResult; +import top.hcode.hoj.common.ResultStatus; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.dao.JudgeServerEntityService; +import top.hcode.hoj.pojo.dto.CompileDTO; +import top.hcode.hoj.pojo.dto.TestJudgeReq; +import top.hcode.hoj.pojo.dto.TestJudgeRes; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.dto.ToJudgeDTO; +import top.hcode.hoj.service.JudgeService; + +import java.util.HashMap; + + +/** + * @Author: Himit_ZH + * @Date: 2020/10/29 22:22 + * @Description: 处理代码提交 + */ +@RestController +@RefreshScope +public class JudgeController { + + @Autowired + private JudgeService judgeService; + + @Value("${hoj.judge.token}") + private String judgeToken; + + @Value("${hoj-judge-server.remote-judge.open}") + private Boolean openRemoteJudge; + + @Autowired + private JudgeServerEntityService judgeServerEntityService; + + @RequestMapping("/version") + public CommonResult> getVersion() { + return CommonResult.successResponse(judgeServerEntityService.getJudgeServerInfo(), "运行正常"); + } + + @PostMapping(value = "/judge") + public CommonResult submitProblemJudge(@RequestBody ToJudgeDTO toJudgeDTO) { + + if (!toJudgeDTO.getToken().equals(judgeToken)) { + return CommonResult.errorResponse("对不起!您使用的判题服务调用凭证不正确!访问受限!", ResultStatus.ACCESS_DENIED); + } + + Judge judge = toJudgeDTO.getJudge(); + + if (judge == null || judge.getSubmitId() == null || judge.getUid() == null || judge.getPid() == null) { + return CommonResult.errorResponse("调用参数错误!请检查您的调用参数!"); + } + + judgeService.judge(judge); + + return CommonResult.successResponse("判题机评测完成!"); + } + + + @PostMapping(value = "/test-judge") + public CommonResult submitProblemTestJudge(@RequestBody TestJudgeReq testJudgeReq) { + + if (testJudgeReq == null + || StringUtils.isEmpty(testJudgeReq.getCode()) + || StringUtils.isEmpty(testJudgeReq.getLanguage()) + || StringUtils.isEmpty(testJudgeReq.getUniqueKey()) + || testJudgeReq.getTimeLimit() == null + || testJudgeReq.getMemoryLimit() == null + || testJudgeReq.getStackLimit() == null) { + return CommonResult.errorResponse("调用参数错误!请检查您的调用参数!"); + } + + if (!testJudgeReq.getToken().equals(judgeToken)) { + return CommonResult.errorResponse("对不起!您使用的判题服务调用凭证不正确!访问受限!", ResultStatus.ACCESS_DENIED); + } + return CommonResult.successResponse(judgeService.testJudge(testJudgeReq)); + } + + + @PostMapping(value = "/compile-spj") + public CommonResult compileSpj(@RequestBody CompileDTO compileDTO) { + + if (!compileDTO.getToken().equals(judgeToken)) { + return CommonResult.errorResponse("对不起!您使用的判题服务调用凭证不正确!访问受限!", ResultStatus.ACCESS_DENIED); + } + + try { + judgeService.compileSpj(compileDTO.getCode(), compileDTO.getPid(), compileDTO.getLanguage(), compileDTO.getExtraFiles()); + return CommonResult.successResponse(null, "编译成功!"); + } catch (SystemError systemError) { + return CommonResult.errorResponse(systemError.getStderr(), ResultStatus.SYSTEM_ERROR); + } + } + + @PostMapping(value = "/compile-interactive") + public CommonResult compileInteractive(@RequestBody CompileDTO compileDTO) { + + if (!compileDTO.getToken().equals(judgeToken)) { + return CommonResult.errorResponse("对不起!您使用的判题服务调用凭证不正确!访问受限!", ResultStatus.ACCESS_DENIED); + } + + try { + judgeService.compileInteractive(compileDTO.getCode(), compileDTO.getPid(), compileDTO.getLanguage(), compileDTO.getExtraFiles()); + return CommonResult.successResponse(null, "编译成功!"); + } catch (SystemError systemError) { + return CommonResult.errorResponse(systemError.getStderr(), ResultStatus.SYSTEM_ERROR); + } + } + + @PostMapping(value = "/remote-judge") + public CommonResult remoteJudge(@RequestBody ToJudgeDTO toJudgeDTO) { + + if (!openRemoteJudge) { + return CommonResult.errorResponse("对不起!该判题服务器未开启远程虚拟判题功能!", ResultStatus.ACCESS_DENIED); + } + + if (!toJudgeDTO.getToken().equals(judgeToken)) { + return CommonResult.errorResponse("对不起!您使用的判题服务调用凭证不正确!访问受限!", ResultStatus.ACCESS_DENIED); + } + + + if (toJudgeDTO.getJudge() == null) { + return CommonResult.errorResponse("请求参数不能为空!"); + } + + judgeService.remoteJudge(toJudgeDTO); + + return CommonResult.successResponse("提交成功"); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/controller/SystemConfigController.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/controller/SystemConfigController.java new file mode 100644 index 0000000..49ab787 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/controller/SystemConfigController.java @@ -0,0 +1,25 @@ +package top.hcode.hoj.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import top.hcode.hoj.service.SystemConfigService; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/3 20:12 + * @Description: + */ +@RestController +public class SystemConfigController { + + @Autowired + private SystemConfigService systemConfigService; + + @RequestMapping("/get-sys-config") + public HashMap getSystemConfig(){ + return systemConfigService.getSystemConfig(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestEntityService.java new file mode 100644 index 0000000..6433a13 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestEntityService.java @@ -0,0 +1,17 @@ +package top.hcode.hoj.dao; + + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.contest.Contest; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestEntityService extends IService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestRecordEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestRecordEntityService.java new file mode 100644 index 0000000..a1283f0 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ContestRecordEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ContestRecordEntityService extends IService { + void updateContestRecord(Integer score, Integer status, Long submitId, Integer useTime); +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeCaseEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeCaseEntityService.java new file mode 100644 index 0000000..a09daee --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeCaseEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface JudgeCaseEntityService extends IService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeEntityService.java new file mode 100644 index 0000000..c4fe1e9 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeEntityService.java @@ -0,0 +1,17 @@ +package top.hcode.hoj.dao; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.judge.Judge; + + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface JudgeEntityService extends IService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeServerEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeServerEntityService.java new file mode 100644 index 0000000..403d8e6 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/JudgeServerEntityService.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.dao; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.judge.JudgeServer; + +import java.util.HashMap; + +public interface JudgeServerEntityService extends IService { + + public HashMap getJudgeServerInfo(); +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCaseEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCaseEntityService.java new file mode 100644 index 0000000..2f27a7d --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCaseEntityService.java @@ -0,0 +1,12 @@ +package top.hcode.hoj.dao; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/14 19:58 + * @Description: + */ +public interface ProblemCaseEntityService extends IService { +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCountEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCountEntityService.java new file mode 100644 index 0000000..869b9b2 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemCountEntityService.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.dao; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.ProblemCount; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface ProblemCountEntityService extends IService { + + void updateCount(int status, Long pid); + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemEntityService.java new file mode 100644 index 0000000..fae253d --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/ProblemEntityService.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.dao; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.problem.Problem; + + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ + +public interface ProblemEntityService extends IService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/RemoteJudgeAccountEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/RemoteJudgeAccountEntityService.java new file mode 100644 index 0000000..8416668 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/RemoteJudgeAccountEntityService.java @@ -0,0 +1,7 @@ +package top.hcode.hoj.dao; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; + +public interface RemoteJudgeAccountEntityService extends IService { +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserAcproblemEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserAcproblemEntityService.java new file mode 100644 index 0000000..a62e752 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserAcproblemEntityService.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao; + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface UserAcproblemEntityService extends IService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserRecordEntityService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserRecordEntityService.java new file mode 100644 index 0000000..061c4fa --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/UserRecordEntityService.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.dao; + + +import com.baomidou.mybatisplus.extension.service.IService; +import top.hcode.hoj.pojo.entity.user.UserRecord; + + +/** + *

+ * 服务类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +public interface UserRecordEntityService extends IService { + void updateRecord(String uid, Long submitId, Long pid, Integer score); +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ContestEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ContestEntityServiceImpl.java new file mode 100644 index 0000000..24ada6b --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ContestEntityServiceImpl.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.dao.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service;; +import top.hcode.hoj.mapper.ContestMapper; + +import top.hcode.hoj.pojo.entity.contest.Contest; +import top.hcode.hoj.dao.ContestEntityService; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ContestEntityServiceImpl extends ServiceImpl implements ContestEntityService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ContestRecordEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ContestRecordEntityServiceImpl.java new file mode 100644 index 0000000..c593c07 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ContestRecordEntityServiceImpl.java @@ -0,0 +1,90 @@ +package top.hcode.hoj.dao.impl; + + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.ContestRecordMapper; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; +import top.hcode.hoj.dao.ContestRecordEntityService; +import top.hcode.hoj.util.Constants; + +import java.util.Arrays; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ContestRecordEntityServiceImpl extends ServiceImpl implements ContestRecordEntityService { + + @Autowired + private ContestRecordMapper contestRecordMapper; + + private static List penaltyStatus = Arrays.asList( + Constants.Judge.STATUS_PRESENTATION_ERROR.getStatus(), + Constants.Judge.STATUS_WRONG_ANSWER.getStatus(), + Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus(), + Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED.getStatus(), + Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()); + + + @Override + public void updateContestRecord(Integer score, Integer status, Long submitId, Integer useTime) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + // 如果是AC + if (status.intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus()) { + updateWrapper.set("status", Constants.Contest.RECORD_AC.getCode()); + // 部分通过 + } else if (status.intValue() == Constants.Judge.STATUS_PARTIAL_ACCEPTED.getStatus()) { + updateWrapper.set("status", Constants.Contest.RECORD_NOT_AC_NOT_PENALTY.getCode()); + // 需要被罚时的状态 + } else if (penaltyStatus.contains(status)) { + updateWrapper.set("status", Constants.Contest.RECORD_NOT_AC_PENALTY.getCode()); + + } else { + updateWrapper.set("status", Constants.Contest.RECORD_NOT_AC_NOT_PENALTY.getCode()); + } + + if (score != null) { + updateWrapper.set("score", score); + } + + updateWrapper.set("use_time", useTime); + + updateWrapper.eq("submit_id", submitId); // submit_id一定只有一个 + boolean result = contestRecordMapper.update(null, updateWrapper) > 0; + if (!result) { + tryAgainUpdate(updateWrapper); + } + } + + public void tryAgainUpdate(UpdateWrapper updateWrapper) { + boolean retryable; + int attemptNumber = 0; + do { + boolean result = contestRecordMapper.update(null, updateWrapper) > 0; + if (result) { + break; + } else { + attemptNumber++; + retryable = attemptNumber < 8; + if (attemptNumber == 8) { + log.error("更新contest_record表超过最大重试次数"); + break; + } + try { + Thread.sleep(500); + } catch (InterruptedException e) { + log.error(e.getMessage()); + } + } + } while (retryable); + } +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeCaseEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeCaseEntityServiceImpl.java new file mode 100644 index 0000000..b012681 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeCaseEntityServiceImpl.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.dao.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.JudgeCaseMapper; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import top.hcode.hoj.dao.JudgeCaseEntityService; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class JudgeCaseEntityServiceImpl extends ServiceImpl implements JudgeCaseEntityService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeEntityServiceImpl.java new file mode 100644 index 0000000..a4dde44 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeEntityServiceImpl.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.dao.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.JudgeMapper; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.dao.JudgeEntityService; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class JudgeEntityServiceImpl extends ServiceImpl implements JudgeEntityService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeServerEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeServerEntityServiceImpl.java new file mode 100644 index 0000000..fa946c3 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/JudgeServerEntityServiceImpl.java @@ -0,0 +1,82 @@ +package top.hcode.hoj.dao.impl; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Service; +import top.hcode.hoj.judge.SandboxRun; +import top.hcode.hoj.mapper.JudgeServerMapper; +import top.hcode.hoj.pojo.entity.judge.JudgeServer; +import top.hcode.hoj.dao.JudgeServerEntityService; + +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/15 11:27 + * @Description: + */ +@Service +@Slf4j(topic = "hoj") +@RefreshScope +public class JudgeServerEntityServiceImpl extends ServiceImpl implements JudgeServerEntityService { + + + @Value("${hoj-judge-server.max-task-num}") + private Integer maxTaskNum; + + @Value("${hoj-judge-server.remote-judge.open}") + private Boolean isOpenRemoteJudge; + + @Value("${hoj-judge-server.remote-judge.max-task-num}") + private Integer RemoteJudgeMaxTaskNum; + + @Value("${hoj-judge-server.name}") + private String name; + + @Override + public HashMap getJudgeServerInfo() { + + HashMap res = new HashMap<>(); + + res.put("version", "20220820"); + res.put("currentTime", new Date()); + res.put("judgeServerName", name); + res.put("cpu", Runtime.getRuntime().availableProcessors()); + res.put("languages", Arrays.asList("G++ 7.5.0", "GCC 7.5.0", "Python 3.7.5", + "Python 2.7.17", "OpenJDK 1.8", "Golang 1.16", "C# Mono 4.6.2", + "PHP 7.3.33","JavaScript Node 14.19.0","JavaScript V8 8.4.109", + "PyPy 2.7.18 (7.3.8)","PyPy 3.8.12 (7.3.8)")); + + if (maxTaskNum == -1) { + res.put("maxTaskNum", Runtime.getRuntime().availableProcessors() + 1); + } else { + res.put("maxTaskNum", maxTaskNum); + } + if (isOpenRemoteJudge) { + res.put("isOpenRemoteJudge", true); + if (RemoteJudgeMaxTaskNum == -1) { + res.put("remoteJudgeMaxTaskNum", Runtime.getRuntime().availableProcessors() * 2 + 1); + } else { + res.put("remoteJudgeMaxTaskNum", RemoteJudgeMaxTaskNum); + } + } + + String versionResp = ""; + + try { + versionResp = SandboxRun.getRestTemplate().getForObject(SandboxRun.getSandboxBaseUrl() + "/version", String.class); + } catch (Exception e) { + res.put("SandBoxMsg", MapUtil.builder().put("error", e.getMessage()).map()); + return res; + } + + res.put("SandBoxMsg", JSONUtil.parseObj(versionResp)); + return res; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemCaseEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemCaseEntityServiceImpl.java new file mode 100644 index 0000000..541a4cd --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemCaseEntityServiceImpl.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.dao.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.ProblemCaseMapper; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.dao.ProblemCaseEntityService; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/14 19:59 + * @Description: + */ +@Service +public class ProblemCaseEntityServiceImpl extends ServiceImpl implements ProblemCaseEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemCountEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemCountEntityServiceImpl.java new file mode 100644 index 0000000..242ac95 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemCountEntityServiceImpl.java @@ -0,0 +1,128 @@ +package top.hcode.hoj.dao.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.mapper.ProblemCountMapper; +import top.hcode.hoj.pojo.entity.problem.ProblemCount; +import top.hcode.hoj.dao.ProblemCountEntityService; +import top.hcode.hoj.util.Constants; + + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ProblemCountEntityServiceImpl extends ServiceImpl implements ProblemCountEntityService { + + @Autowired + private ProblemCountMapper problemCountMapper; + + // 默认的事务隔离等级可重复读会产生幻读,读不到新的version数据,所以需要更换等级为读已提交 + @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED) + @Async + public void updateCount(int status, Long pid) { + + // 更新problem_count 表 + QueryWrapper problemCountQueryWrapper = new QueryWrapper(); + problemCountQueryWrapper.eq("pid", pid); + ProblemCount problemCount = problemCountMapper.selectOne(problemCountQueryWrapper); + ProblemCount newProblemCount = getNewProblemCount(status, problemCount); + newProblemCount.setVersion(problemCount.getVersion()); + int num = problemCountMapper.updateById(newProblemCount); + + + if (num == 1) { + return; + } else { + // 进行重试操作 + tryAgainUpdate(status, pid); + } + + } + + @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED) + public boolean tryAgainUpdate(int status, Long pid) { + boolean retryable; + int attemptNumber = 0; + do { + // 查询最新版本号 + QueryWrapper problemCountQueryWrapper = new QueryWrapper(); + problemCountQueryWrapper.eq("pid", pid); + ProblemCount problemCount = problemCountMapper.selectOne(problemCountQueryWrapper); + + // 更新 + ProblemCount newProblemCount = getNewProblemCount(status, problemCount); + newProblemCount.setVersion(problemCount.getVersion()); + boolean success = problemCountMapper.updateById(newProblemCount) == 1; + + + if (success) { + return true; + } else { + attemptNumber++; + retryable = attemptNumber < 8; + if (attemptNumber == 8) { + log.error("超过最大重试次数"); + break; + } + try { + Thread.sleep(300); + } catch (InterruptedException e) { + log.error(e.getMessage()); + } + } + } while (retryable); + + return false; + } + + public ProblemCount getNewProblemCount(int status, ProblemCount oldProblemCount) { + + ProblemCount newProblemCount = new ProblemCount(); + newProblemCount.setPid(oldProblemCount.getPid()).setTotal(oldProblemCount.getTotal() + 1); + Constants.Judge type = Constants.Judge.getTypeByStatus(status); + switch (type) { + case STATUS_ACCEPTED: + newProblemCount.setAc(oldProblemCount.getAc() + 1); + break; + case STATUS_MEMORY_LIMIT_EXCEEDED: + newProblemCount.setMle(oldProblemCount.getMle() + 1); + break; + case STATUS_TIME_LIMIT_EXCEEDED: + newProblemCount.setTle(oldProblemCount.getTle() + 1); + break; + case STATUS_RUNTIME_ERROR: + newProblemCount.setRe(oldProblemCount.getRe() + 1); + break; + case STATUS_PRESENTATION_ERROR: + newProblemCount.setPe(oldProblemCount.getPe() + 1); + break; + case STATUS_COMPILE_ERROR: + newProblemCount.setCe(oldProblemCount.getCe() + 1); + break; + case STATUS_WRONG_ANSWER: + newProblemCount.setWa(oldProblemCount.getWa() + 1); + break; + case STATUS_SYSTEM_ERROR: + newProblemCount.setSe(oldProblemCount.getSe() + 1); + break; + case STATUS_PARTIAL_ACCEPTED: + newProblemCount.setPa(oldProblemCount.getPa() + 1); + break; + default: + break; + } + return newProblemCount; + } + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemEntityServiceImpl.java new file mode 100644 index 0000000..6ab9bd4 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/ProblemEntityServiceImpl.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.dao.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.ProblemMapper; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.dao.ProblemEntityService; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class ProblemEntityServiceImpl extends ServiceImpl implements ProblemEntityService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/RemoteJudgeAccountEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/RemoteJudgeAccountEntityServiceImpl.java new file mode 100644 index 0000000..196b937 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/RemoteJudgeAccountEntityServiceImpl.java @@ -0,0 +1,17 @@ +package top.hcode.hoj.dao.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.RemoteJudgeAccountMapper; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; +import top.hcode.hoj.dao.RemoteJudgeAccountEntityService; + + +/** + * @Author: Himit_ZH + * @Date: 2021/5/18 17:46 + * @Description: + */ +@Service +public class RemoteJudgeAccountEntityServiceImpl extends ServiceImpl implements RemoteJudgeAccountEntityService { +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/UserAcproblemEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/UserAcproblemEntityServiceImpl.java new file mode 100644 index 0000000..f33da6e --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/UserAcproblemEntityServiceImpl.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.dao.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import top.hcode.hoj.mapper.UserAcproblemMapper; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; +import top.hcode.hoj.dao.UserAcproblemEntityService; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class UserAcproblemEntityServiceImpl extends ServiceImpl implements UserAcproblemEntityService { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/UserRecordEntityServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/UserRecordEntityServiceImpl.java new file mode 100644 index 0000000..87b90b3 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/dao/impl/UserRecordEntityServiceImpl.java @@ -0,0 +1,120 @@ +package top.hcode.hoj.dao.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Transactional; +import top.hcode.hoj.dao.JudgeEntityService; +import top.hcode.hoj.mapper.UserRecordMapper; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.user.UserRecord; + +import top.hcode.hoj.dao.UserRecordEntityService; + +/** + *

+ * 服务实现类 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Service +public class UserRecordEntityServiceImpl extends ServiceImpl implements UserRecordEntityService { + + @Autowired + private UserRecordMapper userRecordMapper; + + @Autowired + private JudgeEntityService judgeEntityService; + + /** + * @MethodNameupdateRecord + * @Params * @param null + * @Description 本方法不启用,不适合数据一致性 + * @Return + * @Since 2021/6/2 + */ + @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED) + @Async + @Override + @Deprecated + public void updateRecord(String uid, Long submitId, Long pid, Integer score) { + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper.isNotNull("score") + .eq("cid", 0)// 非比赛提交 + .eq("pid", pid) + .eq("uid", uid) + .ne("submit_id", submitId) + .orderByDesc("score") + .last("limit 1"); + Judge lastHighScoreJudge = judgeEntityService.getOne(judgeQueryWrapper); + // 之前没有提交过,那么就需要修改 + boolean result = true; + if (lastHighScoreJudge == null) { + UpdateWrapper userRecordUpdateWrapper = new UpdateWrapper<>(); + userRecordUpdateWrapper.setSql("total_score=total_score+" + score).eq("uid", uid); + result = userRecordMapper.update(null, userRecordUpdateWrapper) == 1; + } else if (lastHighScoreJudge.getScore() < score) { + //如果之前该题目最高得分的提交比现在得分低,也需要修改 + int addValue = score - lastHighScoreJudge.getScore(); + UpdateWrapper userRecordUpdateWrapper = new UpdateWrapper<>(); + userRecordUpdateWrapper.setSql("total_score=total_score+" + addValue).eq("uid", uid); + result = userRecordMapper.update(null, userRecordUpdateWrapper) == 1; + } + if (result) { + return; + } else { // 失败则开始尝试 + tryAgainUpdate(uid, score); + } + } + + @Transactional(isolation = Isolation.READ_COMMITTED) + public boolean tryAgainUpdate(String uid, Integer score) { + boolean retryable; + int attemptNumber = 0; + do { + // 查询最新版本号 + QueryWrapper judgeQueryWrapper = new QueryWrapper<>(); + judgeQueryWrapper.isNotNull("score").orderByDesc("score").isNull("cid") // 非比赛提交 + .last("limit 1"); + Judge lastHighScoreJudge = judgeEntityService.getOne(judgeQueryWrapper); + + // 更新 + boolean success = true; + if (lastHighScoreJudge == null) { + UpdateWrapper userRecordUpdateWrapper = new UpdateWrapper<>(); + userRecordUpdateWrapper.set("total_score", score).eq("uid", uid); + success = userRecordMapper.update(null, userRecordUpdateWrapper) == 1; + } else if (lastHighScoreJudge.getScore() < score) { + //如果之前该题目最高得分的提交比现在得分低,也需要修改 + int addValue = score - lastHighScoreJudge.getScore(); + UpdateWrapper userRecordUpdateWrapper = new UpdateWrapper<>(); + userRecordUpdateWrapper.setSql("total_score=total_score+" + addValue).eq("uid", uid); + success = userRecordMapper.update(null, userRecordUpdateWrapper) == 1; + } + + if (success) { + return true; + } else { + attemptNumber++; + retryable = attemptNumber < 8; + if (attemptNumber == 8) { + log.error("更新user_record表超过最大重试次数"); + break; + } + try { + Thread.sleep(300); + } catch (InterruptedException e) { + log.error(e.getMessage()); + } + } + } while (retryable); + + return false; + } +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/AbstractJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/AbstractJudge.java new file mode 100644 index 0000000..2ee1ee1 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/AbstractJudge.java @@ -0,0 +1,168 @@ +package top.hcode.hoj.judge; + +import cn.hutool.core.util.ReUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.judge.entity.JudgeDTO; +import top.hcode.hoj.judge.entity.JudgeGlobalDTO; +import top.hcode.hoj.judge.entity.SandBoxRes; +import top.hcode.hoj.util.Constants; +import top.hcode.hoj.util.JudgeUtils; + +import java.io.File; +import java.text.MessageFormat; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/2 20:46 + * @Description: + */ +public abstract class AbstractJudge { + + protected static final int SPJ_PC = 99; + + protected static final int SPJ_AC = 100; + + protected static final int SPJ_PE = 101; + + protected static final int SPJ_WA = 102; + + protected static final int SPJ_ERROR = 103; + + public JSONObject judge(JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError { + + JSONArray judgeResultList = judgeCase(judgeDTO, judgeGlobalDTO); + + switch (judgeGlobalDTO.getJudgeMode()) { + case SPJ: + case TEST: + case DEFAULT: + return process(judgeDTO, judgeGlobalDTO, judgeResultList); + case INTERACTIVE: + return processMultiple(judgeDTO, judgeGlobalDTO, judgeResultList); + default: + throw new RuntimeException("The problem mode is error:" + judgeGlobalDTO.getJudgeMode()); + } + + } + + public abstract JSONArray judgeCase(JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError; + + private JSONObject process(JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO, JSONArray judgeResultList) throws SystemError { + JSONObject judgeResult = (JSONObject) judgeResultList.get(0); + SandBoxRes sandBoxRes = SandBoxRes.builder() + .stdout(((JSONObject) judgeResult.get("files")).getStr("stdout")) + .stderr(((JSONObject) judgeResult.get("files")).getStr("stderr")) + .time(judgeResult.getLong("time") / 1000000) // ns->ms + .memory(judgeResult.getLong("memory") / 1024) // b-->kb + .exitCode(judgeResult.getInt("exitStatus")) + .status(judgeResult.getInt("status")) + .build(); + + return checkResult(sandBoxRes, judgeDTO, judgeGlobalDTO); + } + + private JSONObject processMultiple(JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO, JSONArray judgeResultList) throws SystemError { + + JSONObject userJudgeResult = (JSONObject) judgeResultList.get(0); + SandBoxRes userSandBoxRes = SandBoxRes.builder() + .stdout(((JSONObject) userJudgeResult.get("files")).getStr("stdout")) + .stderr(((JSONObject) userJudgeResult.get("files")).getStr("stderr")) + .time(userJudgeResult.getLong("time") / 1000000) // ns->ms + .memory(userJudgeResult.getLong("memory") / 1024) // b-->kb + .exitCode(userJudgeResult.getInt("exitStatus")) + .status(userJudgeResult.getInt("status")) + .build(); + + JSONObject interactiveJudgeResult = (JSONObject) judgeResultList.get(1); + SandBoxRes interactiveSandBoxRes = SandBoxRes.builder() + .stdout(((JSONObject) interactiveJudgeResult.get("files")).getStr("stdout")) + .stderr(((JSONObject) interactiveJudgeResult.get("files")).getStr("stderr")) + .time(interactiveJudgeResult.getLong("time") / 1000000) // ns->ms + .memory(interactiveJudgeResult.getLong("memory") / 1024) // b-->kb + .exitCode(interactiveJudgeResult.getInt("exitStatus")) + .status(interactiveJudgeResult.getInt("status")) + .build(); + + return checkMultipleResult(userSandBoxRes, interactiveSandBoxRes, judgeDTO, judgeGlobalDTO); + } + + public abstract JSONObject checkResult(SandBoxRes sandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError; + + public abstract JSONObject checkMultipleResult(SandBoxRes userSandBoxRes, SandBoxRes interactiveSandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO); + + protected static List parseRunCommand(String command, + Constants.RunConfig runConfig, + String testCaseInputName, + String userOutputName, + String testCaseOutputName) { + + command = MessageFormat.format(command, Constants.JudgeDir.TMPFS_DIR.getContent(), + runConfig.getExeName(), Constants.JudgeDir.TMPFS_DIR.getContent() + File.separator + testCaseInputName, + Constants.JudgeDir.TMPFS_DIR.getContent() + File.separator + userOutputName, + Constants.JudgeDir.TMPFS_DIR.getContent() + File.separator + testCaseOutputName); + + return JudgeUtils.translateCommandline(command); + } + + protected JSONObject parseTestLibErr(String msg) { + + JSONObject res = new JSONObject(2); + String output = msg.substring(0, Math.min(1024, msg.length())); + if (output.startsWith("ok ")) { + res.set("code", SPJ_AC); + res.set("errMsg", output.split("ok ")[1]); + } else if (output.startsWith("wrong answer ")) { + res.set("code", SPJ_WA); + res.set("errMsg", output.split("wrong answer ")[1]); + } else if (output.startsWith("wrong output format ")) { + res.set("code", SPJ_WA); + res.set("errMsg", "May be output presentation error. " + output.split("wrong output format")[1]); + } else if (output.startsWith("partially correct ")) { + res.set("errMsg", output.split("partially correct ")[1]); + String numStr = ReUtil.get("partially correct \\(([\\s\\S]*?)\\) ", output, 1); + double percentage = 0.0; + if (!StringUtils.isEmpty(numStr)) { + percentage = Integer.parseInt(numStr) * 1.0 / 100; + } + res.set("percentage", percentage); + res.set("code", SPJ_PC); + } else if (output.startsWith("points ")) { + res.set("code", SPJ_PC); + String numStr = output.split("points ")[1].split(" ")[0]; + double percentage = 0.0; + if (!StringUtils.isEmpty(numStr)) { + percentage = Double.parseDouble(numStr) / 100; + } + if (percentage == 1) { + res.set("code", SPJ_AC); + } else { + res.set("percentage", percentage); + } + String tmp = output.split("points ")[1]; + res.set("errMsg", tmp.substring(0, Math.min(1024, tmp.length()))); + } else if (output.startsWith("FAIL ")) { + res.set("code", SPJ_ERROR); + res.set("errMsg", output.split("FAIL ")[1]); + } else { + res.set("code", SPJ_ERROR); + res.set("errMsg", output); + } + return res; + } + + + // 去除行末尾空白符 + protected String rtrim(String value) { + if (value == null) return null; + StringBuilder sb = new StringBuilder(); + String[] strArr = value.split("\n"); + for (String str : strArr) { + sb.append(str.replaceAll("\\s+$", "")).append("\n"); + } + return sb.toString().replaceAll("\\s+$", ""); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/Compiler.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/Compiler.java new file mode 100644 index 0000000..294f7dd --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/Compiler.java @@ -0,0 +1,137 @@ +package top.hcode.hoj.judge; + +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.CompileError; +import top.hcode.hoj.common.exception.SubmitError; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.util.Constants; +import top.hcode.hoj.util.JudgeUtils; + +import java.io.File; +import java.text.MessageFormat; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/16 12:14 + * @Description: 判题流程解耦重构2.0,该类只负责编译 + */ +public class Compiler { + public static String compile(Constants.CompileConfig compileConfig, String code, + String language, HashMap extraFiles) throws SystemError, CompileError, SubmitError { + + if (compileConfig == null) { + throw new RuntimeException("Unsupported language " + language); + } + + // 调用安全沙箱进行编译 + JSONArray result = SandboxRun.compile(compileConfig.getMaxCpuTime(), + compileConfig.getMaxRealTime(), + compileConfig.getMaxMemory(), + 256 * 1024 * 1024L, + compileConfig.getSrcName(), + compileConfig.getExeName(), + parseCompileCommand(compileConfig.getCommand(), compileConfig), + compileConfig.getEnvs(), + code, + extraFiles, + true, + false, + null + ); + JSONObject compileResult = (JSONObject) result.get(0); + if (compileResult.getInt("status").intValue() != Constants.Judge.STATUS_ACCEPTED.getStatus()) { + throw new CompileError("Compile Error.", ((JSONObject) compileResult.get("files")).getStr("stdout"), + ((JSONObject) compileResult.get("files")).getStr("stderr")); + } + + String fileId = ((JSONObject) compileResult.get("fileIds")).getStr(compileConfig.getExeName()); + if (StringUtils.isEmpty(fileId)) { + throw new SubmitError("Executable file not found.", ((JSONObject) compileResult.get("files")).getStr("stdout"), + ((JSONObject) compileResult.get("files")).getStr("stderr")); + } + return fileId; + } + + public static Boolean compileSpj(String code, Long pid, String language, HashMap extraFiles) throws SystemError { + + Constants.CompileConfig spjCompiler = Constants.CompileConfig.getCompilerByLanguage("SPJ-" + language); + if (spjCompiler == null) { + throw new RuntimeException("Unsupported SPJ language:" + language); + } + + boolean copyOutExe = true; + if (pid == null) { // 题目id为空,则不进行本地存储,可能为新建题目时测试特判程序是否正常的判断而已 + copyOutExe = false; + } + + // 调用安全沙箱对特别判题程序进行编译 + JSONArray res = SandboxRun.compile(spjCompiler.getMaxCpuTime(), + spjCompiler.getMaxRealTime(), + spjCompiler.getMaxMemory(), + 256 * 1024 * 1024L, + spjCompiler.getSrcName(), + spjCompiler.getExeName(), + parseCompileCommand(spjCompiler.getCommand(), spjCompiler), + spjCompiler.getEnvs(), + code, + extraFiles, + false, + copyOutExe, + Constants.JudgeDir.SPJ_WORKPLACE_DIR.getContent() + File.separator + pid + ); + JSONObject compileResult = (JSONObject) res.get(0); + if (compileResult.getInt("status").intValue() != Constants.Judge.STATUS_ACCEPTED.getStatus()) { + throw new SystemError("Special Judge Code Compile Error.", ((JSONObject) compileResult.get("files")).getStr("stdout"), + ((JSONObject) compileResult.get("files")).getStr("stderr")); + } + return true; + } + + + public static Boolean compileInteractive(String code, Long pid, String language, HashMap extraFiles) throws SystemError { + + Constants.CompileConfig interactiveCompiler = Constants.CompileConfig.getCompilerByLanguage("INTERACTIVE-" + language); + if (interactiveCompiler == null) { + throw new RuntimeException("Unsupported interactive language:" + language); + } + + boolean copyOutExe = true; + if (pid == null) { // 题目id为空,则不进行本地存储,可能为新建题目时测试特判程序是否正常的判断而已 + copyOutExe = false; + } + + // 调用安全沙箱对特别判题程序进行编译 + JSONArray res = SandboxRun.compile(interactiveCompiler.getMaxCpuTime(), + interactiveCompiler.getMaxRealTime(), + interactiveCompiler.getMaxMemory(), + 256 * 1024 * 1024L, + interactiveCompiler.getSrcName(), + interactiveCompiler.getExeName(), + parseCompileCommand(interactiveCompiler.getCommand(), interactiveCompiler), + interactiveCompiler.getEnvs(), + code, + extraFiles, + false, + copyOutExe, + Constants.JudgeDir.INTERACTIVE_WORKPLACE_DIR.getContent() + File.separator + pid + ); + JSONObject compileResult = (JSONObject) res.get(0); + if (compileResult.getInt("status").intValue() != Constants.Judge.STATUS_ACCEPTED.getStatus()) { + throw new SystemError("Interactive Judge Code Compile Error.", ((JSONObject) compileResult.get("files")).getStr("stdout"), + ((JSONObject) compileResult.get("files")).getStr("stderr")); + } + return true; + } + + private static List parseCompileCommand(String command, Constants.CompileConfig compileConfig) { + + command = MessageFormat.format(command, Constants.JudgeDir.TMPFS_DIR.getContent(), + compileConfig.getSrcName(), compileConfig.getExeName()); + return JudgeUtils.translateCommandline(command); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeContext.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeContext.java new file mode 100644 index 0000000..833a941 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeContext.java @@ -0,0 +1,117 @@ +package top.hcode.hoj.judge; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.dao.ContestRecordEntityService; +import top.hcode.hoj.dao.UserAcproblemEntityService; +import top.hcode.hoj.pojo.dto.TestJudgeReq; +import top.hcode.hoj.pojo.dto.TestJudgeRes; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; +import top.hcode.hoj.util.Constants; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/12 15:49 + * @Description: + */ +@Component +public class JudgeContext { + + @Autowired + private JudgeStrategy judgeStrategy; + + @Autowired + private UserAcproblemEntityService userAcproblemEntityService; + + @Autowired + private ContestRecordEntityService contestRecordEntityService; + + public Judge Judge(Problem problem, Judge judge) { + + // c和c++为一倍时间和空间,其它语言为2倍时间和空间 + if (!judge.getLanguage().equals("C++") + && !judge.getLanguage().equals("C") + && !judge.getLanguage().equals("C++ With O2") + && !judge.getLanguage().equals("C With O2")) { + problem.setTimeLimit(problem.getTimeLimit() * 2); + problem.setMemoryLimit(problem.getMemoryLimit() * 2); + } + + HashMap judgeResult = judgeStrategy.judge(problem, judge); + + Judge finalJudgeRes = new Judge(); + finalJudgeRes.setSubmitId(judge.getSubmitId()); + // 如果是编译失败、提交错误或者系统错误就有错误提醒 + if (judgeResult.get("code") == Constants.Judge.STATUS_COMPILE_ERROR.getStatus() || + judgeResult.get("code") == Constants.Judge.STATUS_SYSTEM_ERROR.getStatus() || + judgeResult.get("code") == Constants.Judge.STATUS_RUNTIME_ERROR.getStatus() || + judgeResult.get("code") == Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()) { + finalJudgeRes.setErrorMessage((String) judgeResult.getOrDefault("errMsg", "")); + } + // 设置最终结果状态码 + finalJudgeRes.setStatus((Integer) judgeResult.get("code")); + // 设置最大时间和最大空间不超过题目限制时间和空间 + // kb + Integer memory = (Integer) judgeResult.get("memory"); + finalJudgeRes.setMemory(Math.min(memory, problem.getMemoryLimit() * 1024)); + // ms + Integer time = (Integer) judgeResult.get("time"); + finalJudgeRes.setTime(Math.min(time, problem.getTimeLimit())); + // score + finalJudgeRes.setScore((Integer) judgeResult.getOrDefault("score", null)); + // oi_rank_score + finalJudgeRes.setOiRankScore((Integer) judgeResult.getOrDefault("oiRankScore", null)); + + return finalJudgeRes; + } + + public TestJudgeRes testJudge(TestJudgeReq testJudgeReq) { + // c和c++为一倍时间和空间,其它语言为2倍时间和空间 + if (!testJudgeReq.getLanguage().equals("C++") + && !testJudgeReq.getLanguage().equals("C") + && !testJudgeReq.getLanguage().equals("C++ With O2") + && !testJudgeReq.getLanguage().equals("C With O2")) { + testJudgeReq.setTimeLimit(testJudgeReq.getTimeLimit() * 2); + testJudgeReq.setMemoryLimit(testJudgeReq.getMemoryLimit() * 2); + } + return judgeStrategy.testJudge(testJudgeReq); + } + + public Boolean compileSpj(String code, Long pid, String spjLanguage, HashMap extraFiles) throws SystemError { + return Compiler.compileSpj(code, pid, spjLanguage, extraFiles); + } + + public Boolean compileInteractive(String code, Long pid, String interactiveLanguage, HashMap extraFiles) throws SystemError { + return Compiler.compileInteractive(code, pid, interactiveLanguage, extraFiles); + } + + + public void updateOtherTable(Long submitId, + Integer status, + Long cid, + String uid, + Long pid, + Long gid, + Integer score, + Integer useTime) { + + if (cid == 0) { // 非比赛提交 + // 如果是AC,就更新user_acproblem表, + if (status.intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus() && gid == null) { + userAcproblemEntityService.saveOrUpdate(new UserAcproblem() + .setPid(pid) + .setUid(uid) + .setSubmitId(submitId) + ); + } + + } else { //如果是比赛提交 + contestRecordEntityService.updateContestRecord(score, status, submitId, useTime); + } + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeRun.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeRun.java new file mode 100644 index 0000000..bc7a441 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeRun.java @@ -0,0 +1,218 @@ +package top.hcode.hoj.judge; + +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import org.springframework.stereotype.Component; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.judge.entity.JudgeDTO; +import top.hcode.hoj.judge.entity.JudgeGlobalDTO; +import top.hcode.hoj.judge.task.DefaultJudge; +import top.hcode.hoj.judge.task.InteractiveJudge; +import top.hcode.hoj.judge.task.SpecialJudge; +import top.hcode.hoj.judge.task.TestJudge; +import top.hcode.hoj.pojo.dto.TestJudgeReq; +import top.hcode.hoj.pojo.dto.TestJudgeRes; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.util.Constants; +import top.hcode.hoj.util.JudgeUtils; +import top.hcode.hoj.util.ThreadPoolUtils; + +import javax.annotation.Resource; +import java.io.File; +import java.util.*; +import java.util.concurrent.*; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/16 12:15 + * @Description: 判题流程解耦重构3.0,该类负责输入数据进入程序进行测评 + */ +@Component +public class JudgeRun { + + @Resource + private DefaultJudge defaultJudge; + + @Resource + private SpecialJudge specialJudge; + + @Resource + private InteractiveJudge interactiveJudge; + + @Resource + private TestJudge testJudge; + + public List judgeAllCase(Long submitId, + Problem problem, + String judgeLanguage, + String testCasesDir, + JSONObject testCasesInfo, + String userFileId, + String userFileContent, + Boolean getUserOutput) + throws SystemError, ExecutionException, InterruptedException { + + if (testCasesInfo == null) { + throw new SystemError("The evaluation data of the problem does not exist", null, null); + } + + List> futureTasks = new ArrayList<>(); + JSONArray testcaseList = (JSONArray) testCasesInfo.get("testCases"); + + // 默认给题目限制时间+200ms用来测评 + Long testTime = (long) problem.getTimeLimit() + 200; + + Constants.JudgeMode judgeMode = Constants.JudgeMode.getJudgeMode(problem.getJudgeMode()); + + if (judgeMode == null) { + throw new RuntimeException("The judge mode of problem " + problem.getProblemId() + " error:" + problem.getJudgeMode()); + } + + // 用户输出的文件夹 + String runDir = Constants.JudgeDir.RUN_WORKPLACE_DIR.getContent() + File.separator + submitId; + + Constants.RunConfig runConfig = Constants.RunConfig.getRunnerByLanguage(judgeLanguage); + Constants.RunConfig spjConfig = Constants.RunConfig.getRunnerByLanguage("SPJ-" + problem.getSpjLanguage()); + Constants.RunConfig interactiveConfig = Constants.RunConfig.getRunnerByLanguage("INTERACTIVE-" + problem.getSpjLanguage()); + + JudgeGlobalDTO judgeGlobalDTO = JudgeGlobalDTO.builder() + .problemId(problem.getId()) + .judgeMode(judgeMode) + .userFileId(userFileId) + .userFileContent(userFileContent) + .runDir(runDir) + .testTime(testTime) + .maxMemory((long) problem.getMemoryLimit()) + .maxTime((long) problem.getTimeLimit()) + .maxStack(problem.getStackLimit()) + .testCaseInfo(testCasesInfo) + .judgeExtraFiles(JudgeUtils.getProblemExtraFileMap(problem, "judge")) + .runConfig(runConfig) + .spjRunConfig(spjConfig) + .interactiveRunConfig(interactiveConfig) + .needUserOutputFile(getUserOutput) + .removeEOLBlank(problem.getIsRemoveEndBlank()) + .build(); + + for (int index = 0; index < testcaseList.size(); index++) { + JSONObject testcase = (JSONObject) testcaseList.get(index); + // 将每个需要测试的线程任务加入任务列表中 + final int testCaseId = index + 1; + // 输入文件名 + final String inputFileName = testcase.getStr("inputName"); + // 输出文件名 + final String outputFileName = testcase.getStr("outputName"); + // 题目数据的输入文件的路径 + final String testCaseInputPath = testCasesDir + File.separator + inputFileName; + // 题目数据的输出文件的路径 + final String testCaseOutputPath = testCasesDir + File.separator + outputFileName; + // 数据库表的测试样例id + final Long caseId = testcase.getLong("caseId", null); + // 该测试点的满分 + final Integer score = testcase.getInt("score", 0); + + final Long maxOutputSize = Math.max(testcase.getLong("outputSize", 0L) * 2, 16 * 1024 * 1024L); + + JudgeDTO judgeDTO = JudgeDTO.builder() + .testCaseId(testCaseId) + .testCaseInputPath(testCaseInputPath) + .testCaseOutputPath(testCaseOutputPath) + .maxOutputSize(maxOutputSize) + .build(); + + futureTasks.add(new FutureTask<>(() -> { + JSONObject result; + switch (judgeMode) { + case DEFAULT: + result = defaultJudge.judge(judgeDTO, judgeGlobalDTO); + break; + case SPJ: + result = specialJudge.judge(judgeDTO, judgeGlobalDTO); + break; + case INTERACTIVE: + result = interactiveJudge.judge(judgeDTO, judgeGlobalDTO); + break; + default: + throw new RuntimeException("The problem mode is error:" + judgeMode); + } + result.set("caseId", caseId); + result.set("score", score); + result.set("inputFileName", inputFileName); + result.set("outputFileName", outputFileName); + return result; + })); + } + + // 提交到线程池进行执行 + for (FutureTask futureTask : futureTasks) { + ThreadPoolUtils.getInstance().getThreadPool().submit(futureTask); + } + List result = new LinkedList<>(); + while (futureTasks.size() > 0) { + Iterator> iterable = futureTasks.iterator(); + //遍历一遍 + while (iterable.hasNext()) { + FutureTask future = iterable.next(); + if (future.isDone() && !future.isCancelled()) { + // 获取线程返回结果 + JSONObject tmp = future.get(); + result.add(tmp); + // 任务完成移除任务 + iterable.remove(); + } else { + Thread.sleep(10); // 避免CPU高速运转,这里休息10毫秒 + } + } + } + return result; + } + + public TestJudgeRes testJudgeCase(String userFileId, TestJudgeReq testJudgeReq) throws ExecutionException, InterruptedException { + + // 默认给限制时间+200ms用来测评 + Long testTime = testJudgeReq.getTimeLimit() + 200L; + + Constants.RunConfig runConfig = Constants.RunConfig.getRunnerByLanguage(testJudgeReq.getLanguage()); + + JudgeGlobalDTO judgeGlobalDTO = JudgeGlobalDTO.builder() + .judgeMode(Constants.JudgeMode.TEST) + .userFileId(userFileId) + .userFileContent(testJudgeReq.getCode()) + .testTime(testTime) + .maxMemory((long) testJudgeReq.getMemoryLimit()) + .maxTime((long) testJudgeReq.getTimeLimit()) + .maxStack(testJudgeReq.getStackLimit()) + .removeEOLBlank(testJudgeReq.getIsRemoveEndBlank()) + .runConfig(runConfig) + .build(); + + Long maxOutputSize = Math.max(testJudgeReq.getTestCaseInput().length() * 2L, 16 * 1024 * 1024L); + + JudgeDTO judgeDTO = JudgeDTO.builder() + .testCaseInputContent(testJudgeReq.getTestCaseInput() + "\n") + .maxOutputSize(maxOutputSize) + .testCaseOutputContent(testJudgeReq.getExpectedOutput()) + .build(); + + FutureTask testJudgeFutureTask = new FutureTask<>(() -> testJudge.judge(judgeDTO, judgeGlobalDTO)); + + ThreadPoolUtils.getInstance() + .getThreadPool() + .submit(testJudgeFutureTask); + + while (true) { + if (testJudgeFutureTask.isDone() && !testJudgeFutureTask.isCancelled()) { + JSONObject judgeRes = testJudgeFutureTask.get(); + return TestJudgeRes.builder() + .status(judgeRes.getInt("status")) + .memory(judgeRes.getLong("memory")) + .time(judgeRes.getLong("time")) + .stdout(judgeRes.getStr("output")) + .stderr(judgeRes.getStr("errMsg")) + .build(); + } + Thread.sleep(100); // 避免CPU高速运转,这里休息100毫秒 + } + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeStrategy.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeStrategy.java new file mode 100644 index 0000000..44028e2 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/JudgeStrategy.java @@ -0,0 +1,409 @@ +package top.hcode.hoj.judge; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileReader; +import cn.hutool.core.io.file.FileWriter; +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.CompileError; +import top.hcode.hoj.common.exception.SubmitError; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.dao.JudgeCaseEntityService; +import top.hcode.hoj.dao.JudgeEntityService; +import top.hcode.hoj.pojo.dto.TestJudgeReq; +import top.hcode.hoj.pojo.dto.TestJudgeRes; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.util.Constants; +import top.hcode.hoj.util.JudgeUtils; + +import javax.annotation.Resource; +import java.io.File; +import java.util.*; + +@Slf4j(topic = "hoj") +@Component +public class JudgeStrategy { + + @Resource + private JudgeEntityService judgeEntityService; + + @Resource + private ProblemTestCaseUtils problemTestCaseUtils; + + @Resource + private JudgeCaseEntityService JudgeCaseEntityService; + + @Resource + private JudgeRun judgeRun; + + public HashMap judge(Problem problem, Judge judge) { + + HashMap result = new HashMap<>(); + // 编译好的临时代码文件id + String userFileId = null; + try { + // 对用户源代码进行编译 获取tmpfs中的fileId + Constants.CompileConfig compileConfig = Constants.CompileConfig.getCompilerByLanguage(judge.getLanguage()); + // 有的语言可能不支持编译, 目前有js、php不支持编译 + if (compileConfig != null) { + userFileId = Compiler.compile(compileConfig, + judge.getCode(), + judge.getLanguage(), + JudgeUtils.getProblemExtraFileMap(problem, "user")); + } + // 测试数据文件所在文件夹 + String testCasesDir = Constants.JudgeDir.TEST_CASE_DIR.getContent() + File.separator + "problem_" + problem.getId(); + // 从文件中加载测试数据json + JSONObject testCasesInfo = problemTestCaseUtils.loadTestCaseInfo(problem.getId(), testCasesDir, problem.getCaseVersion(), + problem.getJudgeMode()); + + // 检查是否为spj或者interactive,同时是否有对应编译完成的文件,若不存在,就先编译生成该文件,同时也要检查版本 + boolean isOk = checkOrCompileExtraProgram(problem); + if (!isOk) { + result.put("code", Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()); + result.put("errMsg", "The special judge or interactive program code does not exist."); + result.put("time", 0); + result.put("memory", 0); + return result; + } + + // 更新状态为评测数据中 + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.set("status", Constants.Judge.STATUS_JUDGING.getStatus()) + .eq("submit_id", judge.getSubmitId()); + judgeEntityService.update(judgeUpdateWrapper); + // 开始测试每个测试点 + List allCaseResultList = judgeRun.judgeAllCase(judge.getSubmitId(), + problem, + judge.getLanguage(), + testCasesDir, + testCasesInfo, + userFileId, + judge.getCode(), + false); + + // 对全部测试点结果进行评判,获取最终评判结果 + return getJudgeInfo(allCaseResultList, problem, judge); + } catch (SystemError systemError) { + result.put("code", Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()); + result.put("errMsg", "Oops, something has gone wrong with the judgeServer. Please report this to administrator."); + result.put("time", 0); + result.put("memory", 0); + log.error("[Judge] [System Error] Submit Id:[{}] Problem Id:[{}], Error:[{}]", + judge.getSubmitId(), + problem.getId(), + systemError.toString()); + } catch (SubmitError submitError) { + result.put("code", Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()); + result.put("errMsg", mergeNonEmptyStrings(submitError.getMessage(), submitError.getStdout(), submitError.getStderr())); + result.put("time", 0); + result.put("memory", 0); + log.error("[Judge] [Submit Error] Submit Id:[{}] Problem Id:[{}], Error:[{}]", + judge.getSubmitId(), + problem.getId(), + submitError.toString()); + } catch (CompileError compileError) { + result.put("code", Constants.Judge.STATUS_COMPILE_ERROR.getStatus()); + result.put("errMsg", mergeNonEmptyStrings(compileError.getStdout(), compileError.getStderr())); + result.put("time", 0); + result.put("memory", 0); + } catch (Exception e) { + result.put("code", Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()); + result.put("errMsg", "Oops, something has gone wrong with the judgeServer. Please report this to administrator."); + result.put("time", 0); + result.put("memory", 0); + log.error("[Judge] [System Runtime Error] Submit Id:[{}] Problem Id:[{}], Error:[{}]", + judge.getSubmitId(), + problem.getId(), + e.toString()); + } finally { + + // 删除tmpfs内存中的用户代码可执行文件 + if (!StringUtils.isEmpty(userFileId)) { + SandboxRun.delFile(userFileId); + } + } + return result; + } + + public TestJudgeRes testJudge(TestJudgeReq testJudgeReq) { + // 编译好的临时代码文件id + String userFileId = null; + try { + // 对源代码进行编译 获取tmpfs中的fileId + Constants.CompileConfig compileConfig = Constants.CompileConfig.getCompilerByLanguage(testJudgeReq.getLanguage()); + // 有的语言可能不支持编译,目前有js、php不支持编译,需要提供源代码 + if (compileConfig != null) { + userFileId = Compiler.compile(compileConfig, + testJudgeReq.getCode(), + testJudgeReq.getLanguage(), + testJudgeReq.getExtraFile()); + } + return judgeRun.testJudgeCase(userFileId, testJudgeReq); + } catch (SystemError systemError) { + log.error("[Test Judge] [System Error] [{}]", systemError.toString()); + return TestJudgeRes.builder() + .memory(0L) + .time(0L) + .status(Constants.Judge.STATUS_COMPILE_ERROR.getStatus()) + .stderr("Oops, something has gone wrong with the judgeServer. Please report this to administrator.") + .build(); + } catch (SubmitError submitError) { + log.error("[Test Judge] [Submit Error] [{}]", submitError.toString()); + return TestJudgeRes.builder() + .memory(0L) + .time(0L) + .status(Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()) + .stderr(mergeNonEmptyStrings(submitError.getMessage(), submitError.getStdout(), submitError.getStderr())) + .build(); + } catch (CompileError compileError) { + return TestJudgeRes.builder() + .memory(0L) + .time(0L) + .status(Constants.Judge.STATUS_COMPILE_ERROR.getStatus()) + .stderr(mergeNonEmptyStrings(compileError.getStdout(), compileError.getStderr())) + .build(); + } catch (Exception e) { + log.error("[Test Judge] [Error] [{}]", e.toString()); + return TestJudgeRes.builder() + .memory(0L) + .time(0L) + .status(Constants.Judge.STATUS_COMPILE_ERROR.getStatus()) + .stderr("Oops, something has gone wrong with the judgeServer. Please report this to administrator.") + .build(); + } finally { + // 删除tmpfs内存中的用户代码可执行文件 + if (!StringUtils.isEmpty(userFileId)) { + SandboxRun.delFile(userFileId); + } + } + } + + private Boolean checkOrCompileExtraProgram(Problem problem) throws CompileError, SystemError { + + Constants.JudgeMode judgeMode = Constants.JudgeMode.getJudgeMode(problem.getJudgeMode()); + + String currentVersion = problem.getCaseVersion(); + + Constants.CompileConfig compiler; + + String programFilePath; + + String programVersionPath; + + switch (judgeMode) { + case DEFAULT: + return true; + case SPJ: + compiler = Constants.CompileConfig.getCompilerByLanguage("SPJ-" + problem.getSpjLanguage()); + + programFilePath = Constants.JudgeDir.SPJ_WORKPLACE_DIR.getContent() + File.separator + + problem.getId() + File.separator + compiler.getExeName(); + + programVersionPath = Constants.JudgeDir.SPJ_WORKPLACE_DIR.getContent() + File.separator + + problem.getId() + File.separator + "version"; + + // 如果不存在该已经编译好的程序,则需要再次进行编译 + if (!FileUtil.exist(programFilePath) || !FileUtil.exist(programVersionPath)) { + boolean isCompileSpjOk = Compiler.compileSpj(problem.getSpjCode(), problem.getId(), problem.getSpjLanguage(), + JudgeUtils.getProblemExtraFileMap(problem, "judge")); + + FileWriter fileWriter = new FileWriter(programVersionPath); + fileWriter.write(currentVersion); + return isCompileSpjOk; + } + + FileReader spjVersionReader = new FileReader(programVersionPath); + String recordSpjVersion = spjVersionReader.readString(); + + // 版本变动也需要重新编译 + if (!currentVersion.equals(recordSpjVersion)) { + boolean isCompileSpjOk = Compiler.compileSpj(problem.getSpjCode(), problem.getId(), problem.getSpjLanguage(), + JudgeUtils.getProblemExtraFileMap(problem, "judge")); + FileWriter fileWriter = new FileWriter(programVersionPath); + fileWriter.write(currentVersion); + return isCompileSpjOk; + } + + break; + case INTERACTIVE: + compiler = Constants.CompileConfig.getCompilerByLanguage("INTERACTIVE-" + problem.getSpjLanguage()); + programFilePath = Constants.JudgeDir.INTERACTIVE_WORKPLACE_DIR.getContent() + File.separator + + problem.getId() + File.separator + compiler.getExeName(); + + programVersionPath = Constants.JudgeDir.INTERACTIVE_WORKPLACE_DIR.getContent() + File.separator + + problem.getId() + File.separator + "version"; + + // 如果不存在该已经编译好的程序,则需要再次进行编译 版本变动也需要重新编译 + if (!FileUtil.exist(programFilePath) || !FileUtil.exist(programVersionPath)) { + boolean isCompileInteractive = Compiler.compileInteractive(problem.getSpjCode(), problem.getId(), problem.getSpjLanguage(), + JudgeUtils.getProblemExtraFileMap(problem, "judge")); + FileWriter fileWriter = new FileWriter(programVersionPath); + fileWriter.write(currentVersion); + return isCompileInteractive; + } + + FileReader interactiveVersionFileReader = new FileReader(programVersionPath); + String recordInteractiveVersion = interactiveVersionFileReader.readString(); + + // 版本变动也需要重新编译 + if (!currentVersion.equals(recordInteractiveVersion)) { + boolean isCompileInteractive = Compiler.compileSpj(problem.getSpjCode(), problem.getId(), problem.getSpjLanguage(), + JudgeUtils.getProblemExtraFileMap(problem, "judge")); + + FileWriter fileWriter = new FileWriter(programVersionPath); + fileWriter.write(currentVersion); + + return isCompileInteractive; + } + + break; + default: + throw new RuntimeException("The problem mode is error:" + judgeMode); + } + + return true; + } + + // 获取判题的运行时间,运行空间,OI得分 + public HashMap computeResultInfo(List allTestCaseResultList, Boolean isACM, + Integer errorCaseNum, Integer totalScore, Integer problemDiffculty) { + HashMap result = new HashMap<>(); + // 用时和内存占用保存为多个测试点中最长的 + allTestCaseResultList.stream().max(Comparator.comparing(t -> t.getTime())) + .ifPresent(t -> result.put("time", t.getTime())); + + allTestCaseResultList.stream().max(Comparator.comparing(t -> t.getMemory())) + .ifPresent(t -> result.put("memory", t.getMemory())); + + // OI题目计算得分 + if (!isACM) { + // 全对的直接用总分*0.1+2*题目难度 + if (errorCaseNum == 0) { + int oiRankScore = (int) Math.round(totalScore * 0.1 + 2 * problemDiffculty); + result.put("score", totalScore); + result.put("oiRankScore", oiRankScore); + } else { + int sumScore = 0; + for (JudgeCase testcaseResult : allTestCaseResultList) { + sumScore += testcaseResult.getScore(); + } + //测试点总得分*0.1+2*题目难度*(测试点总得分/题目总分) + int oiRankScore = (int) Math.round(sumScore * 0.1 + 2 * problemDiffculty * (sumScore * 1.0 / totalScore)); + result.put("score", sumScore); + result.put("oiRankScore", oiRankScore); + } + } + return result; + } + + // 进行最终测试结果的判断(除编译失败外的评测状态码和时间,空间,OI题目的得分) + public HashMap getJudgeInfo(List testCaseResultList, Problem problem, Judge judge) { + + boolean isACM = Objects.equals(problem.getType(), Constants.Contest.TYPE_ACM.getCode()); + + List errorTestCaseList = new LinkedList<>(); + + List allCaseResList = new LinkedList<>(); + + // 记录所有测试点的结果 + testCaseResultList.forEach(jsonObject -> { + Integer time = jsonObject.getLong("time").intValue(); + Integer memory = jsonObject.getLong("memory").intValue(); + Integer status = jsonObject.getInt("status"); + + Long caseId = jsonObject.getLong("caseId", null); + String inputFileName = jsonObject.getStr("inputFileName"); + String outputFileName = jsonObject.getStr("outputFileName"); + String msg = jsonObject.getStr("errMsg"); + JudgeCase judgeCase = new JudgeCase(); + judgeCase.setTime(time).setMemory(memory) + .setStatus(status) + .setInputData(inputFileName) + .setOutputData(outputFileName) + .setPid(problem.getId()) + .setUid(judge.getUid()) + .setCaseId(caseId) + .setSubmitId(judge.getSubmitId()); + + if (!StringUtils.isEmpty(msg) && !Objects.equals(status, Constants.Judge.STATUS_COMPILE_ERROR.getStatus())) { + judgeCase.setUserOutput(msg); + } + + if (isACM) { + if (!Objects.equals(status, Constants.Judge.STATUS_ACCEPTED.getStatus())) { + errorTestCaseList.add(jsonObject); + } + } else { + int oiScore = jsonObject.getInt("score"); + if (Objects.equals(status, Constants.Judge.STATUS_ACCEPTED.getStatus())) { + judgeCase.setScore(oiScore); + } else if (Objects.equals(status, Constants.Judge.STATUS_PARTIAL_ACCEPTED.getStatus())) { + errorTestCaseList.add(jsonObject); + Double percentage = jsonObject.getDouble("percentage"); + if (percentage != null) { + int score = (int) Math.floor(percentage * oiScore); + judgeCase.setScore(score); + } else { + judgeCase.setScore(0); + } + } else { + errorTestCaseList.add(jsonObject); + judgeCase.setScore(0); + } + } + + allCaseResList.add(judgeCase); + }); + + // 更新到数据库 + boolean addCaseRes = JudgeCaseEntityService.saveBatch(allCaseResList); + if (!addCaseRes) { + log.error("题号为:" + problem.getId() + ",提交id为:" + judge.getSubmitId() + "的各个测试数据点的结果更新到数据库操作失败"); + } + + // 获取判题的运行时间,运行空间,OI得分 + HashMap result = computeResultInfo(allCaseResList, isACM, errorTestCaseList.size(), + problem.getIoScore(), problem.getDifficulty()); + + // 如果该题为ACM类型的题目,多个测试点全部正确则AC,否则取第一个错误的测试点的状态 + // 如果该题为OI类型的题目, 若多个测试点全部正确则AC,若全部错误则取第一个错误测试点状态,否则为部分正确 + if (errorTestCaseList.size() == 0) { // 全部测试点正确,则为AC + result.put("code", Constants.Judge.STATUS_ACCEPTED.getStatus()); + } else if (isACM || errorTestCaseList.size() == testCaseResultList.size()) { + result.put("code", errorTestCaseList.get(0).getInt("status")); + result.put("errMsg", errorTestCaseList.get(0).getStr("errMsg", "")); + } else { + result.put("code", Constants.Judge.STATUS_PARTIAL_ACCEPTED.getStatus()); + } + return result; + } + + + private String getUserFileName(String language) { + switch (language) { + case "PHP": + return "main.php"; + case "JavaScript Node": + case "JavaScript V8": + return "main.js"; + } + return "main"; + } + + public String mergeNonEmptyStrings(String... strings) { + StringBuffer sb = new StringBuffer(); + for (String str : strings) { + if (!StringUtils.isEmpty(str)) { + sb.append(str.substring(0, Math.min(1024 * 1024, str.length()))).append("\n"); + } + } + return sb.toString(); + } + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/ProblemTestCaseUtils.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/ProblemTestCaseUtils.java new file mode 100644 index 0000000..e285489 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/ProblemTestCaseUtils.java @@ -0,0 +1,212 @@ +package top.hcode.hoj.judge; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileReader; +import cn.hutool.core.io.file.FileWriter; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.DigestUtils; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.dao.ProblemCaseEntityService; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; +import top.hcode.hoj.util.Constants; + +import java.io.File; +import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/16 13:21 + * @Description: 判题流程解耦重构2.0,该类只负责题目测试数据的检查与初始化 + */ +@Component +public class ProblemTestCaseUtils { + + @Autowired + private ProblemCaseEntityService problemCaseEntityService; + + // 本地无文件初始化测试数据,写成json文件 + public JSONObject initTestCase(List> testCases, + Long problemId, + String version, + String mode) throws SystemError { + + if (testCases == null || testCases.size() == 0) { + throw new SystemError("题号为:" + problemId + "的评测数据为空!", null, "The test cases does not exist."); + } + + JSONObject result = new JSONObject(); + result.set("mode", mode); + result.set("version", version); + result.set("testCasesSize", testCases.size()); + + JSONArray testCaseList = new JSONArray(testCases.size()); + + String testCasesDir = Constants.JudgeDir.TEST_CASE_DIR.getContent() + "/problem_" + problemId; + + // 无论有没有测试数据,一旦执行该函数,一律清空,重新生成该题目对应的测试数据文件 + + FileUtil.del(testCasesDir); + for (int index = 0; index < testCases.size(); index++) { + JSONObject jsonObject = new JSONObject(); + String inputName = (index + 1) + ".in"; + jsonObject.set("caseId", testCases.get(index).get("caseId")); + jsonObject.set("score", testCases.get(index).getOrDefault("score", null)); + jsonObject.set("inputName", inputName); + // 生成对应文件 + FileWriter infileWriter = new FileWriter(testCasesDir + "/" + inputName, CharsetUtil.UTF_8); + // 将该测试数据的输入写入到文件 + infileWriter.write((String) testCases.get(index).get("input")); + + String outputName = (index + 1) + ".out"; + jsonObject.set("outputName", outputName); + // 生成对应文件 + String outputData = (String) testCases.get(index).get("output"); + FileWriter outFile = new FileWriter(testCasesDir + "/" + outputName, CharsetUtil.UTF_8); + outFile.write(outputData); + + // spj或interactive是根据特判程序输出判断结果,所以无需初始化测试数据 + if (Constants.JudgeMode.DEFAULT.getMode().equals(mode)) { + // 原数据MD5 + jsonObject.set("outputMd5", DigestUtils.md5DigestAsHex(outputData.getBytes(StandardCharsets.UTF_8))); + // 原数据大小 + jsonObject.set("outputSize", outputData.getBytes(StandardCharsets.UTF_8).length); + // 去掉全部空格的MD5,用来判断pe + jsonObject.set("allStrippedOutputMd5", DigestUtils.md5DigestAsHex(outputData.replaceAll("\\s+", "").getBytes(StandardCharsets.UTF_8))); + // 默认去掉文末空格的MD5 + jsonObject.set("EOFStrippedOutputMd5", DigestUtils.md5DigestAsHex(rtrim(outputData).getBytes(StandardCharsets.UTF_8))); + } + + testCaseList.add(jsonObject); + } + + result.set("testCases", testCaseList); + + FileWriter infoFile = new FileWriter(testCasesDir + File.separator + "info", CharsetUtil.UTF_8); + // 写入记录文件 + infoFile.write(JSONUtil.toJsonStr(result)); + return result; + } + + // 本地有文件,进行数据初始化 生成json文件 + public JSONObject initLocalTestCase(String mode, + String version, + String testCasesDir, + List problemCaseList) { + + JSONObject result = new JSONObject(); + result.set("mode", mode); + result.set("version", version); + result.set("testCasesSize", problemCaseList.size()); + result.set("testCases", new JSONArray()); + + + for (ProblemCase problemCase : problemCaseList) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("caseId", problemCase.getId()); + jsonObject.set("score", problemCase.getScore()); + jsonObject.set("inputName", problemCase.getInput()); + jsonObject.set("outputName", problemCase.getOutput()); + // 读取输出文件 + FileReader readFile = new FileReader(testCasesDir + File.separator + problemCase.getOutput(), CharsetUtil.UTF_8); + String output = readFile.readString().replaceAll("\r\n", "\n"); + + // spj或interactive是根据特判程序输出判断结果,所以无需初始化测试数据 + if (Constants.JudgeMode.DEFAULT.getMode().equals(mode)) { + // 原数据MD5 + jsonObject.set("outputMd5", DigestUtils.md5DigestAsHex(output.getBytes(StandardCharsets.UTF_8))); + // 原数据大小 + jsonObject.set("outputSize", output.getBytes(StandardCharsets.UTF_8).length); + // 去掉全部空格的MD5,用来判断pe + jsonObject.set("allStrippedOutputMd5", DigestUtils.md5DigestAsHex(output.replaceAll("\\s+", "").getBytes(StandardCharsets.UTF_8))); + // 默认去掉文末空格的MD5 + jsonObject.set("EOFStrippedOutputMd5", DigestUtils.md5DigestAsHex(rtrim(output).getBytes(StandardCharsets.UTF_8))); + } + + ((JSONArray) result.get("testCases")).put(jsonObject); + } + + FileWriter infoFile = new FileWriter(testCasesDir + File.separator + "info", CharsetUtil.UTF_8); + // 写入记录文件 + infoFile.write(JSONUtil.toJsonStr(result)); + + return result; + } + + + // 获取指定题目的info数据 + public JSONObject loadTestCaseInfo(Long problemId, String testCasesDir, String version, String mode) throws SystemError { + if (FileUtil.exist(testCasesDir + File.separator + "info")) { + FileReader fileReader = new FileReader(testCasesDir + File.separator + "info", CharsetUtil.UTF_8); + String infoStr = fileReader.readString(); + JSONObject testcaseInfo = JSONUtil.parseObj(infoStr); + // 测试样例被改动需要重新生成 + if (!testcaseInfo.getStr("version", null).equals(version)) { + return tryInitTestCaseInfo(testCasesDir, problemId, version, mode); + } + return testcaseInfo; + } else { + return tryInitTestCaseInfo(testCasesDir, problemId, version, mode); + } + } + + // 若没有测试数据,则尝试从数据库获取并且初始化到本地,如果数据库中该题目测试数据为空,rsync同步也出了问题,则直接判系统错误 + public JSONObject tryInitTestCaseInfo(String testCasesDir, Long problemId, String version, String mode) throws SystemError { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("pid", problemId); + List problemCases = problemCaseEntityService.list(queryWrapper); + + if (problemCases.size() == 0) { // 数据库也为空的话 + throw new SystemError("problemID:[" + problemId + "] test case has not found.", null, null); + } + + // 可能是zip上传记录的是文件名, + if (StringUtils.isEmpty(problemCases.get(0).getInput()) + || StringUtils.isEmpty(problemCases.get(0).getOutput()) + || (problemCases.get(0).getInput().endsWith(".in") + && (problemCases.get(0).getOutput().endsWith(".out") + || problemCases.get(0).getOutput().endsWith(".ans")))) { + + if (FileUtil.isEmpty(new File(testCasesDir))) { //如果本地对应文件夹也为空,说明文件丢失了 + throw new SystemError("problemID:[" + problemId + "] test case has not found.", null, null); + } else { + return initLocalTestCase(mode, version, testCasesDir, problemCases); + } + } else { + + List> testCases = new LinkedList<>(); + for (ProblemCase problemCase : problemCases) { + HashMap tmp = new HashMap<>(); + tmp.put("input", problemCase.getInput()); + tmp.put("output", problemCase.getOutput()); + tmp.put("caseId", problemCase.getId()); + tmp.put("score", problemCase.getScore()); + testCases.add(tmp); + } + + return initTestCase(testCases, problemId, version, mode); + } + } + + // 去除每行末尾的空白符 + public static String rtrim(String value) { + if (value == null) return null; + StringBuilder sb = new StringBuilder(); + String[] strArr = value.split("\n"); + for (String str : strArr) { + sb.append(str.replaceAll("\\s+$", "")).append("\n"); + } + return sb.toString().replaceAll("\\s+$", ""); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/SandboxRun.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/SandboxRun.java new file mode 100644 index 0000000..bad9f9d --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/SandboxRun.java @@ -0,0 +1,844 @@ +package top.hcode.hoj.judge; + +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; + +import cn.hutool.json.JSONUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.util.StringUtils; +import org.springframework.web.client.RestClientResponseException; +import org.springframework.web.client.RestTemplate; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.util.Constants; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/23 13:44 + * @Description: + */ + +/** + * args: string[]; // command line argument + * env?: string[]; // environment + *

+ * // specifies file input / pipe collector for program file descriptors + * files?: (LocalFile | MemoryFile | PreparedFile | Pipe | null)[]; + * tty?: boolean; // enables tty on the input and output pipes (should have just one input & one output) + * // Notice: must have TERM environment variables (e.g. TERM=xterm) + *

+ * // limitations + * cpuLimit?: number; // ns + * realCpuLimit?: number; // deprecated: use clock limit instead (still working) + * clockLimit?: number; // ns + * memoryLimit?: number; // byte + * stackLimit?: number; // byte (N/A on windows, macOS cannot set over 32M) + * procLimit?: number; + *

+ * // copy the correspond file to the container dst path + * copyIn?: {[dst:string]:LocalFile | MemoryFile | PreparedFile}; + *

+ * // copy out specifies files need to be copied out from the container after execution + * copyOut?: string[]; + * // similar to copyOut but stores file in executor service and returns fileId, later download through /file/:fileId + * copyOutCached?: string[]; + * // specifies the directory to dump container /w content + * copyOutDir: string + * // specifies the max file size to copy out + * copyOutMax: number; // byte + */ + +@Slf4j(topic = "hoj") +public class SandboxRun { + + private static final RestTemplate restTemplate; + + // 单例模式 + private static final SandboxRun instance = new SandboxRun(); + + private static final String SANDBOX_BASE_URL = "http://localhost:5050"; + + public static final HashMap RESULT_MAP_STATUS = new HashMap<>(); + + private static final int maxProcessNumber = 128; + + private static final int TIME_LIMIT_MS = 16000; + + private static final int MEMORY_LIMIT_MB = 512; + + private static final int STACK_LIMIT_MB = 256; + + private static final int STDIO_SIZE_MB = 32; + + private SandboxRun() { + + } + + static { + SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); + requestFactory.setConnectTimeout(20000); + requestFactory.setReadTimeout(180000); + restTemplate = new RestTemplate(requestFactory); + } + + static { + RESULT_MAP_STATUS.put("Time Limit Exceeded", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus()); + RESULT_MAP_STATUS.put("Memory Limit Exceeded", Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED.getStatus()); + RESULT_MAP_STATUS.put("Output Limit Exceeded", Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()); + RESULT_MAP_STATUS.put("Accepted", Constants.Judge.STATUS_ACCEPTED.getStatus()); + RESULT_MAP_STATUS.put("Nonzero Exit Status", Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()); + RESULT_MAP_STATUS.put("Internal Error", Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()); + RESULT_MAP_STATUS.put("File Error", Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()); + RESULT_MAP_STATUS.put("Signalled", Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()); + } + + public static RestTemplate getRestTemplate() { + return restTemplate; + } + + public static String getSandboxBaseUrl() { + return SANDBOX_BASE_URL; + } + + public static final List signals = Arrays.asList( + "", // 0 + "Hangup", // 1 + "Interrupt", // 2 + "Quit", // 3 + "Illegal instruction", // 4 + "Trace/breakpoint trap", // 5 + "Aborted", // 6 + "Bus error", // 7 + "Floating point exception", // 8 + "Killed", // 9 + "User defined signal 1", // 10 + "Segmentation fault", // 11 + "User defined signal 2", // 12 + "Broken pipe", // 13 + "Alarm clock", // 14 + "Terminated", // 15 + "Stack fault", // 16 + "Child exited", // 17 + "Continued", // 18 + "Stopped (signal)", // 19 + "Stopped", // 20 + "Stopped (tty input)", // 21 + "Stopped (tty output)", // 22 + "Urgent I/O condition", // 23 + "CPU time limit exceeded", // 24 + "File size limit exceeded", // 25 + "Virtual timer expired", // 26 + "Profiling timer expired", // 27 + "Window changed", // 28 + "I/O possible", // 29 + "Power failure", // 30 + "Bad system call" // 31 + ); + + public JSONArray run(String uri, JSONObject param) throws SystemError { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + HttpEntity request = new HttpEntity<>(JSONUtil.toJsonStr(param), headers); + ResponseEntity postForEntity; + try { + postForEntity = restTemplate.postForEntity(SANDBOX_BASE_URL + uri, request, String.class); + return JSONUtil.parseArray(postForEntity.getBody()); + } catch (RestClientResponseException ex) { + if (ex.getRawStatusCode() != 200) { + throw new SystemError("Cannot connect to sandbox service.", null, ex.getResponseBodyAsString()); + } + } catch (Exception e) { + throw new SystemError("Call SandBox Error.", null, e.getMessage()); + } + return null; + } + + public static void delFile(String fileId) { + + try { + restTemplate.delete(SANDBOX_BASE_URL + "/file/{0}", fileId); + } catch (RestClientResponseException ex) { + if (ex.getRawStatusCode() != 200) { + log.error("安全沙箱判题的删除内存中的文件缓存操作异常----------------->{}", ex.getResponseBodyAsString()); + } + } + + } + + /** + * "files": [{ + * "content": "" + * }, { + * "name": "stdout", + * "max": 1024 * 1024 * 32 + * }, { + * "name": "stderr", + * "max": 1024 * 1024 * 32 + * }] + */ + private static final JSONArray COMPILE_FILES = new JSONArray(); + + static { + JSONObject content = new JSONObject(); + content.set("content", ""); + + JSONObject stdout = new JSONObject(); + stdout.set("name", "stdout"); + stdout.set("max", 1024 * 1024 * STDIO_SIZE_MB); + + JSONObject stderr = new JSONObject(); + stderr.set("name", "stderr"); + stderr.set("max", 1024 * 1024 * STDIO_SIZE_MB); + COMPILE_FILES.put(content); + COMPILE_FILES.put(stdout); + COMPILE_FILES.put(stderr); + } + + /** + * @param maxCpuTime 最大编译的cpu时间 ms + * @param maxRealTime 最大编译的真实时间 ms + * @param maxMemory 最大编译的空间 b + * @param maxStack 最大编译的栈空间 b + * @param srcName 编译的源文件名字 + * @param exeName 编译生成的exe文件名字 + * @param args 编译的cmd参数 + * @param envs 编译的环境变量 + * @param code 编译的源代码 + * @param extraFiles 编译所需的额外文件 key:文件名,value:文件内容 + * @param needCopyOutCached 是否需要生成用户程序的缓存文件,即生成用户程序id + * @param needCopyOutExe 是否需要生成编译后的用户程序exe文件 + * @param copyOutDir 生成编译后的用户程序exe文件的指定路径 + * @MethodName compile + * @Description 编译运行 + * @Return + * @Since 2022/1/3 + */ + public static JSONArray compile(Long maxCpuTime, + Long maxRealTime, + Long maxMemory, + Long maxStack, + String srcName, + String exeName, + List args, + List envs, + String code, + HashMap extraFiles, + Boolean needCopyOutCached, + Boolean needCopyOutExe, + String copyOutDir) throws SystemError { + JSONObject cmd = new JSONObject(); + cmd.set("args", args); + cmd.set("env", envs); + cmd.set("files", COMPILE_FILES); + // ms-->ns + cmd.set("cpuLimit", maxCpuTime * 1000 * 1000L); + cmd.set("clockLimit", maxRealTime * 1000 * 1000L); + // byte + cmd.set("memoryLimit", maxMemory); + cmd.set("procLimit", maxProcessNumber); + cmd.set("stackLimit", maxStack); + + JSONObject fileContent = new JSONObject(); + fileContent.set("content", code); + + JSONObject copyIn = new JSONObject(); + copyIn.set(srcName, fileContent); + + if (extraFiles != null) { + for (Map.Entry entry : extraFiles.entrySet()) { + if (!StringUtils.isEmpty(entry.getKey()) && !StringUtils.isEmpty(entry.getValue())) { + JSONObject content = new JSONObject(); + content.set("content", entry.getValue()); + copyIn.set(entry.getKey(), content); + } + } + } + + cmd.set("copyIn", copyIn); + cmd.set("copyOut", new JSONArray().put("stdout").put("stderr")); + + if (needCopyOutCached) { + cmd.set("copyOutCached", new JSONArray().put(exeName)); + } + + if (needCopyOutExe) { + cmd.set("copyOutDir", copyOutDir); + } + + JSONObject param = new JSONObject(); + param.set("cmd", new JSONArray().put(cmd)); + + JSONArray result = instance.run("/run", param); + JSONObject tmp = (JSONObject) result.get(0); + ((JSONObject) result.get(0)).set("status", RESULT_MAP_STATUS.get(tmp.getStr("status"))); + return result; + } + + + /** + * @param args 普通评测运行cmd的命令参数 + * @param envs 普通评测运行的环境变量 + * @param testCasePath 题目数据的输入文件路径 + * @param testCaseContent 题目数据的输入数据(与testCasePath二者选一) + * @param maxTime 评测的最大限制时间 ms + * @param maxOutputSize 评测的最大输出大小 kb + * @param maxStack 评测的最大限制栈空间 mb + * @param exeName 评测的用户程序名称 + * @param fileId 评测的用户程序文件id + * @param fileContent 评测的用户程序文件内容,如果userFileId存在则为null + * @MethodName testCase + * @Description 普通评测 + * @Return JSONArray + * @Since 2022/1/3 + */ + public static JSONArray testCase(List args, + List envs, + String testCasePath, + String testCaseContent, + Long maxTime, + Long maxMemory, + Long maxOutputSize, + Integer maxStack, + String exeName, + String fileId, + String fileContent) throws SystemError { + + JSONObject cmd = new JSONObject(); + cmd.set("args", args); + cmd.set("env", envs); + + JSONArray files = new JSONArray(); + JSONObject content = new JSONObject(); + if (StringUtils.isEmpty(testCasePath)) { + content.set("content", testCaseContent); + } else { + content.set("src", testCasePath); + } + + JSONObject stdout = new JSONObject(); + stdout.set("name", "stdout"); + stdout.set("max", maxOutputSize); + + JSONObject stderr = new JSONObject(); + stderr.set("name", "stderr"); + stderr.set("max", 1024 * 1024 * 16); + files.put(content); + files.put(stdout); + files.put(stderr); + + cmd.set("files", files); + + // ms-->ns + cmd.set("cpuLimit", maxTime * 1000 * 1000L); + cmd.set("clockLimit", maxTime * 1000 * 1000L * 3); + // byte + if (maxMemory >= MEMORY_LIMIT_MB) { + cmd.set("memoryLimit", (maxMemory + 100) * 1024 * 1024L); + } else { + cmd.set("memoryLimit", MEMORY_LIMIT_MB * 1024 * 1024L); + } + cmd.set("procLimit", maxProcessNumber); + cmd.set("stackLimit", maxStack * 1024 * 1024L); + + JSONObject exeFile = new JSONObject(); + if (!StringUtils.isEmpty(fileId)) { + exeFile.set("fileId", fileId); + } else { + exeFile.set("content", fileContent); + } + JSONObject copyIn = new JSONObject(); + copyIn.set(exeName, exeFile); + + cmd.set("copyIn", copyIn); + cmd.set("copyOut", new JSONArray().put("stdout").put("stderr")); + + JSONObject param = new JSONObject(); + param.set("cmd", new JSONArray().put(cmd)); + + // 调用判题安全沙箱 + JSONArray result = instance.run("/run", param); + + JSONObject tmp = (JSONObject) result.get(0); + ((JSONObject) result.get(0)).set("status", RESULT_MAP_STATUS.get(tmp.getStr("status"))); + return result; + } + + + /** + * @param args 特殊判题的运行cmd命令参数 + * @param envs 特殊判题的运行环境变量 + * @param userOutputFilePath 用户程序输出文件的路径 + * @param userOutputFileName 用户程序输出文件的名字 + * @param testCaseInputFilePath 题目数据的输入文件的路径 + * @param testCaseInputFileName 题目数据的输入文件的名字 + * @param testCaseOutputFilePath 题目数据的输出文件的路径 + * @param testCaseOutputFileName 题目数据的输出文件的路径 + * @param spjExeSrc 特殊判题的exe文件的路径 + * @param spjExeName 特殊判题的exe文件的名字 + * @MethodName spjCheckResult + * @Description 特殊判题的评测 + * @Return JSONArray + * @Since 2022/1/3 + */ + public static JSONArray spjCheckResult(List args, + List envs, + String userOutputFilePath, + String userOutputFileName, + String testCaseInputFilePath, + String testCaseInputFileName, + String testCaseOutputFilePath, + String testCaseOutputFileName, + String spjExeSrc, + String spjExeName) throws SystemError { + + JSONObject cmd = new JSONObject(); + cmd.set("args", args); + cmd.set("env", envs); + + JSONArray outFiles = new JSONArray(); + + JSONObject content = new JSONObject(); + content.set("content", ""); + + JSONObject outStdout = new JSONObject(); + outStdout.set("name", "stdout"); + outStdout.set("max", 1024 * 1024 * 16); + + JSONObject outStderr = new JSONObject(); + outStderr.set("name", "stderr"); + outStderr.set("max", 1024 * 1024 * 16); + + outFiles.put(content); + outFiles.put(outStdout); + outFiles.put(outStderr); + cmd.set("files", outFiles); + + // ms-->ns + cmd.set("cpuLimit", TIME_LIMIT_MS * 1000 * 1000L); + cmd.set("clockLimit", TIME_LIMIT_MS * 1000 * 1000L * 3); + // byte + cmd.set("memoryLimit", MEMORY_LIMIT_MB * 1024 * 1024L); + cmd.set("procLimit", maxProcessNumber); + cmd.set("stackLimit", STACK_LIMIT_MB * 1024 * 1024L); + + + JSONObject spjExeFile = new JSONObject(); + spjExeFile.set("src", spjExeSrc); + + JSONObject useOutputFileSrc = new JSONObject(); + useOutputFileSrc.set("src", userOutputFilePath); + + JSONObject stdInputFileSrc = new JSONObject(); + stdInputFileSrc.set("src", testCaseInputFilePath); + + JSONObject stdOutFileSrc = new JSONObject(); + stdOutFileSrc.set("src", testCaseOutputFilePath); + + JSONObject spjCopyIn = new JSONObject(); + + spjCopyIn.set(spjExeName, spjExeFile); + spjCopyIn.set(userOutputFileName, useOutputFileSrc); + spjCopyIn.set(testCaseInputFileName, stdInputFileSrc); + spjCopyIn.set(testCaseOutputFileName, stdOutFileSrc); + + + cmd.set("copyIn", spjCopyIn); + cmd.set("copyOut", new JSONArray().put("stdout").put("stderr")); + + JSONObject param = new JSONObject(); + + param.set("cmd", new JSONArray().put(cmd)); + + // 调用判题安全沙箱 + JSONArray result = instance.run("/run", param); + + JSONObject tmp = (JSONObject) result.get(0); + ((JSONObject) result.get(0)).set("status", RESULT_MAP_STATUS.get(tmp.getStr("status"))); + return result; + } + + + /** + * @param args cmd的命令参数 评测运行的命令 + * @param envs 测评的环境变量 + * @param userExeName 用户程序的名字 + * @param userFileId 用户程序在编译后返回的id,主要是对应内存中已编译后的文件 + * @param userFileContent 用户程序文件的内容,如果userFileId存在则为null + * @param userMaxTime 用户程序的最大测评时间 ms + * @param userMaxStack 用户程序的最大测评栈空间 mb + * @param testCaseInputPath 题目数据的输入文件路径 + * @param testCaseInputFileName 题目数据的输入文件名字 + * @param testCaseOutputFilePath 题目数据的输出文件路径 + * @param testCaseOutputFileName 题目数据的输出文件名字 + * @param userOutputFileName 用户程序的输出文件名字 + * @param interactArgs 交互程序运行的cmd命令参数 + * @param interactEnvs 交互程序运行的环境变量 + * @param interactExeSrc 交互程序的exe文件路径 + * @param interactExeName 交互程序的exe文件名字 + * @MethodName interactTestCase + * @Description 交互评测 + * @Return JSONArray + * @Since 2022/1/3 + */ + public static JSONArray interactTestCase(List args, + List envs, + String userExeName, + String userFileId, + String userFileContent, + Long userMaxTime, + Long userMaxMemory, + Integer userMaxStack, + String testCaseInputPath, + String testCaseInputFileName, + String testCaseOutputFilePath, + String testCaseOutputFileName, + String userOutputFileName, + List interactArgs, + List interactEnvs, + String interactExeSrc, + String interactExeName) throws SystemError { + + /** + * 注意:用户源代码需要先编译,若是通过编译需要先将文件存入内存,再利用管道判题,同时特殊判题程序必须已编译且存在(否则判题失败,系统错误)! + */ + + JSONObject pipeInputCmd = new JSONObject(); + pipeInputCmd.set("args", args); + pipeInputCmd.set("env", envs); + + JSONArray files = new JSONArray(); + + JSONObject stderr = new JSONObject(); + stderr.set("name", "stderr"); + stderr.set("max", 1024 * 1024 * STDIO_SIZE_MB); + + files.put(new JSONObject()); + files.put(new JSONObject()); + files.put(stderr); + + String inTmp = files.toString().replace("{}", "null"); + pipeInputCmd.set("files", JSONUtil.parseArray(inTmp, false)); + + // ms-->ns + pipeInputCmd.set("cpuLimit", userMaxTime * 1000 * 1000L); + pipeInputCmd.set("clockLimit", userMaxTime * 1000 * 1000L * 3); + + // byte + + pipeInputCmd.set("memoryLimit", (userMaxMemory + 100) * 1024 * 1024L); + pipeInputCmd.set("procLimit", maxProcessNumber); + pipeInputCmd.set("stackLimit", userMaxStack * 1024 * 1024L); + + JSONObject exeFile = new JSONObject(); + if (!StringUtils.isEmpty(userFileId)) { + exeFile.set("fileId", userFileId); + } else { + exeFile.set("content", userFileContent); + } + JSONObject copyIn = new JSONObject(); + copyIn.set(userExeName, exeFile); + + pipeInputCmd.set("copyIn", copyIn); + pipeInputCmd.set("copyOut", new JSONArray()); + + + // 管道输出,用户程序输出数据经过特殊判题程序后,得到的最终输出结果。 + JSONObject pipeOutputCmd = new JSONObject(); + pipeOutputCmd.set("args", interactArgs); + pipeOutputCmd.set("env", interactEnvs); + + JSONArray outFiles = new JSONArray(); + + + JSONObject outStderr = new JSONObject(); + outStderr.set("name", "stderr"); + outStderr.set("max", 1024 * 1024 * STDIO_SIZE_MB); + outFiles.put(new JSONObject()); + outFiles.put(new JSONObject()); + outFiles.put(outStderr); + String outTmp = outFiles.toString().replace("{}", "null"); + pipeOutputCmd.set("files", JSONUtil.parseArray(outTmp, false)); + + // ms-->ns + pipeOutputCmd.set("cpuLimit", userMaxTime * 1000 * 1000L * 2); + pipeOutputCmd.set("clockLimit", userMaxTime * 1000 * 1000L * 3 * 2); + // byte + pipeOutputCmd.set("memoryLimit", (userMaxMemory + 100) * 1024 * 1024L * 2); + pipeOutputCmd.set("procLimit", maxProcessNumber); + pipeOutputCmd.set("stackLimit", STACK_LIMIT_MB * 1024 * 1024L); + + JSONObject spjExeFile = new JSONObject(); + spjExeFile.set("src", interactExeSrc); + + JSONObject stdInputFileSrc = new JSONObject(); + stdInputFileSrc.set("src", testCaseInputPath); + + JSONObject stdOutFileSrc = new JSONObject(); + stdOutFileSrc.set("src", testCaseOutputFilePath); + + JSONObject interactiveCopyIn = new JSONObject(); + interactiveCopyIn.set(interactExeName, spjExeFile); + interactiveCopyIn.set(testCaseInputFileName, stdInputFileSrc); + interactiveCopyIn.set(testCaseOutputFileName, stdOutFileSrc); + + + pipeOutputCmd.set("copyIn", interactiveCopyIn); + pipeOutputCmd.set("copyOut", new JSONArray().put(userOutputFileName)); + + JSONArray cmdList = new JSONArray(); + cmdList.put(pipeInputCmd); + cmdList.put(pipeOutputCmd); + + JSONObject param = new JSONObject(); + // 添加cmd指令 + param.set("cmd", cmdList); + + // 添加管道映射 + JSONArray pipeMapping = new JSONArray(); + // 用户程序 + JSONObject user = new JSONObject(); + + JSONObject userIn = new JSONObject(); + userIn.set("index", 0); + userIn.set("fd", 1); + + JSONObject userOut = new JSONObject(); + userOut.set("index", 1); + userOut.set("fd", 0); + + user.set("in", userIn); + user.set("out", userOut); + user.set("max", STDIO_SIZE_MB * 1024 * 1024); + user.set("proxy", true); + user.set("name", "stdout"); + + // 评测程序 + JSONObject judge = new JSONObject(); + + JSONObject judgeIn = new JSONObject(); + judgeIn.set("index", 1); + judgeIn.set("fd", 1); + + JSONObject judgeOut = new JSONObject(); + judgeOut.set("index", 0); + judgeOut.set("fd", 0); + + judge.set("in", judgeIn); + judge.set("out", judgeOut); + judge.set("max", STDIO_SIZE_MB * 1024 * 1024); + judge.set("proxy", true); + judge.set("name", "stdout"); + + + // 添加到管道映射列表 + pipeMapping.add(user); + pipeMapping.add(judge); + + param.set("pipeMapping", pipeMapping); + + // 调用判题安全沙箱 + JSONArray result = instance.run("/run", param); + JSONObject userRes = (JSONObject) result.get(0); + JSONObject interactiveRes = (JSONObject) result.get(1); + userRes.set("status", RESULT_MAP_STATUS.get(userRes.getStr("status"))); + interactiveRes.set("status", RESULT_MAP_STATUS.get(interactiveRes.getStr("status"))); + return result; + } + +} + /* + 1. compile + Json Request Body + { + "cmd": [{ + "args": ["/usr/bin/g++", "a.cc", "-o", "a"], + "env": ["PATH=/usr/bin:/bin"], + "files": [{ + "content": "" + }, { + "name": "stdout", + "max": 10240 + }, { + "name": "stderr", + "max": 10240 + }], + "cpuLimit": 10000000000, + "memoryLimit": 104857600, + "procLimit": 50, + "copyIn": { + "a.cc": { + "content": "#include \nusing namespace std;\nint main() {\nint a, b;\ncin >> a >> b;\ncout << a + b << endl;\n}" + } + }, + "copyOut": ["stdout", "stderr"], + "copyOutCached": ["a.cc", "a"], + "copyOutDir": "1" + }] + } + + Json Response Data + + [ + { + "status": "Accepted", + "exitStatus": 0, + "time": 303225231, + "memory": 32243712, + "runTime": 524177700, + "files": { + "stderr": "", + "stdout": "" + }, + "fileIds": { + "a": "5LWIZAA45JHX4Y4Z", + "a.cc": "NOHPGGDTYQUFRSLJ" + } + } + ] + 2.test case + + Json Request Body + { + "cmd": [{ + "args": ["a"], + "env": ["PATH=/usr/bin:/bin","LANG=en_US.UTF-8","LC_ALL=en_US.UTF-8","LANGUAGE=en_US:en"], + "files": [{ + "src": "/judge/test_case/problem_1010/1.in" + }, { + "name": "stdout", + "max": 10240 + }, { + "name": "stderr", + "max": 10240 + }], + "cpuLimit": 10000000000, + "realCpuLimit":30000000000, + "stackLimit":134217728, + "memoryLimit": 104811111, + "procLimit": 50, + "copyIn": { + "a":{"fileId":"WDQL5TNLRRVB2KAP"} + }, + "copyOut": ["stdout", "stderr"] + }] + } + + Json Response Data + [{ + "status": "Accepted", + "exitStatus": 0, + "time": 3171607, + "memory": 475136, + "runTime": 110396333, + "files": { + "stderr": "", + "stdout": "23\n" + } + }] + + 3. Interactive + + { + "pipeMapping": [ + { + "in": { + "max": 16777216, + "index": 0, + "fd": 1 + }, + "out": { + "index": 1, + "fd": 0 + } + } + ], + "cmd": [ + { + "stackLimit": 134217728, + "cpuLimit": 3000000000, + "realCpuLimit": 9000000000, + "clockLimit": 64, + "env": [ + "LANG=en_US.UTF-8", + "LANGUAGE=en_US:en", + "LC_ALL=en_US.UTF-8", + "PYTHONIOENCODING=utf-8" + ], + "copyOut": [ + "stderr" + ], + "args": [ + "/usr/bin/python3", + "main" + ], + "files": [ + { + "src": "/judge/test_case/problem_1002/5.in" + }, + null, + { + "max": 16777216, + "name": "stderr" + } + ], + "memoryLimit": 536870912, + "copyIn": { + "main": { + "fileId": "CGTRDEMKW5VAYN6O" + } + } + }, + { + "stackLimit": 134217728, + "cpuLimit": 8000000000, + "clockLimit": 24000000000, + "env": [ + "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=en_US.UTF-8", + "LANGUAGE=en_US:en", + "LC_ALL=en_US.UTF-8" + ], + "copyOut": [ + "stdout", + "stderr" + ], + "args": [ + "/w/spj", + "/w/tmp" + ], + "files": [ + null, + { + "max": 16777216, + "name": "stdout" + }, + { + "max": 16777216, + "name": "stderr" + } + ], + "memoryLimit": 536870912, + "copyIn": { + "spj": { + "src": "/judge/spj/1002/spj" + }, + "tmp": { + "src": "/judge/test_case/problem_1002/5.out" + } + }, + "procLimit": 64 + } + ] +} + + + */ diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/JudgeDTO.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/JudgeDTO.java new file mode 100644 index 0000000..1054297 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/JudgeDTO.java @@ -0,0 +1,53 @@ +package top.hcode.hoj.judge.entity; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/2 20:58 + * @Description: 评测题目的传输类 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@Builder +public class JudgeDTO implements Serializable { + + private static final long serialVersionUID = 666L; + + /** + * 当前题目评测点的的编号 + */ + private Integer testCaseId; + + /** + * 当前题目评测点的输入文件的绝对路径 + */ + private String testCaseInputPath; + + /** + * 当前题目评测点的输入内容 + */ + private String testCaseInputContent; + + /** + * 当前题目评测点的输出文件的绝对路径 + */ + private String testCaseOutputPath; + + /** + * 当前题目评测点的标准输出内容(目前只用于testJudge) + */ + private String testCaseOutputContent; + + /** + * 当前题目评测点的输出字符大小限制 kb + */ + private Long maxOutputSize; + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/JudgeGlobalDTO.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/JudgeGlobalDTO.java new file mode 100644 index 0000000..ea36432 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/JudgeGlobalDTO.java @@ -0,0 +1,107 @@ +package top.hcode.hoj.judge.entity; + +import cn.hutool.json.JSONObject; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import top.hcode.hoj.util.Constants; + +import java.io.Serializable; +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/3 11:53 + * @Description: 一次评测全局通用的传输实体类 + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@Builder +public class JudgeGlobalDTO implements Serializable { + + private static final long serialVersionUID = 888L; + + /** + * 当前评测题目的id + */ + private Long problemId; + + /** + * 当前评测题目的模式 + */ + private Constants.JudgeMode judgeMode; + + /** + * 用户程序在沙盒编译后对应内存文件的id,运行时需要传入 + */ + private String userFileId; + + /** + * 用户程序代码文件的内容 + */ + private String userFileContent; + + /** + * 整个评测的工作目录 + */ + private String runDir; + + /** + * 判题沙盒评测程序的最大实际时间,一般为题目最大限制时间+200ms + */ + private Long testTime; + + /** + * 当前题目评测的最大时间限制 ms + */ + private Long maxTime; + + /** + * 当前题目评测的最大空间限制 mb + */ + private Long maxMemory; + + /** + * 当前题目评测的最大栈空间限制 mb + */ + private Integer maxStack; + + /** + * 评测数据json内容 + */ + private JSONObject testCaseInfo; + + /** + * 交互程序或特判程序所需的额外文件 key:文件名,value:文件路径 + */ + private HashMap judgeExtraFiles; + + /** + * 普通评测的命令配置 + */ + Constants.RunConfig runConfig; + + /** + * 特殊判题的命令配置 + */ + Constants.RunConfig spjRunConfig; + + /** + * 交互判题的命令配置 + */ + Constants.RunConfig interactiveRunConfig; + + /** + * 是否需要生成用户程序输出的文件 + */ + private Boolean needUserOutputFile; + + /** + * 是否需要自动移除评测数据的行末空格 + */ + private Boolean removeEOLBlank; + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/SandBoxRes.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/SandBoxRes.java new file mode 100644 index 0000000..24bfb0d --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/entity/SandBoxRes.java @@ -0,0 +1,49 @@ +package top.hcode.hoj.judge.entity; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/3 15:27 + * @Description: 单个测评结果实体类 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@Builder +public class SandBoxRes { + /** + * 单个程序的状态码 + */ + private Integer status; + + /** + * 单个程序的退出码 + */ + private Integer exitCode; + + /** + * 单个程序的运行所耗空间 kb + */ + private Long memory; + + /** + * 单个程序的运行所耗时间 ms + */ + private Long time; + + /** + * 单个程序的标准输出 + */ + private String stdout; + + /** + * 单个程序的错误信息 + */ + private String stderr; + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/DefaultJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/DefaultJudge.java new file mode 100644 index 0000000..d23ee2a --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/DefaultJudge.java @@ -0,0 +1,129 @@ +package top.hcode.hoj.judge.task; + +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import org.springframework.stereotype.Component; +import org.springframework.util.DigestUtils; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.judge.AbstractJudge; +import top.hcode.hoj.judge.SandboxRun; +import top.hcode.hoj.judge.entity.JudgeDTO; +import top.hcode.hoj.judge.entity.JudgeGlobalDTO; +import top.hcode.hoj.judge.entity.SandBoxRes; +import top.hcode.hoj.util.Constants; + +import java.nio.charset.StandardCharsets; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/2 21:18 + * @Description: 普通评测 + */ +@Component +public class DefaultJudge extends AbstractJudge { + @Override + public JSONArray judgeCase(JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError { + Constants.RunConfig runConfig = judgeGlobalDTO.getRunConfig(); + // 调用安全沙箱使用测试点对程序进行测试 + return SandboxRun.testCase( + parseRunCommand(runConfig.getCommand(), runConfig, null, null, null), + runConfig.getEnvs(), + judgeDTO.getTestCaseInputPath(), + judgeDTO.getTestCaseInputContent(), + judgeGlobalDTO.getTestTime(), + judgeGlobalDTO.getMaxMemory(), + judgeDTO.getMaxOutputSize(), + judgeGlobalDTO.getMaxStack(), + runConfig.getExeName(), + judgeGlobalDTO.getUserFileId(), + judgeGlobalDTO.getUserFileContent()); + } + + @Override + public JSONObject checkResult(SandBoxRes sandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) { + + JSONObject result = new JSONObject(); + + StringBuilder errMsg = new StringBuilder(); + // 如果测试跑题无异常 + if (sandBoxRes.getStatus().equals(Constants.Judge.STATUS_ACCEPTED.getStatus())) { + + // 对结果的时间损耗和空间损耗与题目限制做比较,判断是否mle和tle + if (sandBoxRes.getTime() > judgeGlobalDTO.getMaxTime()) { + result.set("status", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus()); + } else if (sandBoxRes.getMemory() > judgeGlobalDTO.getMaxMemory() * 1024) { + result.set("status", Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED.getStatus()); + } else { + // 与原测试数据输出的md5进行对比 AC或者是WA + JSONObject testcaseInfo = (JSONObject) ((JSONArray) judgeGlobalDTO.getTestCaseInfo().get("testCases")).get(judgeDTO.getTestCaseId() - 1); + result.set("status", compareOutput(sandBoxRes.getStdout(), judgeGlobalDTO.getRemoveEOLBlank(), testcaseInfo)); + } + } else if (sandBoxRes.getStatus().equals(Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus())) { + result.set("status", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus()); + } else if (sandBoxRes.getExitCode() != 0) { + result.set("status", Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()); + if (sandBoxRes.getExitCode() < 32) { + errMsg.append(String.format("The program return exit status code: %s (%s)\n", sandBoxRes.getExitCode(), SandboxRun.signals.get(sandBoxRes.getExitCode()))); + } else { + errMsg.append(String.format("The program return exit status code: %s\n", sandBoxRes.getExitCode())); + } + } else { + result.set("status", sandBoxRes.getStatus()); + } + + // b + result.set("memory", sandBoxRes.getMemory()); + // ns->ms + result.set("time", sandBoxRes.getTime()); + +// if (!StringUtils.isEmpty(sandBoxRes.getStdout())) { +// // 对于当前测试样例,用户程序的输出对应生成的文件 +// FileWriter stdWriter = new FileWriter(judgeGlobalDTO.getRunDir() + "/" + judgeDTO.getTestCaseId() + ".out"); +// stdWriter.write(sandBoxRes.getStdout()); +// } + + // 记录该测试点的错误信息 + if (!StringUtils.isEmpty(errMsg.toString())) { + String str = errMsg.toString(); + result.set("errMsg", str.substring(0, Math.min(1024 * 1024, str.length()))); + } + + if (judgeGlobalDTO.getNeedUserOutputFile()) { // 如果需要获取用户对于该题目的输出 + result.set("output", sandBoxRes.getStdout()); + } + + return result; + } + + @Override + public JSONObject checkMultipleResult(SandBoxRes userSandBoxRes, SandBoxRes interactiveSandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) { + return null; + } + + // 根据评测结果与用户程序输出的字符串MD5进行对比 + private Integer compareOutput(String userOutput, Boolean isRemoveEOLBlank, JSONObject testcaseInfo) { + + // 如果当前题目选择默认去掉字符串末位空格 + if (isRemoveEOLBlank) { + String userOutputMd5 = DigestUtils.md5DigestAsHex(rtrim(userOutput).getBytes(StandardCharsets.UTF_8)); + if (userOutputMd5.equals(testcaseInfo.getStr("EOFStrippedOutputMd5"))) { + return Constants.Judge.STATUS_ACCEPTED.getStatus(); + } + } else { // 不选择默认去掉文末空格 与原数据进行对比 + String userOutputMd5 = DigestUtils.md5DigestAsHex(userOutput.getBytes(StandardCharsets.UTF_8)); + if (userOutputMd5.equals(testcaseInfo.getStr("outputMd5"))) { + return Constants.Judge.STATUS_ACCEPTED.getStatus(); + } + } + // 如果不AC,进行PE判断,否则为WA + String userOutputMd5 = DigestUtils.md5DigestAsHex(userOutput.replaceAll("\\s+", "").getBytes(StandardCharsets.UTF_8)); + if (userOutputMd5.equals(testcaseInfo.getStr("allStrippedOutputMd5"))) { + return Constants.Judge.STATUS_PRESENTATION_ERROR.getStatus(); + } else { + return Constants.Judge.STATUS_WRONG_ANSWER.getStatus(); + } + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/InteractiveJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/InteractiveJudge.java new file mode 100644 index 0000000..984d2c6 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/InteractiveJudge.java @@ -0,0 +1,176 @@ +package top.hcode.hoj.judge.task; + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.judge.AbstractJudge; +import top.hcode.hoj.judge.SandboxRun; +import top.hcode.hoj.judge.entity.JudgeDTO; +import top.hcode.hoj.judge.entity.JudgeGlobalDTO; +import top.hcode.hoj.judge.entity.SandBoxRes; +import top.hcode.hoj.util.Constants; + +import java.io.File; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/2 23:24 + * @Description: 交互评测 + */ +@Component +public class InteractiveJudge extends AbstractJudge { + + @Override + public JSONArray judgeCase(JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError { + + Constants.RunConfig runConfig = judgeGlobalDTO.getRunConfig(); + Constants.RunConfig interactiveRunConfig = judgeGlobalDTO.getInteractiveRunConfig(); + + // 交互程序的路径 + String interactiveExeSrc = Constants.JudgeDir.INTERACTIVE_WORKPLACE_DIR.getContent() + + File.separator + judgeGlobalDTO.getProblemId() + File.separator + interactiveRunConfig.getExeName(); + + String testCaseInputFileName = judgeGlobalDTO.getProblemId() + "_input"; + String testCaseOutputFileName = judgeGlobalDTO.getProblemId() + "_output"; + + String userOutputFileName = judgeGlobalDTO.getProblemId() + "_user_output"; + + return SandboxRun.interactTestCase( + parseRunCommand(runConfig.getCommand(), runConfig, null, null, null), + runConfig.getEnvs(), + runConfig.getExeName(), + judgeGlobalDTO.getUserFileId(), + judgeGlobalDTO.getUserFileContent(), + judgeGlobalDTO.getTestTime(), + judgeGlobalDTO.getMaxMemory(), + judgeGlobalDTO.getMaxStack(), + judgeDTO.getTestCaseInputPath(), + testCaseInputFileName, + judgeDTO.getTestCaseOutputPath(), + testCaseOutputFileName, + userOutputFileName, + parseRunCommand(interactiveRunConfig.getCommand(), interactiveRunConfig, testCaseInputFileName, userOutputFileName, testCaseOutputFileName), + interactiveRunConfig.getEnvs(), + interactiveExeSrc, + interactiveRunConfig.getExeName()); + } + + @Override + public JSONObject checkResult(SandBoxRes sandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError { + return null; + } + + @Override + public JSONObject checkMultipleResult(SandBoxRes userSandBoxRes, SandBoxRes interactiveSandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) { + + JSONObject result = new JSONObject(); + + // 记录错误信息 + StringBuilder errMsg = new StringBuilder(); + + int userExitCode = userSandBoxRes.getExitCode(); + result.set("status", userSandBoxRes.getStatus()); + // 如果运行超过题目限制时间,直接TLE + if (userSandBoxRes.getTime() > judgeGlobalDTO.getMaxTime()) { + result.set("status", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus()); + } else if (userSandBoxRes.getMemory() > judgeGlobalDTO.getMaxMemory() * 1024) { // 如果运行超过题目限制空间,直接MLE + result.set("status", Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED.getStatus()); + } else if ((userExitCode != 0 && userExitCode != 13) || (userExitCode == 13 && interactiveSandBoxRes.getExitCode() == 0)) { + // Broken Pipe + result.set("status", Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()); + if (userExitCode < 32) { + errMsg.append(String.format("The program return exit status code: %s (%s)\n", userExitCode, SandboxRun.signals.get(userExitCode))); + } else { + errMsg.append(String.format("The program return exit status code: %s\n", userExitCode)); + } + } else { + // 根据交互程序的退出状态码及输出进行判断 + JSONObject interactiveCheckRes = checkInteractiveRes(interactiveSandBoxRes); + int code = interactiveCheckRes.getInt("code"); + if (code == SPJ_WA) { + result.set("status", Constants.Judge.STATUS_WRONG_ANSWER.getStatus()); + } else if (code == SPJ_AC) { + result.set("status", Constants.Judge.STATUS_ACCEPTED.getStatus()); + } else if (code == SPJ_PE) { + result.set("status", Constants.Judge.STATUS_PRESENTATION_ERROR.getStatus()); + } else if (code == SPJ_PC) { + result.set("status", Constants.Judge.STATUS_PARTIAL_ACCEPTED.getStatus()); + result.set("percentage", interactiveCheckRes.getDouble("percentage")); + } else { + result.set("status", Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()); + } + + String spjErrMsg = interactiveCheckRes.getStr("errMsg"); + if (!StringUtils.isEmpty(spjErrMsg)) { + errMsg.append(spjErrMsg).append(" "); + } + if (interactiveSandBoxRes.getExitCode() != 0 && !StringUtils.isEmpty(interactiveSandBoxRes.getStderr())) { + errMsg.append(String.format("Interactive program exited with code: %s", interactiveSandBoxRes.getExitCode())); + } + } + // kb + result.set("memory", userSandBoxRes.getMemory()); + // ms + result.set("time", userSandBoxRes.getTime()); + + // 记录该测试点的错误信息 + if (!StringUtils.isEmpty(errMsg.toString())) { + String str = errMsg.toString(); + result.set("errMsg", str.substring(0, Math.min(1024 * 1024, str.length()))); + } + + return result; + } + + + private JSONObject checkInteractiveRes(SandBoxRes interactiveSandBoxRes) { + + JSONObject result = new JSONObject(); + + int exitCode = interactiveSandBoxRes.getExitCode(); + + // 获取跑题用户输出或错误输出 + if (!StringUtils.isEmpty(interactiveSandBoxRes.getStderr())) { + result.set("errMsg", interactiveSandBoxRes.getStderr()); + } + + // 如果程序无异常 + if (interactiveSandBoxRes.getStatus().equals(Constants.Judge.STATUS_ACCEPTED.getStatus())) { + if (exitCode == Constants.Judge.STATUS_ACCEPTED.getStatus()) { + result.set("code", SPJ_AC); + } else { + result.set("code", exitCode); + } + } else if (interactiveSandBoxRes.getStatus().equals(Constants.Judge.STATUS_RUNTIME_ERROR.getStatus())) { + if (exitCode == SPJ_WA || exitCode == SPJ_ERROR || exitCode == SPJ_AC || exitCode == SPJ_PE) { + result.set("code", exitCode); + }else if (exitCode == SPJ_PC) { + result.set("code", exitCode); + String stdout = interactiveSandBoxRes.getStdout(); + if (NumberUtil.isNumber(stdout)) { + double percentage = 0.0; + percentage = Double.parseDouble(stdout) / 100; + if (percentage == 1) { + result.set("code", SPJ_AC); + } else { + result.set("percentage", percentage); + } + } + } else { + if (!StringUtils.isEmpty(interactiveSandBoxRes.getStderr())) { + // 适配testlib.h 根据错误信息前缀判断 + return parseTestLibErr(interactiveSandBoxRes.getStderr()); + } else { + result.set("code", SPJ_ERROR); + } + } + } else { + result.set("code", SPJ_ERROR); + } + return result; + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/SpecialJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/SpecialJudge.java new file mode 100644 index 0000000..bf4dd6f --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/SpecialJudge.java @@ -0,0 +1,213 @@ +package top.hcode.hoj.judge.task; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileWriter; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.judge.AbstractJudge; +import top.hcode.hoj.judge.SandboxRun; +import top.hcode.hoj.judge.entity.JudgeDTO; +import top.hcode.hoj.judge.entity.JudgeGlobalDTO; +import top.hcode.hoj.judge.entity.SandBoxRes; +import top.hcode.hoj.util.Constants; + +import java.io.File; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/2 22:23 + * @Description: 特殊判题 支持testlib + */ + +@Component +public class SpecialJudge extends AbstractJudge { + @Override + public JSONArray judgeCase(JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError { + Constants.RunConfig runConfig = judgeGlobalDTO.getRunConfig(); + // 调用安全沙箱使用测试点对程序进行测试 + return SandboxRun.testCase( + parseRunCommand(runConfig.getCommand(), runConfig, null, null, null), + runConfig.getEnvs(), + judgeDTO.getTestCaseInputPath(), + null, + judgeGlobalDTO.getTestTime(), + judgeGlobalDTO.getMaxMemory(), + judgeDTO.getMaxOutputSize(), + judgeGlobalDTO.getMaxStack(), + runConfig.getExeName(), + judgeGlobalDTO.getUserFileId(), + judgeGlobalDTO.getUserFileContent()); + } + + + @Override + public JSONObject checkMultipleResult(SandBoxRes userSandBoxRes, SandBoxRes interactiveSandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) { + return null; + } + + @Override + public JSONObject checkResult(SandBoxRes sandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError { + + JSONObject result = new JSONObject(); + StringBuilder errMsg = new StringBuilder(); + // 如果测试跑题无异常 + if (sandBoxRes.getStatus().equals(Constants.Judge.STATUS_ACCEPTED.getStatus())) { + + // 对结果的时间损耗和空间损耗与题目限制做比较,判断是否mle和tle + if (sandBoxRes.getTime() > judgeGlobalDTO.getMaxTime()) { + result.set("status", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus()); + } else if (sandBoxRes.getMemory() > judgeGlobalDTO.getMaxMemory() * 1024) { + result.set("status", Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED.getStatus()); + } else { + + // 对于当前测试样例,用户程序的输出对应生成的文件 + String userOutputFilePath = judgeGlobalDTO.getRunDir() + File.separator + judgeDTO.getTestCaseId() + ".out"; + FileWriter stdWriter = new FileWriter(userOutputFilePath); + stdWriter.write(sandBoxRes.getStdout()); + + Constants.RunConfig spjRunConfig = judgeGlobalDTO.getSpjRunConfig(); + + // 特判程序的路径 + String spjExeSrc = Constants.JudgeDir.SPJ_WORKPLACE_DIR.getContent() + File.separator + + judgeGlobalDTO.getProblemId() + File.separator + spjRunConfig.getExeName(); + + String userOutputFileName = judgeGlobalDTO.getProblemId() + "_user_output"; + String testCaseInputFileName = judgeGlobalDTO.getProblemId() + "_input"; + String testCaseOutputFileName = judgeGlobalDTO.getProblemId() + "_output"; + // 进行spj程序运行比对 + JSONObject spjResult = spjRunAndCheckResult(userOutputFilePath, + userOutputFileName, + judgeDTO.getTestCaseInputPath(), + testCaseInputFileName, + judgeDTO.getTestCaseOutputPath(), + testCaseOutputFileName, + spjExeSrc, + spjRunConfig); + + // 删除用户输出文件 + FileUtil.del(userOutputFilePath); + + int code = spjResult.getInt("code"); + if (code == SPJ_WA) { + result.set("status", Constants.Judge.STATUS_WRONG_ANSWER.getStatus()); + } else if (code == SPJ_AC) { + result.set("status", Constants.Judge.STATUS_ACCEPTED.getStatus()); + } else if (code == SPJ_PE) { + result.set("status", Constants.Judge.STATUS_PRESENTATION_ERROR.getStatus()); + } else if (code == SPJ_PC) { + result.set("status", Constants.Judge.STATUS_PARTIAL_ACCEPTED.getStatus()); + result.set("percentage", spjResult.getDouble("percentage")); + } else { + result.set("status", Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()); + } + + String spjErrMsg = spjResult.getStr("errMsg"); + if (!StringUtils.isEmpty(spjErrMsg)) { + errMsg.append(spjErrMsg).append(" "); + } + + } + } else if (sandBoxRes.getStatus().equals(Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus())) { + result.set("status", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus()); + } else if (sandBoxRes.getExitCode() != 0) { + result.set("status", Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()); + if (sandBoxRes.getExitCode() < 32) { + errMsg.append(String.format("The program return exit status code: %s (%s)\n", sandBoxRes.getExitCode(), SandboxRun.signals.get(sandBoxRes.getExitCode()))); + } else { + errMsg.append(String.format("The program return exit status code: %s\n", sandBoxRes.getExitCode())); + } + } else { + result.set("status", sandBoxRes.getStatus()); + } + + // b + result.set("memory", sandBoxRes.getMemory()); + // ns->ms + result.set("time", sandBoxRes.getTime()); + + // 记录该测试点的错误信息 + if (!StringUtils.isEmpty(errMsg.toString())) { + String str = errMsg.toString(); + result.set("errMsg", str.substring(0, Math.min(1024 * 1024, str.length()))); + } + + return result; + } + + + private JSONObject spjRunAndCheckResult(String userOutputFilePath, + String userOutputFileName, + String testCaseInputFilePath, + String testCaseInputFileName, + String testCaseOutputFilePath, + String testCaseOutputFileName, + String spjExeSrc, + Constants.RunConfig spjRunConfig) throws SystemError { + + // 调用安全沙箱运行spj程序 + JSONArray spjJudgeResultList = SandboxRun.spjCheckResult( + parseRunCommand(spjRunConfig.getCommand(), spjRunConfig, testCaseInputFileName, userOutputFileName, testCaseOutputFileName), + spjRunConfig.getEnvs(), + userOutputFilePath, + userOutputFileName, + testCaseInputFilePath, + testCaseInputFileName, + testCaseOutputFilePath, + testCaseOutputFileName, + spjExeSrc, + spjRunConfig.getExeName()); + + JSONObject result = new JSONObject(); + + JSONObject spjJudgeResult = (JSONObject) spjJudgeResultList.get(0); + + // 获取跑题用户输出或错误输出 + String spjErrOut = ((JSONObject) spjJudgeResult.get("files")).getStr("stderr"); + String spjStdOut = ((JSONObject) spjJudgeResult.get("files")).getStr("stdout"); + + if (!StringUtils.isEmpty(spjErrOut)) { + result.set("errMsg", spjErrOut); + } + + // 退出状态码 + int exitCode = spjJudgeResult.getInt("exitStatus"); + // 如果测试跑题无异常 + if (spjJudgeResult.getInt("status").intValue() == Constants.Judge.STATUS_ACCEPTED.getStatus()) { + if (exitCode == Constants.Judge.STATUS_ACCEPTED.getStatus()) { + result.set("code", SPJ_AC); + } else { + result.set("code", exitCode); + } + } else if (spjJudgeResult.getInt("status").intValue() == Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()) { + if (exitCode == SPJ_WA || exitCode == SPJ_ERROR || exitCode == SPJ_AC || exitCode == SPJ_PE) { + result.set("code", exitCode); + } else if (exitCode == SPJ_PC) { + result.set("code", exitCode); + if (NumberUtil.isNumber(spjStdOut)) { + double percentage = 0.0; + percentage = Double.parseDouble(spjStdOut) / 100; + if (percentage == 1) { + result.set("code", SPJ_AC); + } else { + result.set("percentage", percentage); + } + } + } else { + if (!StringUtils.isEmpty(spjErrOut)) { + // 适配testlib.h 根据错误信息前缀判断 + return parseTestLibErr(spjErrOut); + } else { + result.set("code", SPJ_ERROR); + } + } + } else { + result.set("code", SPJ_ERROR); + } + + return result; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/TestJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/TestJudge.java new file mode 100644 index 0000000..7550baa --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/judge/task/TestJudge.java @@ -0,0 +1,115 @@ +package top.hcode.hoj.judge.task; + +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.judge.AbstractJudge; +import top.hcode.hoj.judge.SandboxRun; +import top.hcode.hoj.judge.entity.JudgeDTO; +import top.hcode.hoj.judge.entity.JudgeGlobalDTO; +import top.hcode.hoj.judge.entity.SandBoxRes; +import top.hcode.hoj.util.Constants; + +import java.util.Objects; + +/** + * @Author Himit_ZH + * @Date 2022/5/26 + * @Description: 在线自测 + */ +@Component +public class TestJudge extends AbstractJudge { + @Override + public JSONArray judgeCase(JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError { + Constants.RunConfig runConfig = judgeGlobalDTO.getRunConfig(); + // 调用安全沙箱使用测试点对程序进行测试 + return SandboxRun.testCase( + parseRunCommand(runConfig.getCommand(), runConfig, null, null, null), + runConfig.getEnvs(), + judgeDTO.getTestCaseInputPath(), + judgeDTO.getTestCaseInputContent(), + judgeGlobalDTO.getTestTime(), + judgeGlobalDTO.getMaxMemory(), + judgeDTO.getMaxOutputSize(), + judgeGlobalDTO.getMaxStack(), + runConfig.getExeName(), + judgeGlobalDTO.getUserFileId(), + judgeGlobalDTO.getUserFileContent()); + } + + @Override + public JSONObject checkResult(SandBoxRes sandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) throws SystemError { + JSONObject result = new JSONObject(); + StringBuilder errMsg = new StringBuilder(); + // 如果测试跑题无异常 + if (sandBoxRes.getStatus().equals(Constants.Judge.STATUS_ACCEPTED.getStatus())) { + // 对结果的时间损耗和空间损耗与题目限制做比较,判断是否mle和tle + if (sandBoxRes.getTime() > judgeGlobalDTO.getMaxTime()) { + result.set("status", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus()); + } else if (sandBoxRes.getMemory() > judgeGlobalDTO.getMaxMemory() * 1024) { + result.set("status", Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED.getStatus()); + } else { + if (judgeDTO.getTestCaseOutputContent() != null) { + if (judgeGlobalDTO.getRemoveEOLBlank() != null && judgeGlobalDTO.getRemoveEOLBlank()) { + String stdOut = rtrim(sandBoxRes.getStdout()); + String testCaseOutput = rtrim(judgeDTO.getTestCaseOutputContent()); + if (Objects.equals(stdOut, testCaseOutput)) { + result.set("status", Constants.Judge.STATUS_ACCEPTED.getStatus()); + } else { + result.set("status", Constants.Judge.STATUS_WRONG_ANSWER.getStatus()); + } + } else { + if (Objects.equals(sandBoxRes.getStdout(), judgeDTO.getTestCaseOutputContent())) { + result.set("status", Constants.Judge.STATUS_ACCEPTED.getStatus()); + } else { + result.set("status", Constants.Judge.STATUS_WRONG_ANSWER.getStatus()); + } + } + } else { + result.set("status", Constants.Judge.STATUS_ACCEPTED.getStatus()); + } + } + } else if (sandBoxRes.getStatus().equals(Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus())) { + result.set("status", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED.getStatus()); + } else if (sandBoxRes.getExitCode() != 0) { + result.set("status", Constants.Judge.STATUS_RUNTIME_ERROR.getStatus()); + if (sandBoxRes.getExitCode() < 32) { + errMsg.append(String.format("ExitCode: %s (%s)\n", sandBoxRes.getExitCode(), SandboxRun.signals.get(sandBoxRes.getExitCode()))); + } else { + errMsg.append(String.format("ExitCode: %s\n", sandBoxRes.getExitCode())); + } + } else { + result.set("status", sandBoxRes.getStatus()); + } + + // b + result.set("memory", sandBoxRes.getMemory()); + // ns->ms + result.set("time", sandBoxRes.getTime()); + + if (!StringUtils.isEmpty(sandBoxRes.getStderr())) { + errMsg.append(sandBoxRes.getStderr()); + } + + // 记录该测试点的错误信息 + if (!StringUtils.isEmpty(errMsg.toString())) { + String str = errMsg.toString(); + result.set("errMsg", str.substring(0, Math.min(1024 * 1024, str.length()))); + } + + // 记录该测试点的运行输出 + if (!StringUtils.isEmpty(sandBoxRes.getStdout()) && sandBoxRes.getStdout().length() > 1000) { + result.set("output", sandBoxRes.getStdout().substring(0, 1000) + "..."); + } else { + result.set("output", sandBoxRes.getStdout()); + } + return result; + } + + @Override + public JSONObject checkMultipleResult(SandBoxRes userSandBoxRes, SandBoxRes interactiveSandBoxRes, JudgeDTO judgeDTO, JudgeGlobalDTO judgeGlobalDTO) { + return null; + } +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestMapper.java new file mode 100644 index 0000000..47b26e5 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestMapper.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.contest.Contest; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ContestMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestRecordMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestRecordMapper.java new file mode 100644 index 0000000..18bf9eb --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ContestRecordMapper.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.contest.ContestRecord; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ContestRecordMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java new file mode 100644 index 0000000..c9e15bf --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeCaseMapper.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface JudgeCaseMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeMapper.java new file mode 100644 index 0000000..2246994 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeMapper.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.judge.Judge; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface JudgeMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java new file mode 100644 index 0000000..f0d9cc9 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/JudgeServerMapper.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.judge.JudgeServer; + +@Mapper +@Repository +public interface JudgeServerMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java new file mode 100644 index 0000000..1cb38b6 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCaseMapper.java @@ -0,0 +1,16 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.ProblemCase; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/14 19:57 + * @Description: + */ +@Mapper +@Repository +public interface ProblemCaseMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java new file mode 100644 index 0000000..b6f21dd --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemCountMapper.java @@ -0,0 +1,20 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.ProblemCount; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ProblemCountMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemMapper.java new file mode 100644 index 0000000..37f7337 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/ProblemMapper.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.problem.Problem; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface ProblemMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/RemoteJudgeAccountMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/RemoteJudgeAccountMapper.java new file mode 100644 index 0000000..d253286 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/RemoteJudgeAccountMapper.java @@ -0,0 +1,11 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; + +@Mapper +@Repository +public interface RemoteJudgeAccountMapper extends BaseMapper { +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java new file mode 100644 index 0000000..c60fac6 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserAcproblemMapper.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.user.UserAcproblem; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface UserAcproblemMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserRecordMapper.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserRecordMapper.java new file mode 100644 index 0000000..aec98eb --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/UserRecordMapper.java @@ -0,0 +1,21 @@ +package top.hcode.hoj.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import top.hcode.hoj.pojo.entity.user.UserRecord; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Mapper +@Repository +public interface UserRecordMapper extends BaseMapper { + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeCaseMapper.xml b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeCaseMapper.xml new file mode 100644 index 0000000..0e8c289 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeCaseMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeMapper.xml b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeMapper.xml new file mode 100644 index 0000000..1df713c --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/mapper/xml/JudgeMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeContext.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeContext.java new file mode 100644 index 0000000..cd7ec18 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeContext.java @@ -0,0 +1,116 @@ +package top.hcode.hoj.remoteJudge; + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ReUtil; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import top.hcode.hoj.dao.JudgeEntityService; +import top.hcode.hoj.pojo.dto.ToJudgeDTO; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.task.RemoteJudgeFactory; +import top.hcode.hoj.remoteJudge.task.RemoteJudgeStrategy; +import top.hcode.hoj.util.Constants; + +import javax.annotation.Resource; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/29 13:17 + * @Description: + */ +@Service +@Slf4j(topic = "hoj") +public class RemoteJudgeContext { + + @Resource + private RemoteJudgeToSubmit remoteJudgeToSubmit; + + @Resource + private RemoteJudgeGetResult remoteJudgeGetResult; + + @Resource + private JudgeEntityService judgeEntityService; + + public static final boolean openCodeforcesFixServer = false; + + @Async + public void judge(ToJudgeDTO toJudgeDTO) { + String[] source = toJudgeDTO.getRemoteJudgeProblem().split("-"); + String remoteOj = source[0]; + String remoteProblemId = source[1]; + + RemoteJudgeDTO remoteJudgeDTO = RemoteJudgeDTO.builder() + .judgeId(toJudgeDTO.getJudge().getSubmitId()) + .uid(toJudgeDTO.getJudge().getUid()) + .cid(toJudgeDTO.getJudge().getCid()) + .pid(toJudgeDTO.getJudge().getPid()) + .gid(toJudgeDTO.getJudge().getGid()) + .username(toJudgeDTO.getUsername()) + .password(toJudgeDTO.getPassword()) + .oj(remoteOj) + .completeProblemId(remoteProblemId) + .userCode(toJudgeDTO.getJudge().getCode()) + .language(toJudgeDTO.getJudge().getLanguage()) + .serverIp(toJudgeDTO.getJudgeServerIp()) + .serverPort(toJudgeDTO.getJudgeServerPort()) + .submitId(toJudgeDTO.getJudge().getVjudgeSubmitId()) + .build(); + + initProblemId(remoteJudgeDTO); + + Boolean isHasSubmitIdRemoteReJudge = toJudgeDTO.getIsHasSubmitIdRemoteReJudge(); + + RemoteJudgeStrategy remoteJudgeStrategy = buildJudgeStrategy(remoteJudgeDTO); + if (remoteJudgeStrategy != null) { + if (isHasSubmitIdRemoteReJudge != null && isHasSubmitIdRemoteReJudge) { + // 拥有远程oj的submitId远程判题的重判 + remoteJudgeGetResult.process(remoteJudgeStrategy); + } else { + // 调用远程判题 + boolean isSubmitOk = remoteJudgeToSubmit.process(remoteJudgeStrategy); + if (isSubmitOk) { + remoteJudgeGetResult.process(remoteJudgeStrategy); + } + } + } + } + + private void initProblemId(RemoteJudgeDTO remoteJudgeDTO){ + switch (remoteJudgeDTO.getOj()){ + case "GYM": + case "CF": + if (NumberUtil.isInteger(remoteJudgeDTO.getCompleteProblemId())) { + remoteJudgeDTO.setContestId(ReUtil.get("([0-9]+)[0-9]{2}", remoteJudgeDTO.getCompleteProblemId(), 1)); + remoteJudgeDTO.setProblemNum(ReUtil.get("[0-9]+([0-9]{2})", remoteJudgeDTO.getCompleteProblemId(), 1)); + } else { + remoteJudgeDTO.setContestId(ReUtil.get("([0-9]+)[A-Z]{1}[0-9]{0,1}", remoteJudgeDTO.getCompleteProblemId(), 1)); + remoteJudgeDTO.setProblemNum(ReUtil.get("[0-9]+([A-Z]{1}[0-9]{0,1})", remoteJudgeDTO.getCompleteProblemId(), 1)); + } + break; + case "AC": + String[] arr = remoteJudgeDTO.getCompleteProblemId().split("_"); + remoteJudgeDTO.setContestId(arr[0]); + remoteJudgeDTO.setProblemNum(arr[1]); + break; + } + } + + private RemoteJudgeStrategy buildJudgeStrategy(RemoteJudgeDTO remoteJudgeDTO) { + RemoteJudgeStrategy remoteJudgeStrategy = RemoteJudgeFactory.selectJudge(remoteJudgeDTO.getOj()); + if (remoteJudgeStrategy == null) { + // 更新此次提交状态为系统失败! + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.set("status", Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()) + .set("error_message", "The judge server does not support this oj:" + remoteJudgeDTO.getOj()) + .eq("submit_id", remoteJudgeDTO.getJudgeId()); + judgeEntityService.update(judgeUpdateWrapper); + return null; + } + remoteJudgeStrategy.setRemoteJudgeDTO(remoteJudgeDTO); + return remoteJudgeStrategy; + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeGetResult.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeGetResult.java new file mode 100644 index 0000000..3338d42 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeGetResult.java @@ -0,0 +1,196 @@ +package top.hcode.hoj.remoteJudge; + +import cn.hutool.core.lang.UUID; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.dao.JudgeCaseEntityService; +import top.hcode.hoj.dao.JudgeEntityService; +import top.hcode.hoj.judge.JudgeContext; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeRes; +import top.hcode.hoj.remoteJudge.task.RemoteJudgeStrategy; +import top.hcode.hoj.service.RemoteJudgeService; +import top.hcode.hoj.util.Constants; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicInteger; + + +@Slf4j(topic = "hoj") +@Component +public class RemoteJudgeGetResult { + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private JudgeContext judgeContext; + + @Autowired + private RemoteJudgeService remoteJudgeService; + + @Resource + private JudgeCaseEntityService judgeCaseEntityService; + + private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors() * 2); + + private final static Map futureTaskMap = new ConcurrentHashMap<>(Runtime.getRuntime().availableProcessors() * 2); + + public void process(RemoteJudgeStrategy remoteJudgeStrategy) { + + RemoteJudgeDTO remoteJudgeDTO = remoteJudgeStrategy.getRemoteJudgeDTO(); + String key = UUID.randomUUID().toString() + remoteJudgeDTO.getSubmitId(); + AtomicInteger count = new AtomicInteger(0); + Runnable getResultTask = new Runnable() { + @Override + public void run() { + + if (count.get() >= 60) { // 超过60次失败则判为提交失败 + // 更新此次提交状态为提交失败! + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.set("status", Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()) + .set("error_message", "Waiting for remote judge result exceeds the maximum number of times, please try submitting again!") + .eq("submit_id", remoteJudgeDTO.getJudgeId()); + judgeEntityService.update(judgeUpdateWrapper); + + log.error("[{}] Get Result Failed!", remoteJudgeDTO.getOj()); + changeRemoteJudgeLock(remoteJudgeDTO.getOj(), + remoteJudgeDTO.getUsername(), + remoteJudgeDTO.getServerIp(), + remoteJudgeDTO.getServerPort(), + remoteJudgeDTO.getSubmitId()); + + Future future = futureTaskMap.get(key); + if (future != null) { + boolean isCanceled = future.cancel(true); + if (isCanceled) { + futureTaskMap.remove(key); + } + } + return; + } + + count.getAndIncrement(); + + RemoteJudgeRes remoteJudgeRes; + try { + remoteJudgeRes = remoteJudgeStrategy.result(); + } catch (Exception e) { + if (count.get() == 60) { + log.error("The Error of getting the `remote judge` result:", e); + } + return; + } + + // 保留各个测试点的结果数据 + if (!CollectionUtils.isEmpty(remoteJudgeRes.getJudgeCaseList())) { + judgeCaseEntityService.saveBatch(remoteJudgeRes.getJudgeCaseList()); + } + + Integer status = remoteJudgeRes.getStatus(); + if (status.intValue() != Constants.Judge.STATUS_PENDING.getStatus() && + status.intValue() != Constants.Judge.STATUS_JUDGING.getStatus() && + status.intValue() != Constants.Judge.STATUS_COMPILING.getStatus()) { + log.info("[{}] Get Result Successfully! Status:[{}]", remoteJudgeDTO.getOj(), status); + + changeRemoteJudgeLock(remoteJudgeDTO.getOj(), + remoteJudgeDTO.getUsername(), + remoteJudgeDTO.getServerIp(), + remoteJudgeDTO.getServerPort(), + remoteJudgeDTO.getSubmitId()); + + Integer time = remoteJudgeRes.getTime(); + Integer memory = remoteJudgeRes.getMemory(); + String errorInfo = remoteJudgeRes.getErrorInfo(); + Judge finalJudgeRes = new Judge(); + + finalJudgeRes.setSubmitId(remoteJudgeDTO.getJudgeId()) + .setStatus(status) + .setTime(time) + .setMemory(memory); + + if (status.intValue() == Constants.Judge.STATUS_COMPILE_ERROR.getStatus()) { + finalJudgeRes.setErrorMessage(errorInfo); + } else if (status.intValue() == Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()) { + finalJudgeRes.setErrorMessage("There is something wrong with the " + remoteJudgeDTO.getOj() + ", please try again later"); + } + + // 如果是比赛题目,需要特别适配OI比赛的得分 除AC给100 其它结果给0分 + if (remoteJudgeDTO.getCid() != 0) { + int score = 0; + + if (Objects.equals(finalJudgeRes.getStatus(), Constants.Judge.STATUS_ACCEPTED.getStatus())) { + score = 100; + } + + finalJudgeRes.setScore(score); + // 写回数据库 + judgeEntityService.updateById(finalJudgeRes); + // 同步其它表 + judgeContext.updateOtherTable(remoteJudgeDTO.getJudgeId(), + status, + remoteJudgeDTO.getCid(), + remoteJudgeDTO.getUid(), + remoteJudgeDTO.getPid(), + remoteJudgeDTO.getGid(), + score, + finalJudgeRes.getTime()); + + } else { + judgeEntityService.updateById(finalJudgeRes); + // 同步其它表 + judgeContext.updateOtherTable(remoteJudgeDTO.getJudgeId(), + status, + remoteJudgeDTO.getCid(), + remoteJudgeDTO.getUid(), + remoteJudgeDTO.getPid(), + remoteJudgeDTO.getGid(), + null, + null); + } + + Future future = futureTaskMap.get(key); + if (future != null) { + future.cancel(true); + futureTaskMap.remove(key); + } + } else { + + Judge judge = new Judge(); + judge.setSubmitId(remoteJudgeDTO.getJudgeId()) + .setStatus(status); + // 写回数据库 + judgeEntityService.updateById(judge); + } + } + }; + ScheduledFuture beeperHandle = scheduler.scheduleWithFixedDelay( + getResultTask, 0, 2500, TimeUnit.MILLISECONDS); + futureTaskMap.put(key, beeperHandle); + } + + + private void changeRemoteJudgeLock(String remoteJudge, String username, String ip, Integer port, Long resultSubmitId) { + log.info("After Get Result,remote_judge:[{}],submit_id: [{}]! Begin to return the account to other task!", + remoteJudge, resultSubmitId); + // 将账号变为可用 + remoteJudgeService.changeAccountStatus(remoteJudge, username); + if (RemoteJudgeContext.openCodeforcesFixServer) { + if (remoteJudge.equals(Constants.RemoteJudge.GYM_JUDGE.getName()) + || remoteJudge.equals(Constants.RemoteJudge.CF_JUDGE.getName())) { + log.info("After Get Result,remote_judge:[{}],submit_id: [{}] !Begin to return the Server Status to other task!", + remoteJudge, resultSubmitId); + remoteJudgeService.changeServerSubmitCFStatus(ip, port); + } + } + } + + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeToSubmit.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeToSubmit.java new file mode 100644 index 0000000..c3da546 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/RemoteJudgeToSubmit.java @@ -0,0 +1,91 @@ +package top.hcode.hoj.remoteJudge; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; +import top.hcode.hoj.dao.JudgeEntityService; +import top.hcode.hoj.judge.JudgeContext; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.task.RemoteJudgeStrategy; +import top.hcode.hoj.service.RemoteJudgeService; +import top.hcode.hoj.util.Constants; + +@Component +@Slf4j(topic = "hoj") +@RefreshScope +public class RemoteJudgeToSubmit { + + @Autowired + private JudgeEntityService judgeEntityService; + + @Autowired + private RemoteJudgeService remoteJudgeService; + + @Autowired + private JudgeContext judgeContext; + + public boolean process(RemoteJudgeStrategy remoteJudgeStrategy) { + + RemoteJudgeDTO remoteJudgeDTO = remoteJudgeStrategy.getRemoteJudgeDTO(); + log.info("Ready Send Task to RemoteJudgeDTO => {}", remoteJudgeDTO); + + String errLog = null; + try { + remoteJudgeStrategy.submit(); + } catch (Exception e) { + log.error("Submit Failed! Error:", e); + errLog = e.getMessage(); + } + + Long submitId = remoteJudgeDTO.getSubmitId(); + // 提交失败 前端手动按按钮再次提交 修改状态 STATUS_SUBMITTED_FAILED + if (submitId == null || submitId == -1L) { + // 将使用的账号放回对应列表 + log.error("[{}] Submit Failed! Begin to return the account to other task!", remoteJudgeDTO.getOj()); + remoteJudgeService.changeAccountStatus(remoteJudgeDTO.getOj(), + remoteJudgeDTO.getUsername()); + + if (RemoteJudgeContext.openCodeforcesFixServer) { + if (remoteJudgeDTO.getOj().equals(Constants.RemoteJudge.GYM_JUDGE.getName()) + || remoteJudgeDTO.getOj().equals(Constants.RemoteJudge.CF_JUDGE.getName())) { + // 对CF特殊,归还判题机权限 + log.error("[{}] Submit Failed! Begin to return the Server Status to other task!", remoteJudgeDTO.getOj()); + remoteJudgeService.changeServerSubmitCFStatus(remoteJudgeDTO.getServerIp(), remoteJudgeDTO.getServerPort()); + } + } + + // 更新此次提交状态为提交失败! + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.set("status", Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus()) + .set("error_message", errLog) + .eq("submit_id", remoteJudgeDTO.getJudgeId()); + judgeEntityService.update(judgeUpdateWrapper); + // 更新其它表 + judgeContext.updateOtherTable(remoteJudgeDTO.getSubmitId(), + Constants.Judge.STATUS_SYSTEM_ERROR.getStatus(), + remoteJudgeDTO.getCid(), + remoteJudgeDTO.getUid(), + remoteJudgeDTO.getPid(), + remoteJudgeDTO.getGid(), + null, + null); + return false; + } + + // 提交成功顺便更新状态为-->STATUS_PENDING 等待判题中... + judgeEntityService.updateById(new Judge() + .setSubmitId(remoteJudgeDTO.getJudgeId()) + .setStatus(Constants.Judge.STATUS_PENDING.getStatus()) + .setVjudgeSubmitId(submitId) + .setVjudgeUsername(remoteJudgeDTO.getUsername()) + .setVjudgePassword(remoteJudgeDTO.getPassword()) + ); + + log.info("[{}] Submit Successfully! The submit_id of remote judge is [{}]. Waiting the result of the task!", + submitId, remoteJudgeDTO.getOj()); + return true; + } +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/entity/RemoteJudgeDTO.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/entity/RemoteJudgeDTO.java new file mode 100644 index 0000000..8c881f7 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/entity/RemoteJudgeDTO.java @@ -0,0 +1,154 @@ +package top.hcode.hoj.remoteJudge.entity; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; +import top.hcode.hoj.util.CodeForcesUtils; +import top.hcode.hoj.util.Constants; + +import java.io.Serializable; +import java.net.HttpCookie; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/29 00:18 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@Builder +@ToString +public class RemoteJudgeDTO implements Serializable { + private static final long serialVersionUID = 888L; + + /** + * 远程评测的oj + */ + private String oj; + + /** + * 远程评测的账号 + */ + private String username; + + /** + * 远程评测的密码 + */ + private String password; + + /** + * 远程评测的cookies + */ + private List cookies; + + public RemoteJudgeDTO setCookies(List cookies) { + if (cookies != null + && (Constants.RemoteJudge.CF_JUDGE.getName().equals(this.oj) + || Constants.RemoteJudge.GYM_JUDGE.getName().equals(this.oj))) { + HttpCookie rcpc = new HttpCookie("RCPC", CodeForcesUtils.getRCPC()); + rcpc.setVersion(0); + cookies.add(rcpc); + } + this.cookies = cookies; + return this; + } + + /** + * 远程测评的csrfToken + */ + private String csrfToken; + + /** + * 远程评测的完整题目id like CF:110C AtCoder: abc111_a + */ + private String completeProblemId; + + /** + * 远程评测的原题比赛id + */ + private String contestId; + + /** + * 远程测评的原题题号展示序号 + */ + private String problemNum; + + /** + * 远程测评的语言 + */ + private String language; + + /** + * 远程评测的用户代码 + */ + private String userCode; + + /** + * 远程评测的题目id + */ + private Long pid; + + /** + * 远程测评的用户id + */ + private String uid; + + /** + * 远程测评的比赛id + */ + private Long cid; + + /** + * 远程测评的团队id + */ + private Long gid; + + /** + * 远程测评的judge_id; + */ + private Long judgeId; + + /** + * 远程测评的提交id(远程oj的提交id) + */ + private Long submitId; + + /** + * 远程测评的测试数据的序号(codeforces) + */ + private Integer testcaseNum; + + /** + * 远程测评的当前已获得测试数据点最大运行时间ms + */ + private Integer maxTime; + + /** + * 远程测评的当前已获得测试数据点最大运行空间kb + */ + private Integer maxMemory; + + /** + * 远程测评的登录状态码 + */ + private Integer loginStatus; + + /** + * 远程测评的提交状态码 + */ + private Integer submitStatus; + + /** + * 当前评测的服务器ip + */ + private String serverIp; + + /** + * 当前评测的服务器端口号 + */ + private Integer serverPort; +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/entity/RemoteJudgeRes.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/entity/RemoteJudgeRes.java new file mode 100644 index 0000000..a56af0b --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/entity/RemoteJudgeRes.java @@ -0,0 +1,33 @@ +package top.hcode.hoj.remoteJudge.entity; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/29 11:25 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@Builder +public class RemoteJudgeRes implements Serializable { + private static final long serialVersionUID = 999L; + + private Integer status; + + private Integer time; + + private Integer memory; + + private String errorInfo; + + private List judgeCaseList; +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/AtCoderJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/AtCoderJudge.java new file mode 100644 index 0000000..d7b0eef --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/AtCoderJudge.java @@ -0,0 +1,259 @@ +package top.hcode.hoj.remoteJudge.task.Impl; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HtmlUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import lombok.extern.slf4j.Slf4j; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeRes; +import top.hcode.hoj.remoteJudge.task.RemoteJudgeStrategy; +import top.hcode.hoj.util.Constants; + +import java.net.HttpCookie; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/28 23:20 + * @Description: + */ +@Slf4j(topic = "hoj") +public class AtCoderJudge extends RemoteJudgeStrategy { + + public static final String HOST = "https://atcoder.jp"; + public static final String LOGIN_URL = "/login"; + public static final String SUBMIT_URL = "/contests/%s/submit"; + public static final String SUBMISSION_RESULT_URL = "/contests/%s/submissions/%s"; + + public static Map headers = MapUtil + .builder(new HashMap()) + .put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36") + .map(); + + private static final Map statusMap = new HashMap() {{ + put("CE", Constants.Judge.STATUS_COMPILE_ERROR); + put("RE", Constants.Judge.STATUS_RUNTIME_ERROR); + put("QLE", Constants.Judge.STATUS_RUNTIME_ERROR); + put("OLE", Constants.Judge.STATUS_RUNTIME_ERROR); + put("IE", Constants.Judge.STATUS_RUNTIME_ERROR); + put("WA", Constants.Judge.STATUS_WRONG_ANSWER); + put("AC", Constants.Judge.STATUS_ACCEPTED); + put("TLE", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED); + put("MLE", Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED); + put("WJ", Constants.Judge.STATUS_PENDING); + put("WR", Constants.Judge.STATUS_PENDING); // Waiting Rejudge + put("Judging", Constants.Judge.STATUS_JUDGING); // Waiting Rejudge + }}; + + private static final Map languageMap = new HashMap<>(); + + @Override + public void submit() { + login(); + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + if (remoteJudgeDTO.getLoginStatus() != 302) { + log.error("Login to AtCoder failed, the response status:{},username:{},password:{}", + remoteJudgeDTO.getLoginStatus(), remoteJudgeDTO.getUsername(), remoteJudgeDTO.getPassword()); + throw new RuntimeException("[AtCoder] Failed to Login, the response status:" + remoteJudgeDTO.getLoginStatus()); + } + + HttpResponse response = trySubmit(); + + if (response.getStatus() == 200) { // 说明被限制提交频率了, + String timeStr = ReUtil.get("Wait for (\\d+) second to submit again.", response.body(), 1); + if (timeStr != null) { + int time = Integer.parseInt(timeStr); + try { + TimeUnit.SECONDS.sleep(time + 1); + } catch (InterruptedException e) { + e.printStackTrace(); + } + response = trySubmit(); + } + } + + if (response.getStatus() != 302) { + log.error("Submit to AtCoder failed, the response status:{}, It may be that the frequency of submission operation is too fast. Please try later", response.getStatus()); + throw new RuntimeException("[AtCoder] Failed to Submit, the response status:" + response.getStatus()); + } + + // 停留3秒钟后再获取id,之后归还账号,避免提交频率过快 + try { + TimeUnit.SECONDS.sleep(3); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + Long maxRunId = getMaxRunId(remoteJudgeDTO.getUsername(), remoteJudgeDTO.getContestId(), remoteJudgeDTO.getCompleteProblemId()); + + remoteJudgeDTO.setCookies(remoteJudgeDTO.getCookies()) + .setSubmitId(maxRunId); + + } + + private HttpResponse trySubmit() { + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + List cookies = remoteJudgeDTO.getCookies(); + String csrfToken = remoteJudgeDTO.getCsrfToken(); + + String submitUrl = HOST + String.format(SUBMIT_URL, remoteJudgeDTO.getContestId()); + HttpRequest request = HttpUtil.createPost(submitUrl); + HttpRequest httpRequest = request.form(MapUtil.builder(new HashMap()) + .put("data.TaskScreenName", remoteJudgeDTO.getCompleteProblemId()) + .put("data.LanguageId", getLanguage(remoteJudgeDTO.getLanguage())) + .put("sourceCode", remoteJudgeDTO.getUserCode()) + .put("csrf_token", csrfToken).map()); + httpRequest.cookie(cookies); + HttpResponse response = httpRequest.execute(); + remoteJudgeDTO.setSubmitStatus(response.getStatus()); + return response; + } + + @Override + public RemoteJudgeRes result() { + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + + String url = HOST + String.format(SUBMISSION_RESULT_URL, remoteJudgeDTO.getContestId(), remoteJudgeDTO.getSubmitId()); + String body = HttpUtil.get(url); + String status = ReUtil.get("Status[\\s\\S]*?([\\s\\S]*?)", body, 1); + Constants.Judge judgeStatus = statusMap.get(status); + if (judgeStatus == Constants.Judge.STATUS_JUDGING || judgeStatus == Constants.Judge.STATUS_PENDING) { + return RemoteJudgeRes.builder() + .status(judgeStatus.getStatus()) + .build(); + } + + String time = ReUtil.get("Exec Time[\\s\\S]*?([\\s\\S]*?) ms", body, 1); + String memory = ReUtil.get("Memory[\\s\\S]*?([\\s\\S]*?) KB", body, 1); + + RemoteJudgeRes remoteJudgeRes = RemoteJudgeRes.builder() + .status(judgeStatus.getStatus()) + .time(time == null ? null : Integer.parseInt(time)) + .memory(memory == null ? null : Integer.parseInt(memory)) + .build(); + if (judgeStatus == Constants.Judge.STATUS_COMPILE_ERROR) { + String CEInfo = ReUtil.get("

Compile Error

[\\s\\S]*?
([\\s\\S]*?)
", body, 1); + remoteJudgeRes.setErrorInfo(HtmlUtil.unescape(CEInfo)); + } + return remoteJudgeRes; + } + + @Override + public void login() { + // 清除当前线程的cookies缓存 + HttpRequest.getCookieManager().getCookieStore().removeAll(); + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + + String csrfToken = getCsrfToken(HOST + LOGIN_URL); + HttpRequest request = HttpUtil.createPost(HOST + LOGIN_URL); + request.addHeaders(headers); + HttpResponse response = request.form(MapUtil.builder(new HashMap()) + .put("username", remoteJudgeDTO.getUsername()) + .put("password", remoteJudgeDTO.getPassword()) + .put("csrf_token", csrfToken).map()).execute(); + + remoteJudgeDTO.setLoginStatus(response.getStatus()) + .setCookies(response.getCookies()) + .setCsrfToken(csrfToken); + } + + @Override + public String getLanguage(String language) { + return languageMap.get(language); + } + + private Long getMaxRunId(String username, String contestId, String problemId) { + // 清除当前线程的cookies缓存 + HttpRequest.getCookieManager().getCookieStore().removeAll(); + String url = HOST + String.format("/contests/%s/submissions?f.Task=%s&f.User=%s", contestId, problemId, username); + String body = HttpUtil.get(url); + String maxRunId = ReUtil.get("Detail", body, 1); + return maxRunId != null ? Long.parseLong(maxRunId) : -1L; + } + + private String getCsrfToken(String url) { + HttpRequest request = HttpUtil.createGet(url); + request.addHeaders(headers); + HttpResponse response = request.execute(); + String body = response.body(); + return ReUtil.get("var csrfToken = \"([\\s\\S]*?)\"", body, 1); + } + + static { + languageMap.put("C (GCC 9.2.1)", "4001"); + languageMap.put("C (Clang 10.0.0)", "4002"); + languageMap.put("C++ (GCC 9.2.1)", "4003"); + languageMap.put("C++ (Clang 10.0.0)", "4004"); + languageMap.put("Java (OpenJDK 11.0.6)", "4005"); + languageMap.put("Python (3.8.2)", "4006"); + languageMap.put("Bash (5.0.11)", "4007"); + languageMap.put("bc (1.07.1)", "4008"); + languageMap.put("Awk (GNU Awk 4.1.4)", "4009"); + languageMap.put("C# (.NET Core 3.1.201)", "4010"); + languageMap.put("C# (Mono-mcs 6.8.0.105)", "4011"); + languageMap.put("C# (Mono-csc 3.5.0)", "4012"); + languageMap.put("Clojure (1.10.1.536)", "4013"); + languageMap.put("Crystal (0.33.0)", "4014"); + languageMap.put("D (DMD 2.091.0)", "4015"); + languageMap.put("D (GDC 9.2.1)", "4016"); + languageMap.put("D (LDC 1.20.1)", "4017"); + languageMap.put("Dart (2.7.2)", "4018"); + languageMap.put("dc (1.4.1)", "4019"); + languageMap.put("Erlang (22.3)", "4020"); + languageMap.put("Elixir (1.10.2)", "4021"); + languageMap.put("F# (.NET Core 3.1.201)", "4022"); + languageMap.put("F# (Mono 10.2.3)", "4023"); + languageMap.put("Forth (gforth 0.7.3)", "4024"); + languageMap.put("Fortran (GNU Fortran 9.2.1)", "4025"); + languageMap.put("Go (1.14.1)", "4026"); + languageMap.put("Haskell (GHC 8.8.3)", "4027"); + languageMap.put("Haxe (4.0.3); js", "4028"); + languageMap.put("Haxe (4.0.3); Java", "4029"); + languageMap.put("JavaScript (Node.js 12.16.1)", "4030"); + languageMap.put("Julia (1.4.0)", "4031"); + languageMap.put("Kotlin (1.3.71)", "4032"); + languageMap.put("Lua (Lua 5.3.5)", "4033"); + languageMap.put("Lua (LuaJIT 2.1.0)", "4034"); + languageMap.put("Dash (0.5.8)", "4035"); + languageMap.put("Nim (1.0.6)", "4036"); + languageMap.put("Objective-C (Clang 10.0.0)", "4037"); + languageMap.put("Common Lisp (SBCL 2.0.3)", "4038"); + languageMap.put("OCaml (4.10.0)", "4039"); + languageMap.put("Octave (5.2.0)", "4040"); + languageMap.put("Pascal (FPC 3.0.4)", "4041"); + languageMap.put("Perl (5.26.1)", "4042"); + languageMap.put("Raku (Rakudo 2020.02.1)", "4043"); + languageMap.put("PHP (7.4.4)", "4044"); + languageMap.put("Prolog (SWI-Prolog 8.0.3)", "4045"); + languageMap.put("PyPy2 (7.3.0)", "4046"); + languageMap.put("PyPy3 (7.3.0)", "4047"); + languageMap.put("Racket (7.6)", "4048"); + languageMap.put("Ruby (2.7.1)", "4049"); + languageMap.put("Rust (1.42.0)", "4050"); + languageMap.put("Scala (2.13.1)", "4051"); + languageMap.put("Java (OpenJDK 1.8.0)", "4052"); + languageMap.put("Scheme (Gauche 0.9.9)", "4053"); + languageMap.put("Standard ML (MLton 20130715)", "4054"); + languageMap.put("Swift (5.2.1)", "4055"); + languageMap.put("Text (cat 8.28)", "4056"); + languageMap.put("TypeScript (3.8)", "4057"); + languageMap.put("Visual Basic (.NET Core 3.1.101)", "4058"); + languageMap.put("Zsh (5.4.2)", "4059"); + languageMap.put("COBOL - Fixed (OpenCOBOL 1.1.0)", "4060"); + languageMap.put("COBOL - Free (OpenCOBOL 1.1.0)", "4061"); + languageMap.put("Brainfuck (bf 20041219)", "4062"); + languageMap.put("Ada2012 (GNAT 9.2.1)", "4063"); + languageMap.put("Unlambda (2.0.0)", "4064"); + languageMap.put("Cython (0.29.16)", "4065"); + languageMap.put("Sed (4.4)", "4066"); + languageMap.put("Vim (8.2.0460)", "4067"); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/CodeForcesJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/CodeForcesJudge.java new file mode 100644 index 0000000..5cbd0ac --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/CodeForcesJudge.java @@ -0,0 +1,500 @@ +package top.hcode.hoj.remoteJudge.task.Impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import cn.hutool.http.Method; +import cn.hutool.json.JSONException; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.http.HttpStatus; +import org.springframework.util.StringUtils; +import top.hcode.hoj.pojo.entity.judge.JudgeCase; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeRes; +import top.hcode.hoj.remoteJudge.task.RemoteJudgeStrategy; +import top.hcode.hoj.util.CodeForcesUtils; +import top.hcode.hoj.util.Constants; + +import java.util.*; +import java.util.concurrent.TimeUnit; + +@Slf4j(topic = "hoj") +public class CodeForcesJudge extends RemoteJudgeStrategy { + + + public static final String IMAGE_HOST = "https://codeforces.com"; + public static final String HOST = "https://codeforces.com"; + public static final String LOGIN_URL = "/enter"; + public static final String SUBMIT_URL = "/contest/%s/submit"; + public static final String SUBMISSION_RESULT_URL = "/api/user.status?handle=%s&from=1&count=%s"; + public static final String CE_INFO_URL = "/data/submitSource"; + public static final String MY_SUBMISSION = "/problemset/status?my=on"; + public static final String SUBMISSION_BY_USERNAME = "/submissions/%s"; + + protected static final Map statusMap = new HashMap() {{ + put("FAILED", Constants.Judge.STATUS_SUBMITTED_FAILED); + put("OK", Constants.Judge.STATUS_ACCEPTED); + put("PARTIAL", Constants.Judge.STATUS_PARTIAL_ACCEPTED); + put("COMPILATION_ERROR", Constants.Judge.STATUS_COMPILE_ERROR); + put("RUNTIME_ERROR", Constants.Judge.STATUS_RUNTIME_ERROR); + put("WRONG_ANSWER", Constants.Judge.STATUS_WRONG_ANSWER); + put("PRESENTATION_ERROR", Constants.Judge.STATUS_PRESENTATION_ERROR); + put("TIME_LIMIT_EXCEEDED", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED); + put("MEMORY_LIMIT_EXCEEDED", Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED); + put("IDLENESS_LIMIT_EXCEEDED", Constants.Judge.STATUS_RUNTIME_ERROR); + put("SECURITY_VIOLATED", Constants.Judge.STATUS_RUNTIME_ERROR); + put("CRASHED", Constants.Judge.STATUS_SYSTEM_ERROR); + put("INPUT_PREPARATION_CRASHED", Constants.Judge.STATUS_SYSTEM_ERROR); + put("CHALLENGED", Constants.Judge.STATUS_SYSTEM_ERROR); + put("SKIPPED", Constants.Judge.STATUS_SYSTEM_ERROR); + put("TESTING", Constants.Judge.STATUS_JUDGING); + put("REJECTED", Constants.Judge.STATUS_SYSTEM_ERROR); + put("RUNNING & JUDGING", Constants.Judge.STATUS_JUDGING); + }}; + + @Override + public void submit() { + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + + if (remoteJudgeDTO.getCompleteProblemId() == null || remoteJudgeDTO.getUserCode() == null) { + return; + } + + HttpRequest httpRequest = HttpUtil.createGet(IMAGE_HOST); + httpRequest.setConnectionTimeout(60000); + httpRequest.setReadTimeout(60000); + httpRequest.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36 Edg/91.0.864.48"); + httpRequest.header("cookie", "RCPC=" + CodeForcesUtils.getRCPC()); + HttpResponse httpResponse = httpRequest.execute(); + String homePage = httpResponse.body(); + + if (homePage.contains("Redirecting... Please, wait.")) { + List list = ReUtil.findAll("[a-z0-9]+[a-z0-9]{31}", homePage, 0, new ArrayList<>()); + CodeForcesUtils.updateRCPC(list); + httpRequest.removeHeader("cookie"); + httpRequest.header("cookie", "RCPC=" + CodeForcesUtils.getRCPC()); + httpResponse = httpRequest.execute(); + homePage = httpResponse.body(); + } + + if (!homePage.contains("/logout\">") || !homePage.contains(" json; + try { + json = JSONUtil.parseObj(httpResponse.body()); + } catch (JSONException e) { + // 接口限制,导致返回数据非json,此处替换成页面解析 + return getMaxIdByParseHtml(); + } + List> results = (List>) json.get("result"); + for (Map result : results) { + Long runId = Long.valueOf(result.get("id").toString()); + long creationTimeSeconds = Long.parseLong(result.get("creationTimeSeconds").toString()); + if (creationTimeSeconds < nowTime && retryNum < 8) { + continue; + } + Map problem = (Map) result.get("problem"); + if (remoteJudgeDTO.getContestId().equals(problem.get("contestId").toString()) && + remoteJudgeDTO.getProblemNum().equals(problem.get("index").toString())) { + return runId; + } + } + } catch (Exception e) { + String log = String.format("[Codeforces] Failed to get run id for problem: [%s], error:%s", remoteJudgeDTO.getCompleteProblemId(), e.toString()); + throw new RuntimeException(log); + } + } + retryNum++; + } + return -1L; + } + + + // CF的这个接口有每两秒的访问限制,所以需要加锁,保证只有一次查询 + public static synchronized HttpResponse getMaxIdForSubmissionResult(String username, Integer count) { + try { + TimeUnit.SECONDS.sleep(3); + } catch (InterruptedException e) { + e.printStackTrace(); + } + String url = HOST + String.format(SUBMISSION_RESULT_URL, username, count); + return HttpUtil.createGet(url) + .timeout(30000) + .execute(); + } + + public Long getMaxIdByParseHtml() { + // 清除当前线程的cookies缓存 + HttpRequest.getCookieManager().getCookieStore().removeAll(); + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + String url = HOST + String.format(SUBMISSION_BY_USERNAME, remoteJudgeDTO.getUsername()); + HttpRequest request = HttpUtil.createGet(url); + request.cookie(remoteJudgeDTO.getCookies()); + HttpResponse response = request.execute(); + String csrfToken = ReUtil.get("data-csrf='(\\w+)'", response.body(), 1); + remoteJudgeDTO.setCsrfToken(csrfToken); + String maxRunIdStr = ReUtil.get("data-submission-id=\"(\\d+)\"", response.body(), 1); + if (StringUtils.isEmpty(maxRunIdStr)) { + log.error("[Codeforces] Failed to parse submission html:{}", response.body()); + String log = String.format("[Codeforces] Failed to parse html to get run id for problem: [%s]", remoteJudgeDTO.getCompleteProblemId()); + throw new RuntimeException(log); + } else { + return Long.valueOf(maxRunIdStr); + } + } + + @Override + public RemoteJudgeRes result() { + // 清除当前线程的cookies缓存 + HttpRequest.getCookieManager().getCookieStore().removeAll(); + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + if (remoteJudgeDTO.getCookies() == null) { + login(); + } + String csrfToken; + if (StringUtils.isEmpty(remoteJudgeDTO.getCsrfToken())) { + HttpRequest homeRequest = HttpUtil.createGet(HOST + MY_SUBMISSION); + homeRequest.cookie(remoteJudgeDTO.getCookies()); + HttpResponse homeResponse = homeRequest.execute(); + csrfToken = ReUtil.get("data-csrf='(\\w+)'", homeResponse.body(), 1); + } else { + csrfToken = remoteJudgeDTO.getCsrfToken(); + } + HttpRequest httpRequest = HttpUtil.createPost(HOST + CE_INFO_URL) + .cookie(remoteJudgeDTO.getCookies()) + .timeout(30000); + httpRequest.form(MapUtil + .builder(new HashMap()) + .put("csrf_token", csrfToken) + .put("submissionId", remoteJudgeDTO.getSubmitId()).map()); + + HttpResponse httpResponse = httpRequest.execute(); + + RemoteJudgeRes remoteJudgeRes = RemoteJudgeRes.builder() + .status(Constants.Judge.STATUS_JUDGING.getStatus()) + .build(); + + if (httpResponse.getStatus() == 200) { + JSONObject submissionInfoJson = JSONUtil.parseObj(httpResponse.body()); + String compilationError = submissionInfoJson.getStr("compilationError"); + if ("true".equals(compilationError)) { + remoteJudgeRes + .setMemory(0) + .setTime(0) + .setStatus(Constants.Judge.STATUS_COMPILE_ERROR.getStatus()); + String CEMsg = submissionInfoJson.getStr("checkerStdoutAndStderr#1"); + if (StringUtils.isEmpty(CEMsg)) { + remoteJudgeRes.setErrorInfo("Oops! Because Codeforces does not provide compilation details, it is unable to provide the reason for compilation failure!"); + } else { + remoteJudgeRes.setErrorInfo(CEMsg); + } + return remoteJudgeRes; + } + Integer testcaseNum = remoteJudgeDTO.getTestcaseNum(); + Integer maxTime = remoteJudgeDTO.getMaxTime(); + Integer maxMemory = remoteJudgeDTO.getMaxMemory(); + if (testcaseNum == null) { + testcaseNum = 1; + maxTime = 0; + maxMemory = 0; + } + List judgeCaseList = new ArrayList<>(); + String testCountStr = submissionInfoJson.getStr("testCount"); + int testCount = Integer.parseInt(testCountStr); + for (; testcaseNum <= testCount; testcaseNum++) { + String verdict = submissionInfoJson.getStr("verdict#" + testcaseNum); + if (StringUtils.isEmpty(verdict)) { + continue; + } + Constants.Judge judgeRes = statusMap.get(verdict); + Integer time = Integer.parseInt(submissionInfoJson.getStr("timeConsumed#" + testcaseNum)); + Integer memory = Integer.parseInt(submissionInfoJson.getStr("memoryConsumed#" + testcaseNum)) / 1024; + String msg = submissionInfoJson.getStr("checkerStdoutAndStderr#" + testcaseNum); + judgeCaseList.add(new JudgeCase() + .setSubmitId(remoteJudgeDTO.getJudgeId()) + .setPid(remoteJudgeDTO.getPid()) + .setUid(remoteJudgeDTO.getUid()) + .setTime(time) + .setMemory(memory) + .setStatus(judgeRes.getStatus()) + .setUserOutput(msg)); + if (time > maxTime) { + maxTime = time; + } + if (memory > maxMemory) { + maxMemory = memory; + } + } + + remoteJudgeDTO.setTestcaseNum(testcaseNum); + remoteJudgeDTO.setMaxMemory(maxMemory); + remoteJudgeDTO.setMaxTime(maxTime); + remoteJudgeRes.setJudgeCaseList(judgeCaseList); + if ("true".equals(submissionInfoJson.getStr("waiting"))) { + return remoteJudgeRes; + } + Constants.Judge finalJudgeRes = statusMap.get(submissionInfoJson.getStr("verdict#" + testCount)); + remoteJudgeRes.setStatus(finalJudgeRes.getStatus()) + .setTime(maxTime) + .setMemory(maxMemory); + return remoteJudgeRes; + } else { + remoteJudgeRes.setStatus(Constants.Judge.STATUS_SYSTEM_ERROR.getStatus()) + .setMemory(0) + .setTime(0) + .setErrorInfo("Oops! Error in obtaining the judging result. The status code returned by the interface is " + httpResponse.getStatus() + "."); + return remoteJudgeRes; + } + } + + public HashMap getCsrfToken(String url, boolean needTTA) { + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + HttpRequest request = HttpUtil.createGet(url); + if (remoteJudgeDTO.getCookies() == null) { + request.header("cookie", "RCPC=" + CodeForcesUtils.getRCPC()); + } else { + request.cookie(remoteJudgeDTO.getCookies()); + } + + HttpResponse response = request.execute(); + String body = response.body(); + if (body.contains("Redirecting... Please, wait.")) { + List list = ReUtil.findAll("[a-z0-9]+[a-z0-9]{31}", body, 0, new ArrayList<>()); + CodeForcesUtils.updateRCPC(list); + request.removeHeader("cookie"); + request.header("cookie", "RCPC=" + CodeForcesUtils.getRCPC()); + response = request.execute(); + body = response.body(); + } + + remoteJudgeDTO.setCookies(response.getCookies()); + HashMap res = new HashMap<>(); + String ftaa = response.getCookieValue("70a7c28f3de"); + res.put("ftaa", ftaa); + + String bfaa = ReUtil.get("_bfaa = \"(.{32})\"", body, 1); + if (StringUtils.isEmpty(bfaa)) { + bfaa = response.getCookieValue("raa"); + if (StringUtils.isEmpty(bfaa)) { + bfaa = response.getCookieValue("bfaa"); + } + } + res.put("bfaa", bfaa); + + String csrfToken = ReUtil.get("data-csrf='(\\w+)'", body, 1); + res.put("csrf_token", csrfToken); + + if (needTTA) { + String _39ce7 = response.getCookieValue("39ce7"); + int _tta = 0; + for (int c = 0; c < _39ce7.length(); c++) { + _tta = (_tta + (c + 1) * (c + 2) * _39ce7.charAt(c)) % 1009; + if (c % 3 == 0) + _tta++; + if (c % 2 == 0) + _tta *= 2; + if (c > 0) + _tta -= (_39ce7.charAt(c / 2) / 2) * (_tta % 5); + while (_tta < 0) + _tta += 1009; + while (_tta >= 1009) + _tta -= 1009; + } + res.put("_tta", _tta); + } + return res; + } + + @Override + public void login() { + // 清除当前线程的cookies缓存 + HttpRequest.getCookieManager().getCookieStore().removeAll(); + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + HashMap keyMap = getCsrfToken(IMAGE_HOST + LOGIN_URL, false); + + HttpRequest httpRequest = new HttpRequest(IMAGE_HOST + LOGIN_URL); + httpRequest.setConnectionTimeout(60000); + httpRequest.setReadTimeout(60000); + httpRequest.setMethod(Method.POST); + httpRequest.cookie(remoteJudgeDTO.getCookies()); + HashMap hashMap = new HashMap<>(); + hashMap.put("csrf_token", keyMap.get("csrf_token")); + hashMap.put("action", "enter"); + hashMap.put("ftaa", keyMap.get("ftaa")); + hashMap.put("bfaa", keyMap.get("bfaa")); + hashMap.put("handleOrEmail", remoteJudgeDTO.getUsername()); + hashMap.put("password", remoteJudgeDTO.getPassword()); + hashMap.put("remember", "on"); + httpRequest.form(hashMap); + HttpResponse response = httpRequest.execute(); + remoteJudgeDTO.setCookies(response.getCookies()); + remoteJudgeDTO.setLoginStatus(response.getStatus()); + } + + protected String getSubmitUrl(String contestNum) { + return IMAGE_HOST + String.format(SUBMIT_URL, contestNum); + } + + public void submitCode(RemoteJudgeDTO remoteJudgeDTO) { + HashMap keyMap = getCsrfToken(getSubmitUrl(remoteJudgeDTO.getContestId()), true); + HashMap paramMap = new HashMap<>(); + paramMap.put("csrf_token", keyMap.get("csrf_token")); + paramMap.put("_tta", keyMap.get("_tta")); + paramMap.put("bfaa", keyMap.get("bfaa")); + paramMap.put("ftaa", keyMap.get("ftaa")); + paramMap.put("action", "submitSolutionFormSubmitted"); + paramMap.put("submittedProblemIndex", remoteJudgeDTO.getProblemNum()); + paramMap.put("contestId", remoteJudgeDTO.getContestId()); + paramMap.put("programTypeId", getLanguage(remoteJudgeDTO.getLanguage())); + paramMap.put("tabsize", 4); + paramMap.put("source", remoteJudgeDTO.getUserCode() + getRandomBlankString()); + paramMap.put("sourceCodeConfirmed", true); + paramMap.put("doNotShowWarningAgain", "on"); + HttpRequest request = HttpUtil.createPost(getSubmitUrl(remoteJudgeDTO.getContestId()) + "?csrf_token=" + keyMap.get("csrf_token")); + request.setConnectionTimeout(60000); + request.setReadTimeout(60000); + request.form(paramMap); + request.cookie(remoteJudgeDTO.getCookies()); + request.header("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"); + HttpResponse response = request.execute(); + remoteJudgeDTO.setSubmitStatus(response.getStatus()); + if (response.getStatus() != HttpStatus.SC_MOVED_TEMPORARILY) { + if (response.body().contains("error for__programTypeId")) { + String log = String.format("Codeforces[%s] [%s]:Failed to submit code, caused by `Language Rejected`", remoteJudgeDTO.getContestId(), remoteJudgeDTO.getProblemNum()); + throw new RuntimeException(log); + } + if (response.body().contains("error for__source")) { + String log = String.format("Codeforces[%s] [%s]:Failed to submit code, caused by `Source Code Error`", remoteJudgeDTO.getContestId(), remoteJudgeDTO.getProblemNum()); + throw new RuntimeException(log); + } + } + } + + @Override + public String getLanguage(String language) { + if (language.startsWith("GNU GCC C11")) { + return "43"; + } else if (language.startsWith("Clang++17 Diagnostics")) { + return "52"; + } else if (language.startsWith("GNU G++11")) { + return "50"; + } else if (language.startsWith("GNU G++14")) { + return "50"; + } else if (language.startsWith("GNU G++17")) { + return "54"; + } else if (language.startsWith("GNU G++20")) { + return "73"; + } else if (language.startsWith("Microsoft Visual C++ 2017")) { + return "59"; + } else if (language.startsWith("C# 8, .NET Core")) { + return "65"; + } else if (language.startsWith("C# Mono")) { + return "9"; + } else if (language.startsWith("D DMD32")) { + return "28"; + } else if (language.startsWith("Go")) { + return "32"; + } else if (language.startsWith("Haskell GHC")) { + return "12"; + } else if (language.startsWith("Java 11")) { + return "60"; + } else if (language.startsWith("Java 1.8")) { + return "36"; + } else if (language.startsWith("Kotlin")) { + return "48"; + } else if (language.startsWith("OCaml")) { + return "19"; + } else if (language.startsWith("Delphi")) { + return "3"; + } else if (language.startsWith("Free Pascal")) { + return "4"; + } else if (language.startsWith("PascalABC.NET")) { + return "51"; + } else if (language.startsWith("Perl")) { + return "13"; + } else if (language.startsWith("PHP")) { + return "6"; + } else if (language.startsWith("Python 2")) { + return "7"; + } else if (language.startsWith("Python 3")) { + return "31"; + } else if (language.startsWith("PyPy 2")) { + return "40"; + } else if (language.startsWith("PyPy 3")) { + return "41"; + } else if (language.startsWith("Ruby")) { + return "67"; + } else if (language.startsWith("Rust")) { + return "49"; + } else if (language.startsWith("Scala")) { + return "20"; + } else if (language.startsWith("JavaScript")) { + return "34"; + } else if (language.startsWith("Node.js")) { + return "55"; + } else { + return null; + } + } + + protected String getRandomBlankString() { + StringBuilder string = new StringBuilder("\n"); + int random = new Random().nextInt(Integer.MAX_VALUE); + while (random > 0) { + string.append(random % 2 == 0 ? ' ' : '\t'); + random /= 2; + } + return string.toString(); + } + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/GYMJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/GYMJudge.java new file mode 100644 index 0000000..ee3174e --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/GYMJudge.java @@ -0,0 +1,102 @@ +package top.hcode.hoj.remoteJudge.task.Impl; + + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.text.UnicodeUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeRes; +import top.hcode.hoj.util.Constants; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/6 11:17 + * @Description: + */ +public class GYMJudge extends CodeForcesJudge { + + private final static String JUDGE_PROTOCOL = "/data/judgeProtocol"; + + @Override + protected String getSubmitUrl(String contestNum) { + return IMAGE_HOST + "/gym/" + contestNum + "/submit"; + } + + @Override + public RemoteJudgeRes result() { + return getNotTestCaseDetailResult(); + } + + private RemoteJudgeRes getNotTestCaseDetailResult() { + HttpRequest.getCookieManager().getCookieStore().removeAll(); + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + Long submitId = remoteJudgeDTO.getSubmitId(); + + RemoteJudgeRes remoteJudgeRes = RemoteJudgeRes.builder() + .status(Constants.Judge.STATUS_JUDGING.getStatus()) + .build(); + + String url = HOST + String.format(SUBMISSION_RESULT_URL, remoteJudgeDTO.getUsername(), 30); + HttpResponse response = HttpUtil.createGet(url) + .timeout(30000) + .execute(); + + if (response.getStatus() == 200) { + JSONObject jsonObject = JSONUtil.parseObj(response.body()); + JSONArray results = (JSONArray) jsonObject.get("result"); + for (Object tmp : results) { + JSONObject result = (JSONObject) tmp; + long runId = Long.parseLong(result.get("id").toString()); + if (runId == submitId) { + String verdict = (String) result.get("verdict"); + Constants.Judge statusType = statusMap.get(verdict); + if (statusType == Constants.Judge.STATUS_JUDGING) { + return remoteJudgeRes; + } + remoteJudgeRes.setTime(result.getInt("timeConsumedMillis")); + Integer memoryConsumedBytes = result.getInt("memoryConsumedBytes"); + if (memoryConsumedBytes != 0) { + remoteJudgeRes.setMemory(memoryConsumedBytes / 1024); + } else { + remoteJudgeRes.setMemory(0); + } + remoteJudgeRes.setStatus(statusType.getStatus()); + if (statusType == Constants.Judge.STATUS_COMPILE_ERROR) { + if (remoteJudgeDTO.getCookies() == null) { + login(); + } + HttpRequest homeRequest = HttpUtil.createGet(HOST + MY_SUBMISSION); + homeRequest.cookie(remoteJudgeDTO.getCookies()); + HttpResponse homeResponse = homeRequest.execute(); + String csrfToken = ReUtil.get("data-csrf='(\\w+)'", homeResponse.body(), 1); + + HttpRequest CEINFORequest = HttpUtil.createPost(HOST + JUDGE_PROTOCOL) + .cookie(remoteJudgeDTO.getCookies()) + .timeout(30000); + + CEINFORequest.form(MapUtil + .builder(new HashMap()) + .put("csrf_token", csrfToken) + .put("submissionId", remoteJudgeDTO.getSubmitId()).map()); + + HttpResponse CEINFOResp = CEINFORequest.execute(); + String CEInfo = UnicodeUtil.toString(CEINFOResp.body()).replaceAll("(\\\\r)?\\\\n", "\n") + .replaceAll("\\\\\\\\", "\\\\"); + remoteJudgeRes.setErrorInfo(CEInfo); + } + } + } + } + return remoteJudgeRes; + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/HDUJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/HDUJudge.java new file mode 100644 index 0000000..54a68fb --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/HDUJudge.java @@ -0,0 +1,219 @@ +package top.hcode.hoj.remoteJudge.task.Impl; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.*; +import lombok.extern.slf4j.Slf4j; +import org.jsoup.helper.Validate; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeRes; +import top.hcode.hoj.remoteJudge.task.RemoteJudgeStrategy; +import top.hcode.hoj.util.Constants; + +import java.net.HttpCookie; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +@Slf4j(topic = "hoj") +public class HDUJudge extends RemoteJudgeStrategy { + public static final String HOST = "http://acm.hdu.edu.cn"; + public static final String LOGIN_URL = "/userloginex.php?action=login"; + public static final String SUBMIT_URL = "/submit.php?action=submit"; + public static final String STATUS_URL = "/status.php?user=%s&pid=%s"; + public static final String QUERY_URL = "/status.php?first=%d"; + public static final String ERROR_URL = "/viewerror.php?rid=%d"; + public static Map headers = MapUtil + .builder(new HashMap()) + .put("Host", "acm.hdu.edu.cn") + .put("origin", "https://acm.hdu.edu.cn") + .put("referer", "https://acm.hdu.edu.cn") + .put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36") + .map(); + + @Override + public void submit() { + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + + if (remoteJudgeDTO.getCompleteProblemId() == null || remoteJudgeDTO.getUserCode() == null) { + return; + } + + login(); + + List cookies = remoteJudgeDTO.getCookies(); + + HttpRequest request = HttpUtil.createPost(HOST + SUBMIT_URL) + .addHeaders(headers) + .form(MapUtil + .builder(new HashMap()) + .put("check", "0") + .put("language", getLanguage(remoteJudgeDTO.getLanguage())) + .put("problemid", remoteJudgeDTO.getCompleteProblemId()) + .put("_usercode", Base64.encode(URLEncoder.encode(remoteJudgeDTO.getUserCode() + getRandomBlankString()))) + .map()) + .cookie(cookies); + + HttpResponse response = request.execute(); + remoteJudgeDTO.setSubmitStatus(response.getStatus()); + // 提交频率限制了 等待5秒再次提交 + if (response.getStatus() == 200 && response.body() != null && response.body().contains("Please don't re-submit")) { + try { + TimeUnit.SECONDS.sleep(5); + } catch (InterruptedException e) { + e.printStackTrace(); + } + response = request.execute(); + remoteJudgeDTO.setSubmitStatus(response.getStatus()); + if (response.getStatus() != 302) { + String log = String.format("[HDU] [%s]: Failed to submit code, the http response status is [%s].", remoteJudgeDTO.getCompleteProblemId(), response.getStatus()); + throw new RuntimeException(log); + } + } else if (response.getStatus() != 302) { + String log = String.format("[HDU] [%s]: Failed to submit code, the http response status is [%s].", remoteJudgeDTO.getCompleteProblemId(), response.getStatus()); + throw new RuntimeException(log); + } + // 获取提交的题目id + Long maxRunId = getMaxRunId(remoteJudgeDTO.getUsername(), remoteJudgeDTO.getCompleteProblemId()); + if (maxRunId == -1L) { // 等待2s再次查询,如果还是失败,则表明提交失败了 + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + maxRunId = getMaxRunId(remoteJudgeDTO.getUsername(), remoteJudgeDTO.getCompleteProblemId()); + } + remoteJudgeDTO.setCookies(cookies) + .setSubmitId(maxRunId); + } + + @Override + public RemoteJudgeRes result() { + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + String url = HOST + String.format(QUERY_URL, remoteJudgeDTO.getSubmitId()); + HttpRequest request = HttpUtil.createGet(url) + .cookie(remoteJudgeDTO.getCookies()) + .addHeaders(headers); + HttpResponse response = request.execute(); + // 1提交时间 2结果 3执行时间 4执行空间 5代码长度 + // 一般情况下 代码长度和提交时间不需要,想要也行,自行添加 + Pattern pattern = Pattern.compile(">" + remoteJudgeDTO.getSubmitId() + "[\\s\\S]*?([\\s\\S]*?)[\\s\\S]*?(\\d*?)MS(\\d*?)K"); + Matcher matcher = pattern.matcher(response.body()); + // 找到时 + Validate.isTrue(matcher.find()); + String rawStatus = matcher.group(1).replaceAll("<[\\s\\S]*?>", "").trim(); + Constants.Judge judgeStatus = statusTypeMap.getOrDefault(rawStatus, Constants.Judge.STATUS_PENDING); + + RemoteJudgeRes remoteJudgeRes = RemoteJudgeRes.builder() + .status(judgeStatus.getStatus()) + .build(); + + if (judgeStatus == Constants.Judge.STATUS_PENDING) { + return remoteJudgeRes; + } + + + // 获取其他信息 + String executionTime = matcher.group(2); + remoteJudgeRes.setTime(Integer.parseInt(executionTime)); + String executionMemory = matcher.group(3); + remoteJudgeRes.setMemory(Integer.parseInt(executionMemory)); + + // 如果CE了,则还需要获得错误信息 + if (judgeStatus == Constants.Judge.STATUS_COMPILE_ERROR) { + request.setUrl(HOST + String.format(ERROR_URL, remoteJudgeDTO.getSubmitId())); + String CEHtml = request.execute().body(); + String compilationErrorInfo = ReUtil.get("
([\\s\\S]*?)
", CEHtml, 1); + remoteJudgeRes.setErrorInfo(HtmlUtil.unescape(compilationErrorInfo)); + } + return remoteJudgeRes; + } + + + @Override + public void login() { + // 清除当前线程的cookies缓存 + HttpRequest.getCookieManager().getCookieStore().removeAll(); + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + HttpRequest request = HttpUtil.createPost(HOST + LOGIN_URL).addHeaders(headers); + HttpResponse response = request.form(MapUtil + .builder(new HashMap()) + .put("username", remoteJudgeDTO.getUsername()) + .put("login", "Sign In") + .put("userpass", remoteJudgeDTO.getPassword()).map()) + .execute(); + if (response.getStatus() != 302) { + throw new RuntimeException("[HDU] Failed to login! The possible cause is connection failure, and the returned status code is " + response.getStatus()); + } + remoteJudgeDTO.setLoginStatus(response.getStatus()); + remoteJudgeDTO.setCookies(response.getCookies()); + } + + + @Override + public String getLanguage(String language) { + switch (language) { + case "G++": + return "0"; + case "GCC": + return "1"; + case "C++": + return "2"; + case "C": + return "3"; + case "Pascal": + return "4"; + case "Java": + return "5"; + case "C#": + return "6"; + default: + // TODO 抛出没有这个语言的异常 + return null; + } + } + + + public Long getMaxRunId(String userName, String problemId) { + String url = HOST + String.format(STATUS_URL, userName, problemId); + HttpResponse response = HttpUtil.createGet(url).addHeaders(headers).execute(); + String maxRunId = ReUtil.get("(\\d+)", response.body(), 1); + return maxRunId != null ? Long.parseLong(maxRunId) : -1L; + } + + + // TODO 添加结果对应的状态 + private static final Map statusTypeMap = new HashMap() { + { + put("Submitted", Constants.Judge.STATUS_PENDING); + put("Accepted", Constants.Judge.STATUS_ACCEPTED); + put("Wrong Answer", Constants.Judge.STATUS_WRONG_ANSWER); + put("Compilation Error", Constants.Judge.STATUS_COMPILE_ERROR); + put("Queuing", Constants.Judge.STATUS_PENDING); + put("Running", Constants.Judge.STATUS_JUDGING); + put("Compiling", Constants.Judge.STATUS_COMPILING); + put("Runtime Error", Constants.Judge.STATUS_RUNTIME_ERROR); + put("Time Limit Exceeded", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED); + put("Memory Limit Exceeded", Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED); + put("Output Limit Exceeded", Constants.Judge.STATUS_RUNTIME_ERROR); + put("Presentation Error", Constants.Judge.STATUS_PRESENTATION_ERROR); + } + }; + + protected String getRandomBlankString() { + StringBuilder string = new StringBuilder("\n"); + int random = new Random().nextInt(Integer.MAX_VALUE); + while (random > 0) { + string.append(random % 2 == 0 ? ' ' : '\t'); + random /= 2; + } + return string.toString(); + } +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/POJJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/POJJudge.java new file mode 100644 index 0000000..c60ad00 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/POJJudge.java @@ -0,0 +1,222 @@ +package top.hcode.hoj.remoteJudge.task.Impl; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.*; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.CollectionUtils; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeRes; +import top.hcode.hoj.remoteJudge.task.RemoteJudgeStrategy; +import top.hcode.hoj.util.Constants; + +import java.net.HttpCookie; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @Author: Himit_ZH + * @Date: 2021/6/24 21:19 + * @Description: + */ +@Slf4j(topic = "hoj") +public class POJJudge extends RemoteJudgeStrategy { + public static final String HOST = "http://poj.org"; + public static final String LOGIN_URL = "/login"; + public static final String SUBMIT_URL = "/submit"; + public static final String STATUS_URL = "/status?user_id=%s&problem_id=%s"; + public static final String QUERY_URL = "/showsource?solution_id=%s"; + public static final String ERROR_URL = "/showcompileinfo?solution_id=%s"; + public static Map headers = MapUtil + .builder(new HashMap()) + .put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36") + .map(); + + @Override + public void submit() { + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + + if (remoteJudgeDTO.getCompleteProblemId() == null || remoteJudgeDTO.getUserCode() == null) { + return; + } + + login(); + + List cookies = remoteJudgeDTO.getCookies(); + + HttpRequest request = HttpUtil.createPost(HOST + SUBMIT_URL) + .addHeaders(headers) + .cookie(cookies); + + HttpResponse response = request.form(MapUtil.builder(new HashMap()) + .put("language", getLanguage(remoteJudgeDTO.getLanguage())) + .put("submit", "Submit") + .put("problem_id", remoteJudgeDTO.getCompleteProblemId()) + .put("source", Base64.encode(remoteJudgeDTO.getUserCode() + getRandomBlankString())) + .put("encoded", 1).map()) + .execute(); + remoteJudgeDTO.setSubmitStatus(response.getStatus()); + if (response.getStatus() != 302 && response.getStatus() != 200) { + String log = String.format("[POJ] [%s]: Failed to submit code, the http response status is [%s].", remoteJudgeDTO.getCompleteProblemId(), response.getStatus()); + throw new RuntimeException(log); + } + // 下面的请求都是GET + request.setMethod(Method.GET); + // 获取提交的题目id + Long maxRunId = getMaxRunId(request, remoteJudgeDTO.getUsername(), remoteJudgeDTO.getCompleteProblemId()); + + if (maxRunId == -1L) { // 等待2s再次查询,如果还是失败,则表明提交失败了 + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + maxRunId = getMaxRunId(request, remoteJudgeDTO.getUsername(), remoteJudgeDTO.getCompleteProblemId()); + } + + remoteJudgeDTO.setCookies(cookies) + .setSubmitId(maxRunId); + } + + @Override + public RemoteJudgeRes result() { + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + List cookies = remoteJudgeDTO.getCookies(); + Long submitId = remoteJudgeDTO.getSubmitId(); + + if (CollectionUtils.isEmpty(cookies)) { + login(); + cookies = remoteJudgeDTO.getCookies(); + } + String url = HOST + String.format(QUERY_URL, submitId); + HttpRequest request = HttpUtil.createGet(url) + .cookie(cookies) + .addHeaders(headers); + + HttpResponse response = request.execute(); + + if (!response.body().contains("Result:")) { + log.error(submitId + " error:{}", response.body()); + } + + String statusStr = ReUtil.get("Result:(.+?)", response.body(), 1) + .replaceAll("<.*?>", "") + .trim(); + + Constants.Judge judgeStatus = statusMap.get(statusStr); + + if (judgeStatus == null) { + return RemoteJudgeRes.builder() + .status(Constants.Judge.STATUS_PENDING.getStatus()) + .build(); + } + + RemoteJudgeRes remoteJudgeRes = RemoteJudgeRes.builder() + .status(judgeStatus.getStatus()) + .build(); + + // 如果CE了,需要获得错误信息 + if (judgeStatus == Constants.Judge.STATUS_COMPILE_ERROR) { + request.setUrl(HOST + String.format(ERROR_URL, submitId)); + String CEHtml = request.execute().body(); + String compilationErrorInfo = ReUtil.get("
([\\s\\S]*?)
", CEHtml, 1); + remoteJudgeRes.setErrorInfo(HtmlUtil.unescape(compilationErrorInfo)); + } else { + // 如果不是CE,获取其他信息 + String executionMemory = ReUtil.get("Memory: ([-\\d]+)", response.body(), 1); + remoteJudgeRes.setMemory(executionMemory == null ? null : Integer.parseInt(executionMemory)); + String executionTime = ReUtil.get("Time: ([-\\d]+)", response.body(), 1); + remoteJudgeRes.setTime(executionTime == null ? null : Integer.parseInt(executionTime)); + } + return remoteJudgeRes; + } + + + @Override + public void login() { + // 清除当前线程的cookies缓存 + HttpRequest.getCookieManager().getCookieStore().removeAll(); + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + + HttpRequest request = HttpUtil.createPost(HOST + LOGIN_URL); + HttpResponse response = request.form(MapUtil.builder(new HashMap()) + .put("user_id1", remoteJudgeDTO.getUsername()) + .put("B1", "login") + .put("url", ".") + .put("password1", remoteJudgeDTO.getPassword()).map()).execute(); + + if (response.getStatus() != 302) { + throw new RuntimeException("[POJ] Failed to login! The possible cause is connection failure, and the returned status code is " + response.getStatus()); + } + remoteJudgeDTO.setCookies(response.getCookies()) + .setLoginStatus(response.getStatus()); + } + + @Override + public String getLanguage(String language) { + switch (language) { + case "G++": + return "0"; + case "GCC": + return "1"; + case "Java": + return "2"; + case "Pascal": + return "3"; + case "C++": + return "4"; + case "C": + return "5"; + case "Fortran": + return "6"; + default: + // TODO 抛出没有这个语言的异常 + return null; + } + } + + + public Long getMaxRunId(HttpRequest request, String userName, String problemId) { + String url = String.format(STATUS_URL, userName, problemId); + request.setUrl(HOST + url); + String html = request.execute().body(); + Matcher matcher = Pattern.compile("(\\d+)").matcher(html); + return matcher.find() ? Long.parseLong(matcher.group(1)) : -1L; + } + + + // TODO 添加结果对应的状态 + private static final Map statusMap = new HashMap() { + { + put("Compiling", Constants.Judge.STATUS_COMPILING); + put("Accepted", Constants.Judge.STATUS_ACCEPTED); + put("Running & Judging", Constants.Judge.STATUS_JUDGING); + put("Presentation Error", Constants.Judge.STATUS_PRESENTATION_ERROR); + put("Time Limit Exceeded", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED); + put("Memory Limit Exceeded", Constants.Judge.STATUS_MEMORY_LIMIT_EXCEEDED); + put("Wrong Answer", Constants.Judge.STATUS_WRONG_ANSWER); + put("Runtime Error", Constants.Judge.STATUS_RUNTIME_ERROR); + put("Output Limit Exceeded", Constants.Judge.STATUS_RUNTIME_ERROR); + put("Compile Error", Constants.Judge.STATUS_COMPILE_ERROR); + } + }; + + protected String getRandomBlankString() { + StringBuilder string = new StringBuilder("\n"); + int random = new Random().nextInt(Integer.MAX_VALUE); + while (random > 0) { + string.append(random % 2 == 0 ? ' ' : '\t'); + random /= 2; + } + return string.toString(); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/SPOJJudge.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/SPOJJudge.java new file mode 100644 index 0000000..e13e2ca --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/Impl/SPOJJudge.java @@ -0,0 +1,256 @@ +package top.hcode.hoj.remoteJudge.task.Impl; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.Validate; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeRes; +import top.hcode.hoj.remoteJudge.task.RemoteJudgeStrategy; +import top.hcode.hoj.util.Constants; + +import java.net.HttpCookie; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @Author: Himit_ZH + * @Date: 2022/1/27 23:19 + * @Description: + */ +@Slf4j(topic = "hoj") +public class SPOJJudge extends RemoteJudgeStrategy { + + public static final String HOST = "https://www.spoj.com"; + public static final String LOGIN_URL = "/login/"; + public static final String SUBMIT_URL = "/submit/complete/"; + public static final String SUBMISSION_RESULT_URL = "/status/ajax=1,ajaxdiff=1"; + public static final String CE_INFO_URL = "/error/%s"; + + private static final Map statusMap = new HashMap() {{ + put("11", Constants.Judge.STATUS_COMPILE_ERROR); + put("12", Constants.Judge.STATUS_RUNTIME_ERROR); + put("13", Constants.Judge.STATUS_TIME_LIMIT_EXCEEDED); + put("14", Constants.Judge.STATUS_WRONG_ANSWER); + put("15", Constants.Judge.STATUS_ACCEPTED); + }}; + + private static final Map languageMap = new HashMap<>(); + + + @Override + public void submit() { + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + if (remoteJudgeDTO.getCompleteProblemId() == null || remoteJudgeDTO.getUserCode() == null) { + return; + } + login(); + + List cookies = remoteJudgeDTO.getCookies(); + + HttpRequest request = HttpUtil.createPost(HOST + SUBMIT_URL) + .cookie(cookies); + + HttpResponse response = request.form(MapUtil + .builder(new HashMap()) + .put("lang", getLanguage(remoteJudgeDTO.getLanguage())) + .put("problemcode", remoteJudgeDTO.getCompleteProblemId()) + .put("file", remoteJudgeDTO.getUserCode()) + .map()) + .execute(); + remoteJudgeDTO.setSubmitStatus(response.getStatus()); + if (response.body().contains("submit in this language for this problem")) { + throw new RuntimeException("Language Error"); + } else if (response.body().contains("Wrong problem code!")) { + throw new RuntimeException("Wrong problem code!"); + } else if (response.body().contains("solution is too long")) { + throw new RuntimeException("Code Length Exceeded"); + } + + String runId = ReUtil.get("name=\"newSubmissionId\" value=\"(\\d+)\"", response.body(), 1); + if (runId == null) { + remoteJudgeDTO.setSubmitId(-1L); + } else { + remoteJudgeDTO.setSubmitId(Long.parseLong(runId)); + } + } + + @Override + public RemoteJudgeRes result() { + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + List cookies = remoteJudgeDTO.getCookies(); + Long submitId = remoteJudgeDTO.getSubmitId(); + + String url = HOST + SUBMISSION_RESULT_URL; + HttpResponse response = HttpUtil.createPost(url) + .cookie(cookies) + .form(MapUtil.builder(new HashMap()) + .put("ids", submitId).map()) + .execute(); + + String html = response.body(); + html = html.replaceAll("\\\\[nt]", "").replaceAll(">(run|edit|ideone it)<", "><") + .replaceAll("<.*?>", "").replace(" ", "") + .replaceAll("\n","") + .trim(); + + + Pattern pattern = Pattern.compile("\"status_description\":\"[\\s\\S]*?\", \"id\":" + submitId + + ", \"status\":([\\s\\S]*?),\"time\":\"([\\s\\S]*?)\",\"mem\":\"([\\s\\S]*?)\",\"final\":\"([\\s\\S]*?)\""); + Matcher matcher = pattern.matcher(html); + Validate.isTrue(matcher.find()); + + String finalTag = matcher.group(4).trim(); + if (!"1".equals(finalTag)) { + return RemoteJudgeRes.builder() + .status(Constants.Judge.STATUS_PENDING.getStatus()) + .build(); + } + + String rawStatus = matcher.group(1).trim(); + String rawTime = matcher.group(2).trim(); + String rawMemory = matcher.group(3).trim(); + + Constants.Judge judgeResult = statusMap.get(rawStatus); + + RemoteJudgeRes remoteJudgeRes = RemoteJudgeRes.builder() + .status(judgeResult.getStatus()) + .build(); + + if (!rawMemory.equals("-")) { + int mul = matcher.group(3).contains("M") ? 1024 : 1; + int memory = (int) (0.5 + mul * Double.parseDouble(rawMemory.replaceAll("[Mk]", "").trim())); + remoteJudgeRes.setMemory(memory); + } + if (!rawTime.equals("-")) { + int time = (int) (0.5 + 1000 * Double.parseDouble(rawTime)); + remoteJudgeRes.setTime(time); + } + if (judgeResult.equals(Constants.Judge.STATUS_COMPILE_ERROR)) { + String errorInfoUrl = HOST + String.format(CE_INFO_URL, submitId); + HttpRequest request = HttpUtil.createGet(errorInfoUrl); + html = request.cookie(cookies).execute().body(); + String errorInfo = ReUtil.get("
([\\s\\S]*?)
", html, 1); + remoteJudgeRes.setErrorInfo(errorInfo); + } + return remoteJudgeRes; + } + + @Override + public void login() { + // 清除当前线程的cookies缓存 + HttpRequest.getCookieManager().getCookieStore().removeAll(); + + RemoteJudgeDTO remoteJudgeDTO = getRemoteJudgeDTO(); + HttpRequest request = HttpUtil.createPost(HOST + LOGIN_URL); + HttpResponse response = request.form(MapUtil.builder(new HashMap()) + .put("login_user", remoteJudgeDTO.getUsername()) + .put("autologin", "1") + .put("submit", "Log In") + .put("password", remoteJudgeDTO.getPassword()).map()).execute(); + remoteJudgeDTO.setLoginStatus(response.getStatus()) + .setCookies(response.getCookies()); + } + + @Override + public String getLanguage(String language) { + if (language.equals("Perl (perl 2018.12)")) { + return languageMap.get(language); + } + String key = language.substring(0, language.lastIndexOf(" ")).trim(); + return languageMap.get(key); + } + + + static { + languageMap.put("Ada95 (gnat", "7"); + languageMap.put("Assembler 32 (gcc", "45"); + languageMap.put("Assembler 32 (nasm", "13"); + languageMap.put("Assembler 64 (nasm)", "42"); + languageMap.put("AWK (gawk", "104"); + languageMap.put("AWK (mawk", "105"); + languageMap.put("Bash (bash", "28"); + languageMap.put("BC (bc", "110"); + languageMap.put("Brainf**k (bff", "12"); + languageMap.put("C (clang", "81"); + languageMap.put("C (gcc", "11"); + languageMap.put("C# (gmcs", "27"); + languageMap.put("C++ (g++", "41"); + languageMap.put("C++ (gcc", "1"); + languageMap.put("C++14 (gcc", "44"); + languageMap.put("C++14 (clang", "82"); + languageMap.put("C99 (gcc", "34"); + languageMap.put("Clips (clips", "14"); + languageMap.put("Clojure (clojure", "111"); + languageMap.put("Cobol (gnucobol", "118"); + languageMap.put("CoffeeScript (coffee", "91"); + languageMap.put("Common Lisp (sbcl", "31"); + languageMap.put("Common Lisp (clisp", "32"); + languageMap.put("D (dmd", "102"); + languageMap.put("D (ldc", "84"); + languageMap.put("D (gdc", "20"); + languageMap.put("Dart (dart", "48"); + languageMap.put("Elixir (elixir", "96"); + languageMap.put("Erlang (erl", "36"); + languageMap.put("F# (mono", "124"); + languageMap.put("Fantom (fantom", "92"); + languageMap.put("Forth (gforth", "107"); + languageMap.put("Fortran (gfortran", "5"); + languageMap.put("Go (go", "114"); + languageMap.put("Gosu (gosu", "98"); + languageMap.put("Groovy (groovy", "121"); + languageMap.put("Haskell (ghc", "21"); + languageMap.put("Icon (iconc", "16"); + languageMap.put("Intercal (ick", "9"); + languageMap.put("JAR (JavaSE", "24"); + languageMap.put("Java (HotSpot", "10"); + languageMap.put("JavaScript (rhino", "35"); + languageMap.put("JavaScript (SMonkey", "112"); + languageMap.put("Kotlin (kotlin", "47"); + languageMap.put("Lua (luac", "26"); + languageMap.put("Nemerle (ncc", "30"); + languageMap.put("Nice (nicec", "25"); + languageMap.put("Nim (nim", "122"); + languageMap.put("Node.js (node", "56"); + languageMap.put("Objective-C (gcc", "43"); + languageMap.put("Objective-C (clang", "83"); + languageMap.put("Ocaml (ocamlopt", "8"); + languageMap.put("Octave (octave", "127"); + languageMap.put("Pascal (gpc", "2"); + languageMap.put("Pascal (fpc", "22"); + languageMap.put("Perl (perl 2018.12)", "54"); + languageMap.put("Perl (perl", "3"); + languageMap.put("PHP (php", "29"); + languageMap.put("Pico Lisp (pico", "94"); + languageMap.put("Pike (pike", "19"); + languageMap.put("Prolog (swi", "15"); + languageMap.put("Prolog (gprolog", "108"); + languageMap.put("Python (cpython", "4"); + languageMap.put("Python (PyPy", "99"); + languageMap.put("Python 3 (python", "116"); + languageMap.put("Python 3 nbc (python", "126"); + languageMap.put("R (R", "117"); + languageMap.put("Racket (racket", "95"); + languageMap.put("Ruby (ruby", "17"); + languageMap.put("Rust (rust", "93"); + languageMap.put("Scala (scala", "39"); + languageMap.put("Scheme (stalin", "18"); + languageMap.put("Scheme (guile", "33"); + languageMap.put("Scheme (chicken", "97"); + languageMap.put("Sed (sed", "46"); + languageMap.put("Smalltalk (gst", "23"); + languageMap.put("SQLite (sqlite", "40"); + languageMap.put("Swift (swift", "85"); + languageMap.put("TCL (tcl", "38"); + languageMap.put("Text (plain", "62"); + languageMap.put("Unlambda (unlambda", "115"); + languageMap.put("VB.net (mono", "50"); + languageMap.put("Whitespace (wspace", "6"); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/RemoteJudgeFactory.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/RemoteJudgeFactory.java new file mode 100644 index 0000000..e8f33f5 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/RemoteJudgeFactory.java @@ -0,0 +1,27 @@ +package top.hcode.hoj.remoteJudge.task; + +import top.hcode.hoj.remoteJudge.task.Impl.*; +import top.hcode.hoj.util.Constants; + +public class RemoteJudgeFactory { + + public static RemoteJudgeStrategy selectJudge(String judgeName) { + Constants.RemoteJudge remoteJudge = Constants.RemoteJudge.getTypeByName(judgeName); + switch (remoteJudge) { + case HDU_JUDGE: + return new HDUJudge(); + case CF_JUDGE: + return new CodeForcesJudge(); + case POJ_JUDGE: + return new POJJudge(); + case GYM_JUDGE: + return new GYMJudge(); + case SPOJ_JUDGE: + return new SPOJJudge(); + case ATCODER_JUDGE: + return new AtCoderJudge(); + default: + return null; + } + } +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/RemoteJudgeStrategy.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/RemoteJudgeStrategy.java new file mode 100644 index 0000000..87f1a72 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/remoteJudge/task/RemoteJudgeStrategy.java @@ -0,0 +1,26 @@ +package top.hcode.hoj.remoteJudge.task; + +import lombok.Getter; +import lombok.Setter; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeDTO; +import top.hcode.hoj.remoteJudge.entity.RemoteJudgeRes; + + +/** + * 远程评测抽象类 + */ +public abstract class RemoteJudgeStrategy { + + @Setter + @Getter + private RemoteJudgeDTO remoteJudgeDTO; + + public abstract void submit(); + + public abstract RemoteJudgeRes result(); + + public abstract void login(); + + public abstract String getLanguage(String language); + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/JudgeService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/JudgeService.java new file mode 100644 index 0000000..16d12aa --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/JudgeService.java @@ -0,0 +1,23 @@ +package top.hcode.hoj.service; + +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.pojo.dto.TestJudgeReq; +import top.hcode.hoj.pojo.dto.TestJudgeRes; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.dto.ToJudgeDTO; + +import java.util.HashMap; + +public interface JudgeService { + + public void judge(Judge judge); + + public TestJudgeRes testJudge(TestJudgeReq testJudgeReq); + + public void remoteJudge(ToJudgeDTO toJudgeDTO); + + public Boolean compileSpj(String code, Long pid, String spjLanguage, HashMap extraFiles) throws SystemError; + + public Boolean compileInteractive(String code, Long pid, String interactiveLanguage, HashMap extraFiles) throws SystemError; + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/RemoteJudgeService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/RemoteJudgeService.java new file mode 100644 index 0000000..e357229 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/RemoteJudgeService.java @@ -0,0 +1,8 @@ +package top.hcode.hoj.service; + +public interface RemoteJudgeService { + + public void changeAccountStatus(String remoteJudge, String username); + + public void changeServerSubmitCFStatus(String ip, Integer port); +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/SystemConfigService.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/SystemConfigService.java new file mode 100644 index 0000000..6e3305d --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/SystemConfigService.java @@ -0,0 +1,7 @@ +package top.hcode.hoj.service; + +import java.util.HashMap; + +public interface SystemConfigService { + public HashMap getSystemConfig(); +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/JudgeServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/JudgeServiceImpl.java new file mode 100644 index 0000000..1415d07 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/JudgeServiceImpl.java @@ -0,0 +1,150 @@ +package top.hcode.hoj.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Service; +import top.hcode.hoj.common.exception.SystemError; +import top.hcode.hoj.dao.JudgeEntityService; +import top.hcode.hoj.dao.ProblemEntityService; +import top.hcode.hoj.judge.JudgeContext; +import top.hcode.hoj.pojo.dto.TestJudgeReq; +import top.hcode.hoj.pojo.dto.TestJudgeRes; +import top.hcode.hoj.pojo.dto.ToJudgeDTO; +import top.hcode.hoj.pojo.entity.judge.Judge; +import top.hcode.hoj.pojo.entity.problem.Problem; +import top.hcode.hoj.remoteJudge.RemoteJudgeContext; +import top.hcode.hoj.service.JudgeService; +import top.hcode.hoj.util.Constants; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Objects; + +/** + * @Author: Himit_ZH + * @Date: 2022/3/12 15:54 + * @Description: + */ +@Service +@RefreshScope +public class JudgeServiceImpl implements JudgeService { + + @Value("${hoj-judge-server.name}") + private String name; + + @Resource + private JudgeEntityService judgeEntityService; + + @Resource + private ProblemEntityService problemEntityService; + + @Resource + private JudgeContext judgeContext; + + @Autowired + private RemoteJudgeContext remoteJudgeContext; + + @Override + public void judge(Judge judge) { + // 标志该判题过程进入编译阶段 + // 写入当前判题服务的名字 + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.set("status", Constants.Judge.STATUS_COMPILING.getStatus()) + .set("judger", name) + .eq("submit_id", judge.getSubmitId()) + .ne("status", Constants.Judge.STATUS_CANCELLED.getStatus()); + boolean isUpdatedOk = judgeEntityService.update(judgeUpdateWrapper); + + // 没更新成功,则可能表示该评测被取消 或者 judge记录被删除了,则结束评测 + if (!isUpdatedOk){ + judgeContext.updateOtherTable(judge.getSubmitId(), + Constants.Judge.STATUS_CANCELLED.getStatus(), + judge.getCid(), + judge.getUid(), + judge.getPid(), + judge.getGid(), + null, + null); + return; + } + + // 进行判题操作 + QueryWrapper problemQueryWrapper = new QueryWrapper<>(); + problemQueryWrapper.select("id", + "type", + "io_score", + "difficulty", + "judge_mode", + "time_limit", + "memory_limit", + "stack_limit", + "user_extra_file", + "judge_extra_file", + "case_version", + "spj_code", + "spj_language", + "problem_id", + "is_remove_end_blank") + .eq("id", judge.getPid()); + Problem problem = problemEntityService.getOne(problemQueryWrapper); + Judge finalJudgeRes = judgeContext.Judge(problem, judge); + + // 更新该次提交 + judgeEntityService.updateById(finalJudgeRes); + + if (!Objects.equals(finalJudgeRes.getStatus(), Constants.Judge.STATUS_SUBMITTED_FAILED.getStatus())) { + // 更新其它表 + judgeContext.updateOtherTable(finalJudgeRes.getSubmitId(), + finalJudgeRes.getStatus(), + judge.getCid(), + judge.getUid(), + judge.getPid(), + judge.getGid(), + finalJudgeRes.getScore(), + finalJudgeRes.getTime()); + } + } + + @Override + public TestJudgeRes testJudge(TestJudgeReq testJudgeReq) { + return judgeContext.testJudge(testJudgeReq); + } + + + @Override + public void remoteJudge(ToJudgeDTO toJudgeDTO) { + Judge judge = toJudgeDTO.getJudge(); + UpdateWrapper judgeUpdateWrapper = new UpdateWrapper<>(); + judgeUpdateWrapper.set("status", Constants.Judge.STATUS_PENDING.getStatus()) + .set("judger", name) + .eq("submit_id", judge.getSubmitId()) + .ne("status", Constants.Judge.STATUS_CANCELLED.getStatus()); + boolean isUpdatedOk = judgeEntityService.update(judgeUpdateWrapper); + // 没更新成功,则可能表示该评测被取消 或者 judge记录被删除了,则结束评测 + if (!isUpdatedOk){ + judgeContext.updateOtherTable(judge.getSubmitId(), + Constants.Judge.STATUS_CANCELLED.getStatus(), + judge.getCid(), + judge.getUid(), + judge.getPid(), + judge.getGid(), + null, + null); + return; + } + remoteJudgeContext.judge(toJudgeDTO); + } + + @Override + public Boolean compileSpj(String code, Long pid, String spjLanguage, HashMap extraFiles) throws SystemError { + return judgeContext.compileSpj(code, pid, spjLanguage, extraFiles); + } + + @Override + public Boolean compileInteractive(String code, Long pid, String interactiveLanguage, HashMap extraFiles) throws SystemError { + return judgeContext.compileInteractive(code, pid, interactiveLanguage, extraFiles); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/RemoteJudgeServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/RemoteJudgeServiceImpl.java new file mode 100644 index 0000000..70a3443 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/RemoteJudgeServiceImpl.java @@ -0,0 +1,110 @@ +package top.hcode.hoj.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import top.hcode.hoj.pojo.entity.judge.JudgeServer; +import top.hcode.hoj.pojo.entity.judge.RemoteJudgeAccount; +import top.hcode.hoj.dao.JudgeServerEntityService; +import top.hcode.hoj.dao.RemoteJudgeAccountEntityService; +import top.hcode.hoj.service.RemoteJudgeService; + +/** + * @Author: Himit_ZH + * @Date: 2021/12/7 23:57 + * @Description: + */ +@Service +@Slf4j(topic = "hoj") +public class RemoteJudgeServiceImpl implements RemoteJudgeService { + + @Autowired + private RemoteJudgeAccountEntityService remoteJudgeAccountEntityService; + + @Autowired + private JudgeServerEntityService judgeServerEntityService; + + @Override + public void changeAccountStatus(String remoteJudge, String username) { + + UpdateWrapper remoteJudgeAccountUpdateWrapper = new UpdateWrapper<>(); + remoteJudgeAccountUpdateWrapper.set("status", true) + .eq("username", username); + if (remoteJudge.equals("GYM")) { + remoteJudge = "CF"; + } + remoteJudgeAccountUpdateWrapper.eq("oj", remoteJudge); + + boolean isOk = remoteJudgeAccountEntityService.update(remoteJudgeAccountUpdateWrapper); + + if (!isOk) { // 重试8次 + tryAgainUpdateAccount(remoteJudgeAccountUpdateWrapper, remoteJudge, username); + } + } + + private void tryAgainUpdateAccount(UpdateWrapper updateWrapper, String remoteJudge, String username) { + boolean retryable; + int attemptNumber = 0; + do { + boolean success = remoteJudgeAccountEntityService.update(updateWrapper); + if (success) { + return; + } else { + attemptNumber++; + retryable = attemptNumber < 8; + if (attemptNumber == 8) { + log.error("Remote Judge:Change Account status to `true` Failed ----------->{}", "oj:" + remoteJudge + ",username:" + username); + break; + } + try { + Thread.sleep(300); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } while (retryable); + } + + @Override + public void changeServerSubmitCFStatus(String ip, Integer port) { + + if (StringUtils.isEmpty(ip) || port == null) { + return; + } + UpdateWrapper judgeServerUpdateWrapper = new UpdateWrapper<>(); + judgeServerUpdateWrapper.set("cf_submittable", true) + .eq("ip", ip) + .eq("is_remote", true) + .eq("port", port); + boolean isOk = judgeServerEntityService.update(judgeServerUpdateWrapper); + + if (!isOk) { // 重试8次 + tryAgainUpdateServer(judgeServerUpdateWrapper, ip, port); + } + } + + private void tryAgainUpdateServer(UpdateWrapper updateWrapper, String ip, Integer port) { + boolean retryable; + int attemptNumber = 0; + do { + boolean success = judgeServerEntityService.update(updateWrapper); + if (success) { + return; + } else { + attemptNumber++; + retryable = attemptNumber < 8; + if (attemptNumber == 8) { + log.error("Remote Judge:Change CF Judge Server Status to `true` Failed! =======>{}", "ip:" + ip + ",port:" + port); + break; + } + try { + Thread.sleep(300); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } while (retryable); + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/SystemConfigServiceImpl.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/SystemConfigServiceImpl.java new file mode 100644 index 0000000..61b2e2a --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/service/impl/SystemConfigServiceImpl.java @@ -0,0 +1,35 @@ +package top.hcode.hoj.service.impl; + + +import cn.hutool.system.oshi.OshiUtil; +import org.springframework.stereotype.Service; +import top.hcode.hoj.service.SystemConfigService; + +import java.util.HashMap; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/3 20:15 + * @Description: + */ +@Service +public class SystemConfigServiceImpl implements SystemConfigService { + + public HashMap getSystemConfig() { + HashMap result = new HashMap(); + int cpuCores = Runtime.getRuntime().availableProcessors(); // cpu核数 + double cpuLoad = 100 - OshiUtil.getCpuInfo().getFree(); + String percentCpuLoad = String.format("%.2f", cpuLoad) + "%"; // cpu使用率 + + double totalVirtualMemory = OshiUtil.getMemory().getTotal(); // 总内存 + double freePhysicalMemorySize = OshiUtil.getMemory().getAvailable(); // 空闲内存 + double value = freePhysicalMemorySize / totalVirtualMemory; + String percentMemoryLoad = String.format("%.2f", (1 - value) * 100) + "%"; // 内存使用率 + + result.put("cpuCores", cpuCores); + result.put("percentCpuLoad", percentCpuLoad); + result.put("percentMemoryLoad", percentMemoryLoad); + return result; + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/CodeForcesUtils.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/CodeForcesUtils.java new file mode 100644 index 0000000..efbe6b7 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/CodeForcesUtils.java @@ -0,0 +1,38 @@ +package top.hcode.hoj.util; + +import cn.hutool.core.io.resource.ResourceUtil; +import lombok.extern.slf4j.Slf4j; + +import javax.script.*; +import java.util.List; + +@Slf4j(topic = "hoj") +public class CodeForcesUtils { + private static String RCPC; + + public static String getRCPC() { + return RCPC; + } + + public static void updateRCPC(List list) { + + ScriptEngine se = new ScriptEngineManager().getEngineByName("javascript"); + Bindings bindings = se.createBindings(); + bindings.put("string", 4); + se.setBindings(bindings, ScriptContext.ENGINE_SCOPE); + + String file = ResourceUtil.readUtf8Str("CodeForcesAES.js"); + try { + se.eval(file); + // 是否可调用 + if (se instanceof Invocable) { + Invocable in = (Invocable) se; + RCPC = (String) in.invokeFunction("getRCPC", list.get(0), list.get(1), list.get(2)); + } + } catch (ScriptException e) { + log.error("CodeForcesUtils.updateRCPC throw ScriptException", e); + } catch (NoSuchMethodException e) { + log.error("CodeForcesUtils.updateRCPC throw NoSuchMethodException", e); + } + } +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/Constants.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/Constants.java new file mode 100644 index 0000000..2fecf0d --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/Constants.java @@ -0,0 +1,402 @@ +package top.hcode.hoj.util; + + +import java.util.*; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/1 13:00 + * @Description: 常量枚举类 + */ +public class Constants { + /** + * @Description 提交评测结果的状态码 + * @Since 2021/1/1 + */ + public enum Judge { + // 提交失败 + STATUS_NOT_SUBMITTED(-10, "Not Submitted"), + STATUS_CANCELLED(-4, "Cancelled"), + STATUS_PRESENTATION_ERROR(-3, "Presentation Error"), + STATUS_COMPILE_ERROR(-2, "Compile Error"), + STATUS_WRONG_ANSWER(-1, "Wrong Answer"), + STATUS_ACCEPTED(0, "Accepted"), + STATUS_TIME_LIMIT_EXCEEDED(1, "Time Limit Exceeded"), + STATUS_MEMORY_LIMIT_EXCEEDED(2, "Memory Limit Exceeded"), + STATUS_RUNTIME_ERROR(3, "Runtime Error"), + STATUS_SYSTEM_ERROR(4, "System Error"), + STATUS_PENDING(5, "Pending"), + STATUS_COMPILING(6, "Compiling"), + // 正在等待结果 + STATUS_JUDGING(7, "Judging"), + STATUS_PARTIAL_ACCEPTED(8, "Partial Accepted"), + STATUS_SUBMITTING(9, "Submitting"), + STATUS_SUBMITTED_FAILED(10, "Submitted Failed"), + STATUS_NULL(15, "No Status"); + + private final Integer status; + private final String name; + + private Judge(Integer status, String name) { + this.status = status; + this.name = name; + } + + public Integer getStatus() { + return status; + } + + public String getName() { + return name; + } + + public static Judge getTypeByStatus(int status) { + for (Judge judge : Judge.values()) { + if (judge.getStatus() == status) { + return judge; + } + } + return STATUS_NULL; + } + } + + + public enum RemoteJudge { + + + HDU_JUDGE("HDU"), + + CF_JUDGE("CF"), + + GYM_JUDGE("GYM"), + + POJ_JUDGE("POJ"), + + SPOJ_JUDGE("SPOJ"), + + ATCODER_JUDGE("AC"), + + HDU_REMOTE_JUDGE_ACCOUNT("Hdu Remote Judge Account"), + + CF_REMOTE_JUDGE_ACCOUNT("Codeforces Remote Judge Account"); + + private final String name; + + RemoteJudge(String remoteJudgeName) { + this.name = remoteJudgeName; + } + + public static RemoteJudge getTypeByName(String judgeName) { + if (judgeName == null) return null; + for (RemoteJudge remoteJudge : RemoteJudge.values()) { + if (remoteJudge.getName().equals(judgeName)) { + return remoteJudge; + } + } + return null; + } + + public static String getListNameByOJName(String judgeName) { + if (judgeName == null) return null; + switch (judgeName) { + case "HDU": + return RemoteJudge.HDU_REMOTE_JUDGE_ACCOUNT.getName(); + case "CF": + return RemoteJudge.CF_REMOTE_JUDGE_ACCOUNT.getName(); + } + return null; + } + + public String getName() { + return name; + } + } + + + public enum JudgeMode { + TEST("test"), + DEFAULT("default"), + SPJ("spj"), + INTERACTIVE("interactive"); + + private final String mode; + + JudgeMode(String mode) { + this.mode = mode; + } + + public String getMode() { + return mode; + } + + public static JudgeMode getJudgeMode(String mode) { + for (JudgeMode judgeMode : JudgeMode.values()) { + if (judgeMode.getMode().equals(mode)) { + return judgeMode; + } + } + return null; + } + } + + public enum JudgeDir { + + RUN_WORKPLACE_DIR("/judge/run"), + + TEST_CASE_DIR("/judge/test_case"), + + SPJ_WORKPLACE_DIR("/judge/spj"), + + INTERACTIVE_WORKPLACE_DIR("/judge/interactive"), + + TMPFS_DIR("/w"); + + + private final String content; + + JudgeDir(String content) { + this.content = content; + } + + public String getContent() { + return content; + } + } + + public static List defaultEnv = Arrays.asList( + "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=en_US.UTF-8", + "LC_ALL=en_US.UTF-8", + "LANGUAGE=en_US:en", + "HOME=/w"); + + public static List python3Env = Arrays.asList("LANG=en_US.UTF-8", + "LANGUAGE=en_US:en", "LC_ALL=en_US.UTF-8", "PYTHONIOENCODING=utf-8"); + + public static List golangEnv = Arrays.asList("GODEBUG=madvdontneed=1", + "GOCACHE=off", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "LANG=en_US.UTF-8", "LANGUAGE=en_US:en", "LC_ALL=en_US.UTF-8"); + + /* + {0} --> tmpfs_dir + {1} --> srcName + {2} --> exeName + */ + public enum CompileConfig { + C("C", "main.c", "main", 3000L, 10000L, 256 * 1024 * 1024L, "/usr/bin/gcc -DONLINE_JUDGE -w -fmax-errors=1 -std=c11 {1} -lm -o {2}", defaultEnv), + + CWithO2("C With O2", "main.c", "main", 3000L, 10000L, 256 * 1024 * 1024L, "/usr/bin/gcc -DONLINE_JUDGE -O2 -w -fmax-errors=1 -std=c11 {1} -lm -o {2}", defaultEnv), + + CPP("C++", "main.cpp", "main", 10000L, 20000L, 512 * 1024 * 1024L, "/usr/bin/g++ -DONLINE_JUDGE -w -fmax-errors=1 -std=c++14 {1} -lm -o {2}", defaultEnv), + + CPPWithO2("C++ With O2", "main.cpp", "main", 10000L, 20000L, 512 * 1024 * 1024L, "/usr/bin/g++ -DONLINE_JUDGE -O2 -w -fmax-errors=1 -std=c++14 {1} -lm -o {2}", defaultEnv), + + JAVA("Java", "Main.java", "Main.jar", 10000L, 20000L, 512 * 1024 * 1024L, "/bin/bash -c \"javac -encoding utf-8 {1} && jar -cvf {2} *.class\"", defaultEnv), + + PYTHON2("Python2", "main.py", "main.pyc", 3000L, 10000L, 128 * 1024 * 1024L, "/usr/bin/python -m py_compile ./{1}", defaultEnv), + + PYTHON3("Python3", "main.py", "__pycache__/main.cpython-37.pyc", 3000L, 10000L, 128 * 1024 * 1024L, "/usr/bin/python3.7 -m py_compile ./{1}", defaultEnv), + + GOLANG("Golang", "main.go", "main", 3000L, 5000L, 512 * 1024 * 1024L, "/usr/bin/go build -o {2} {1}", defaultEnv), + + CS("C#", "Main.cs", "main", 5000L, 10000L, 512 * 1024 * 1024L, "/usr/bin/mcs -optimize+ -out:{0}/{2} {0}/{1}", defaultEnv), + + PyPy2("PyPy2", "main.py", "__pycache__/main.pypy-73.pyc", 3000L, 10000L, 256 * 1024 * 1024L, "/usr/bin/pypy -m py_compile {0}/{1}", defaultEnv), + + PyPy3("PyPy3", "main.py", "__pycache__/main.pypy38.pyc", 3000L, 10000L, 256 * 1024 * 1024L, "/usr/bin/pypy3 -m py_compile {0}/{1}", defaultEnv), + + SPJ_C("SPJ-C", "spj.c", "spj", 3000L, 5000L, 512 * 1024 * 1024L, "/usr/bin/gcc -DONLINE_JUDGE -O2 -w -fmax-errors=3 -std=c99 {1} -lm -o {2}", defaultEnv), + + SPJ_CPP("SPJ-C++", "spj.cpp", "spj", 10000L, 20000L, 512 * 1024 * 1024L, "/usr/bin/g++ -DONLINE_JUDGE -O2 -w -fmax-errors=3 -std=c++14 {1} -lm -o {2}", defaultEnv), + + INTERACTIVE_C("INTERACTIVE-C", "interactive.c", "interactive", 3000L, 5000L, 512 * 1024 * 1024L, "/usr/bin/gcc -DONLINE_JUDGE -O2 -w -fmax-errors=3 -std=c99 {1} -lm -o {2}", defaultEnv), + + INTERACTIVE_CPP("INTERACTIVE-C++", "interactive.cpp", "interactive", 10000L, 20000L, 512 * 1024 * 1024L, "/usr/bin/g++ -DONLINE_JUDGE -O2 -w -fmax-errors=3 -std=c++14 {1} -lm -o {2}", defaultEnv); + + private final String language; + private final String srcName; + private final String exeName; + private final Long maxCpuTime; + private final Long maxRealTime; + private final Long maxMemory; + private final String command; + private final List envs; + + CompileConfig(String language, String srcName, String exeName, Long maxCpuTime, Long maxRealTime, Long maxMemory, + String command, List envs) { + this.language = language; + this.srcName = srcName; + this.exeName = exeName; + this.maxCpuTime = maxCpuTime; + this.maxRealTime = maxRealTime; + this.maxMemory = maxMemory; + this.command = command; + this.envs = envs; + } + + public String getLanguage() { + return language; + } + + public String getSrcName() { + return srcName; + } + + public String getExeName() { + return exeName; + } + + public Long getMaxCpuTime() { + return maxCpuTime; + } + + public Long getMaxRealTime() { + return maxRealTime; + } + + public Long getMaxMemory() { + return maxMemory; + } + + public String getCommand() { + return command; + } + + public List getEnvs() { + return envs; + } + + public static CompileConfig getCompilerByLanguage(String language) { + for (CompileConfig compileConfig : CompileConfig.values()) { + if (compileConfig.getLanguage().equals(language)) { + return compileConfig; + } + } + return null; + } + } + + + /* + {0} --> tmpfs_dir + {1} --> exeName (user or spj) + {2} --> The test case standard input file name of question + {3} --> The user's program output file name of question + {4} --> The test case standard output file name of question + */ + public enum RunConfig { + C("C", "{0}/{1}", "main", defaultEnv), + + CWithO2("C With O2", "{0}/{1}", "main", defaultEnv), + + CPP("C++", "{0}/{1}", "main", defaultEnv), + + CPPWithO2("C++ With O2", "{0}/{1}", "main", defaultEnv), + + JAVA("Java", "/usr/bin/java -Dfile.encoding=UTF-8 -cp {0}/{1} Main", "Main.jar", defaultEnv), + + PYTHON2("Python2", "/usr/bin/python {1}", "main", defaultEnv), + + PYTHON3("Python3", "/usr/bin/python3.7 {1}", "main", python3Env), + + GOLANG("Golang", "{0}/{1}", "main", golangEnv), + + CS("C#", "/usr/bin/mono {0}/{1}", "main", defaultEnv), + + PyPy2("PyPy2", "/usr/bin/pypy {1}", "main.pyc", defaultEnv), + + PyPy3("PyPy3", "/usr/bin/pypy3 {1}", "main.pyc", python3Env), + + PHP("PHP", "/usr/bin/php {1}", "main.php", defaultEnv), + + JS_NODE("JavaScript Node", "/usr/bin/node {1}", "main.js", defaultEnv), + + JS_V8("JavaScript V8", "/usr/bin/jsv8/d8 {1}", "main.js", defaultEnv), + + SPJ_C("SPJ-C", "{0}/{1} {2} {3} {4}", "spj", defaultEnv), + + SPJ_CPP("SPJ-C++", "{0}/{1} {2} {3} {4}", "spj", defaultEnv), + + INTERACTIVE_C("INTERACTIVE-C", "{0}/{1} {2} {3} {4}", "interactive", defaultEnv), + + INTERACTIVE_CPP("INTERACTIVE-C++", "{0}/{1} {2} {3} {4}", "interactive", defaultEnv); + + private final String language; + private final String command; + private final String exeName; + private final List envs; + + RunConfig(String language, String command, String exeName, List envs) { + this.language = language; + this.command = command; + this.exeName = exeName; + this.envs = envs; + } + + public String getLanguage() { + return language; + } + + public String getCommand() { + return command; + } + + public String getExeName() { + return exeName; + } + + public List getEnvs() { + return envs; + } + + public static RunConfig getRunnerByLanguage(String language) { + for (RunConfig runConfig : RunConfig.values()) { + if (runConfig.getLanguage().equals(language)) { + return runConfig; + } + } + return null; + } + + } + + + /** + * @Description 比赛相关的常量 + * @Since 2021/1/7 + */ + public enum Contest { + TYPE_ACM(0, "ACM"), + TYPE_OI(1, "OI"), + + STATUS_SCHEDULED(-1, "Scheduled"), + STATUS_RUNNING(0, "Running"), + STATUS_ENDED(1, "Ended"), + + AUTH_PUBLIC(0, "Public"), + AUTH_PRIVATE(1, "Private"), + AUTH_PROTECT(2, "Protect"), + + RECORD_NOT_AC_PENALTY(-1, "未AC通过算罚时"), + RECORD_NOT_AC_NOT_PENALTY(0, "未AC通过不罚时"), + RECORD_AC(1, "AC通过"); + + private final Integer code; + private final String name; + + Contest(Integer code, String name) { + this.code = code; + this.name = name; + } + + public Integer getCode() { + return code; + } + + public String getName() { + return name; + } + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/IpUtils.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/IpUtils.java new file mode 100644 index 0000000..50c43a7 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/IpUtils.java @@ -0,0 +1,88 @@ +package top.hcode.hoj.util; + +import lombok.extern.slf4j.Slf4j; + +import javax.servlet.http.HttpServletRequest; +import java.net.*; +import java.util.Enumeration; + +/** + * @Author: Himit_ZH + * @Date: 2020/10/30 11:12 + * @Description: + */ +@Slf4j +public class IpUtils { + public static String getUserIpAddr(HttpServletRequest request) { + String ipAddress = null; + try { + ipAddress = request.getHeader("x-forwarded-for"); + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("WL-Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getRemoteAddr(); + if (ipAddress.equals("127.0.0.1")) { + // 根据网卡取本机配置的IP + try { + ipAddress = InetAddress.getLocalHost().getHostAddress(); + } catch (UnknownHostException e) { + log.error("用户ip获取异常------->{}", e.getMessage()); + } + } + } + // 通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 + if (ipAddress != null) { + if (ipAddress.contains(",")) { + return ipAddress.split(",")[0]; + } else { + return ipAddress; + } + } else { + return ""; + } + } catch (Exception e) { + log.error("用户ip获取异常------->{}", e.getMessage()); + return ""; + } + } + + public static String getServiceIp(){ + InetAddress address = null; + try { + address = InetAddress.getLocalHost(); + } catch (UnknownHostException e) { + log.error("本地ip获取异常---------->{}", e.getMessage()); + } + return address.getHostAddress(); //返回IP地址 + } + + public static String getLocalIpv4Address() { + Enumeration ifaces = null; + try { + ifaces = NetworkInterface.getNetworkInterfaces(); + } catch (SocketException e) { + log.error("本地ipv4获取异常---------->{}", e.getMessage()); + } + String siteLocalAddress = null; + while (ifaces.hasMoreElements()) { + NetworkInterface iface = ifaces.nextElement(); + Enumeration addresses = iface.getInetAddresses(); + while (addresses.hasMoreElements()) { + InetAddress addr = addresses.nextElement(); + String hostAddress = addr.getHostAddress(); + if (addr instanceof Inet4Address) { + if (addr.isSiteLocalAddress()) { + siteLocalAddress = hostAddress; + } else { + return hostAddress; + } + } + } + } + return siteLocalAddress == null ? "" : siteLocalAddress; + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/JsoupUtils.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/JsoupUtils.java new file mode 100644 index 0000000..723e233 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/JsoupUtils.java @@ -0,0 +1,62 @@ +package top.hcode.hoj.util; + +import org.jsoup.Connection; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Entities; + +import java.io.IOException; +import java.util.Map; + +public class JsoupUtils { + + /** + * 获取连接 + * + * @param url api网址 + * @param headers 用户头 + * @return 返回一个object + * @throws IOException + */ + public static Connection getConnectionFromUrl(String url, Map headers, Map cookies) throws IOException { + Connection connection = Jsoup.connect(url); + // 设置用户代理 + connection.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"); + headers.put("Accept-Language", "en-GB,en;q=0.8"); + // 设置超时时间40秒 + connection.timeout(40000); + connection.ignoreContentType(true); + // 设置cookie,保存信息 + if (cookies != null) + connection.cookies(cookies); + // 设置请求头 + connection.headers(headers); + return connection; + } + + public static Connection.Response postResponse(Connection connection, Map postData) throws IOException { + connection.data(postData); + return connection.method(Connection.Method.POST).execute(); + } + + public static Connection.Response getResponse(Connection connection, Map getData) throws IOException { + //添加参数 + if (getData != null) { + connection.data(getData); + } + return connection.method(Connection.Method.GET).execute(); + } + + public static Document getDocument(Connection connection, Map getData) throws IOException { + //添加参数 + if (getData != null) { + connection.data(getData); + } + Document document = connection.get(); + document.outputSettings().escapeMode(Entities.EscapeMode.xhtml); + document.outputSettings().prettyPrint(false); + return document; + } + + +} diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/JudgeUtils.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/JudgeUtils.java new file mode 100644 index 0000000..7a3402f --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/JudgeUtils.java @@ -0,0 +1,91 @@ +package top.hcode.hoj.util; + +import cn.hutool.json.JSONUtil; +import org.springframework.util.StringUtils; +import top.hcode.hoj.pojo.entity.problem.Problem; + +import java.util.*; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/24 19:16 + * @Description: + */ +public class JudgeUtils { + + @SuppressWarnings("All") + public static HashMap getProblemExtraFileMap(Problem problem, String type) { + if ("user".equals(type)) { + if (!StringUtils.isEmpty(problem.getUserExtraFile())) { + return (HashMap) JSONUtil.toBean(problem.getUserExtraFile(), Map.class); + } + } else if ("judge".equals(type)) { + if (!StringUtils.isEmpty(problem.getJudgeExtraFile())) { + return (HashMap) JSONUtil.toBean(problem.getJudgeExtraFile(), Map.class); + } + } + return null; + } + + public static List translateCommandline(String toProcess) { + if (toProcess != null && !toProcess.isEmpty()) { + int state = 0; + StringTokenizer tok = new StringTokenizer(toProcess, "\"' ", true); + List result = new ArrayList<>(); + StringBuilder current = new StringBuilder(); + boolean lastTokenHasBeenQuoted = false; + + while (true) { + while (tok.hasMoreTokens()) { + String nextTok = tok.nextToken(); + switch (state) { + case 1: + if ("'".equals(nextTok)) { + lastTokenHasBeenQuoted = true; + state = 0; + } else { + current.append(nextTok); + } + continue; + case 2: + if ("\"".equals(nextTok)) { + lastTokenHasBeenQuoted = true; + state = 0; + } else { + current.append(nextTok); + } + continue; + } + + if ("'".equals(nextTok)) { + state = 1; + } else if ("\"".equals(nextTok)) { + state = 2; + } else if (" ".equals(nextTok)) { + if (lastTokenHasBeenQuoted || current.length() > 0) { + result.add(current.toString()); + current.setLength(0); + } + } else { + current.append(nextTok); + } + + lastTokenHasBeenQuoted = false; + } + + if (lastTokenHasBeenQuoted || current.length() > 0) { + result.add(current.toString()); + } + + if (state != 1 && state != 2) { + return result; + } + + throw new RuntimeException("unbalanced quotes in " + toProcess); + } + } else { + return new ArrayList<>(); + } + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/ThreadPoolUtils.java b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/ThreadPoolUtils.java new file mode 100644 index 0000000..1b5ace6 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/java/top/hcode/hoj/util/ThreadPoolUtils.java @@ -0,0 +1,40 @@ +package top.hcode.hoj.util; + +import java.util.concurrent.*; + +/** + * @Author: Himit_ZH + * @Date: 2021/12/21 12:06 + * @Description: + */ +public class ThreadPoolUtils { + + private static ExecutorService executorService; + + private static final int cpuNum = Runtime.getRuntime().availableProcessors(); + + private ThreadPoolUtils() { + //手动创建线程池. + executorService = new ThreadPoolExecutor( + cpuNum, // 核心线程数 + cpuNum + 1, // 最大线程数。最多几个线程并发。 + 3,//当非核心线程无任务时,几秒后结束该线程 + TimeUnit.SECONDS,// 结束线程时间单位 + new LinkedBlockingDeque<>(200 * cpuNum), //阻塞队列,限制等候线程数 + Executors.defaultThreadFactory(), + new ThreadPoolExecutor.DiscardOldestPolicy());//队列满了,尝试去和最早的竞争,也不会抛出异常! + } + + private static class PluginConfigHolder { + private final static ThreadPoolUtils INSTANCE = new ThreadPoolUtils(); + } + + public static ThreadPoolUtils getInstance() { + return PluginConfigHolder.INSTANCE; + } + + public ExecutorService getThreadPool() { + return executorService; + } + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/resources/CodeForcesAES.js b/src/hoj-springboot/JudgeServer/src/main/resources/CodeForcesAES.js new file mode 100644 index 0000000..b27e347 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/resources/CodeForcesAES.js @@ -0,0 +1,722 @@ +function getRCPC(a, b, c) { + a = toNumbers(a); + b = toNumbers(b); + c = toNumbers(c); + return toHex(slowAES.decrypt(c, 2, a, b)); +} + +function toNumbers(d) { + var e = []; + d.replace(/(..)/g, function(d) { + e.push(parseInt(d, 16)) + }); + return e +} + +function toHex() { + for (var d = [], d = 1 == arguments.length && arguments[0].constructor == Array ? arguments[0] : arguments, e = "", f = 0; f < d.length; f++) e += (16 > d[f] ? "0" : "") + d[f].toString(16); + return e.toLowerCase() +} + +var slowAES = { + /* + * START AES SECTION + */ + aes: { + // structure of valid key sizes + keySize: { + SIZE_128: 16, + SIZE_192: 24, + SIZE_256: 32 + }, + + // Rijndael S-box + sbox: [ + 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, + 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, + 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, + 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, + 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, + 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, + 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, + 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, + 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, + 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, + 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, + 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, + 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, + 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, + 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, + 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 + ], + + // Rijndael Inverted S-box + rsbox: [0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d], + + /* rotate the word eight bits to the left */ + rotate: function(word) { + var c = word[0]; + for (var i = 0; i < 3; i++) + word[i] = word[i + 1]; + word[3] = c; + + return word; + }, + + // Rijndael Rcon + Rcon: [ + 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, + 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, + 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, + 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, + 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, + 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, + 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, + 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, + 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, + 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, + 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, + 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, + 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, + 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, + 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, + 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, + 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, + 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb + ], + + G2X: [ + 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, + 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, + 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3e, 0x40, 0x42, 0x44, 0x46, + 0x48, 0x4a, 0x4c, 0x4e, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x5e, + 0x60, 0x62, 0x64, 0x66, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x74, 0x76, + 0x78, 0x7a, 0x7c, 0x7e, 0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c, 0x8e, + 0x90, 0x92, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e, 0xa0, 0xa2, 0xa4, 0xa6, + 0xa8, 0xaa, 0xac, 0xae, 0xb0, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, + 0xc0, 0xc2, 0xc4, 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xd0, 0xd2, 0xd4, 0xd6, + 0xd8, 0xda, 0xdc, 0xde, 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, + 0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0xfe, 0x1b, 0x19, 0x1f, 0x1d, + 0x13, 0x11, 0x17, 0x15, 0x0b, 0x09, 0x0f, 0x0d, 0x03, 0x01, 0x07, 0x05, + 0x3b, 0x39, 0x3f, 0x3d, 0x33, 0x31, 0x37, 0x35, 0x2b, 0x29, 0x2f, 0x2d, + 0x23, 0x21, 0x27, 0x25, 0x5b, 0x59, 0x5f, 0x5d, 0x53, 0x51, 0x57, 0x55, + 0x4b, 0x49, 0x4f, 0x4d, 0x43, 0x41, 0x47, 0x45, 0x7b, 0x79, 0x7f, 0x7d, + 0x73, 0x71, 0x77, 0x75, 0x6b, 0x69, 0x6f, 0x6d, 0x63, 0x61, 0x67, 0x65, + 0x9b, 0x99, 0x9f, 0x9d, 0x93, 0x91, 0x97, 0x95, 0x8b, 0x89, 0x8f, 0x8d, + 0x83, 0x81, 0x87, 0x85, 0xbb, 0xb9, 0xbf, 0xbd, 0xb3, 0xb1, 0xb7, 0xb5, + 0xab, 0xa9, 0xaf, 0xad, 0xa3, 0xa1, 0xa7, 0xa5, 0xdb, 0xd9, 0xdf, 0xdd, + 0xd3, 0xd1, 0xd7, 0xd5, 0xcb, 0xc9, 0xcf, 0xcd, 0xc3, 0xc1, 0xc7, 0xc5, + 0xfb, 0xf9, 0xff, 0xfd, 0xf3, 0xf1, 0xf7, 0xf5, 0xeb, 0xe9, 0xef, 0xed, + 0xe3, 0xe1, 0xe7, 0xe5 + ], + + G3X: [ + 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, + 0x14, 0x17, 0x12, 0x11, 0x30, 0x33, 0x36, 0x35, 0x3c, 0x3f, 0x3a, 0x39, + 0x28, 0x2b, 0x2e, 0x2d, 0x24, 0x27, 0x22, 0x21, 0x60, 0x63, 0x66, 0x65, + 0x6c, 0x6f, 0x6a, 0x69, 0x78, 0x7b, 0x7e, 0x7d, 0x74, 0x77, 0x72, 0x71, + 0x50, 0x53, 0x56, 0x55, 0x5c, 0x5f, 0x5a, 0x59, 0x48, 0x4b, 0x4e, 0x4d, + 0x44, 0x47, 0x42, 0x41, 0xc0, 0xc3, 0xc6, 0xc5, 0xcc, 0xcf, 0xca, 0xc9, + 0xd8, 0xdb, 0xde, 0xdd, 0xd4, 0xd7, 0xd2, 0xd1, 0xf0, 0xf3, 0xf6, 0xf5, + 0xfc, 0xff, 0xfa, 0xf9, 0xe8, 0xeb, 0xee, 0xed, 0xe4, 0xe7, 0xe2, 0xe1, + 0xa0, 0xa3, 0xa6, 0xa5, 0xac, 0xaf, 0xaa, 0xa9, 0xb8, 0xbb, 0xbe, 0xbd, + 0xb4, 0xb7, 0xb2, 0xb1, 0x90, 0x93, 0x96, 0x95, 0x9c, 0x9f, 0x9a, 0x99, + 0x88, 0x8b, 0x8e, 0x8d, 0x84, 0x87, 0x82, 0x81, 0x9b, 0x98, 0x9d, 0x9e, + 0x97, 0x94, 0x91, 0x92, 0x83, 0x80, 0x85, 0x86, 0x8f, 0x8c, 0x89, 0x8a, + 0xab, 0xa8, 0xad, 0xae, 0xa7, 0xa4, 0xa1, 0xa2, 0xb3, 0xb0, 0xb5, 0xb6, + 0xbf, 0xbc, 0xb9, 0xba, 0xfb, 0xf8, 0xfd, 0xfe, 0xf7, 0xf4, 0xf1, 0xf2, + 0xe3, 0xe0, 0xe5, 0xe6, 0xef, 0xec, 0xe9, 0xea, 0xcb, 0xc8, 0xcd, 0xce, + 0xc7, 0xc4, 0xc1, 0xc2, 0xd3, 0xd0, 0xd5, 0xd6, 0xdf, 0xdc, 0xd9, 0xda, + 0x5b, 0x58, 0x5d, 0x5e, 0x57, 0x54, 0x51, 0x52, 0x43, 0x40, 0x45, 0x46, + 0x4f, 0x4c, 0x49, 0x4a, 0x6b, 0x68, 0x6d, 0x6e, 0x67, 0x64, 0x61, 0x62, + 0x73, 0x70, 0x75, 0x76, 0x7f, 0x7c, 0x79, 0x7a, 0x3b, 0x38, 0x3d, 0x3e, + 0x37, 0x34, 0x31, 0x32, 0x23, 0x20, 0x25, 0x26, 0x2f, 0x2c, 0x29, 0x2a, + 0x0b, 0x08, 0x0d, 0x0e, 0x07, 0x04, 0x01, 0x02, 0x13, 0x10, 0x15, 0x16, + 0x1f, 0x1c, 0x19, 0x1a + ], + + G9X: [ + 0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36, 0x3f, 0x48, 0x41, 0x5a, 0x53, + 0x6c, 0x65, 0x7e, 0x77, 0x90, 0x99, 0x82, 0x8b, 0xb4, 0xbd, 0xa6, 0xaf, + 0xd8, 0xd1, 0xca, 0xc3, 0xfc, 0xf5, 0xee, 0xe7, 0x3b, 0x32, 0x29, 0x20, + 0x1f, 0x16, 0x0d, 0x04, 0x73, 0x7a, 0x61, 0x68, 0x57, 0x5e, 0x45, 0x4c, + 0xab, 0xa2, 0xb9, 0xb0, 0x8f, 0x86, 0x9d, 0x94, 0xe3, 0xea, 0xf1, 0xf8, + 0xc7, 0xce, 0xd5, 0xdc, 0x76, 0x7f, 0x64, 0x6d, 0x52, 0x5b, 0x40, 0x49, + 0x3e, 0x37, 0x2c, 0x25, 0x1a, 0x13, 0x08, 0x01, 0xe6, 0xef, 0xf4, 0xfd, + 0xc2, 0xcb, 0xd0, 0xd9, 0xae, 0xa7, 0xbc, 0xb5, 0x8a, 0x83, 0x98, 0x91, + 0x4d, 0x44, 0x5f, 0x56, 0x69, 0x60, 0x7b, 0x72, 0x05, 0x0c, 0x17, 0x1e, + 0x21, 0x28, 0x33, 0x3a, 0xdd, 0xd4, 0xcf, 0xc6, 0xf9, 0xf0, 0xeb, 0xe2, + 0x95, 0x9c, 0x87, 0x8e, 0xb1, 0xb8, 0xa3, 0xaa, 0xec, 0xe5, 0xfe, 0xf7, + 0xc8, 0xc1, 0xda, 0xd3, 0xa4, 0xad, 0xb6, 0xbf, 0x80, 0x89, 0x92, 0x9b, + 0x7c, 0x75, 0x6e, 0x67, 0x58, 0x51, 0x4a, 0x43, 0x34, 0x3d, 0x26, 0x2f, + 0x10, 0x19, 0x02, 0x0b, 0xd7, 0xde, 0xc5, 0xcc, 0xf3, 0xfa, 0xe1, 0xe8, + 0x9f, 0x96, 0x8d, 0x84, 0xbb, 0xb2, 0xa9, 0xa0, 0x47, 0x4e, 0x55, 0x5c, + 0x63, 0x6a, 0x71, 0x78, 0x0f, 0x06, 0x1d, 0x14, 0x2b, 0x22, 0x39, 0x30, + 0x9a, 0x93, 0x88, 0x81, 0xbe, 0xb7, 0xac, 0xa5, 0xd2, 0xdb, 0xc0, 0xc9, + 0xf6, 0xff, 0xe4, 0xed, 0x0a, 0x03, 0x18, 0x11, 0x2e, 0x27, 0x3c, 0x35, + 0x42, 0x4b, 0x50, 0x59, 0x66, 0x6f, 0x74, 0x7d, 0xa1, 0xa8, 0xb3, 0xba, + 0x85, 0x8c, 0x97, 0x9e, 0xe9, 0xe0, 0xfb, 0xf2, 0xcd, 0xc4, 0xdf, 0xd6, + 0x31, 0x38, 0x23, 0x2a, 0x15, 0x1c, 0x07, 0x0e, 0x79, 0x70, 0x6b, 0x62, + 0x5d, 0x54, 0x4f, 0x46 + ], + + GBX: [ + 0x00, 0x0b, 0x16, 0x1d, 0x2c, 0x27, 0x3a, 0x31, 0x58, 0x53, 0x4e, 0x45, + 0x74, 0x7f, 0x62, 0x69, 0xb0, 0xbb, 0xa6, 0xad, 0x9c, 0x97, 0x8a, 0x81, + 0xe8, 0xe3, 0xfe, 0xf5, 0xc4, 0xcf, 0xd2, 0xd9, 0x7b, 0x70, 0x6d, 0x66, + 0x57, 0x5c, 0x41, 0x4a, 0x23, 0x28, 0x35, 0x3e, 0x0f, 0x04, 0x19, 0x12, + 0xcb, 0xc0, 0xdd, 0xd6, 0xe7, 0xec, 0xf1, 0xfa, 0x93, 0x98, 0x85, 0x8e, + 0xbf, 0xb4, 0xa9, 0xa2, 0xf6, 0xfd, 0xe0, 0xeb, 0xda, 0xd1, 0xcc, 0xc7, + 0xae, 0xa5, 0xb8, 0xb3, 0x82, 0x89, 0x94, 0x9f, 0x46, 0x4d, 0x50, 0x5b, + 0x6a, 0x61, 0x7c, 0x77, 0x1e, 0x15, 0x08, 0x03, 0x32, 0x39, 0x24, 0x2f, + 0x8d, 0x86, 0x9b, 0x90, 0xa1, 0xaa, 0xb7, 0xbc, 0xd5, 0xde, 0xc3, 0xc8, + 0xf9, 0xf2, 0xef, 0xe4, 0x3d, 0x36, 0x2b, 0x20, 0x11, 0x1a, 0x07, 0x0c, + 0x65, 0x6e, 0x73, 0x78, 0x49, 0x42, 0x5f, 0x54, 0xf7, 0xfc, 0xe1, 0xea, + 0xdb, 0xd0, 0xcd, 0xc6, 0xaf, 0xa4, 0xb9, 0xb2, 0x83, 0x88, 0x95, 0x9e, + 0x47, 0x4c, 0x51, 0x5a, 0x6b, 0x60, 0x7d, 0x76, 0x1f, 0x14, 0x09, 0x02, + 0x33, 0x38, 0x25, 0x2e, 0x8c, 0x87, 0x9a, 0x91, 0xa0, 0xab, 0xb6, 0xbd, + 0xd4, 0xdf, 0xc2, 0xc9, 0xf8, 0xf3, 0xee, 0xe5, 0x3c, 0x37, 0x2a, 0x21, + 0x10, 0x1b, 0x06, 0x0d, 0x64, 0x6f, 0x72, 0x79, 0x48, 0x43, 0x5e, 0x55, + 0x01, 0x0a, 0x17, 0x1c, 0x2d, 0x26, 0x3b, 0x30, 0x59, 0x52, 0x4f, 0x44, + 0x75, 0x7e, 0x63, 0x68, 0xb1, 0xba, 0xa7, 0xac, 0x9d, 0x96, 0x8b, 0x80, + 0xe9, 0xe2, 0xff, 0xf4, 0xc5, 0xce, 0xd3, 0xd8, 0x7a, 0x71, 0x6c, 0x67, + 0x56, 0x5d, 0x40, 0x4b, 0x22, 0x29, 0x34, 0x3f, 0x0e, 0x05, 0x18, 0x13, + 0xca, 0xc1, 0xdc, 0xd7, 0xe6, 0xed, 0xf0, 0xfb, 0x92, 0x99, 0x84, 0x8f, + 0xbe, 0xb5, 0xa8, 0xa3 + ], + + GDX: [ + 0x00, 0x0d, 0x1a, 0x17, 0x34, 0x39, 0x2e, 0x23, 0x68, 0x65, 0x72, 0x7f, + 0x5c, 0x51, 0x46, 0x4b, 0xd0, 0xdd, 0xca, 0xc7, 0xe4, 0xe9, 0xfe, 0xf3, + 0xb8, 0xb5, 0xa2, 0xaf, 0x8c, 0x81, 0x96, 0x9b, 0xbb, 0xb6, 0xa1, 0xac, + 0x8f, 0x82, 0x95, 0x98, 0xd3, 0xde, 0xc9, 0xc4, 0xe7, 0xea, 0xfd, 0xf0, + 0x6b, 0x66, 0x71, 0x7c, 0x5f, 0x52, 0x45, 0x48, 0x03, 0x0e, 0x19, 0x14, + 0x37, 0x3a, 0x2d, 0x20, 0x6d, 0x60, 0x77, 0x7a, 0x59, 0x54, 0x43, 0x4e, + 0x05, 0x08, 0x1f, 0x12, 0x31, 0x3c, 0x2b, 0x26, 0xbd, 0xb0, 0xa7, 0xaa, + 0x89, 0x84, 0x93, 0x9e, 0xd5, 0xd8, 0xcf, 0xc2, 0xe1, 0xec, 0xfb, 0xf6, + 0xd6, 0xdb, 0xcc, 0xc1, 0xe2, 0xef, 0xf8, 0xf5, 0xbe, 0xb3, 0xa4, 0xa9, + 0x8a, 0x87, 0x90, 0x9d, 0x06, 0x0b, 0x1c, 0x11, 0x32, 0x3f, 0x28, 0x25, + 0x6e, 0x63, 0x74, 0x79, 0x5a, 0x57, 0x40, 0x4d, 0xda, 0xd7, 0xc0, 0xcd, + 0xee, 0xe3, 0xf4, 0xf9, 0xb2, 0xbf, 0xa8, 0xa5, 0x86, 0x8b, 0x9c, 0x91, + 0x0a, 0x07, 0x10, 0x1d, 0x3e, 0x33, 0x24, 0x29, 0x62, 0x6f, 0x78, 0x75, + 0x56, 0x5b, 0x4c, 0x41, 0x61, 0x6c, 0x7b, 0x76, 0x55, 0x58, 0x4f, 0x42, + 0x09, 0x04, 0x13, 0x1e, 0x3d, 0x30, 0x27, 0x2a, 0xb1, 0xbc, 0xab, 0xa6, + 0x85, 0x88, 0x9f, 0x92, 0xd9, 0xd4, 0xc3, 0xce, 0xed, 0xe0, 0xf7, 0xfa, + 0xb7, 0xba, 0xad, 0xa0, 0x83, 0x8e, 0x99, 0x94, 0xdf, 0xd2, 0xc5, 0xc8, + 0xeb, 0xe6, 0xf1, 0xfc, 0x67, 0x6a, 0x7d, 0x70, 0x53, 0x5e, 0x49, 0x44, + 0x0f, 0x02, 0x15, 0x18, 0x3b, 0x36, 0x21, 0x2c, 0x0c, 0x01, 0x16, 0x1b, + 0x38, 0x35, 0x22, 0x2f, 0x64, 0x69, 0x7e, 0x73, 0x50, 0x5d, 0x4a, 0x47, + 0xdc, 0xd1, 0xc6, 0xcb, 0xe8, 0xe5, 0xf2, 0xff, 0xb4, 0xb9, 0xae, 0xa3, + 0x80, 0x8d, 0x9a, 0x97 + ], + + GEX: [ + 0x00, 0x0e, 0x1c, 0x12, 0x38, 0x36, 0x24, 0x2a, 0x70, 0x7e, 0x6c, 0x62, + 0x48, 0x46, 0x54, 0x5a, 0xe0, 0xee, 0xfc, 0xf2, 0xd8, 0xd6, 0xc4, 0xca, + 0x90, 0x9e, 0x8c, 0x82, 0xa8, 0xa6, 0xb4, 0xba, 0xdb, 0xd5, 0xc7, 0xc9, + 0xe3, 0xed, 0xff, 0xf1, 0xab, 0xa5, 0xb7, 0xb9, 0x93, 0x9d, 0x8f, 0x81, + 0x3b, 0x35, 0x27, 0x29, 0x03, 0x0d, 0x1f, 0x11, 0x4b, 0x45, 0x57, 0x59, + 0x73, 0x7d, 0x6f, 0x61, 0xad, 0xa3, 0xb1, 0xbf, 0x95, 0x9b, 0x89, 0x87, + 0xdd, 0xd3, 0xc1, 0xcf, 0xe5, 0xeb, 0xf9, 0xf7, 0x4d, 0x43, 0x51, 0x5f, + 0x75, 0x7b, 0x69, 0x67, 0x3d, 0x33, 0x21, 0x2f, 0x05, 0x0b, 0x19, 0x17, + 0x76, 0x78, 0x6a, 0x64, 0x4e, 0x40, 0x52, 0x5c, 0x06, 0x08, 0x1a, 0x14, + 0x3e, 0x30, 0x22, 0x2c, 0x96, 0x98, 0x8a, 0x84, 0xae, 0xa0, 0xb2, 0xbc, + 0xe6, 0xe8, 0xfa, 0xf4, 0xde, 0xd0, 0xc2, 0xcc, 0x41, 0x4f, 0x5d, 0x53, + 0x79, 0x77, 0x65, 0x6b, 0x31, 0x3f, 0x2d, 0x23, 0x09, 0x07, 0x15, 0x1b, + 0xa1, 0xaf, 0xbd, 0xb3, 0x99, 0x97, 0x85, 0x8b, 0xd1, 0xdf, 0xcd, 0xc3, + 0xe9, 0xe7, 0xf5, 0xfb, 0x9a, 0x94, 0x86, 0x88, 0xa2, 0xac, 0xbe, 0xb0, + 0xea, 0xe4, 0xf6, 0xf8, 0xd2, 0xdc, 0xce, 0xc0, 0x7a, 0x74, 0x66, 0x68, + 0x42, 0x4c, 0x5e, 0x50, 0x0a, 0x04, 0x16, 0x18, 0x32, 0x3c, 0x2e, 0x20, + 0xec, 0xe2, 0xf0, 0xfe, 0xd4, 0xda, 0xc8, 0xc6, 0x9c, 0x92, 0x80, 0x8e, + 0xa4, 0xaa, 0xb8, 0xb6, 0x0c, 0x02, 0x10, 0x1e, 0x34, 0x3a, 0x28, 0x26, + 0x7c, 0x72, 0x60, 0x6e, 0x44, 0x4a, 0x58, 0x56, 0x37, 0x39, 0x2b, 0x25, + 0x0f, 0x01, 0x13, 0x1d, 0x47, 0x49, 0x5b, 0x55, 0x7f, 0x71, 0x63, 0x6d, + 0xd7, 0xd9, 0xcb, 0xc5, 0xef, 0xe1, 0xf3, 0xfd, 0xa7, 0xa9, 0xbb, 0xb5, + 0x9f, 0x91, 0x83, 0x8d + ], + + // Key Schedule Core + core: function(word, iteration) { + /* rotate the 32-bit word 8 bits to the left */ + word = this.rotate(word); + /* apply S-Box substitution on all 4 parts of the 32-bit word */ + for (var i = 0; i < 4; ++i) + word[i] = this.sbox[word[i]]; + /* XOR the output of the rcon operation with i to the first part (leftmost) only */ + word[0] = word[0] ^ this.Rcon[iteration]; + return word; + }, + + /* Rijndael's key expansion + * expands an 128,192,256 key into an 176,208,240 bytes key + * + * expandedKey is a pointer to an char array of large enough size + * key is a pointer to a non-expanded key + */ + expandKey: function(key, size) { + var expandedKeySize = (16 * (this.numberOfRounds(size) + 1)); + + /* current expanded keySize, in bytes */ + var currentSize = 0; + var rconIteration = 1; + var t = []; // temporary 4-byte variable + + var expandedKey = []; + for (var i = 0; i < expandedKeySize; i++) + expandedKey[i] = 0; + + /* set the 16,24,32 bytes of the expanded key to the input key */ + for (var j = 0; j < size; j++) + expandedKey[j] = key[j]; + currentSize += size; + + while (currentSize < expandedKeySize) { + /* assign the previous 4 bytes to the temporary value t */ + for (var k = 0; k < 4; k++) + t[k] = expandedKey[(currentSize - 4) + k]; + + /* every 16,24,32 bytes we apply the core schedule to t + * and increment rconIteration afterwards + */ + if (currentSize % size == 0) + t = this.core(t, rconIteration++); + + /* For 256-bit keys, we add an extra sbox to the calculation */ + if (size == this.keySize.SIZE_256 && ((currentSize % size) == 16)) + for (var l = 0; l < 4; l++) + t[l] = this.sbox[t[l]]; + + /* We XOR t with the four-byte block 16,24,32 bytes before the new expanded key. + * This becomes the next four bytes in the expanded key. + */ + for (var m = 0; m < 4; m++) { + expandedKey[currentSize] = expandedKey[currentSize - size] ^ t[m]; + currentSize++; + } + } + return expandedKey; + }, + + // Adds (XORs) the round key to the state + addRoundKey: function(state, roundKey) { + for (var i = 0; i < 16; i++) + state[i] ^= roundKey[i]; + return state; + }, + + // Creates a round key from the given expanded key and the + // position within the expanded key. + createRoundKey: function(expandedKey, roundKeyPointer) { + var roundKey = []; + for (var i = 0; i < 4; i++) + for (var j = 0; j < 4; j++) + roundKey[j * 4 + i] = expandedKey[roundKeyPointer + i * 4 + j]; + return roundKey; + }, + + /* substitute all the values from the state with the value in the SBox + * using the state value as index for the SBox + */ + subBytes: function(state, isInv) { + for (var i = 0; i < 16; i++) + state[i] = isInv ? this.rsbox[state[i]] : this.sbox[state[i]]; + return state; + }, + + /* iterate over the 4 rows and call shiftRow() with that row */ + shiftRows: function(state, isInv) { + for (var i = 0; i < 4; i++) + state = this.shiftRow(state, i * 4, i, isInv); + return state; + }, + + /* each iteration shifts the row to the left by 1 */ + shiftRow: function(state, statePointer, nbr, isInv) { + for (var i = 0; i < nbr; i++) { + if (isInv) { + var tmp = state[statePointer + 3]; + for (var j = 3; j > 0; j--) + state[statePointer + j] = state[statePointer + j - 1]; + state[statePointer] = tmp; + } else { + var tmp = state[statePointer]; + for (var j = 0; j < 3; j++) + state[statePointer + j] = state[statePointer + j + 1]; + state[statePointer + 3] = tmp; + } + } + return state; + }, + + // galois multiplication of 8 bit characters a and b + galois_multiplication: function(a, b) { + var p = 0; + for (var counter = 0; counter < 8; counter++) { + if ((b & 1) == 1) + p ^= a; + if (p > 0x100) p ^= 0x100; + var hi_bit_set = (a & 0x80); //keep p 8 bit + a <<= 1; + if (a > 0x100) a ^= 0x100; //keep a 8 bit + if (hi_bit_set == 0x80) + a ^= 0x1b; + if (a > 0x100) a ^= 0x100; //keep a 8 bit + b >>= 1; + if (b > 0x100) b ^= 0x100; //keep b 8 bit + } + return p; + }, + + // galois multipication of the 4x4 matrix + mixColumns: function(state, isInv) { + var column = []; + /* iterate over the 4 columns */ + for (var i = 0; i < 4; i++) { + /* construct one column by iterating over the 4 rows */ + for (var j = 0; j < 4; j++) + column[j] = state[(j * 4) + i]; + /* apply the mixColumn on one column */ + column = this.mixColumn(column, isInv); + /* put the values back into the state */ + for (var k = 0; k < 4; k++) + state[(k * 4) + i] = column[k]; + } + return state; + }, + + // galois multipication of 1 column of the 4x4 matrix + mixColumn: function(column, isInv) { + var mult = []; + if (isInv) + mult = [14, 9, 13, 11]; + else + mult = [2, 1, 1, 3]; + var cpy = []; + for (var i = 0; i < 4; i++) + cpy[i] = column[i]; + + column[0] = this.galois_multiplication(cpy[0], mult[0]) ^ + this.galois_multiplication(cpy[3], mult[1]) ^ + this.galois_multiplication(cpy[2], mult[2]) ^ + this.galois_multiplication(cpy[1], mult[3]); + column[1] = this.galois_multiplication(cpy[1], mult[0]) ^ + this.galois_multiplication(cpy[0], mult[1]) ^ + this.galois_multiplication(cpy[3], mult[2]) ^ + this.galois_multiplication(cpy[2], mult[3]); + column[2] = this.galois_multiplication(cpy[2], mult[0]) ^ + this.galois_multiplication(cpy[1], mult[1]) ^ + this.galois_multiplication(cpy[0], mult[2]) ^ + this.galois_multiplication(cpy[3], mult[3]); + column[3] = this.galois_multiplication(cpy[3], mult[0]) ^ + this.galois_multiplication(cpy[2], mult[1]) ^ + this.galois_multiplication(cpy[1], mult[2]) ^ + this.galois_multiplication(cpy[0], mult[3]); + return column; + }, + + // applies the 4 operations of the forward round in sequence + round: function(state, roundKey) { + state = this.subBytes(state, false); + state = this.shiftRows(state, false); + state = this.mixColumns(state, false); + state = this.addRoundKey(state, roundKey); + return state; + }, + + // applies the 4 operations of the inverse round in sequence + invRound: function(state, roundKey) { + state = this.shiftRows(state, true); + state = this.subBytes(state, true); + state = this.addRoundKey(state, roundKey); + state = this.mixColumns(state, true); + return state; + }, + + /* + * Perform the initial operations, the standard round, and the final operations + * of the forward aes, creating a round key for each round + */ + main: function(state, expandedKey, nbrRounds) { + state = this.addRoundKey(state, this.createRoundKey(expandedKey, 0)); + for (var i = 1; i < nbrRounds; i++) + state = this.round(state, this.createRoundKey(expandedKey, 16 * i)); + state = this.subBytes(state, false); + state = this.shiftRows(state, false); + state = this.addRoundKey(state, this.createRoundKey(expandedKey, 16 * nbrRounds)); + return state; + }, + + /* + * Perform the initial operations, the standard round, and the final operations + * of the inverse aes, creating a round key for each round + */ + invMain: function(state, expandedKey, nbrRounds) { + state = this.addRoundKey(state, this.createRoundKey(expandedKey, 16 * nbrRounds)); + for (var i = nbrRounds - 1; i > 0; i--) + state = this.invRound(state, this.createRoundKey(expandedKey, 16 * i)); + state = this.shiftRows(state, true); + state = this.subBytes(state, true); + state = this.addRoundKey(state, this.createRoundKey(expandedKey, 0)); + return state; + }, + + numberOfRounds: function(size) { + var nbrRounds; + switch (size) /* set the number of rounds */ { + case this.keySize.SIZE_128: + nbrRounds = 10; + break; + case this.keySize.SIZE_192: + nbrRounds = 12; + break; + case this.keySize.SIZE_256: + nbrRounds = 14; + break; + default: + return null; + break; + } + return nbrRounds; + }, + + // encrypts a 128 bit input block against the given key of size specified + encrypt: function(input, key, size) { + var output = []; + var block = []; /* the 128 bit block to encode */ + var nbrRounds = this.numberOfRounds(size); + /* Set the block values, for the block: + * a0,0 a0,1 a0,2 a0,3 + * a1,0 a1,1 a1,2 a1,3 + * a2,0 a2,1 a2,2 a2,3 + * a3,0 a3,1 a3,2 a3,3 + * the mapping order is a0,0 a1,0 a2,0 a3,0 a0,1 a1,1 ... a2,3 a3,3 + */ + for (var i = 0; i < 4; i++) /* iterate over the columns */ + for (var j = 0; j < 4; j++) /* iterate over the rows */ + block[(i + (j * 4))] = input[(i * 4) + j]; + + /* expand the key into an 176, 208, 240 bytes key */ + var expandedKey = this.expandKey(key, size); /* the expanded key */ + /* encrypt the block using the expandedKey */ + block = this.main(block, expandedKey, nbrRounds); + for (var k = 0; k < 4; k++) /* unmap the block again into the output */ + for (var l = 0; l < 4; l++) /* iterate over the rows */ + output[(k * 4) + l] = block[(k + (l * 4))]; + return output; + }, + + // decrypts a 128 bit input block against the given key of size specified + decrypt: function(input, key, size) { + var output = []; + var block = []; /* the 128 bit block to decode */ + var nbrRounds = this.numberOfRounds(size); + /* Set the block values, for the block: + * a0,0 a0,1 a0,2 a0,3 + * a1,0 a1,1 a1,2 a1,3 + * a2,0 a2,1 a2,2 a2,3 + * a3,0 a3,1 a3,2 a3,3 + * the mapping order is a0,0 a1,0 a2,0 a3,0 a0,1 a1,1 ... a2,3 a3,3 + */ + for (var i = 0; i < 4; i++) /* iterate over the columns */ + for (var j = 0; j < 4; j++) /* iterate over the rows */ + block[(i + (j * 4))] = input[(i * 4) + j]; + /* expand the key into an 176, 208, 240 bytes key */ + var expandedKey = this.expandKey(key, size); + /* decrypt the block using the expandedKey */ + block = this.invMain(block, expandedKey, nbrRounds); + for (var k = 0; k < 4; k++) /* unmap the block again into the output */ + for (var l = 0; l < 4; l++) /* iterate over the rows */ + output[(k * 4) + l] = block[(k + (l * 4))]; + return output; + } + }, + /* + * END AES SECTION + */ + + /* + * START MODE OF OPERATION SECTION + */ + //structure of supported modes of operation + modeOfOperation: { + OFB: 0, + CFB: 1, + CBC: 2 + }, + + // get a 16 byte block (aes operates on 128bits) + getBlock: function(bytesIn, start, end, mode) { + if (end - start > 16) + end = start + 16; + + return bytesIn.slice(start, end); + }, + + /* + * Mode of Operation Encryption + * bytesIn - Input String as array of bytes + * mode - mode of type modeOfOperation + * key - a number array of length 'size' + * size - the bit length of the key + * iv - the 128 bit number array Initialization Vector + */ + encrypt: function(bytesIn, mode, key, iv) { + var size = key.length; + if (iv.length % 16) { + throw 'iv length must be 128 bits.'; + } + // the AES input/output + var byteArray = []; + var input = []; + var output = []; + var ciphertext = []; + var cipherOut = []; + // char firstRound + var firstRound = true; + if (mode == this.modeOfOperation.CBC) + this.padBytesIn(bytesIn); + if (bytesIn !== null) { + for (var j = 0; j < Math.ceil(bytesIn.length / 16); j++) { + var start = j * 16; + var end = j * 16 + 16; + if (j * 16 + 16 > bytesIn.length) + end = bytesIn.length; + byteArray = this.getBlock(bytesIn, start, end, mode); + if (mode == this.modeOfOperation.CFB) { + if (firstRound) { + output = this.aes.encrypt(iv, key, size); + firstRound = false; + } else + output = this.aes.encrypt(input, key, size); + for (var i = 0; i < 16; i++) + ciphertext[i] = byteArray[i] ^ output[i]; + for (var k = 0; k < end - start; k++) + cipherOut.push(ciphertext[k]); + input = ciphertext; + } else if (mode == this.modeOfOperation.OFB) { + if (firstRound) { + output = this.aes.encrypt(iv, key, size); + firstRound = false; + } else + output = this.aes.encrypt(input, key, size); + for (var i = 0; i < 16; i++) + ciphertext[i] = byteArray[i] ^ output[i]; + for (var k = 0; k < end - start; k++) + cipherOut.push(ciphertext[k]); + input = output; + } else if (mode == this.modeOfOperation.CBC) { + for (var i = 0; i < 16; i++) + input[i] = byteArray[i] ^ ((firstRound) ? iv[i] : ciphertext[i]); + firstRound = false; + ciphertext = this.aes.encrypt(input, key, size); + // always 16 bytes because of the padding for CBC + for (var k = 0; k < 16; k++) + cipherOut.push(ciphertext[k]); + } + } + } + return cipherOut; + }, + + /* + * Mode of Operation Decryption + * cipherIn - Encrypted String as array of bytes + * originalsize - The unencrypted string length - required for CBC + * mode - mode of type modeOfOperation + * key - a number array of length 'size' + * size - the bit length of the key + * iv - the 128 bit number array Initialization Vector + */ + decrypt: function(cipherIn, mode, key, iv) { + var size = key.length; + if (iv.length % 16) { + throw 'iv length must be 128 bits.'; + } + // the AES input/output + var ciphertext = []; + var input = []; + var output = []; + var byteArray = []; + var bytesOut = []; + // char firstRound + var firstRound = true; + if (cipherIn !== null) { + for (var j = 0; j < Math.ceil(cipherIn.length / 16); j++) { + var start = j * 16; + var end = j * 16 + 16; + if (j * 16 + 16 > cipherIn.length) + end = cipherIn.length; + ciphertext = this.getBlock(cipherIn, start, end, mode); + if (mode == this.modeOfOperation.CFB) { + if (firstRound) { + output = this.aes.encrypt(iv, key, size); + firstRound = false; + } else + output = this.aes.encrypt(input, key, size); + for (i = 0; i < 16; i++) + byteArray[i] = output[i] ^ ciphertext[i]; + for (var k = 0; k < end - start; k++) + bytesOut.push(byteArray[k]); + input = ciphertext; + } else if (mode == this.modeOfOperation.OFB) { + if (firstRound) { + output = this.aes.encrypt(iv, key, size); + firstRound = false; + } else + output = this.aes.encrypt(input, key, size); + for (i = 0; i < 16; i++) + byteArray[i] = output[i] ^ ciphertext[i]; + for (var k = 0; k < end - start; k++) + bytesOut.push(byteArray[k]); + input = output; + } else if (mode == this.modeOfOperation.CBC) { + output = this.aes.decrypt(ciphertext, key, size); + for (i = 0; i < 16; i++) + byteArray[i] = ((firstRound) ? iv[i] : input[i]) ^ output[i]; + firstRound = false; + for (var k = 0; k < end - start; k++) + bytesOut.push(byteArray[k]); + input = ciphertext; + } + } + if (mode == this.modeOfOperation.CBC) + this.unpadBytesOut(bytesOut); + } + return bytesOut; + }, + padBytesIn: function(data) { + var len = data.length; + var padByte = 16 - (len % 16); + for (var i = 0; i < padByte; i++) { + data.push(padByte); + } + }, + unpadBytesOut: function(data) { + var padCount = 0; + var padByte = -1; + var blockSize = 16; + if (data.length > 16) { + for (var i = data.length - 1; i >= data.length - 1 - blockSize; i--) { + if (data[i] <= blockSize) { + if (padByte == -1) + padByte = data[i]; + if (data[i] != padByte) { + padCount = 0; + break; + } + padCount++; + } else + break; + if (padCount == padByte) + break; + } + if (padCount > 0) + data.splice(data.length - padCount, padCount); + } + } + /* + * END MODE OF OPERATION SECTION + */ +}; \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/resources/application.yml b/src/hoj-springboot/JudgeServer/src/main/resources/application.yml new file mode 100644 index 0000000..9935898 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/resources/application.yml @@ -0,0 +1,54 @@ +spring: + profiles: prod + datasource: + username: ${hoj.db.username} + password: ${hoj.db.password} + url: jdbc:mysql://${hoj.db.public-host:172.20.0.3}:${hoj.db.public-port:3306}/${hoj.db.name:hoj}?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.alibaba.druid.pool.DruidDataSource + initial-size: 10 # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时 + min-idle: 20 # 最小连接池数量 + maxActive: 40 # 最大连接池数量 + maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置 + timeBetweenEvictionRunsMillis: 60000 # 关闭空闲连接的检测时间间隔.Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。 + minEvictableIdleTimeMillis: 300000 # 连接的最小生存时间.连接保持空闲而不被驱逐的最小时间 + validationQuery: SELECT 1 FROM DUAL # 验证数据库服务可用性的sql.用来检测连接是否有效的sql 因数据库方言而差, 例如 oracle 应该写成 SELECT 1 FROM DUAL + testWhileIdle: true # 申请连接时检测空闲时间,根据空闲时间再检测连接是否有效.建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRun + testOnBorrow: false # 申请连接时直接检测连接是否有效.申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 + testOnReturn: false # 归还连接时检测连接是否有效.归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 + poolPreparedStatements: true # 开启PSCache + maxPoolPreparedStatementPerConnectionSize: 20 #设置PSCache值 + connectionErrorRetryAttempts: 3 # 连接出错后再尝试连接三次 + breakAfterAcquireFailure: true # 数据库服务宕机自动重连机制 + timeBetweenConnectErrorMillis: 300000 # 连接出错后重试时间间隔 + asyncInit: true # 异步初始化策略 + remove-abandoned: true # 是否自动回收超时连接 + remove-abandoned-timeout: 1800 # 超时时间(以秒数为单位) + transaction-query-timeout: 10000 # 事务超时时间 + filters: stat,wall,log4j #数据库日志 + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 + +mybatis-plus: + mapper-locations: classpath*:top/hcode/hoj/mapper/xml/**Mapper.xml + type-aliases-package: top.hcode.hoj.pojo.entity + # 关闭打印 mybatis-plus 的 LOGO + global-config: + banner: false + + +logging: + level: + com: + alibaba: + nacos: error + gargoylesoftware: off + root: error + config: classpath:logback-spring.xml + file: + path: /judge/log/judgeserver +# 暴露监控 +management: + endpoints: + web: + exposure: + include: info,health diff --git a/src/hoj-springboot/JudgeServer/src/main/resources/banner.txt b/src/hoj-springboot/JudgeServer/src/main/resources/banner.txt new file mode 100644 index 0000000..d96c50e --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/resources/banner.txt @@ -0,0 +1,21 @@ +${AnsiColor.BRIGHT_YELLOW} + + ,--, ,----.. + ,--.'| ,----.. / / \ ,---, ,---,. + ,--, | : / / \ / . : .' .' `\ ,' .' | +,---.'| : '| : : . / ;. \,---.' \ ,---.' | +| | : _' |. | ;. /. ; / ` ;| | .`\ || | .' +: : |.' |. ; /--` ; | ; \ ; |: : | ' |: : |-, +| ' ' ; :; | ; | : | ; | '| ' ' ; :: | ;/| +' | .'. || : | . | ' ' ' :' | ; . || : .' +| | : | '. | '___ ' ; \; / || | : | '| | |-, +' : | : ;' ; : .'| \ \ ', / ' : | / ; ' : ;/| +| | ' ,/ ' | '/ : ; : / | | '` ,/ | | \ +; : ;--' | : / \ \ .' ; : .' | : .' +| ,/ \ \ .' `---` | ,.' | | ,' +'---' `---` '---' `----' + Hcode Online Judge(HOJ) - JudgeServer + @Author Himit_ZH + @Last Update 20220821 + ->Github<- https://www.github.com/HimitZH/HOJ + ->Gitee<- https://gitee.com/himitzh0730/hoj \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/main/resources/bootstrap.yml b/src/hoj-springboot/JudgeServer/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..44903cf --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/resources/bootstrap.yml @@ -0,0 +1,35 @@ +hoj-judge-server: + max-task-num: ${MAX_TASK_NUM:-1} # -1表示最大并行任务数为cpu核心数+1 + ip: ${JUDGE_SERVER_IP:127.0.0.1} # -1表示使用默认本地ipv4,若是部署其它服务器,务必使用公网ip + port: ${JUDGE_SERVER_PORT:8088} # 端口号 + name: ${JUDGE_SERVER_NAME:hoj-judger-1} # 判题机名字 唯一不可重复!!! + nacos-url: ${NACOS_URL:127.0.0.1:8848} # nacos地址 + remote-judge: + open: ${REMOTE_JUDGE_OPEN:true} # 当前判题服务器是否开启远程虚拟判题功能 + max-task-num: ${REMOTE_JUDGE_MAX_TASK_NUM:-1} # -1表示最大并行任务数为cpu核心数*2+1 +server: + port: ${hoj-judge-server.port} +spring: + profiles: + active: prod + application: + name: hoj-judgeserver + cloud: + nacos: + discovery: + username: ${NACOS_USERNAME:nacos} + password: ${NACOS_PASSWORD:nacos} + server-addr: ${hoj-judge-server.nacos-url} #配置Nacos地址 + config: + username: ${NACOS_USERNAME:nacos} + password: ${NACOS_PASSWORD:nacos} + server-addr: ${hoj-judge-server.nacos-url} #Nacos 作为配置中心地址 + file-extension: yml #指定yaml格式的配置 + group: DEFAULT_GROUP # 指定分组 + #namespace:命名空间ID 默认为public + prefix: hoj + url: http://${hoj-judge-server.nacos-url} + +# ${spring.application.name}-${spring.profile.active}.${spring.cloud.naces.config.file-extension} +# ${spring.cloud.nacos.config.prefix}-${spring.profile.active}.${spring.cloud.naces.config.file-extension} +# hoj-prod.yml diff --git a/src/hoj-springboot/JudgeServer/src/main/resources/logback-spring.xml b/src/hoj-springboot/JudgeServer/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..8e6e394 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/main/resources/logback-spring.xml @@ -0,0 +1,76 @@ + + + + + hoj + + + + + %yellow(%d{yyyy-MM-dd HH:mm:ss}) %red([%thread]) %highlight(%-5level) %cyan(%logger{50}) - %magenta(%msg) %n + + UTF-8 + + + + + + + info + + DENY + + ACCEPT + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n + + UTF-8 + + + + + ${logging.path}/hoj.info.%d{yyyy-MM-dd}.%i.log + + 7 + + 200MB + + 1GB + + + + + + error + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n + + + + + + ${logging.path}/hoj.error.%d{yyyy-MM-dd}.%i.log + + 7 + + 200MB + + 1GB + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/JudgeServerApplicationTests.java b/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/JudgeServerApplicationTests.java new file mode 100644 index 0000000..97efcba --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/JudgeServerApplicationTests.java @@ -0,0 +1,9 @@ +package top.hcode.hoj; + +import org.springframework.boot.test.context.SpringBootTest; + + +@SpringBootTest +public class JudgeServerApplicationTests { + +} diff --git a/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/task/Impl/CodeForcesJudgeTest.java b/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/task/Impl/CodeForcesJudgeTest.java new file mode 100644 index 0000000..38d3124 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/task/Impl/CodeForcesJudgeTest.java @@ -0,0 +1,35 @@ +package top.hcode.hoj.remoteJudge.task.Impl; + +import cn.hutool.core.map.MapUtil; +import org.jsoup.Connection; +import org.junit.jupiter.api.Test; +import top.hcode.hoj.util.JsoupUtils; + +import java.util.HashMap; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.*; + +class CodeForcesJudgeTest { + + @Test + void submit() { + } + + @Test + void result() { + } + + @Test + void getLoginCookie() throws Exception { + + } + + @Test + void getLanguage() { + } + + @Test + void getTokens() { + } +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/task/Impl/HDUJudgeTest.java b/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/task/Impl/HDUJudgeTest.java new file mode 100644 index 0000000..6f9b4d1 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/task/Impl/HDUJudgeTest.java @@ -0,0 +1,18 @@ +package top.hcode.hoj.remoteJudge.task.Impl; + + +import org.junit.jupiter.api.Test; + + +class HDUJudgeTest { + + + + @Test + void getLoginCookie() throws Exception { + + + } + + +} \ No newline at end of file diff --git a/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/test.html b/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/test.html new file mode 100644 index 0000000..4ab4c05 --- /dev/null +++ b/src/hoj-springboot/JudgeServer/src/test/java/top/hcode/hoj/remoteJudge/test.html @@ -0,0 +1,3340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Codeforces + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ Please subscribe to the official Codeforces channel in Telegram via the link https://t.me/codeforces_official. + × +
+ +
+ +
+ +
+
+ + +
+ + +
+ By awoo, + history, + 44 hours ago, + translation, + In English + + + + +
+
+
+
+ +
+

Hello Codeforces!

On Mar/18/2021 17:50 (Moscow time) Educational Codeforces Round 106 (Rated for Div. 2) will start.

Series of Educational Rounds continue being held as Harbour.Space University initiative! You can read the details about the cooperation between Harbour.Space University and Codeforces in the blog post.

This round will be rated for the participants with rating lower than 2100. It will be held on extended ICPC rules. The penalty for each incorrect submission until the submission with a full solution is 10 minutes. After the end of the contest you will have 12 hours to hack any solution you want. You will have access to copy any solution and test it locally.

You will be given 6 or 7 problems and 2 hours to solve them.

The problems were invented and prepared by Roman Roms Glazov, Adilbek adedalic Dalabaev, Vladimir vovuh Petrov, Ivan BledDest Androsov, Maksim Neon Mescheryakov and me. Also huge thanks to Mike MikeMirzayanov Mirzayanov for great systems Polygon and Codeforces.

Good luck to all the participants!

Our friends at Harbour.Space also have a message for you:

Codeforces and Harbour.Space

Dear Codeforces!

We are coming with another scholarship opportunity to share with you. This time, our scholarship is targeted towards the brightest women in the community.

As you might know, March is the month where the whole world celebrates women. At Harbour.Space we want to use this opportunity to encourage more women to join the tech world and challenge the gender-bias in this field.

We believe that gender equality in the workplace starts with gender equality in the classroom. For that reason, we are offering our Women in Tech Scholarship. The scholarship consists of:

  • 50% off the yearly tuition fee: covers around €29,000 for bachelors and €11,450 for masters.
  • 32% off the application fee: €85 instead of €125

You can find more information about the scholarship here.

MORE INFO→

Harbour.Space

Make sure to apply before March 31st to benefit from the scholarship and discount.

Don’t hesitate to share this opportunity with any bright women in your personal circle as well. A simple share can help us transform someone's life.

We are always happy to see Codeforce members join the Harbour.Space family.

Keep in touch and follow us on LinkedIn for more scholarship opportunities. And follow us on Instagram to stay in touch with our student life, events, and success stories from our students.

Good luck on your round, and see you next time!

Harbour.Space University

Read more »

+
+ + + + + + + +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + +169 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+
+ + +
+ + +
+ By shishin, + history, + 5 days ago, + translation, + In English + + + + +
+
+
+
+ +
+

Hello again, Codeforces!

Artyom123 and I are happy to invite you to Codeforces Round #708 (Div. 2), which will take place on Mar/17/2021 17:35 (Moscow time). This round will be rated for the participants with rating lower than 2100

These are some awesome people that we would like to thank:

You will have 2 hours to solve 5 problems (and 2 subtasks). This time the statements are not related to Valorant, but we still play it sometimes.

We hope that you will like all problems and you won't face any troubles during the contest. Good luck!

The scoring distribution: 500750(750 + 500)1750(1500 + 1500)

UPD: Editorial

Read more »

+
+ +
+ Announcement of Codeforces Round #708 (Div. 2) +
+ + + + + +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + +741 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+
+ + +
+ + +
+ By MikeMirzayanov, + 5 days ago, + + In English + + + + +
+
+
+
+ +
+

Hello, Codeforces!

I understand that 2021 has been going on for a long time, but here I have picked up a subset of some of the improvements that the Codeforces team made in 2020. Soon I will publish numbers (no, charts) with statistics for 2020. In the meantime, I bring to your attention a list of changes and improvements.

By the way, this is a decent list. This is about half to a quarter of all changes. It's just that other changes are more often somewhere in the internals of the system and are not visible to users. Please read this list. Each item is the effort of someone from the team. Thanks to geranazavr555, kuviman and cannor147 for their efforts. You've made our platform better! Well, by the way, I don't quit programming and many improvements were made by me.

The items on the list are written in a concise and informal form, many of the items I just copied from commit messages from git. If you want more details — ask in the comments, we will tell you! Of course, I forgot to include some improvements in the list.

Read more »

+
+ + + + + +
+ Tags + + codeforces, + + + 2020, + + + results + +
+ +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + +1382 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+
+ + +
+ + +
+ By ch_egor, + 8 days ago, + translation, + In English + + + + +
+
+
+
+ +
+

Hello!

Right now happens the first tour of the Open Olympiad in Informatics, and tomorrow will be the second one. This contest is prepared by Moscow Olympiad Scientific Committee that you may know by Moscow Team Olympiad, Moscow Olympiad for Young Students and Metropolises Olympiad (rounds 327, 342, 345, 376, 401, 433, 441, 466, 469, 507, 516, 541, 545, 567, 583, 594, 622, 626, 657, 680, 704).

Open Olympiad consists of the most interesting and hard problems that are proposed by a wide community of authors, so we decided to conduct a Codeforces regular round based on it, which will happen on Mar/13/2021 12:05 (Moscow time) and will be based on both days of the Olympiad. Each division will have 6 problems and 2 and a half hours to solve them.

We kindly ask all the community members that are going to participate in the competition to show sportsmanship by not trying to cheat in any manner, in particular, by trying to figure out problem statements from the onsite participants. If you end up knowing some of the problems of Moscow Open Olympiad (by participating in it, from some of the onsite contestants or in any other way), please do not participate in the round. We also ask onsite contestants to not discuss problems in public. Failure to comply with any of the rules above may result in a disqualification.

Problems of this competition were prepared by Akulyat, KiKoS, wrg0ababd, Nebuchadnezzar, biection, alexX512 isaf27, ismagilov.code, DebNatkh, Siberian, NiceClock guided by cdkrot, vintage_Vlad_Makeev, GlebsHP, Zlobober, meshanya, ch_egor, grphil, voidmax, Endagorion and Helen Andreeva.

Thanks to adedalic and KAN for the round coordination, statement translation and preparation of problems for the second division, and also thanks for MikeMirzayanov for systems Codeforces and Polygon, which was used to prepare problems of this olympiad.

Also thanks to 4qqqq and Aleks5d for providing an additional problems that helped to create (I hope) a balanced problem set for the round, and Um_nik for testing!

Good luck everybody!

Due to the official competition source codes of other participants will not be available for an hour after the end of the round.

UPD1:

Please do not discuss problems publicly until 12:30 UTC.

The scoring distribution for both divisions is not standard:

  • div1: 750 — 750 — 1500 — 2000 — 2500 — 3000
  • div2: 500 — 1000 — 1750 — 1750 — 2500 — 3000

UPD2: Editorial

UPD3: Winners!

Div. 1:

  1. tourist
  2. jiangly
  3. maroonrk
  4. ecnerwala
  5. Miracle03

Div. 2:

  1. wudi2016
  2. ShimaRin
  3. fengqiyuka
  4. gezlik
  5. b___

Read more »

+
+ + + + + + + +
+ Tags + + 707, + + + round + +
+ +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + -661 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+
+ + +
+ + +
+ By Imakf, + history, + 10 days ago, + + In English + + + + +
+
+
+
+ +
+

Hello, Codeforces!

Daniel_yuan, waaitg, smg23333 and I are glad to invite you to Codeforces Round #706 (Div. 1) and Codeforces Round #706 (Div. 2), which will take place on Mar/10/2021 15:05 (Moscow time). Note the unusual time of the round. In both divisions, you will be given 6 problems and 2 hours to solve them all.

We would like to thank:

Score distribution will be announced before the round.

Hope you all gain positive ratings $$$\Delta$$$ in this round!

UPD1: Score distribution is

Div. 2: $$$500-1000-1500-2000-2500-3000$$$

Div. 1: $$$500-1000-1500-2000-2500-3250$$$

UPD2: Editorial

UPD3: Congratulations to the winners:

Div 1:

  1. Radewoosh
  2. maroonrk
  3. tourist
  4. Um_nik
  5. Egor

Div 2:

  1. shikaichengwoerzi
  2. grey
  3. 2005lz
  4. sh_mug
  5. not_tehlka

Read more »

+
+ +
+ Announcement of Codeforces Round #706 (Div. 1) +
+
+ Announcement of Codeforces Round #706 (Div. 2) +
+ + + + + +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + +561 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+
+ + +
+ + +
+ By BledDest, + 2 weeks ago, + + In English + + + + +
+
+
+
+ +
+

Hello, Codeforces!

First and foremost, we would like to say a massive thank you to everyone who entered and submitted their answers to the five Kotlin Heroes competitions which were held previously: Episode 1, Episode 2, Episode 3, Episode 4, and Episode 5: ICPC Round.

Ready to challenge yourself to do better? The Kotlin Heroes: Episode 6 competition will be hosted on the Codeforces platform on Mar/09/2021 17:35 (Moscow time). The contest will last 2 hours 30 minutes and will feature a set of problems from simple ones, designed to be solvable by anyone, to hard ones, to make it interesting for seasoned competitive programmers.

Prizes:

Top three winners will get prizes of $512, $256, and $128 respectively, top 50 will win a Kotlin Heroes t-shirt and an exclusive Kotlin sticker, competitors solving at least one problem will enter into a draw for one of 50 Kotlin Heroes t-shirts.

Registration is already open and available via the link. It will be available until the end of the round.

The round will again be held in accordance with a set of slightly modified ICPC rules:

  • The round is unrated.
  • The contest will have 9 problems of various levels of complexity.
  • You are only allowed to use Kotlin to solve these problems.
  • Participants are ranked according to the number of correctly solved problems. Ties are resolved based on the lowest total penalty time for all problems, which is computed as follows. For each solved problem, a penalty is set to the submission time of that problem (the time since the start of the contest). An extra penalty of 10 minutes is added for each failed submission on solved problems (i. e., if you never solve the problem, you will not be penalized for trying that problem). If two participants solved the same number of problems and scored the same penalty, then those of them who had previously made the last successful submission will be given an advantage in the distribution of prizes and gifts.

REGISTER →

If you are still new to Kotlin we have prepared a tutorial on competitive programming in Kotlin and Kotlin Heroes: Practice 6, where you can try to solve a few simple problems in Kotlin. The practice round is available by the link.

We wish you luck and hope you enjoy Kotlin.

Read more »

+
+ +
+ Announcement of Kotlin Heroes: Episode 6 +
+
+ Announcement of Kotlin Heroes: Practice 6 +
+ + + + + +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + +157 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+
+ + +
+ + +
+ By peltorator, + history, + 11 days ago, + translation, + In English + + + + +
+
+
+
+ +
+

Hi!

I continue to make videos on algorithms. This time the topic is more basic. In this video, I talk about prefix sums and how they can help you to find sum on segments. You can also learn from this video how to easily generalize prefix sums for 2D, 3D, 4D, etc. cases. In addition, we'll also talk about a simple concept named difference array, which can easily help in some sorts of situations where it seems like you need some complex data structures. And in the end, we'll learn how to add constants, arithmetic progressions, and even quadratic functions to a segment of an array.

https://youtu.be/5iW84xlL0j0

The video is in Russian but English subtitles are available. I'd be glad if you watch the video and leave a comment below with your impressions, thoughts, and ideas for future videos. You may also want to text me on telegram: https://t.me/peltorator if you didn't understand something or you have any questions. I'll be glad to answer!

I'm sorry you need to watch it with subtitles but I'm gonna make an English channel soon. So stay tuned!

If you didn't see it already, I also have a video on disjoint sparse table: https://youtu.be/NbAtm1j5gVA.

Codeforces group with a contest: https://codeforces.com/group/1rv4rhCsHp/contests

My realizations:

1D prefix sums: https://pastebin.com/MjxG7y43

1D prefix sums with structures: https://pastebin.com/062t332c

2 methods for finding 2D prefix sums: https://pastebin.com/a09xCDGw https://pastebin.com/Yezy0Lkb

1D difference array: https://pastebin.com/fXpwTRiK

1D difference array with structures: https://pastebin.com/fbmveX6Q

Read more »

+
+ + + + + +
+ Tags + + youtube + +
+ +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + +349 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+
+ + +
+ + +
+ By AlFlen, + 2 weeks ago, + translation, + In English + + + + +
+
+
+
+ +
+

The future is bulletproof
The aftermath is secondary
It's time to do it now and do it loud!

Hello, Codeforces!

74TrAkToR and I are glad to invite you to our Codeforces Round #705 (Div. 2), which will be held at Mar/06/2021 17:05 (Moscow time). Notice the unusual time of the round. The round will be rated for all the participants with rating strictly less than 2100.

We have already held a round and we have worked on errors:

  • the statements will be short and clear
  • we tried to make pretests stronger
  • the editorial will be published shortly after the round ends

We would like to thank everyone who helped us a lot with round preparation.

You will be given 6 problems. You will have 2 hours 15 minutes to solve them.

UPD: Score distribution $$$750-1250-1750-2250-2750-3250$$$.

UPD2: Editorial

UPD3: Congratulations to the winners!

Div. 2:

  1. sawa855

  2. buihoatpt2k9

  3. Totiniii

  4. rainboy

  5. scli_kws

Div. 1 + Div. 2:

  1. neal

  2. BigBag

  3. fastmath

  4. Heltion

  5. tute7627

We wish everyone good luck!

Read more »

+
+ +
+ Announcement of Codeforces Round #705 (Div. 2) +
+ + + + + +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + +676 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+
+ + +
+ + +
+ By awoo, + history, + 3 weeks ago, + translation, + In English + + + + +
+
+
+
+ +
+

Hello Codeforces!

On Mar/02/2021 17:45 (Moscow time) Educational Codeforces Round 105 (Rated for Div. 2) will start.

Series of Educational Rounds continue being held as Harbour.Space University initiative! You can read the details about the cooperation between Harbour.Space University and Codeforces in the blog post.

This round will be rated for the participants with rating lower than 2100. It will be held on extended ICPC rules. The penalty for each incorrect submission until the submission with a full solution is 10 minutes. After the end of the contest you will have 12 hours to hack any solution you want. You will have access to copy any solution and test it locally.

You will be given 6 or 7 problems and 2 hours to solve them.

The problems were invented and prepared by Roman Roms Glazov, Adilbek adedalic Dalabaev, Vladimir vovuh Petrov, Ivan BledDest Androsov, Maksim Neon Mescheryakov and me. Also huge thanks to Mike MikeMirzayanov Mirzayanov for great systems Polygon and Codeforces.

Good luck to all the participants!

Our friends at Harbour.Space also have a message for you:

Codeforces and Harbour.Space

Amazing news once again, Codeforces!

We are especially glad to have a chance to share our scholarship opportunities more often!

This time we have partnered with OneRagtime again to open the door for an exciting career in technology for the most talented people in our network.

In partnership with OneRagtime, we are offering a full scholarship to study a Master’s in Computer Science at Harbour.Space while working as a Full Stack Developer at OneRagtime!

Scholarship Highlights:

Work in Europe’s most exciting tech cities

Scholarship value of up to €31,500

Competitive compensation for the internship at OneRagtime (€800 / month)

Opportunity to join OneRagtime full-time after graduation

Some of the advantages of working at OneRagtime:

  • International team
  • Fast-paced workplace
  • Be a part of the OneRagtime adventure!
  • Be fully immersed in the European tech ecosystem
  • Thrive within a Venture Capital that does things a little differently
  • Work in Europe’s most exciting tech cities

Codeforces and Harbour.Space

We have previously partnered with other companies like OneRagtime, Hansgrohe, Coherra, and Remy Robotics to empower young talents around the world and help them boost their tech career. We’ve already filled a few of the positions with OneRagtime including:

  • Full Stack Developer at OneRagtime awarded to Alejandro Martinez from Mexico
  • UI/UX designer at OneRagtime awarded to Davit Petriashvili from Georgia

We are always happy to see Codeforces members join the Harbour.Space family. Apply now to get a chance to learn from the best in the field and kickstart your career!

Keep in touch and follow us on LinkedIn for more scholarship opportunities. And follow us on Instagram to evidence student life, events, and success stories from our apprenticeship program students.

Good luck on your round, and see you next time!

Harbour.Space University

Congratulations to the winners:
Rank Competitor Problems Solved Penalty
1 antontrygubO_o 6 251
1 Pyqe 6 251
3 kefaa2 6 260
4 tute7627 6 272
5 Um_nik 6 288

Congratulations to the best hackers:
Rank Competitor Hack Count
1 noimi 11
2 neal 7
3 Origenes 6
4 Kregor 5:-2
5 chilliagon 5:-4
94 successful hacks and 293 unsuccessful hacks were made in total!

And finally people who were the first to solve each problem:
Problem Competitor Penalty
A noimi 0:01
B noimi 0:04
C wygzgyw 0:15
D conan1412yang99 0:16
E thenymphsofdelphi 0:15
F rainboy 0:35

UPD: Editorial is out

Read more »

+
+ + + + + + + +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + +124 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+
+ + +
+ + +
+ By star_xingchen_c, + 3 weeks ago, + + In English + + + + +
+
+
+
+ +
+

Hello Codeforces!

On Feb/28/2021 16:35 (Moscow time) we will host Codeforces Global Round 13.

It is the first round of a 2021 series of Codeforces Global Rounds. The rounds are open and rated for everybody.

The prizes for this round:

  • 30 best participants get a t-shirt.
  • 20 t-shirts are randomly distributed among those with ranks between 31 and 500, inclusive.

The prizes for the 6-round series in 2021:

  • In each round top-100 participants get points according to the table.
  • The final result for each participant is equal to the sum of points he gets in the four rounds he placed the highest.
  • The best 20 participants over all series get sweatshirts and place certificates.

Thanks to XTX, which in 2021 supported the global rounds initiative!

The problems were written and prepared by 3.141592653, Widowmaker, Ynoi, errorgorn, oolimry, star_xingchen_c, syksykCCC.

We would also like to thank:

You will have 3 hours to solve 9 problems. We encourage you to read all the problems and solve them all.

One of these problems is interactive, please see the guide of interactive problems if you are not familiar with it.

UPD1: Scoring distribution: 500-750-1000-1250-1750-2000-2250-3000-5000

UPD2: Tutorial published.

UPD3: System testing finished, congrats to the winners!

  1. maroonrk
  2. DmitryGrigorev
  3. Petr
  4. jiangly
  5. RALZH
  6. qazswedx2
  7. sunset
  8. ecnerwala
  9. lumibons
  10. p_b_p_b

Read more »

+
+ +
+ Announcement of Codeforces Global Round 13 +
+ + + + + + +
+
 
+
 
+
 
+
 
+
+
    +
  • Vote: I like it + + +
  • +
  • + + + +1092 + +
  • +
  • Vote: I do not like it + + +
  • +
+
+ + + + + +
+ +
+ +
+
+ + + +
+
+ + +
+
+
+ + + + + + +
+ + + + diff --git a/src/hoj-springboot/api/pom.xml b/src/hoj-springboot/api/pom.xml new file mode 100644 index 0000000..108deec --- /dev/null +++ b/src/hoj-springboot/api/pom.xml @@ -0,0 +1,56 @@ + + + + hoj-springboot + top.hcode + 1.0-SNAPSHOT + + 4.0.0 + + api + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.springfox + springfox-swagger-ui + 2.9.2 + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + com.baomidou + mybatis-plus-boot-starter + 3.2.0 + + + org.projectlombok + lombok + true + + + + + \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/CompileDTO.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/CompileDTO.java new file mode 100644 index 0000000..2c7b7c8 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/CompileDTO.java @@ -0,0 +1,43 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.HashMap; + + +/** + * @Author: Himit_ZH + * @Date: 2021/2/6 14:42 + * @Description: + */ +@Data +public class CompileDTO implements Serializable { + + private static final long serialVersionUID = 333L; + + /** + * 编译的源代码 + */ + private String code; + + /** + * 编译的源代码相关的题目id + */ + private Long pid; + + /** + * 编译的源代码所选语言 + */ + private String language; + + /** + * 调用判题机的凭证 + */ + private String token; + + /** + * 编译所需的额外文件,key:文件名,value:文件内容 + */ + private HashMap extraFiles; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeReq.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeReq.java new file mode 100644 index 0000000..8fa6932 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeReq.java @@ -0,0 +1,82 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.HashMap; + +/** + * @Author Himit_ZH + * @Date 2022/5/26 + */ +@Data +@Accessors(chain = true) +@AllArgsConstructor +@NoArgsConstructor +public class TestJudgeReq implements Serializable { + private static final long serialVersionUID = 666L; + + /** + * 调用评测验证的token + */ + private String token; + + /** + * 调用的唯一标识,用于返回结果识别 + */ + private String uniqueKey; + + /** + * 评测的代码 + */ + private String code; + + /** + * 评测的语言 + */ + private String language; + + /** + * 评测时允许调用的额外文件 + */ + private HashMap extraFile; + + /** + * 评测的最大时间限制 ms + */ + private Integer timeLimit; + + /** + * 评测的最大空间限制 mb + */ + private Integer memoryLimit; + + /** + * 评测的最大栈空间限制 mb + */ + private Integer stackLimit; + + /** + * 输入数据 + */ + private String testCaseInput; + + /** + * 期望输出 + */ + private String expectedOutput; + + /** + * 是否在对比testcaseOutput和expectedOutput去除每行末尾空白符 + */ + private Boolean isRemoveEndBlank; + + /** + * 原题的评测模式:default、spj、interactive + */ + private String problemJudgeMode; + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeRes.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeRes.java new file mode 100644 index 0000000..53e9af3 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/TestJudgeRes.java @@ -0,0 +1,61 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Author Himit_ZH + * @Date 2022/5/26 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class TestJudgeRes implements Serializable { + + private static final long serialVersionUID = 888L; + + /** + * 评测结果状态码 + */ + private Integer status; + + /** + * 评测运行时间消耗 ms + */ + private Long time; + + /** + * 评测运行空间消耗 kb + */ + private Long memory; + + /** + * 输入 + */ + private String Input; + + /** + * 期望输出 + */ + private String expectedOutput; + + /** + * 运行标准输出 + */ + private String stdout; + + /** + * 运行错误输出 + */ + private String stderr; + + /** + * 原题的评测模式:default、spj、interactive + */ + private String problemJudgeMode; +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/ToJudgeDTO.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/ToJudgeDTO.java new file mode 100644 index 0000000..6109799 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/dto/ToJudgeDTO.java @@ -0,0 +1,69 @@ +package top.hcode.hoj.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import top.hcode.hoj.pojo.entity.judge.Judge; + +import java.io.Serializable; + +/** + * @Author: Himit_ZH + * @Date: 2021/2/4 22:29 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class ToJudgeDTO implements Serializable { + + private static final long serialVersionUID = 999L; + + /** + * 判题数据实体类 + */ + private Judge judge; + + /** + * 调用评测验证的token + */ + private String token; + + /** + * 远程判题不为空,hoj判题为null,例如HDU-1000 + */ + private String remoteJudgeProblem; + + /** + * 是否为远程判题重判,仅限于已有远程OJ的提交id的重判 + */ + private Boolean isHasSubmitIdRemoteReJudge; + + /** + * 远程判题所用账号 + */ + private String username; + + /** + * 远程判题所用密码 + */ + private String password; + + /** + * 调用判题机的ip + */ + private String judgeServerIp; + + /** + * 调用判题机的port + */ + private Integer judgeServerPort; + + /** + * VJ判題辅助选择判题机序号使用 + */ + private Integer index; + + private Integer size; + +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/common/Announcement.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/common/Announcement.java new file mode 100644 index 0000000..0316a33 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/common/Announcement.java @@ -0,0 +1,50 @@ +package top.hcode.hoj.pojo.entity.common; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/10 19:47 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Announcement对象", description="") +public class Announcement { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "通知标题") + private String title; + + @ApiModelProperty(value = "通知内容") + private String content; + + @ApiModelProperty(value = "发布者id(必须为比赛创建者或者超级管理员才能)") + private String uid; + + @ApiModelProperty(value = "0可见,1不可见") + private int status; + + @ApiModelProperty(value = "团队ID") + private Long gid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/common/File.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/common/File.java new file mode 100644 index 0000000..0f43d38 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/common/File.java @@ -0,0 +1,62 @@ +package top.hcode.hoj.pojo.entity.common; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/1/11 13:58 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="File对象", description="") +@TableName("`file`") +public class File { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "团队id") + private Long gid; + + @ApiModelProperty(value = "文件所属类型,例如avatar") + @TableField("`type`") + private String type; + + @ApiModelProperty(value = "文件名") + private String name; + + @ApiModelProperty(value = "文件后缀格式") + private String suffix; + + @ApiModelProperty(value = "文件所在文件夹的路径") + private String folderPath; + + @ApiModelProperty(value = "文件绝对路径") + private String filePath; + + @ApiModelProperty(value = "是否删除") + @TableField("`delete`") + private Boolean delete; + + @ApiModelProperty(value = "创建时间") + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @ApiModelProperty(value = "修改时间") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/Contest.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/Contest.java new file mode 100644 index 0000000..f59d54a --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/Contest.java @@ -0,0 +1,118 @@ +package top.hcode.hoj.pojo.entity.contest; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "Contest对象", description = "") +public class Contest implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "比赛id") + private Long id; + + @ApiModelProperty(value = "比赛创建者id") + private String uid; + + @ApiModelProperty(value = "比赛创建者的用户名") + private String author; + + @ApiModelProperty(value = "比赛标题") + private String title; + + @ApiModelProperty(value = "0为acm赛制,1为比分赛制") + private Integer type; + + @ApiModelProperty(value = "比赛说明") + private String description; + + @ApiModelProperty(value = "比赛来源,原创为0,克隆赛为比赛id") + private Integer source; + + @ApiModelProperty(value = "0为公开赛,1为私有赛(访问有密码),2为保护赛(提交有密码)") + private Integer auth; + + @ApiModelProperty(value = "比赛密码") + private String pwd; + + @ApiModelProperty(value = "开始时间") + private Date startTime; + + @ApiModelProperty(value = "结束时间") + private Date endTime; + + @ApiModelProperty(value = "比赛时长(s)") + private Long duration; + + @ApiModelProperty(value = "是否开启封榜") + private Boolean sealRank; + + @ApiModelProperty(value = "封榜起始时间,一直到比赛结束,不刷新榜单") + private Date sealRankTime; + + @ApiModelProperty(value = "比赛结束是否自动解除封榜,自动转换成真实榜单") + private Boolean autoRealRank; + + @ApiModelProperty(value = "-1为未开始,0为进行中,1为已结束") + private Integer status; + + @ApiModelProperty(value = "是否可见") + private Boolean visible; + + @ApiModelProperty(value = "是否打开打印功能") + private Boolean openPrint; + + @ApiModelProperty(value = "是否打开账号限制") + private Boolean openAccountLimit; + + @ApiModelProperty(value = "账号限制规则 **********") + private String accountLimitRule; + + @ApiModelProperty(value = "排行榜显示(username、nickname、realname)") + private String rankShowName; + + @ApiModelProperty(value = "打星用户列表 {\"star_account\":['a','b']}") + private String starAccount; + + @ApiModelProperty(value = "是否开放比赛榜单") + private Boolean openRank; + + @ApiModelProperty(value = "oi排行榜得分方式,Recent、Highest(最近一次提交、最高得分提交)") + private String oiRankScoreType; + + @ApiModelProperty(value = "是否为团队内比赛") + private Boolean isGroup; + + @ApiModelProperty(value = "团队ID") + private Long gid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestAnnouncement.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestAnnouncement.java new file mode 100644 index 0000000..f06adb5 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestAnnouncement.java @@ -0,0 +1,48 @@ +package top.hcode.hoj.pojo.entity.contest; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ContestAnnouncement对象", description="") +public class ContestAnnouncement implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "公告id") + private Long aid; + + @ApiModelProperty(value = "比赛id") + private Long cid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestExplanation.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestExplanation.java new file mode 100644 index 0000000..cb8b01d --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestExplanation.java @@ -0,0 +1,50 @@ +package top.hcode.hoj.pojo.entity.contest; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ContestExplanation对象", description="") +public class ContestExplanation implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long cid; + + @ApiModelProperty(value = "发布者(必须为比赛创建者或者超级管理员才能)") + private String uid; + + @ApiModelProperty(value = "内容(支持markdown)") + private String content; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestPrint.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestPrint.java new file mode 100644 index 0000000..b687ce7 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestPrint.java @@ -0,0 +1,50 @@ +package top.hcode.hoj.pojo.entity.contest; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/9/19 21:00 + * @Description: + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ContestPrint", description="") +public class ContestPrint { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long cid; + + @ApiModelProperty(value = "提交打印文本的用户") + private String username; + + @ApiModelProperty(value = "真实姓名") + private String realname; + + @ApiModelProperty(value = "内容") + private String content; + + @ApiModelProperty(value = "状态") + private Integer status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestProblem.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestProblem.java new file mode 100644 index 0000000..fc76b03 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestProblem.java @@ -0,0 +1,57 @@ +package top.hcode.hoj.pojo.entity.contest; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ContestProblem对象", description="") +public class ContestProblem implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "该题目在比赛中的顺序id") + private String displayId; + + @ApiModelProperty(value = "比赛id") + private Long cid; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "该题目在比赛中的标题,默认为原名字") + private String displayTitle; + + @ApiModelProperty(value = "气球的颜色") + private String color; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestRecord.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestRecord.java new file mode 100644 index 0000000..8d26c67 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestRecord.java @@ -0,0 +1,86 @@ +package top.hcode.hoj.pojo.entity.contest; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ContestRecord对象", description="") +public class ContestRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "比赛id") + private Long cid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "比赛中的题目id") + private Long cpid; + + @ApiModelProperty(value = "比赛中展示的id") + private String displayId; + + @ApiModelProperty(value = "提交id,用于可重判") + private Long submitId; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "真实姓名(废弃)") + private String realname; + + @ApiModelProperty(value = "提交结果,0表示未AC通过不罚时,1表示AC通过,-1为未AC通过算罚时") + private Integer status; + + @ApiModelProperty(value = "具体提交时间") + private Date submitTime; + + @ApiModelProperty(value = "提交时间,为提交时间减去比赛时间") + private Long time; + + @ApiModelProperty(value = "OI比赛的得分") + private Integer score; + + @ApiModelProperty(value = "提交的程序运行耗时") + private Integer useTime; + + @ApiModelProperty(value = "是否为一血AC(废弃)") + private Boolean firstBlood; + + @ApiModelProperty(value = "AC是否已校验") + private Boolean checked; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestRegister.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestRegister.java new file mode 100644 index 0000000..f5fe52f --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestRegister.java @@ -0,0 +1,51 @@ +package top.hcode.hoj.pojo.entity.contest; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ContestRegister对象", description="") +public class ContestRegister implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "比赛id") + private Long cid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "默认为0表示正常,1为失效。") + private Integer status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestScore.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestScore.java new file mode 100644 index 0000000..63fdf67 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/contest/ContestScore.java @@ -0,0 +1,53 @@ +package top.hcode.hoj.pojo.entity.contest; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ContestScore对象", description="") +public class ContestScore implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long cid; + + @ApiModelProperty(value = "比赛前的score得分") + private Integer last; + + @ApiModelProperty(value = "Score比分变化") + private Integer change; + + @ApiModelProperty(value = "现在的score") + private Integer now; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Comment.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Comment.java new file mode 100644 index 0000000..e15fe4f --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Comment.java @@ -0,0 +1,67 @@ +package top.hcode.hoj.pojo.entity.discussion; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Comment对象", description="") +public class Comment implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "NULL表示无引用比赛") + private Long cid; + + @ApiModelProperty(value = "NULL表示无引用讨论") + private Integer did; + + @ApiModelProperty(value = "评论内容") + private String content; + + @ApiModelProperty(value = "评论者id") + private String fromUid; + + @ApiModelProperty(value = "评论者用户名") + private String fromName; + + @ApiModelProperty(value = "评论组头像地址") + private String fromAvatar; + + @ApiModelProperty(value = "评论者角色") + private String fromRole; + + @ApiModelProperty(value = "点赞数量") + private Integer likeNum; + + @ApiModelProperty(value = "是否封禁或删除 0正常,1封禁") + @TableLogic + private Integer status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/CommentLike.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/CommentLike.java new file mode 100644 index 0000000..015ca9a --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/CommentLike.java @@ -0,0 +1,42 @@ +package top.hcode.hoj.pojo.entity.discussion; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/5 11:36 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="CommentLike对象", description="") +public class CommentLike { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "评论id") + private Integer cid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Discussion.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Discussion.java new file mode 100644 index 0000000..a4149af --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Discussion.java @@ -0,0 +1,78 @@ +package top.hcode.hoj.pojo.entity.discussion; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/4 22:11 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Discussion对象", description="") +public class Discussion { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "分类id") + private Integer categoryId; + + @ApiModelProperty(value = "讨论标题") + private String title; + + @ApiModelProperty(value = "讨论简介") + private String description; + + @ApiModelProperty(value = "讨论内容") + private String content; + + @ApiModelProperty(value = "题目关联 默认为null则不关联题目") + private String pid; + + @ApiModelProperty(value = "发表者id") + private String uid; + + @ApiModelProperty(value = "发表者用户名") + private String author; + + @ApiModelProperty(value = "发表者头像地址") + private String avatar; + + @ApiModelProperty(value = "发表者角色") + private String role; + + @ApiModelProperty(value = "浏览数量") + private Integer viewNum; + + @ApiModelProperty(value = "点赞数量") + private Integer likeNum; + + @ApiModelProperty(value = "评论数量,包括其评论及其回复数") + private Integer commentNum; + + @ApiModelProperty(value = "优先级,是否置顶") + private Boolean topPriority; + + @ApiModelProperty(value = "是否封禁或删除 0正常,1封禁") + private Integer status; + + @ApiModelProperty(value = "团队ID") + private Long gid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/DiscussionLike.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/DiscussionLike.java new file mode 100644 index 0000000..a13eadc --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/DiscussionLike.java @@ -0,0 +1,42 @@ +package top.hcode.hoj.pojo.entity.discussion; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/5 11:36 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="DiscussionLike对象", description="") +public class DiscussionLike { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "讨论id") + private Integer did; + + @ApiModelProperty(value = "用户id") + private String uid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/DiscussionReport.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/DiscussionReport.java new file mode 100644 index 0000000..c27cbb3 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/DiscussionReport.java @@ -0,0 +1,47 @@ +package top.hcode.hoj.pojo.entity.discussion; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/11 21:43 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="DiscussionReport对象", description="") +public class DiscussionReport { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "讨论id") + private Integer did; + + @ApiModelProperty(value = "举报者的用户名") + private String reporter; + + @ApiModelProperty(value = "举报内容") + private String content; + + @ApiModelProperty(value = "是否已读") + private Boolean status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Reply.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Reply.java new file mode 100644 index 0000000..727715b --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/discussion/Reply.java @@ -0,0 +1,65 @@ +package top.hcode.hoj.pojo.entity.discussion; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/5 19:03 + * @Description: + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Reply对象", description="") +public class Reply { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "评论id") + private Integer commentId; + + @ApiModelProperty(value = "回复评论者id") + private String fromUid; + + @ApiModelProperty(value = "回复评论者用户名") + private String fromName; + + @ApiModelProperty(value = "回复评论者头像地址") + private String fromAvatar; + + @ApiModelProperty(value = "回复评论者角色") + private String fromRole; + + @ApiModelProperty(value = "被回复的用户id") + private String toUid; + + @ApiModelProperty(value = "被回复的用户名") + private String toName; + + @ApiModelProperty(value = "被回复的用户头像地址") + private String toAvatar; + + @ApiModelProperty(value = "回复的内容") + private String content; + + @ApiModelProperty(value = "是否封禁或删除 0正常,1封禁") + @TableLogic + private Integer status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/group/Group.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/group/Group.java new file mode 100644 index 0000000..e2e03c9 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/group/Group.java @@ -0,0 +1,68 @@ +package top.hcode.hoj.pojo.entity.group; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "Group对象", description = "") +@TableName("`group`") +public class Group implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "团队id") + private Long id; + + @ApiModelProperty(value = "头像地址") + private String avatar; + + @ApiModelProperty(value = "团队名称") + private String name; + + @ApiModelProperty(value = "团队简称") + private String shortName; + + @ApiModelProperty(value = "团队简介") + private String brief; + + @ApiModelProperty(value = "团队介绍") + private String description; + + @ApiModelProperty(value = "团队拥有者的用户名") + private String owner; + + @ApiModelProperty(value = "团队拥有者的uuid") + private String uid; + + @ApiModelProperty(value = "1为公开团队,2为保护团队,3为私有团队") + private Integer auth; + + @ApiModelProperty(value = "团队是否可见") + private Boolean visible; + + @ApiModelProperty(value = "是否封禁或删除 0正常,1无效") + private Integer status; + + @ApiModelProperty(value = "团队邀请码") + private String code; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/group/GroupMember.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/group/GroupMember.java new file mode 100644 index 0000000..a3b7da1 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/group/GroupMember.java @@ -0,0 +1,49 @@ +package top.hcode.hoj.pojo.entity.group; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: LengYun + * @Date: 2022/3/11 13:36 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="GroupMember对象", description="") +public class GroupMember implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "团队id") + private Long gid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "默认为1表示申请中,2为拒绝,3为普通成员,4为管理员,5为超级管理员") + private Integer auth; + + @ApiModelProperty(value = "申请理由") + private String reason; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/Judge.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/Judge.java new file mode 100644 index 0000000..0a163ac --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/Judge.java @@ -0,0 +1,120 @@ +package top.hcode.hoj.pojo.entity.judge; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Judge对象", description="") +public class Judge implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "submit_id", type = IdType.AUTO) + private Long submitId; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "题目展示id") + private String displayPid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "提交的时间") + private Date submitTime; + + @ApiModelProperty(value = "结果码具体参考文档") + @TableField(updateStrategy = FieldStrategy.IGNORED) + private Integer status; + + @ApiModelProperty(value = "0为仅自己可见,1为全部人可见。") + private Boolean share; + + @ApiModelProperty(value = "错误提醒(编译错误,或者vj提醒)") + @TableField(updateStrategy = FieldStrategy.IGNORED) + private String errorMessage; + + @ApiModelProperty(value = "运行时间(ms)") + @TableField(updateStrategy = FieldStrategy.IGNORED) + private Integer time; + + @ApiModelProperty(value = "运行内存(kb)") + @TableField(updateStrategy = FieldStrategy.IGNORED) + private Integer memory; + + @ApiModelProperty(value = "IO判题不为空") + @TableField(updateStrategy = FieldStrategy.IGNORED) + private Integer score; + + @ApiModelProperty(value = "代码长度") + private Integer length; + + @ApiModelProperty(value = "代码") + private String code; + + @ApiModelProperty(value = "代码语言") + private String language; + + @ApiModelProperty(value = "比赛id,非比赛提交默认为0") + private Long cid; + + @ApiModelProperty(value = "比赛中题目排序id,非比赛提交默认为0") + private Long cpid; + + @ApiModelProperty(value = "团队id,非团队内题目提交为null") + private Long gid; + + @ApiModelProperty(value = "判题机名称") + private String judger; + + @ApiModelProperty(value = "提交者所在ip") + private String ip; + + @ApiModelProperty(value = "废弃") + private Integer version; + + @ApiModelProperty(value = "该题在OI排行榜的分数") + @TableField(updateStrategy = FieldStrategy.IGNORED) + private Integer oiRankScore; + + @ApiModelProperty(value = "vjudge判题在其它oj的提交id") + private Long vjudgeSubmitId; + + @ApiModelProperty(value = "vjudge判题在其它oj的提交用户名") + private String vjudgeUsername; + + @ApiModelProperty(value = "vjudge判题在其它oj的提交账号密码") + private String vjudgePassword; + + @ApiModelProperty(value = "是否人工评测") + private Boolean isManual; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/JudgeCase.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/JudgeCase.java new file mode 100644 index 0000000..3fb1014 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/JudgeCase.java @@ -0,0 +1,74 @@ +package top.hcode.hoj.pojo.entity.judge; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="JudgeCase对象", description="") +public class JudgeCase implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "判题id") + private Long submitId; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "测试样例id") + private Long caseId; + + @ApiModelProperty(value = "测试该样例所用时间ms") + private Integer time; + + @ApiModelProperty(value = "测试该样例所用空间KB") + private Integer memory; + + @ApiModelProperty(value = "IO得分") + private Integer score; + + @ApiModelProperty(value = "测试该样例结果状态码") + private Integer status; + + @ApiModelProperty(value = "样例输入,输入文件名") + private String inputData; + + @ApiModelProperty(value = "样例输出,输出文件名") + private String outputData; + + @ApiModelProperty(value = "用户样例输出,暂不使用,当前用于记录对单个测试点的输出或信息提示") + private String userOutput; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/JudgeServer.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/JudgeServer.java new file mode 100644 index 0000000..2b04207 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/JudgeServer.java @@ -0,0 +1,63 @@ +package top.hcode.hoj.pojo.entity.judge; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/15 11:08 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "JudgeServer对象", description = "判题服务器配置") +public class JudgeServer { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "判题服务名字") + private String name; + + @ApiModelProperty(value = "判题机ip") + private String ip; + + @ApiModelProperty(value = "判题机端口号") + private Integer port; + + @ApiModelProperty(value = "ip:port") + private String url; + + @ApiModelProperty(value = "判题机所在服务器cpu核心数") + private Integer cpuCore; + + @ApiModelProperty(value = "当前判题数") + private Integer taskNumber; + + @ApiModelProperty(value = "判题并发最大数") + private Integer maxTaskNumber; + + @ApiModelProperty(value = "0可用,1不可用") + private Integer status; + + @ApiModelProperty(value = "是否为远程判题vj") + private Boolean isRemote; + + @ApiModelProperty(value = "是否可提交CF") + private Boolean cfSubmittable; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/RemoteJudgeAccount.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/RemoteJudgeAccount.java new file mode 100644 index 0000000..b0cfb2c --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/judge/RemoteJudgeAccount.java @@ -0,0 +1,48 @@ +package top.hcode.hoj.pojo.entity.judge; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/18 17:41 + * @Description: + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "RemoteJudgeAccount对象", description = "远程判题服务的账号") +public class RemoteJudgeAccount { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "远程oj名字") + private String oj; + + @ApiModelProperty(value = "账号用户名") + private String username; + + @ApiModelProperty(value = "账号密码") + private String password; + + @ApiModelProperty(value = "是否可用") + private Boolean status; + + @ApiModelProperty(value = "废弃") + private Long version; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/AdminSysNotice.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/AdminSysNotice.java new file mode 100644 index 0000000..b1d785e --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/AdminSysNotice.java @@ -0,0 +1,54 @@ +package top.hcode.hoj.pojo.entity.msg; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:11 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="AdminSysNotice", description="") +public class AdminSysNotice { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "通知标题") + private String title; + + @ApiModelProperty(value = "通知内容") + private String content; + + @ApiModelProperty(value = "发给哪些用户类型,例如全部用户All,指定单个用户Single,管理员Admin") + private String type; + + @ApiModelProperty(value = "是否已被拉取过,如果已经拉取过,就无需再次拉取") + private Boolean state; + + @ApiModelProperty(value = "接受通知的用户的id,如果type为single,那么recipient 为该用户的id;否则recipient为null") + private String recipientId; + + @ApiModelProperty(value = "发布通知的管理员id") + private String adminId; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/MsgRemind.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/MsgRemind.java new file mode 100644 index 0000000..2a3778e --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/MsgRemind.java @@ -0,0 +1,68 @@ +package top.hcode.hoj.pojo.entity.msg; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:21 + * @Description: + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="MsgRemind", description="") +public class MsgRemind { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "动作类型,如点赞讨论帖Like_Post、点赞评论Like_Discuss、评论Discuss、回复Reply等") + private String action; + + @ApiModelProperty(value = "消息来源id,讨论id或比赛id") + private Integer sourceId; + + @ApiModelProperty(value = "事件源类型:'Discussion'、'Contest'等") + private String sourceType; + + @ApiModelProperty(value = "事件源的内容,比如回复的内容,回复的评论等等,不超过250字符,超过使用...") + private String sourceContent; + + @ApiModelProperty(value = "事件引用上一级评论或回复id") + private Integer quoteId; + + @ApiModelProperty(value = "事件引用上一级的类型:Comment、Reply") + private String quoteType; + + @ApiModelProperty(value = "事件所发生的地点链接 url") + private String url; + + @ApiModelProperty(value = "接受通知的用户的id") + private String recipientId; + + @ApiModelProperty(value = "动作执行者的id") + private String senderId; + + @ApiModelProperty(value = "是否已读") + private Boolean state; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/UserSysNotice.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/UserSysNotice.java new file mode 100644 index 0000000..75f7a82 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/msg/UserSysNotice.java @@ -0,0 +1,48 @@ +package top.hcode.hoj.pojo.entity.msg; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/10/1 20:18 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="UserSysNotice", description="") +public class UserSysNotice { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "系统通知的id") + private Long sysNoticeId; + + @ApiModelProperty(value = "接受通知的用户的id") + private String recipientId; + + @ApiModelProperty(value = "消息类型,系统通知Sys、我的信息Mine") + private String type; + + @ApiModelProperty(value = "是否已读") + private Boolean state; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Category.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Category.java new file mode 100644 index 0000000..9315cc9 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Category.java @@ -0,0 +1,38 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/5/4 22:09 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Category对象", description="") +public class Category { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "分类名字") + private String name; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/CodeTemplate.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/CodeTemplate.java new file mode 100644 index 0000000..703aaf0 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/CodeTemplate.java @@ -0,0 +1,47 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/4/23 18:31 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="CodeTemplate", description="") +public class CodeTemplate { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "语言id") + private Long lid; + + @ApiModelProperty(value = "代码") + private String code; + + @ApiModelProperty(value = "是否启用") + private Boolean status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Language.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Language.java new file mode 100644 index 0000000..0e54f51 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Language.java @@ -0,0 +1,59 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/12 23:14 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Language对象", description="") +public class Language { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "语言类型") + private String contentType; + + @ApiModelProperty(value = "语言描述") + private String description; + + @ApiModelProperty(value = "语言名字") + private String name; + + @ApiModelProperty(value = "编译指令") + private String compileCommand; + + @ApiModelProperty(value = "A+B模板") + private String template; + + @ApiModelProperty(value = "语言默认代码模板") + private String codeTemplate; + + @ApiModelProperty(value = "是否可作为特殊判题的一种语言") + private Boolean isSpj; + + @ApiModelProperty(value = "该语言属于哪个oj,自身oj用ME") + private String oj; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Problem.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Problem.java new file mode 100644 index 0000000..005d9cc --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Problem.java @@ -0,0 +1,136 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Problem对象", description="") +public class Problem implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "题目的自定义ID 例如(HOJ-1000)") + private String problemId; + + @ApiModelProperty(value = "题目") + private String title; + + @ApiModelProperty(value = "作者") + private String author; + + @ApiModelProperty(value = "0为ACM,1为OI") + private Integer type; + + @ApiModelProperty(value = "default,spj,interactive") + private String judgeMode; + + @ApiModelProperty(value = "单位ms") + private Integer timeLimit; + + @ApiModelProperty(value = "单位mb") + private Integer memoryLimit; + + @ApiModelProperty(value = "单位mb") + private Integer stackLimit; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "输入描述") + private String input; + + @ApiModelProperty(value = "输出描述") + private String output; + + @ApiModelProperty(value = "题面样例") + private String examples; + + @ApiModelProperty(value = "是否为vj判题") + private Boolean isRemote; + + @ApiModelProperty(value = "题目来源(vj判题时例如HDU-1000的链接)") + private String source; + + @ApiModelProperty(value = "题目难度") + private Integer difficulty; + + @ApiModelProperty(value = "备注,提醒") + private String hint; + + @ApiModelProperty(value = "默认为1公开,2为私有,3为比赛中") + private Integer auth; + + @ApiModelProperty(value = "当该题目为oi题目时的分数") + private Integer ioScore; + + @ApiModelProperty(value = "该题目对应的相关提交代码,用户是否可用分享") + private Boolean codeShare; + + @ApiModelProperty(value = "特判程序或交互程序的代码") + @TableField(value="spj_code",updateStrategy = FieldStrategy.IGNORED) + private String spjCode; + + @ApiModelProperty(value = "特判程序或交互程序的语言") + @TableField(value="spj_language",updateStrategy = FieldStrategy.IGNORED) + private String spjLanguage; + + @ApiModelProperty(value = "特判程序或交互程序的额外文件 json key:name value:content") + @TableField(value="user_extra_file",updateStrategy = FieldStrategy.IGNORED) + private String userExtraFile; + + @ApiModelProperty(value = "特判程序或交互程序的额外文件 json key:name value:content") + @TableField(value="judge_extra_file",updateStrategy = FieldStrategy.IGNORED) + private String judgeExtraFile; + + @ApiModelProperty(value = "是否默认去除用户代码的每行末尾空白符") + private Boolean isRemoveEndBlank; + + @ApiModelProperty(value = "是否默认开启该题目的测试样例结果查看") + private Boolean openCaseResult; + + @ApiModelProperty(value = "题目测试数据是否是上传的") + private Boolean isUploadCase; + + @ApiModelProperty(value = "题目测试数据的版本号") + private String caseVersion; + + @ApiModelProperty(value = "修改题目的管理员用户名") + private String modifiedUser; + + @ApiModelProperty(value = "是否为团队内的题目") + private Boolean isGroup; + + @ApiModelProperty(value = "团队ID") + private Long gid; + + @ApiModelProperty(value = "申请公开的进度:null为未申请,1为申请中,2为申请通过,3为申请拒绝") + private Integer applyPublicProgress; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemCase.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemCase.java new file mode 100644 index 0000000..ae65fbc --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemCase.java @@ -0,0 +1,50 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/11/28 13:37 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Case对象", description="题目测试样例") +public class ProblemCase { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "测试样例的输入") + private String input; + + @ApiModelProperty(value = "测试样例的输出") + private String output; + + @ApiModelProperty(value = "该测试样例的IO得分") + private Integer score; + + @ApiModelProperty(value = "0可用,1不可用") + private Integer status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemCount.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemCount.java new file mode 100644 index 0000000..0e28ded --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemCount.java @@ -0,0 +1,70 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ProblemCount对象", description="") +public class ProblemCount implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "pid", type = IdType.ID_WORKER) + private Long pid; + + private Integer total; + + private Integer ac; + + @ApiModelProperty(value = "空间超限") + private Integer mle; + + @ApiModelProperty(value = "时间超限") + private Integer tle; + + @ApiModelProperty(value = "运行错误") + private Integer re; + + @ApiModelProperty(value = "格式错误") + private Integer pe; + + @ApiModelProperty(value = "编译错误") + private Integer ce; + + @ApiModelProperty(value = "答案错误") + private Integer wa; + + @ApiModelProperty(value = "系统错误") + private Integer se; + + @ApiModelProperty(value = "部分通过,OI题目") + private Integer pa; + + @Version + private Long version; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemLanguage.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemLanguage.java new file mode 100644 index 0000000..74f024c --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemLanguage.java @@ -0,0 +1,38 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/13 00:00 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ProblemLanguage对象", description="") +public class ProblemLanguage { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long pid; + + private Long lid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemTag.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemTag.java new file mode 100644 index 0000000..7a49341 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/ProblemTag.java @@ -0,0 +1,38 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/11/8 16:03 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ProblemTag对象", description="") +public class ProblemTag { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private Long pid; + + private Long tid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Tag.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Tag.java new file mode 100644 index 0000000..d87af5d --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/Tag.java @@ -0,0 +1,55 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Tag对象", description="") +public class Tag implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "标签名字") + private String name; + + @ApiModelProperty(value = "标签颜色") + private String color; + + @ApiModelProperty(value = "标签所属oj") + private String oj; + + @ApiModelProperty(value = "团队ID") + private Long gid; + + @ApiModelProperty(value = "标签分类ID") + @TableField(updateStrategy = FieldStrategy.IGNORED) + private Long tcid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/TagClassification.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/TagClassification.java new file mode 100644 index 0000000..a9a1b03 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/problem/TagClassification.java @@ -0,0 +1,45 @@ +package top.hcode.hoj.pojo.entity.problem; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author Himit_ZH + * @Date 2022/8/3 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="TagClassification对象", description="标签分类") +public class TagClassification { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "标签分类名字") + private String name; + + @ApiModelProperty(value = "标签分类所属oj") + private String oj; + + @ApiModelProperty(value = "标签分类优先级 越小越高") + @TableField("`rank`") + private Integer rank; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/MappingTrainingCategory.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/MappingTrainingCategory.java new file mode 100644 index 0000000..4c73eb4 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/MappingTrainingCategory.java @@ -0,0 +1,43 @@ +package top.hcode.hoj.pojo.entity.training; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/19 21:58 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="MappingTrainingCategory对象", description="") +public class MappingTrainingCategory implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "训练id") + private Long tid; + + @ApiModelProperty(value = "训练分类id(TrainingCategory)") + private Long cid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/Training.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/Training.java new file mode 100644 index 0000000..60120cf --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/Training.java @@ -0,0 +1,68 @@ +package top.hcode.hoj.pojo.entity.training; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/19 21:37 + * @Description: + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "Training对象", description = "训练题单实体") +public class Training implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "主键id") + private Long id; + + @ApiModelProperty(value = "训练题单标题") + private String title; + + @ApiModelProperty(value = "训练题单简介") + private String description; + + @ApiModelProperty(value = "训练题单创建者用户名") + private String author; + + @ApiModelProperty(value = "训练题单权限类型:Public、Private") + private String auth; + + @ApiModelProperty(value = "训练题单权限为Private时的密码") + private String privatePwd; + + @ApiModelProperty(value = "是否可用") + private Boolean status; + + @ApiModelProperty(value = "编号,升序排序") + @TableField("`rank`") + private Integer rank; + + @ApiModelProperty(value = "是否为团队内的训练") + private Boolean isGroup; + + @ApiModelProperty(value = "团队ID") + private Long gid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingCategory.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingCategory.java new file mode 100644 index 0000000..5a9ce9f --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingCategory.java @@ -0,0 +1,47 @@ +package top.hcode.hoj.pojo.entity.training; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/19 21:56 + * @Description: + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="TrainingCategory对象", description="") +public class TrainingCategory implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "训练题单专用分类名字") + private String name; + + @ApiModelProperty(value = "训练题单专用分类背景颜色") + private String color; + + @ApiModelProperty(value = "团队ID") + private Long gid; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingProblem.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingProblem.java new file mode 100644 index 0000000..1420c28 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingProblem.java @@ -0,0 +1,51 @@ +package top.hcode.hoj.pojo.entity.training; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/19 21:50 + * @Description: + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="TrainingProblem对象", description="") +public class TrainingProblem implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "训练id") + private Long tid; + + @ApiModelProperty(value = "题目源id") + private Long pid; + + @ApiModelProperty(value = "题目展示id") + private String displayId; + + @ApiModelProperty(value = "排序用") + @TableField("`rank`") + private Integer rank; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingRecord.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingRecord.java new file mode 100644 index 0000000..e00d44b --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingRecord.java @@ -0,0 +1,53 @@ +package top.hcode.hoj.pojo.entity.training; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/19 21:52 + * @Description: + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="TrainingRecord对象", description="") +public class TrainingRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "训练id") + private Long tid; + + @ApiModelProperty(value = "训练题目id") + private Long tpid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "题目id") + private Long pid; + + @ApiModelProperty(value = "提交id") + private Long submitId; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingRegister.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingRegister.java new file mode 100644 index 0000000..c164b8d --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/training/TrainingRegister.java @@ -0,0 +1,46 @@ +package top.hcode.hoj.pojo.entity.training; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2021/11/19 21:48 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="TrainingRegister对象", description="") +public class TrainingRegister implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "训练id") + private Long tid; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "是否可用") + private Boolean status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Auth.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Auth.java new file mode 100644 index 0000000..9e97ef9 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Auth.java @@ -0,0 +1,51 @@ +package top.hcode.hoj.pojo.entity.user; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Auth对象", description="") +public class Auth implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "权限名称") + private String name; + + @ApiModelProperty(value = "权限字符串") + private String permission; + + @ApiModelProperty(value = "0可用,1不可用") + private Integer status; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Role.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Role.java new file mode 100644 index 0000000..975c2fd --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Role.java @@ -0,0 +1,53 @@ +package top.hcode.hoj.pojo.entity.user; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="Role对象", description="") +public class Role implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ID_WORKER) + private Long id; + + @ApiModelProperty(value = "角色") + private String role; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "默认0可用,1不可用") + private Integer status; + + @ApiModelProperty(value = "创建时间") + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @ApiModelProperty(value = "修改时间") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/RoleAuth.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/RoleAuth.java new file mode 100644 index 0000000..e807aee --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/RoleAuth.java @@ -0,0 +1,40 @@ +package top.hcode.hoj.pojo.entity.user; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="RoleAuth对象", description="") +public class RoleAuth implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long authId; + + private Long roleId; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Session.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Session.java new file mode 100644 index 0000000..738de70 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/Session.java @@ -0,0 +1,41 @@ +package top.hcode.hoj.pojo.entity.user; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * @Author: Himit_ZH + * @Date: 2020/12/3 22:41 + * @Description: + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="session对象", description="") +public class Session { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String uid; + + private String userAgent; + + private String ip; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; +} \ No newline at end of file diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserAcproblem.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserAcproblem.java new file mode 100644 index 0000000..eced4d8 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserAcproblem.java @@ -0,0 +1,51 @@ +package top.hcode.hoj.pojo.entity.user; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="UserAcproblem对象", description="") +public class UserAcproblem implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "ac的题目id") + private Long pid; + + @ApiModelProperty(value = "提交的id") + private Long submitId; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserInfo.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserInfo.java new file mode 100644 index 0000000..36c0b13 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserInfo.java @@ -0,0 +1,103 @@ +package top.hcode.hoj.pojo.entity.user; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="UserInfo对象", description="") +public class UserInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "uuid",type =IdType.UUID) + private String uuid; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "密码") + private String password; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "昵称") + private String nickname; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "学校") + private String school; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "专业") + private String course; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "学号") + private String number; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "性别") + private String gender; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "真实姓名") + private String realname; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "cf的username") + private String cfUsername; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "github地址") + private String github; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "博客地址") + private String blog; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "邮箱") + private String email; + + @ApiModelProperty(value = "头像地址") + private String avatar; + + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "个性介绍") + private String signature; + + @ApiModelProperty(value = "头衔、称号") + private String titleName; + + @ApiModelProperty(value = "头衔、称号的颜色") + private String titleColor; + + @ApiModelProperty(value = "0可用,-1不可用") + private int status; + + @ApiModelProperty(value = "创建时间") + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @ApiModelProperty(value = "修改时间") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserRecord.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserRecord.java new file mode 100644 index 0000000..83f4c11 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserRecord.java @@ -0,0 +1,45 @@ +package top.hcode.hoj.pojo.entity.user; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="UserRecord对象", description="") +public class UserRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "用户id") + private String uid; + + @ApiModelProperty(value = "cf得分") + @TableField("rating") + private Integer rating; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + +} diff --git a/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserRole.java b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserRole.java new file mode 100644 index 0000000..9e12d23 --- /dev/null +++ b/src/hoj-springboot/api/src/main/java/top/hcode/hoj/pojo/entity/user/UserRole.java @@ -0,0 +1,45 @@ +package top.hcode.hoj.pojo.entity.user; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author Himit_ZH + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="UserRole对象", description="") +public class UserRole implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String uid; + + private Long roleId; + + @TableField(fill = FieldFill.INSERT) + private Date gmtCreate; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date gmtModified; + + +} diff --git a/src/hoj-springboot/pom.xml b/src/hoj-springboot/pom.xml new file mode 100644 index 0000000..c5c78bb --- /dev/null +++ b/src/hoj-springboot/pom.xml @@ -0,0 +1,126 @@ + + + 4.0.0 + + top.hcode + hoj-springboot + 1.0-SNAPSHOT + + api + DataBackup + JudgeServer + + pom + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.10.1 + + 8 + 8 + UTF-8 + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M6 + + true + UTF-8 + + + + + + + + UTF-8 + 8 + 8 + 4.12 + 1.16.10 + 1.2.17 + 8.0.19 + 1.1.20 + 2.1.1 + + + + + + org.springframework.cloud + spring-cloud-dependencies + Hoxton.SR1 + pom + import + + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + 2.2.1.RELEASE + pom + import + + + + org.springframework.boot + spring-boot-dependencies + 2.2.6.RELEASE + pom + import + + + + mysql + mysql-connector-java + ${mysql.version} + + + com.alibaba + druid + ${druid.version} + + + + com.baomidou + mybatis-plus-boot-starter + 3.2.0 + + + org.crazycake + shiro-redis-spring-boot-starter + 3.2.1 + + + + log4j + log4j + ${log4j.version} + + + ch.qos.logback + logback-core + 1.2.3 + + + + junit + junit + ${junit.version} + + + + org.projectlombok + lombok + ${lombok.version} + + + + \ No newline at end of file diff --git a/src/hoj-vue/.gitignore b/src/hoj-vue/.gitignore new file mode 100644 index 0000000..403adbc --- /dev/null +++ b/src/hoj-vue/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/src/hoj-vue/README.md b/src/hoj-vue/README.md new file mode 100644 index 0000000..b3d6185 --- /dev/null +++ b/src/hoj-vue/README.md @@ -0,0 +1,19 @@ +# hoj-vue-pc + +## Project setup +``` +npm install +``` + +### Compiles and hot-reloads for development +``` +npm run serve +``` + +### Compiles and minifies for production +``` +npm run build +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/src/hoj-vue/babel.config.js b/src/hoj-vue/babel.config.js new file mode 100644 index 0000000..e955840 --- /dev/null +++ b/src/hoj-vue/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/cli-plugin-babel/preset' + ] +} diff --git a/src/hoj-vue/package-lock.json b/src/hoj-vue/package-lock.json new file mode 100644 index 0000000..23c4519 --- /dev/null +++ b/src/hoj-vue/package-lock.json @@ -0,0 +1,25960 @@ +{ + "name": "hoj-vue", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "hoj-vue", + "version": "0.1.0", + "dependencies": { + "@iktakahiro/markdown-it-katex": "^4.0.1", + "axios": "^0.21.0", + "browser-detect": "^0.2.28", + "compression-webpack-plugin": "^5.0.1", + "core-js": "^3.6.5", + "echarts": "^4.9.0", + "element-ui": "^2.15.3", + "font-awesome": "^4.7.0", + "highlight.js": "^10.3.2", + "jquery": "^3.5.1", + "mavon-editor": "2.9.1", + "moment": "^2.29.1", + "muse-ui": "^3.0.2", + "nprogress": "^0.2.0", + "papaparse": "^5.3.0", + "vue": "^2.6.11", + "vue-avatar": "^2.3.3", + "vue-calendar-heatmap": "^0.8.4", + "vue-clipboard2": "^0.3.1", + "vue-codemirror-lite": "^1.0.4", + "vue-cropper": "^0.5.5", + "vue-dompurify-html": "^2.5.0", + "vue-echarts": "^5.0.0-beta.0", + "vue-i18n": "^8.24.4", + "vue-katex-auto-render": "^0.1.3", + "vue-m-message": "^3.0.0", + "vue-monoplasty-slide-verify": "^1.1.3", + "vue-particles": "^1.0.9", + "vue-router": "^3.2.0", + "vue-template-compiler": "^2.6.12", + "vuex": "^3.4.0", + "vuex-router-sync": "^5.0.0", + "vxe-table": "^2.9.26", + "xe-utils": "^2.8.1" + }, + "devDependencies": { + "@types/highlight.js": "^10.1.0", + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-plugin-router": "~4.5.0", + "@vue/cli-plugin-vuex": "~4.5.0", + "@vue/cli-service": "~4.5.0", + "uglifyjs-webpack-plugin": "^2.2.0", + "webpack-bundle-analyzer": "^4.4.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz?cache=0&sync_timestamp=1593529659031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", + "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.1.tgz?cache=0&sync_timestamp=1602801772375&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.1.tgz", + "integrity": "sha1-1zhqaJqg3fBiVQBbS5kZiAIRAaA=", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.3.tgz?cache=0&sync_timestamp=1602881203345&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.3.tgz", + "integrity": "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg=", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.1.tgz?cache=0&sync_timestamp=1602799917077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.1.tgz", + "integrity": "sha1-DXC+Mr2qA9fFHIWX3aduDfHxVGg=", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha1-W/DUlaP3V6w72ki1vzs7ownHK6M=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha1-uwt18xv5jL+f8UPBrleLhydK4aM=", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.1.tgz?cache=0&sync_timestamp=1602799917475&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.12.1.tgz", + "integrity": "sha1-MQ41KIj7292Fd76N/dKvueetz1A=", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.12.0", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.12.1.tgz?cache=0&sync_timestamp=1602799938240&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha1-PEWZj0Me3UqSFMXx060USKYTf24=", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.1.tgz?cache=0&sync_timestamp=1602799980691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.12.1.tgz", + "integrity": "sha1-GLEwLUZ3+dxHQP6MntlmgOKdN+g=", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz", + "integrity": "sha1-tTwQ23imQIABUmkrEzkxR6y5uzA=", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.12.1.tgz?cache=0&sync_timestamp=1602801819900&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha1-gAakZmlcSthqKl8vsVtfLDGtVjM=", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz", + "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha1-+6Dy/P8/ugDm7LZku15uJuLWFlw=", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.1.tgz?cache=0&sync_timestamp=1602799917569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.1.tgz", + "integrity": "sha1-FkTAFZGhWi8ITdbQktlDDrHRIWw=", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.12.1.tgz?cache=0&sync_timestamp=1602799922305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.12.1.tgz", + "integrity": "sha1-eVT+xx9bMsSOSzA7Q3w0RT/XJHw=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha1-UNyWQT1ZT5lad5BZBbBYk813lnM=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "dev": true + }, + "node_modules/@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.10.5.tgz?cache=0&sync_timestamp=1594750677873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz", + "integrity": "sha1-Mt+7eYmQc8QVVXBToZvQVarlCuA=", + "dev": true, + "dependencies": { + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha1-jE27+RYxT2BH3AXmoiFwdCODR/0=", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.12.1.tgz?cache=0&sync_timestamp=1602799937610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.12.1.tgz", + "integrity": "sha1-8VycyJdDkoGJHhHVzhJWKsDPP6k=", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.12.1.tgz?cache=0&sync_timestamp=1602799955395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.12.1.tgz", + "integrity": "sha1-MkJ+WqYVR9OOsebq9f0UJv2tkTY=", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha1-+KSRJErPamdhWKxCBykRuoOtCZ8=", + "dev": true, + "dependencies": { + "@babel/types": "^7.11.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "dev": true + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.1.tgz?cache=0&sync_timestamp=1602801773085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.12.1.tgz", + "integrity": "sha1-F1VnOAw+d9YP+YpUuwFf548heNk=", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.12.3.tgz?cache=0&sync_timestamp=1602881330831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.12.3.tgz", + "integrity": "sha1-MzIzn8TR+78cJ9eVjCfTRwjpkNk=", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helpers": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.12.1.tgz?cache=0&sync_timestamp=1602799921702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.12.1.tgz", + "integrity": "sha1-ioJhwdQ47BjLiQQ0307HaHNMHnk=", + "dev": true, + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz", + "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.12.3", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", + "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.12.1.tgz?cache=0&sync_timestamp=1602799957225&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha1-3GwRcOJ9isqZ/2X0klvQaxyQVQ4=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602801742700&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha1-oIL/VB8qKaSCEGW4rdk0bAwW5d4=", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.12.1.tgz", + "integrity": "sha1-WScUOf7UFFRWxBBnRQVDruMy0V8=", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.12.1.tgz?cache=0&sync_timestamp=1602801779067&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha1-Q+tcKjSH7NmMXI6otf22midJstw=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.1.tgz?cache=0&sync_timestamp=1602801775633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha1-i5uPN2stiPXdd05NJKXMLjZ5ttQ=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.12.1.tgz?cache=0&sync_timestamp=1602801778453&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha1-1FQjtRdxTu3VYhqd/cA/qfTrJBw=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.12.1.tgz?cache=0&sync_timestamp=1602801777850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha1-8sSQ024bPJZZJBA0pdLNUCY6J1E=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz?cache=0&sync_timestamp=1602801777104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha1-PtT/8xwBXn8/FGfxkNvlRc17BGw=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.1.tgz", + "integrity": "sha1-DixndMTOSL5BIRm01pOsd392haY=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.12.1.tgz?cache=0&sync_timestamp=1602799956368&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha1-3vm9A86g+bcig9rA7CLSicdpEGk=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha1-zMJCGvZNOq5QtVinHO3pKaWrKUI=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.1.tgz?cache=0&sync_timestamp=1602799957375&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha1-zOEiID/IoyeUKW/Dd8be2vQ2N5c=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.12.1.tgz?cache=0&sync_timestamp=1602801864793&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha1-hoFPbnohN0yYDBDTi0ST5wP0o4k=", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799956486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha1-Khg5WNQXdluerjNPR3WOXWqC4HI=", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602801779713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha1-vLKXxTZueb663vUJVJzZOwTxmXg=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.12.1.tgz", + "integrity": "sha1-gai1NbKER2xBvm3gaFOogCuYxd0=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.12.1.tgz?cache=0&sync_timestamp=1602799927826&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha1-nZ01fMgYqnrnk1kXwSV/Z2d6CSY=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha1-3WwLNXrBuxQtmFN0UKMZYl0T0qA=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha1-gIP/yGrI53f74ktZZ8SyUh88srM=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.12.1.tgz?cache=0&sync_timestamp=1602799957601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha1-OEmknMKiLpdDy9a1KSbTAzcimvE=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.1.tgz?cache=0&sync_timestamp=1602801921176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha1-8qGjZb3itxEuCm3tkGf918B5Bdk=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha1-8O5yeHS0KiCKSKWGuEw9IiwrvvE=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.12.1.tgz?cache=0&sync_timestamp=1602801866220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.12.1.tgz", + "integrity": "sha1-ZeZQ/K3dPYjdzmfA+DSj1DajLbY=", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.12.1.tgz?cache=0&sync_timestamp=1602801922882&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha1-1oz2ybf4OKikFEutvpdUHqCQSFI=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.12.1.tgz?cache=0&sync_timestamp=1602801919435&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha1-uaVw/g0KjUYBFkE8tPl+jgiy+Ec=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799956601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha1-odFsFIYoF7ZAnApnjW+Tc8qc2XU=", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha1-dFZhuropWsBuaGgieXpp+6osoig=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha1-sPLtNWuhvhQo7K8Sj/iiTwKDCuA=", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.12.1.tgz", + "integrity": "sha1-B2QPKIZ+0W+VEcmciIKR9WCSHPo=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.12.1.tgz", + "integrity": "sha1-LsdiWMcP4IxtfaFUADpIBiDrpmc=", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.12.1.tgz", + "integrity": "sha1-1zuAOiazcBfd+dO7j03Fi/uAb1c=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha1-SWA4YC2vFRSmTUPY4Xy7J1Xgw60=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.12.1.tgz?cache=0&sync_timestamp=1602801866519&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha1-MVQwCwJhhWZu67DA7X+EFf789vk=", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.12.1.tgz?cache=0&sync_timestamp=1602801780277&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha1-+kAxJFQmNseGz5tGCg/7tIqG5kg=", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.12.1.tgz?cache=0&sync_timestamp=1602799960092&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha1-Zj/qYg1ZPJPyFKRkzTmb9txoMIY=", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.12.1.tgz?cache=0&sync_timestamp=1602801867203&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha1-61ohjWscaPPWIXuPosyC/sZUeQI=", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799956689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha1-tAf1yWvg2fX4hGdJf6grMKw+h1M=", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.12.1.tgz", + "integrity": "sha1-gAc/Au4bstNlw0FkkOCFyVdZ3sA=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.1.tgz?cache=0&sync_timestamp=1602799958437&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.1.tgz", + "integrity": "sha1-TqCGlrjS5lhB0MdwZIKwSL7RBm4=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.12.1.tgz", + "integrity": "sha1-0uljsDh3FlDJIu/1k3mclthTJV0=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha1-QbyBIA1zCrtEVquLP71VN7Wa3s0=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha1-Xwoo2EL2RiKB8GqWToi6jXq0l1M=", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha1-b9/IzH7cxCs2p8EhiMZ4fIc63Ng=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha1-BLeSBX60YDif9qQZjjd2FOoee6U=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.1.tgz?cache=0&sync_timestamp=1602799951645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha1-C/nKxVUPzgz98ENCD2YdZF/cdeM=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.12.1.tgz?cache=0&sync_timestamp=1602799957708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.12.1.tgz", + "integrity": "sha1-Un+fMRvk7H/cK3m7ife/iEs+Hh4=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799951745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.12.1.tgz", + "integrity": "sha1-XCTPUN45bTDpmvyNHHAOi84PXK8=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.12.1.tgz?cache=0&sync_timestamp=1602799951964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha1-tD7ObtmnnAxxEZ9XbSme8J2UKEM=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.1.tgz?cache=0&sync_timestamp=1602799953235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.1.tgz", + "integrity": "sha1-nKa+ND1CUS+8LmgjaoKuZLx694o=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.1.tgz?cache=0&sync_timestamp=1602799952036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha1-UjK5+BzLBwcLfDw2xnobePGEVwk=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799957036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha1-zJZh9hOQ21xl4/66zO/Vxqw/rss=", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.1.tgz?cache=0&sync_timestamp=1602801753046&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.1.tgz", + "integrity": "sha1-nH5cqCoZ78hlOEu0mJFI0u5desI=", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.1", + "core-js-compat": "^3.6.2", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz?cache=0&sync_timestamp=1598549925898&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.4.tgz", + "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.18.3", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", + "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/traverse": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.1.tgz?cache=0&sync_timestamp=1602801751997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.1.tgz", + "integrity": "sha1-lBOV4MXMhtXT51yqCV05JFJvDB4=", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.1", + "@babel/types": "^7.12.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/types": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", + "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1603524710662&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", + "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=", + "deprecated": "Moved to 'npm install @sideway/address'", + "dev": true + }, + "node_modules/@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz", + "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=", + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "dev": true + }, + "node_modules/@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz?cache=0&sync_timestamp=1599008894201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz", + "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=", + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "dev": true + }, + "node_modules/@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz?cache=0&sync_timestamp=1603524515155&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz", + "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", + "deprecated": "Switch to 'npm install joi'", + "dev": true, + "dependencies": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "node_modules/@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz", + "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=", + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "dev": true, + "dependencies": { + "@hapi/hoek": "^8.3.0" + } + }, + "node_modules/@iktakahiro/markdown-it-katex": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/@iktakahiro/markdown-it-katex/download/@iktakahiro/markdown-it-katex-4.0.1.tgz", + "integrity": "sha1-Zf+dEq/UwLdoTdJHq+fOQvwe2sM=", + "dependencies": { + "katex": "^0.12.0" + } + }, + "node_modules/@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg=", + "dev": true, + "dependencies": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "dev": true, + "dependencies": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@npmcli/move-file/download/@npmcli/move-file-1.1.2.tgz?cache=0&sync_timestamp=1613068732526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.1.2.tgz", + "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1599054104695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.12", + "resolved": "https://registry.npm.taobao.org/@polka/url/download/@polka/url-1.0.0-next.12.tgz", + "integrity": "sha1-Qx7DQqcZViL4Zoi72oLjFmzoyyg=", + "dev": true + }, + "node_modules/@soda/friendly-errors-webpack-plugin": { + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz", + "integrity": "sha1-cG9kvLSouWQrSK46zkRMcDNNYV0=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687070184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/@soda/get-current-script/download/@soda/get-current-script-1.0.2.tgz", + "integrity": "sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc=", + "dev": true + }, + "node_modules/@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz", + "integrity": "sha1-M2utwb7sudrMOL6izzKt9ieoQho=", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz", + "integrity": "sha1-BoWzxH6zAG/+0RfN1VFkth+AU48=", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.33", + "resolved": "https://registry.npm.taobao.org/@types/connect/download/@types/connect-3.4.33.tgz?cache=0&sync_timestamp=1596837850490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect%2Fdownload%2F%40types%2Fconnect-3.4.33.tgz", + "integrity": "sha1-MWEMkB7KVzuHE8MzCrxua59YhUY=", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/@types/connect-history-api-fallback/download/@types/connect-history-api-fallback-1.3.3.tgz", + "integrity": "sha1-R3K3m4tTGF8PTJ3qsJI2uvdu47Q=", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.8", + "resolved": "https://registry.npm.taobao.org/@types/express/download/@types/express-4.17.8.tgz?cache=0&sync_timestamp=1598966318122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.8.tgz", + "integrity": "sha1-PfQpMpMxfmHGATfSc6LpbNjV8no=", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.13", + "resolved": "https://registry.npm.taobao.org/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.13.tgz?cache=0&sync_timestamp=1600734282121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress-serve-static-core%2Fdownload%2F%40types%2Fexpress-serve-static-core-4.17.13.tgz", + "integrity": "sha1-2a8CXpJfyLCJvjdCO40erHgb4IQ=", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz?cache=0&sync_timestamp=1596838206290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz", + "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/highlight.js": { + "version": "10.1.0", + "resolved": "https://registry.npm.taobao.org/@types/highlight.js/download/@types/highlight.js-10.1.0.tgz", + "integrity": "sha1-ibsMICmX16kKB70uwffQDFa7kLQ=", + "deprecated": "This is a stub types definition. highlight.js provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "highlight.js": "*" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.4", + "resolved": "https://registry.npm.taobao.org/@types/http-proxy/download/@types/http-proxy-1.17.4.tgz?cache=0&sync_timestamp=1596839386031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy%2Fdownload%2F%40types%2Fhttp-proxy-1.17.4.tgz", + "integrity": "sha1-58kuPb4+E6p5lED/QubToXqdBFs=", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-proxy-middleware": { + "version": "0.19.3", + "resolved": "https://registry.npm.taobao.org/@types/http-proxy-middleware/download/@types/http-proxy-middleware-0.19.3.tgz?cache=0&sync_timestamp=1596839386511&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy-middleware%2Fdownload%2F%40types%2Fhttp-proxy-middleware-0.19.3.tgz", + "integrity": "sha1-suuW+8D5rHJQtdnExTqt4ElJfQM=", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/http-proxy": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.6.tgz?cache=0&sync_timestamp=1598910403749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.6.tgz", + "integrity": "sha1-9MfsQ+gbMZqYFRFQMXCfJph4kfA=" + }, + "node_modules/@types/mime": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/@types/mime/download/@types/mime-2.0.3.tgz", + "integrity": "sha1-yJO3NyHbc2mZQ7/DZTsd63+qSjo=", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&sync_timestamp=1596839141589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@types/minimist/download/@types/minimist-1.2.0.tgz", + "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.14.6", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.6.tgz?cache=0&sync_timestamp=1603910973093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.6.tgz", + "integrity": "sha1-FG09pXs8Y2zA0XaTls4c+omRFH8=", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1596839391651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz", + "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=", + "dev": true + }, + "node_modules/@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz", + "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.5", + "resolved": "https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.5.tgz?cache=0&sync_timestamp=1600295893721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fqs%2Fdownload%2F%40types%2Fqs-6.9.5.tgz", + "integrity": "sha1-Q0cRvdSete5p2QwdZ8NUqajssYs=", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@types/range-parser/download/@types/range-parser-1.2.3.tgz", + "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=", + "dev": true + }, + "node_modules/@types/serve-static": { + "version": "1.13.6", + "resolved": "https://registry.npm.taobao.org/@types/serve-static/download/@types/serve-static-1.13.6.tgz?cache=0&sync_timestamp=1603136972762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fserve-static%2Fdownload%2F%40types%2Fserve-static-1.13.6.tgz", + "integrity": "sha1-hmsbjexBw24ox75ArHJbiL5DxcE=", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz", + "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", + "dev": true + }, + "node_modules/@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.6.tgz", + "integrity": "sha1-qcpLcKGLJwzLK8Cqr+/R1Ia36nQ=", + "dev": true + }, + "node_modules/@types/uglify-js": { + "version": "3.11.1", + "resolved": "https://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.11.1.tgz?cache=0&sync_timestamp=1603833602967&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.11.1.tgz", + "integrity": "sha1-l/8w5hoKpodsJwtfU4c34tarjOs=", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/@types/uglify-js/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/webpack": { + "version": "4.41.24", + "resolved": "https://registry.npm.taobao.org/@types/webpack/download/@types/webpack-4.41.24.tgz?cache=0&sync_timestamp=1603911290982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.24.tgz", + "integrity": "sha1-dbZkq+PVvP5U5kMTyjtD5JhVBCI=", + "dev": true, + "dependencies": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + } + }, + "node_modules/@types/webpack-dev-server": { + "version": "3.11.1", + "resolved": "https://registry.npm.taobao.org/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.1.tgz?cache=0&sync_timestamp=1604039710913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-dev-server%2Fdownload%2F%40types%2Fwebpack-dev-server-3.11.1.tgz", + "integrity": "sha1-+PTawdoibVML0VodXcNLI7p2bMs=", + "dev": true, + "dependencies": { + "@types/connect-history-api-fallback": "*", + "@types/express": "*", + "@types/http-proxy-middleware": "*", + "@types/serve-static": "*", + "@types/webpack": "*" + } + }, + "node_modules/@types/webpack-sources": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-2.0.0.tgz", + "integrity": "sha1-CCFqub4r4uFJm+rrxNRpzsgegqc=", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + } + }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.2.1.tgz?cache=0&sync_timestamp=1602851122331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-jsx-merge-props%2Fdownload%2F%40vue%2Fbabel-helper-vue-jsx-merge-props-1.2.1.tgz", + "integrity": "sha1-MWJKelBfsU2h1YAjclpMXycOaoE=", + "dev": true + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-transform-on/download/@vue/babel-helper-vue-transform-on-1.0.0-rc.2.tgz", + "integrity": "sha1-ckY0H2ZufG5lsT2kIOLOhXFPu8o=", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-jsx/download/@vue/babel-plugin-jsx-1.0.0-rc.3.tgz?cache=0&sync_timestamp=1600074484657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-jsx-1.0.0-rc.3.tgz", + "integrity": "sha1-q0d+6Vx2T75ohCou3dR08SLnCsY=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.0-rc.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, + "node_modules/@vue/babel-plugin-transform-vue-jsx": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.2.1.tgz?cache=0&sync_timestamp=1602851121024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-transform-vue-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-transform-vue-jsx-1.2.1.tgz", + "integrity": "sha1-ZGBGxlLC8CQnJ/NFGdkXsGQEHtc=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-plugin-transform-vue-jsx/node_modules/html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/babel-preset-app": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.8.tgz", + "integrity": "sha1-P8X1IYHbdgVOzAhWIvPLBmwkL20=", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.0", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-decorators": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.11.0", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.0", + "@vue/babel-plugin-jsx": "^1.0.0-0", + "@vue/babel-preset-jsx": "^1.1.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.6.5", + "core-js-compat": "^3.6.5", + "semver": "^6.1.0" + }, + "peerDependencies": { + "@babel/core": "*", + "core-js": "^3", + "vue": "^2 || ^3.0.0-0" + }, + "peerDependenciesMeta": { + "core-js": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/@vue/babel-preset-app/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@vue/babel-preset-jsx": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.2.4.tgz?cache=0&sync_timestamp=1603806772378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-jsx%2Fdownload%2F%40vue%2Fbabel-preset-jsx-1.2.4.tgz", + "integrity": "sha1-kv6nnbbxOwHoDToAmeKSS9y+Toc=", + "dev": true, + "dependencies": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", + "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", + "@vue/babel-sugar-functional-vue": "^1.2.2", + "@vue/babel-sugar-inject-h": "^1.2.2", + "@vue/babel-sugar-v-model": "^1.2.3", + "@vue/babel-sugar-v-on": "^1.2.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-composition-api-inject-h": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-inject-h/download/@vue/babel-sugar-composition-api-inject-h-1.2.1.tgz?cache=0&sync_timestamp=1602851211529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-inject-h-1.2.1.tgz", + "integrity": "sha1-BdbgxDJxDjdYKyvppgSbaJtvA+s=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-composition-api-render-instance": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-render-instance/download/@vue/babel-sugar-composition-api-render-instance-1.2.4.tgz?cache=0&sync_timestamp=1603806780231&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-render-instance%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-render-instance-1.2.4.tgz", + "integrity": "sha1-5MvGmXw0T6wnF4WteikyXFHWjRk=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-functional-vue": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.2.2.tgz?cache=0&sync_timestamp=1602929533577&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-functional-vue%2Fdownload%2F%40vue%2Fbabel-sugar-functional-vue-1.2.2.tgz", + "integrity": "sha1-JnqayNeHyW7b8Dzj85LEnam9Jlg=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-inject-h": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.2.2.tgz?cache=0&sync_timestamp=1602929533397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-inject-h-1.2.2.tgz", + "integrity": "sha1-1zjTyJM2fshJHcu2abAAkZKT46o=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-model": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.2.3.tgz?cache=0&sync_timestamp=1603182488740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-model%2Fdownload%2F%40vue%2Fbabel-sugar-v-model-1.2.3.tgz", + "integrity": "sha1-+h8pulHr8KoabDX6ZtU5vEWaGPI=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-model/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/babel-sugar-v-model/node_modules/html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/babel-sugar-v-on": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.2.3.tgz?cache=0&sync_timestamp=1603181872606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-on%2Fdownload%2F%40vue%2Fbabel-sugar-v-on-1.2.3.tgz", + "integrity": "sha1-NCNnF4WGpp85LwS/ujICHQKROto=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-on/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/cli-overlay": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-4.5.8.tgz?cache=0&sync_timestamp=1603102330205&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-4.5.8.tgz", + "integrity": "sha1-W3G4G9SQubWWz92nj5AVVkPgN9Q=", + "dev": true + }, + "node_modules/@vue/cli-plugin-babel": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.5.8.tgz?cache=0&sync_timestamp=1603102349671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-babel%2Fdownload%2F%40vue%2Fcli-plugin-babel-4.5.8.tgz", + "integrity": "sha1-V1ng0kxWjLFF59CzB0l85k9HLLA=", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.0", + "@vue/babel-preset-app": "^4.5.8", + "@vue/cli-shared-utils": "^4.5.8", + "babel-loader": "^8.1.0", + "cache-loader": "^4.1.0", + "thread-loader": "^2.1.3", + "webpack": "^4.0.0" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0-0" + } + }, + "node_modules/@vue/cli-plugin-router": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.5.8.tgz", + "integrity": "sha1-23CmnfTtyQaQdl+MJXSaaLIN2FA=", + "dev": true, + "dependencies": { + "@vue/cli-shared-utils": "^4.5.8" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0-0" + } + }, + "node_modules/@vue/cli-plugin-vuex": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.8.tgz?cache=0&sync_timestamp=1603102281094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-vuex%2Fdownload%2F%40vue%2Fcli-plugin-vuex-4.5.8.tgz", + "integrity": "sha1-gSKuk79ZMn06AGPAxtpRUToeJFY=", + "dev": true, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0-0" + } + }, + "node_modules/@vue/cli-service": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.5.8.tgz?cache=0&sync_timestamp=1603104183081&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.8.tgz", + "integrity": "sha1-n+WLx8d8USHqu5QPgOBsGNqxI+o=", + "dev": true, + "dependencies": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@soda/get-current-script": "^1.0.0", + "@types/minimist": "^1.2.0", + "@types/webpack": "^4.0.0", + "@types/webpack-dev-server": "^3.11.0", + "@vue/cli-overlay": "^4.5.8", + "@vue/cli-plugin-router": "^4.5.8", + "@vue/cli-plugin-vuex": "^4.5.8", + "@vue/cli-shared-utils": "^4.5.8", + "@vue/component-compiler-utils": "^3.1.2", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^7.4.0", + "acorn-walk": "^7.1.1", + "address": "^1.1.2", + "autoprefixer": "^9.8.6", + "browserslist": "^4.12.0", + "cache-loader": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.4", + "clipboardy": "^2.3.0", + "cliui": "^6.0.0", + "copy-webpack-plugin": "^5.1.1", + "css-loader": "^3.5.3", + "cssnano": "^4.1.10", + "debug": "^4.1.1", + "default-gateway": "^5.0.5", + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^4.2.0", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.9.0", + "minimist": "^1.2.5", + "pnp-webpack-plugin": "^1.6.4", + "portfinder": "^1.0.26", + "postcss-loader": "^3.0.0", + "ssri": "^7.1.0", + "terser-webpack-plugin": "^2.3.6", + "thread-loader": "^2.1.3", + "url-loader": "^2.2.0", + "vue-loader": "^15.9.2", + "vue-style-loader": "^4.1.2", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.8.0", + "webpack-chain": "^6.4.0", + "webpack-dev-server": "^3.11.0", + "webpack-merge": "^4.2.2" + }, + "bin": { + "vue-cli-service": "bin/vue-cli-service.js" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "vue-loader-v16": "npm:vue-loader@^16.0.0-beta.7" + }, + "peerDependencies": { + "@vue/compiler-sfc": "^3.0.0-beta.14", + "vue-template-compiler": "^2.0.0" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + }, + "less-loader": { + "optional": true + }, + "pug-plain-loader": { + "optional": true + }, + "raw-loader": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "stylus-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/@vue/cli-service/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@vue/cli-service/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vue/cli-service/node_modules/cacache": { + "version": "13.0.1", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", + "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", + "dev": true, + "dependencies": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@vue/cli-service/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687070184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@vue/cli-service/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@vue/cli-service/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true, + "optional": true + }, + "node_modules/@vue/cli-service/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/@vue/cli-service/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-service/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-service/node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "optional": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/@vue/cli-service/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-service/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vue/cli-service/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-service/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-service/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-service/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@vue/cli-service/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/cli-service/node_modules/ssri": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz", + "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@vue/cli-service/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1606205035829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "optional": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-service/node_modules/terser-webpack-plugin": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1603881713213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz", + "integrity": "sha1-iUdkoZsHQ/L3BOfCqEjFKDppZyQ=", + "dev": true, + "dependencies": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.3.1", + "jest-worker": "^25.4.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.6.12", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/@vue/cli-service/node_modules/vue-loader-v16": { + "name": "vue-loader", + "version": "16.1.2", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.1.2.tgz?cache=0&sync_timestamp=1608188009078&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.1.2.tgz", + "integrity": "sha1-XAO2xQ0qX5g8fOuhXFDXjKKymPQ=", + "dev": true, + "optional": true, + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + } + }, + "node_modules/@vue/cli-service/node_modules/webpack-bundle-analyzer": { + "version": "3.9.0", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1611221513167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.19", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 6.14.4" + } + }, + "node_modules/@vue/cli-service/node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1617175602652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/cli-service/node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/cli-service/node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@vue/cli-service/node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@vue/cli-service/node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/cli-service/node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1611393963969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/cli-shared-utils": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.8.tgz?cache=0&sync_timestamp=1603102380635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.8.tgz", + "integrity": "sha1-1FQwaqpRDmZqNLFEr8gYMPwjrMk=", + "dev": true, + "dependencies": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.0.tgz?cache=0&sync_timestamp=1595427628913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcomponent-compiler-utils%2Fdownload%2F%40vue%2Fcomponent-compiler-utils-3.2.0.tgz", + "integrity": "sha1-j4UYLO7Sjps8dTE95mn4MWbRHl0=", + "dev": true, + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.14", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427567713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/@vue/preload-webpack-plugin": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fpreload-webpack-plugin%2Fdownload%2F%40vue%2Fpreload-webpack-plugin-1.1.2.tgz", + "integrity": "sha1-zrkktOyzucQ4ccekKaAvhCPmIas=", + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "html-webpack-plugin": ">=2.26.0", + "webpack": ">=4.0.0" + } + }, + "node_modules/@vue/web-component-wrapper": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz", + "integrity": "sha1-uw5G8VhafiibTuYGfcxaauYvHdE=", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz", + "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz", + "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz", + "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=" + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz", + "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz", + "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=" + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz", + "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz", + "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz", + "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz", + "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz", + "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz", + "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz", + "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz", + "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz", + "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz", + "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz", + "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=" + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", + "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.2.tgz", + "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1597235855275&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz", + "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz", + "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", + "dev": true, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1598049717562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1603561547443&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", + "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1603566069729&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz?cache=0&sync_timestamp=1593529711167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz", + "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.2.0.tgz?cache=0&sync_timestamp=1603836487323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farch%2Fdownload%2Farch-2.2.0.tgz", + "integrity": "sha1-G8R4GPMFdk8jqzMGsL/AhsWinRE=", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1598649734444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", + "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", + "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz", + "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", + "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", + "devOptional": true + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", + "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", + "dev": true + }, + "node_modules/async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1596623572478&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz", + "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=", + "dependencies": { + "babel-runtime": "6.x" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz?cache=0&sync_timestamp=1601167582745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz", + "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.10.1", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.10.1.tgz?cache=0&sync_timestamp=1597236947743&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.1.tgz", + "integrity": "sha1-4eguTz6Zniz9YbFhKA0WoRH4ZCg=", + "dev": true + }, + "node_modules/axios": { + "version": "0.21.0", + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.21.0.tgz", + "integrity": "sha1-Jt8IiAOiNQ3/LCf5b++Z/klEKso=", + "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410", + "dependencies": { + "follow-redirects": "^1.10.0" + } + }, + "node_modules/babel-helper-vue-jsx-merge-props": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY=" + }, + "node_modules/babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.1.0.tgz?cache=0&sync_timestamp=1584715910722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz", + "integrity": "sha1-xhHVESvVIJq+i5+oTD5NolJ18cM=", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 6.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmmirror.com/core-js/download/core-js-2.6.12.tgz", + "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", + "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1595456311465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", + "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", + "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bfj": { + "version": "6.1.2", + "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", + "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz", + "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", + "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=" + }, + "node_modules/bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.3.tgz", + "integrity": "sha1-vsoAVAj2Quvr6oCwQrTRjSrA7ms=" + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/body-scroll-lock": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/body-scroll-lock/download/body-scroll-lock-2.7.1.tgz", + "integrity": "sha1-yvP5yRdzrx/7aEzWbtkTe1tzcBQ=" + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/bonjour/node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", + "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz?cache=0&sync_timestamp=1601898189928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browser-detect": { + "version": "0.2.28", + "resolved": "https://registry.npm.taobao.org/browser-detect/download/browser-detect-0.2.28.tgz", + "integrity": "sha1-Voj8IvY4OQYU6+pGRkg0A/sg6/s=", + "dependencies": { + "core-js": "^2.5.7" + } + }, + "node_modules/browser-detect/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1606326891071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz", + "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", + "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", + "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", + "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", + "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dependencies": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-rsa/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz", + "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", + "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.14.5", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.14.5.tgz?cache=0&sync_timestamp=1600993129773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.5.tgz", + "integrity": "sha1-HHUUYaEC3cYOQJk2ObcJvn8sQBU=", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001135", + "electron-to-chromium": "^1.3.571", + "escalade": "^3.1.0", + "node-releases": "^1.1.61" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1603834228181&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", + "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", + "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", + "dev": true + }, + "node_modules/buffer-json": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/buffer-json/download/buffer-json-2.0.0.tgz", + "integrity": "sha1-9z4TseQvGW/i/WfQAcfXEH7dfCM=", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", + "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cache-loader": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-4.1.0.tgz", + "integrity": "sha1-mUjK41OuwKH8ser9ojAIFuyFOH4=", + "dev": true, + "dependencies": { + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + }, + "engines": { + "node": ">= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/cache-loader/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/cache-loader/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-loader/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-loader/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cache-loader/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-loader/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-loader/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-loader/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-6.2.0.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-6.2.0.tgz", + "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", + "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001154", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001154.tgz?cache=0&sync_timestamp=1604001843079&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001154.tgz", + "integrity": "sha1-87vCRc5V5MHNIPpzGwl4gBgafxc=", + "dev": true + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687070184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-types": { + "version": "8.0.3", + "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz", + "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.3.tgz?cache=0&sync_timestamp=1602585381749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.3.tgz", + "integrity": "sha1-wd84IxRI5FykrFiObHlXO6alfVs=", + "optional": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "optional": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/chokidar/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", + "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", + "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz", + "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.4.tgz", + "integrity": "sha1-CYy2Qs8X9CrcHBFF4H+WDsTXUis=", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "highlight.js": "^9.6.0", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^5.1.1", + "yargs": "^15.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cli-highlight/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1591687070184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "node_modules/cli-highlight/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/highlight.js": { + "version": "9.18.3", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.3.tgz", + "integrity": "sha1-oaCiAo1eMUniOA+Khl7oUWcD1jQ=", + "deprecated": "Version no longer supported. Upgrade to @latest", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cli-highlight/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.5.0.tgz?cache=0&sync_timestamp=1602505826257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.5.0.tgz", + "integrity": "sha1-EnY+RyUb+VHLdcIB36WP8byy0Ec=", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz?cache=0&sync_timestamp=1599054235610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.6.tgz", + "integrity": "sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y=", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz", + "integrity": "sha1-PCkDZQxo5GqRs4iYW8J3QofbopA=", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clipboardy/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz", + "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz?cache=0&sync_timestamp=1602861367442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", + "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", + "dev": true, + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/codemirror": { + "version": "5.59.3", + "resolved": "https://registry.npm.taobao.org/codemirror/download/codemirror-5.59.3.tgz", + "integrity": "sha1-I37DrA45/uUNbxphlsgXKnx8K6E=" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz?cache=0&sync_timestamp=1602228883047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.3.tgz", + "integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-string": { + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.4.tgz?cache=0&sync_timestamp=1602228106182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-string%2Fdownload%2Fcolor-string-1.5.4.tgz", + "integrity": "sha1-3VHNJc/ulT0Tj+QAI3LMPQ5QTLY=", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955804228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz", + "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1603599636161&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", + "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz", + "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-5.0.1.tgz?cache=0&sync_timestamp=1610367177662&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-5.0.1.tgz", + "integrity": "sha1-MWwaTkzMlFEKl4yWf8FDWB0eNkM=", + "dependencies": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/compression-webpack-plugin/node_modules/cacache": { + "version": "15.0.6", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-15.0.6.tgz?cache=0&sync_timestamp=1616431156987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.6.tgz", + "integrity": "sha1-ZajFgP2hW1kVD7dr8/Oo5F1YMJk=", + "dependencies": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/compression-webpack-plugin/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", + "engines": { + "node": ">=10" + } + }, + "node_modules/compression-webpack-plugin/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/compression-webpack-plugin/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1599054261724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/compression-webpack-plugin/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compression-webpack-plugin/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/compression-webpack-plugin/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-4.0.0.tgz?cache=0&sync_timestamp=1599054263097&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compression-webpack-plugin/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1599054104695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/compression-webpack-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/compression-webpack-plugin/node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826295004&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", + "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", + "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=" + }, + "node_modules/consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz?cache=0&sync_timestamp=1599596647062&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.15.1.tgz", + "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz", + "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1573003637425&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", + "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz?cache=0&sync_timestamp=1587525865178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz", + "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz", + "integrity": "sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI=", + "dev": true, + "dependencies": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1591083783605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/copy-webpack-plugin/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/core-js": { + "version": "3.6.5", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz", + "integrity": "sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo=", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.5.tgz", + "integrity": "sha1-KlHZpOJd/W5pAlGqgfmePAVIHxw=", + "dev": true, + "dependencies": { + "browserslist": "^4.8.5", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310819353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1598129182781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", + "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", + "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", + "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", + "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1603749642748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", + "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1602609200442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz", + "integrity": "sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU=", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/css-loader/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz", + "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", + "dev": true + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1603806516773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", + "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", + "dev": true, + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1602571001952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz", + "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", + "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmmirror.com/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" + }, + "node_modules/cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz?cache=0&sync_timestamp=1603212729205&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano%2Fdownload%2Fcssnano-4.1.10.tgz", + "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz?cache=0&sync_timestamp=1603212741552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.7.tgz", + "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/csso": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.1.0.tgz?cache=0&sync_timestamp=1603840362568&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.1.0.tgz", + "integrity": "sha1-HTEZPvqZuHqmutbAzvFV5UPQnos=", + "dev": true, + "dependencies": { + "css-tree": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0.tgz?cache=0&sync_timestamp=1603806516773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0.tgz", + "integrity": "sha1-IZk/onDXQmQqkECaLAyzrAKYrfY=", + "dev": true, + "dependencies": { + "mdn-data": "2.0.12", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.12", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.12.tgz?cache=0&sync_timestamp=1602987212845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.12.tgz", + "integrity": "sha1-u7ZY0Is49XS7uI97g3A979zEaEQ=", + "dev": true + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073454623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dayjs": { + "version": "1.9.6", + "resolved": "https://registry.npm.taobao.org/dayjs/download/dayjs-1.9.6.tgz?cache=0&sync_timestamp=1604990508741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdayjs%2Fdownload%2Fdayjs-1.9.6.tgz", + "integrity": "sha1-bwx312rB/2NyDdEZfly4e2eUPXA=" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=" + }, + "node_modules/debug": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.2.0.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz", + "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz", + "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz?cache=0&sync_timestamp=1572279720382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz", + "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "5.0.5", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz", + "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=", + "dev": true, + "dependencies": { + "execa": "^3.3.0" + }, + "engines": { + "node": "^8.12.0 || >=9.7.0" + } + }, + "node_modules/default-gateway/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1603882912233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz", + "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": "^8.12.0 || >=9.7.0" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056502934&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1596095644798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz?cache=0&sync_timestamp=1597005345612&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fonetime%2Fdownload%2Fonetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz", + "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076882347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", + "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1591083783605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", + "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", + "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=" + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", + "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", + "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", + "dev": true + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", + "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + }, + "node_modules/dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", + "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", + "dev": true, + "dependencies": { + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", + "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", + "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz", + "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.2.tgz?cache=0&sync_timestamp=1600028495728&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.2.tgz", + "integrity": "sha1-87blSSAeRvWItZRj3XcYcTH+aXE=", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", + "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&sync_timestamp=1600028495728&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", + "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz", + "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/dompurify": { + "version": "2.3.6", + "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.3.6.tgz", + "integrity": "sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg==" + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz", + "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-8.2.0.tgz", + "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", + "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", + "dev": true + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", + "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", + "dev": true + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", + "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/easy-stack": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.0.tgz", + "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/echarts": { + "version": "4.9.0", + "resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.9.0.tgz?cache=0&sync_timestamp=1605024811446&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fecharts%2Fdownload%2Fecharts-4.9.0.tgz", + "integrity": "sha1-qbm6oD8Doqcx5jQMVb77V6nhNH0=", + "dependencies": { + "zrender": "4.3.2" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/ejs": { + "version": "2.7.4", + "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz?cache=0&sync_timestamp=1597678506855&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz", + "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", + "dev": true, + "hasInstallScript": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.584", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.584.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.584.tgz", + "integrity": "sha1-UGz3uliVqvqCQYdqsChlS2H9nOs=", + "dev": true + }, + "node_modules/element-ui": { + "version": "2.15.6", + "resolved": "https://registry.nlark.com/element-ui/download/element-ui-2.15.6.tgz", + "integrity": "sha1-yWCa3TWvWmhqS3aF3B11fHXgHfM=", + "dependencies": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + }, + "peerDependencies": { + "vue": "^2.5.17" + } + }, + "node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz?cache=0&sync_timestamp=1592492805287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.3.tgz", + "integrity": "sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y=", + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1603212180491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz", + "integrity": "sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY=", + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", + "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.1.0.tgz?cache=0&sync_timestamp=1602897029273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.1.0.tgz", + "integrity": "sha1-mS0xKc999ocLlsV4WMJJoSD4uLU=", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", + "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz", + "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", + "dev": true, + "dependencies": { + "stackframe": "^1.1.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0-next.1.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.18.0-next.1.tgz", + "integrity": "sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg=", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567224085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1599933651660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", + "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz?cache=0&sync_timestamp=1598898255610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596642998635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596642998635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz", + "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz", + "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=", + "dev": true + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.2.0.tgz?cache=0&sync_timestamp=1595422595227&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.2.0.tgz", + "integrity": "sha1-k7h8GPjvzUICpGGuxN/AVWtjk3k=", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", + "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", + "dev": true, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", + "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1603882912233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", + "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599697571&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=" + }, + "node_modules/fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz", + "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", + "dev": true, + "dependencies": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", + "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=" + }, + "node_modules/file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1603816843418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz", + "integrity": "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=", + "dev": true, + "dependencies": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" + }, + "engines": { + "node": ">= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", + "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", + "optional": true + }, + "node_modules/filesize": { + "version": "3.6.1", + "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&sync_timestamp=1582340569604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz", + "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", + "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.0.tgz?cache=0&sync_timestamp=1597057976909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz", + "integrity": "sha1-tC6Nk6Kn7qXtiGM2dtZZe8jjhNs=", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + } + }, + "node_modules/font-awesome": { + "version": "4.7.0", + "resolved": "https://registry.npm.taobao.org/font-awesome/download/font-awesome-4.7.0.tgz", + "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=", + "engines": { + "node": ">=0.10.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.3.tgz", + "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz?cache=0&sync_timestamp=1603829773003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.2.tgz", + "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz?cache=0&sync_timestamp=1597056502934&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1603664378253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "9.2.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz?cache=0&sync_timestamp=1591083783605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-9.2.0.tgz", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz", + "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=" + }, + "node_modules/gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", + "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", + "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082584903&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz", + "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", + "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz", + "integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", + "dev": true + }, + "node_modules/highlight.js": { + "version": "10.3.2", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-10.3.2.tgz", + "integrity": "sha1-E1/TYZoAw8u4tM1tvHjVa/y8RvE=", + "deprecated": "Potential vulnerability. Please upgrade to @latest", + "engines": { + "node": "*" + } + }, + "node_modules/highlight.js-async-webpack": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/highlight.js-async-webpack/-/highlight.js-async-webpack-1.0.4.tgz", + "integrity": "sha512-IC0AwUgNr7BU8pqheaCEvOQvOtIZwO3I4rtbmT489Ndz8loE31IRmBmT6C4qDCbfZjzNO+k2w3VceZjTQ3JQ8Q==" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", + "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1602803832496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", + "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", + "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", + "dev": true + }, + "node_modules/html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz", + "integrity": "sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ=", + "dev": true + }, + "node_modules/html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", + "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", + "dev": true, + "dependencies": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "bin": { + "html-minifier": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-minifier/node_modules/commander": { + "version": "2.17.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1603599636161&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz", + "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz", + "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1603664396975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "deprecated": "3.x is no longer supported", + "dev": true, + "dependencies": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/html-webpack-plugin/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/html-webpack-plugin/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/html-webpack-plugin/node_modules/loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "dependencies": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "node_modules/html-webpack-plugin/node_modules/util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz", + "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1603668161350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1602897029273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "dev": true + }, + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz", + "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", + "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868452638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1594184250387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&sync_timestamp=1602526927264&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz", + "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", + "dev": true, + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838208740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz", + "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "node_modules/ignore": { + "version": "3.3.10", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "dev": true + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1596563037835&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", + "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/internal-ip/node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz", + "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", + "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", + "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1588707106955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, + "node_modules/is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.2.tgz?cache=0&sync_timestamp=1600719276620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.2.tgz", + "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.0.0.tgz?cache=0&sync_timestamp=1603133391687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-core-module%2Fdownload%2Fis-core-module-2.0.0.tgz", + "integrity": "sha1-WFMbcK7R23wOjU6xoKLR3dZL0S0=", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729165697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz", + "integrity": "sha1-QSWojkTkUNOE4JBH7eca3C0UQVY=", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "devOptional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", + "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz?cache=0&sync_timestamp=1602541451286&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-obj%2Fdownload%2Fis-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.1.tgz?cache=0&sync_timestamp=1596555640677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.1.tgz", + "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-svg%2Fdownload%2Fis-svg-3.0.0.tgz", + "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", + "dev": true, + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/javascript-stringify": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.0.1.tgz", + "integrity": "sha1-bvNYA1MQ411mfGde1j0+t8GqGeU=", + "dev": true + }, + "node_modules/jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz?cache=0&sync_timestamp=1603442917089&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.5.0.tgz", + "integrity": "sha1-JhHQcbec6g9D7lej0RhZOsFUfbE=", + "dev": true, + "dependencies": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jquery": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/jquery/download/jquery-3.5.1.tgz", + "integrity": "sha1-17TQjhv9uGrS8aPQOeoXMEcXq7U=" + }, + "node_modules/js-message": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz", + "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/js-queue": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.0.tgz", + "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", + "dev": true, + "dependencies": { + "easy-stack": "^1.0.0" + }, + "engines": { + "node": ">=1.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1586796260005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz", + "integrity": "sha1-p6NBcPJqIbsWJCTYray0ETpp5II=", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891232110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz?cache=0&sync_timestamp=1599064788298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-even-better-errors%2Fdownload%2Fjson-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1599333856086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", + "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz", + "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/katex": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/katex/download/katex-0.12.0.tgz", + "integrity": "sha1-L7HGZdvSsEPtz4ofXFVfRr6qDLk=", + "dependencies": { + "commander": "^2.19.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/keycode": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/keycode/download/keycode-2.2.0.tgz", + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", + "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/launch-editor": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz", + "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=", + "dev": true, + "dependencies": { + "chalk": "^2.3.0", + "shell-quote": "^1.6.1" + } + }, + "node_modules/launch-editor-middleware": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz", + "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=", + "dev": true, + "dependencies": { + "launch-editor": "^2.2.1" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1601450715716&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", + "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", + "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=", + "dev": true + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "dev": true + }, + "node_modules/lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz", + "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz?cache=0&sync_timestamp=1587898912367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-symbols%2Fdownload%2Flog-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/loglevel": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz", + "integrity": "sha1-coFmhVp0DVnTjbAc9G8ELKoEG7A=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-loglevel?utm_medium=referral&utm_source=npm_fund" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427567713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mavon-editor": { + "version": "2.9.1", + "resolved": "https://registry.npmmirror.com/mavon-editor/-/mavon-editor-2.9.1.tgz", + "integrity": "sha512-N42ZBBVjDOOmwwBKRLytItMGG9bR8KBZN4ZI8sxpHh3dqL6SF5HNhzn/sVHDctp9vxphO930a3zu4GFZWQwZ1Q==", + "dependencies": { + "highlight.js": "^9.11.0", + "highlight.js-async-webpack": "^1.0.4", + "xss": "^1.0.6" + } + }, + "node_modules/mavon-editor/node_modules/highlight.js": { + "version": "9.18.5", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-9.18.5.tgz", + "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==", + "deprecated": "Support has ended for 9.x series. Upgrade to @latest", + "hasInstallScript": true, + "engines": { + "node": "*" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", + "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1602987212845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz", + "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz", + "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", + "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + }, + "node_modules/mime": { + "version": "2.4.6", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.6.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz", + "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz?cache=0&sync_timestamp=1600831210195&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz", + "integrity": "sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz", + "integrity": "sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8=", + "dev": true, + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz?cache=0&sync_timestamp=1596095644798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz?cache=0&sync_timestamp=1603807566472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54=", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.4.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", + "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" + }, + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz", + "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz?cache=0&sync_timestamp=1595998621838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.2.tgz", + "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz", + "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=", + "engines": { + "node": "*" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", + "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/muse-ui": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/muse-ui/download/muse-ui-3.0.2.tgz", + "integrity": "sha1-8pLooGPWJdNbHc4bFQS8DMzXjmU=", + "dependencies": { + "body-scroll-lock": "^2.6.1", + "dayjs": "^1.8.2", + "keycode": "^2.1.9", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0" + }, + "peerDependencies": { + "vue": "^2.5.0" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", + "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591684976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz", + "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317447342&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1576721537540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "dev": true, + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010773454&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz", + "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-ipc": { + "version": "9.1.1", + "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz", + "integrity": "sha1-TiRe1pOOZRAOWV68XcNLFujdXWk=", + "dev": true, + "dependencies": { + "event-pubsub": "4.3.0", + "js-message": "1.0.5", + "js-queue": "2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", + "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "node_modules/node-releases": { + "version": "1.1.65", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.65.tgz", + "integrity": "sha1-UtlXkXa9YPI+ugXEQ4WD80GUS4E=", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1602547447569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz", + "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz", + "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz?cache=0&sync_timestamp=1587262530340&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnprogress%2Fdownload%2Fnprogress-0.2.0.tgz", + "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", + "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1571657171505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.8.0.tgz?cache=0&sync_timestamp=1592545149361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz", + "integrity": "sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA=", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.3.tgz?cache=0&sync_timestamp=1601502788762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.3.tgz", + "integrity": "sha1-LjueZVYBN0Ve471irsTZCi6hzIE=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.1.tgz?cache=0&sync_timestamp=1599844927493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.1.tgz", + "integrity": "sha1-MDhnpmbN1Bk27N7fsfjz4ypHjN0=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz", + "integrity": "sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", + "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", + "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz?cache=0&sync_timestamp=1597005345612&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fonetime%2Fdownload%2Fonetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/open": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz", + "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz?cache=0&sync_timestamp=1598733244715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.2.tgz", + "integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz", + "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz?cache=0&sync_timestamp=1599424857800&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-3.4.0.tgz", + "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", + "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559856635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz", + "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", + "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=" + }, + "node_modules/papaparse": { + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/papaparse/download/papaparse-5.3.0.tgz", + "integrity": "sha1-qxcC/rlueatDCWUvNtuVNlY60Fo=" + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", + "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz?cache=0&sync_timestamp=1597167309380&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.6.tgz", + "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.1.0.tgz?cache=0&sync_timestamp=1598129182781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.1.0.tgz", + "integrity": "sha1-+WCIzfJKj6qa6poAny2dlCyZlkY=", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz?cache=0&sync_timestamp=1595849263958&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-5.1.1.tgz?cache=0&sync_timestamp=1596089818598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5-htmlparser2-tree-adapter%2Fdownload%2Fparse5-htmlparser2-tree-adapter-5.1.1.tgz", + "integrity": "sha1-6MdD1OkhlNUpPs3isIvjHmdGHLw=", + "dev": true, + "dependencies": { + "parse5": "^5.1.1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/particles.js": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/particles.js/download/particles.js-2.0.0.tgz", + "integrity": "sha1-IThsQyjWx/lngKIB6W7t/AnHNvY=" + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", + "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "devOptional": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz", + "integrity": "sha1-y4cksPramEWWhW0abrr9NYRlS5Q=", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz?cache=0&sync_timestamp=1584790434095&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", + "optional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&sync_timestamp=1593529697659&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha1-yXEaxNxIpoXauvyG+Lbdn434QUk=", + "dev": true, + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmmirror.com/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1" + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz?cache=0&sync_timestamp=1596018176291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.28.tgz", + "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.35.tgz?cache=0&sync_timestamp=1603496056144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1601732630249&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", + "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", + "dev": true, + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz?cache=0&sync_timestamp=1603212729528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-colormin%2Fdownload%2Fpostcss-colormin-4.0.3.tgz", + "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1603212729674&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz", + "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1603214702204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-discard-comments-4.0.2.tgz", + "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1603214703212&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz?cache=0&sync_timestamp=1603212724216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-empty%2Fdownload%2Fpostcss-discard-empty-4.0.1.tgz", + "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz?cache=0&sync_timestamp=1603212724307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-overridden%2Fdownload%2Fpostcss-discard-overridden-4.0.1.tgz", + "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1601607876353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz", + "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", + "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1603212724836&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-4.0.11.tgz", + "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", + "dev": true, + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1603212724951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz", + "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz?cache=0&sync_timestamp=1603212725064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-font-values%2Fdownload%2Fpostcss-minify-font-values-4.0.2.tgz", + "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1603212725189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", + "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz?cache=0&sync_timestamp=1603212725335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-params%2Fdownload%2Fpostcss-minify-params-4.0.2.tgz", + "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1603212725451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz", + "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz?cache=0&sync_timestamp=1602588245463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587568476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A=", + "dev": true, + "dependencies": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz?cache=0&sync_timestamp=1602593260387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.2.0.tgz", + "integrity": "sha1-OFyuATzHdD9afXYC0Qc6iequYu4=", + "dev": true, + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz?cache=0&sync_timestamp=1602586230505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-3.0.0.tgz", + "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=", + "dev": true, + "dependencies": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1603212725539&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-normalize-charset-4.0.1.tgz", + "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&sync_timestamp=1603214719221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&sync_timestamp=1603212743465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-positions%2Fdownload%2Fpostcss-normalize-positions-4.0.2.tgz", + "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1603212744307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1603212744390&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-normalize-string-4.0.2.tgz", + "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", + "dev": true, + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz?cache=0&sync_timestamp=1603212744477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-timing-functions%2Fdownload%2Fpostcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz?cache=0&sync_timestamp=1603212744570&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-unicode%2Fdownload%2Fpostcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz?cache=0&sync_timestamp=1603212726241&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-url%2Fdownload%2Fpostcss-normalize-url-4.0.1.tgz", + "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&sync_timestamp=1603212744791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-whitespace%2Fdownload%2Fpostcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&sync_timestamp=1603212726427&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz", + "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1603212726527&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz", + "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz?cache=0&sync_timestamp=1603214556347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-transforms%2Fdownload%2Fpostcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.4.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.4.tgz", + "integrity": "sha1-VgdaE4CgRgTDiwY+p3Z6Epr1wrM=", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz", + "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=", + "dev": true, + "dependencies": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz?cache=0&sync_timestamp=1603212891912&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-unique-selectors%2Fdownload%2Fpostcss-unique-selectors-4.0.1.tgz", + "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz", + "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", + "dev": true + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1600215482255&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", + "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.2.tgz?cache=0&sync_timestamp=1603050467792&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.2.tgz", + "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", + "dev": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz", + "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=", + "dev": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", + "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", + "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1602948828228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz?cache=0&sync_timestamp=1597686771604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.2.0.tgz", + "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", + "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz", + "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz", + "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz?cache=0&sync_timestamp=1602584331621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.5.0.tgz", + "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=", + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.1.tgz?cache=0&sync_timestamp=1591302331571&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz", + "integrity": "sha1-ytkq2Oa1kXc0hfvgWkhcr09Ffm8=", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz?cache=0&sync_timestamp=1595456311465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz", + "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=" + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1593557846694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz", + "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388141321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz", + "integrity": "sha1-erqJs8E6ZFCdq888qNn7ub31y3U=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413461940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz", + "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz", + "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz", + "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz?cache=0&sync_timestamp=1603891232110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "devOptional": true + }, + "node_modules/renderkid": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.4.tgz?cache=0&sync_timestamp=1603039762136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.4.tgz", + "integrity": "sha1-0yXlMq+yjT+Hlv/uMGvo/9b8hkw=", + "dev": true, + "dependencies": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" + } + }, + "node_modules/renderkid/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/renderkid/node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz?cache=0&sync_timestamp=1602571001952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz", + "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/renderkid/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", + "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resize-detector": { + "version": "0.1.10", + "resolved": "https://registry.npm.taobao.org/resize-detector/download/resize-detector-0.1.10.tgz", + "integrity": "sha1-HaP5YapfkUzLz9N1LVL9Rb7raSw=" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" + }, + "node_modules/resolve": { + "version": "1.18.1", + "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.18.1.tgz?cache=0&sync_timestamp=1603313597183&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.18.1.tgz", + "integrity": "sha1-AY/LLFsgfSpkJK7jYcWiZtqPQTA=", + "dev": true, + "dependencies": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", + "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", + "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.8.tgz?cache=0&sync_timestamp=1600186189732&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.8.tgz", + "integrity": "sha1-DRcgi30Swz+OrIXEGDXyf8PYGjA=", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", + "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1599740650381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz", + "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", + "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz", + "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz", + "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", + "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", + "dev": true + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", + "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", + "dev": true + }, + "node_modules/sirv": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/sirv/download/sirv-1.0.11.tgz", + "integrity": "sha1-gcGaKSAgSFB9bsDYuokQ/aUutaQ=", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.9", + "mime": "^2.3.1", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz", + "integrity": "sha1-smooPsVi74smh7RAM6Tuzqx12FU=", + "dev": true, + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "node_modules/sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz?cache=0&sync_timestamp=1596410219305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz", + "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", + "dev": true, + "dependencies": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs-client/node_modules/faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz", + "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1602621889278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", + "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=" + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584829515586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", + "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719289626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161967473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz", + "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz", + "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.6", + "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.6.tgz?cache=0&sync_timestamp=1600284873714&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.6.tgz", + "integrity": "sha1-yAdXODwoq/cpZ0SZjLwQaui4VM4=", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz?cache=0&sync_timestamp=1585970491493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz", + "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", + "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", + "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", + "dev": true + }, + "node_modules/stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz?cache=0&sync_timestamp=1590854108362&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.2.0.tgz", + "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", + "dev": true + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1587327902535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz?cache=0&sync_timestamp=1587041194718&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-browserify%2Fdownload%2Fstream-browserify-2.0.2.tgz", + "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", + "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz", + "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", + "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=" + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.2.tgz?cache=0&sync_timestamp=1603219618123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.2.tgz", + "integrity": "sha1-bd2ah5a8cUtImjriIkaiCPN7+kY=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.2.tgz?cache=0&sync_timestamp=1603219618047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.2.tgz", + "integrity": "sha1-ItRdqBAVMJzQzdeXh+iRn8XGE+c=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz", + "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433263159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", + "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1600381197118&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", + "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-6.1.0.tgz", + "integrity": "sha1-0XJOm8wEuXexjVxXOzM6IgcimoM=", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + }, + "node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1603374108186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", + "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1603881713213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz", + "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=", + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz", + "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thread-loader": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz?cache=0&sync_timestamp=1603809339530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthread-loader%2Fdownload%2Fthread-loader-2.1.3.tgz", + "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=", + "dev": true, + "dependencies": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1604313832516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz", + "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz", + "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793741116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz", + "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", + "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=" + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1580550317222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz?cache=0&sync_timestamp=1574984066913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoposort%2Fdownload%2Ftoposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/totalist/download/totalist-1.1.0.tgz", + "integrity": "sha1-pNZaPlRlF3AePlw3pHpwrJf+Vt8=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1584646121003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", + "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=", + "dev": true + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz", + "integrity": "sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581364203962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1602623859603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz", + "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", + "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1603670355885&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz", + "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", + "dev": true, + "dependencies": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-js/node_modules/commander": { + "version": "2.19.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1603599636161&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz", + "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", + "dev": true + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglifyjs-webpack-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-2.2.0.tgz", + "integrity": "sha1-51vIDn8ZN/cllUybTFoeln6p0Nc=", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "source-map": "^0.6.1", + "uglify-js": "^3.6.0", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1599740650381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz", + "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", + "dev": true + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/uglify-js": { + "version": "3.13.3", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.13.3.tgz?cache=0&sync_timestamp=1616975983207&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.13.3.tgz", + "integrity": "sha1-znKhrRVDSOoq9h9Qkzx2zIgCJ24=", + "dev": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583945910569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1603179967633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&sync_timestamp=1602008334498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", + "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", + "devOptional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.0.tgz", + "integrity": "sha1-qnFCYd55PoqCNHp7zJznTobyhgI=", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz?cache=0&sync_timestamp=1602252626029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-2.3.0.tgz", + "integrity": "sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs=", + "dev": true, + "dependencies": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + }, + "engines": { + "node": ">= 8.9.0" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz", + "integrity": "sha1-qKg1NejACjFuQDpdtKwbm4U64ng=", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz", + "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz", + "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/util.promisify/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v-tooltip": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/v-tooltip/-/v-tooltip-2.1.3.tgz", + "integrity": "sha512-xXngyxLQTOx/yUEy50thb8te7Qo4XU6h4LZB6cvEfVd9mnysUxLEoYwGWDdqR+l69liKsy3IPkdYff3J1gAJ5w==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "lodash": "^4.17.21", + "popper.js": "^1.16.1", + "vue-resize": "^1.0.1" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1579857147055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz", + "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870717730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", + "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=" + }, + "node_modules/vue": { + "version": "2.6.12", + "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz", + "integrity": "sha1-9evU+mvShpQD4pqJau1JBEVskSM=" + }, + "node_modules/vue-avatar": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/vue-avatar/download/vue-avatar-2.3.3.tgz", + "integrity": "sha1-4SW/T0pvT5SA2gxSICAmaoYJ0qg=", + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/vue-calendar-heatmap": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/vue-calendar-heatmap/-/vue-calendar-heatmap-0.8.4.tgz", + "integrity": "sha512-Hx7OYBY1ghUIxKmFIIzpLT4XlcrwnI3WpadJEj/sKj5quoxwEuSDKmf94v0zWOHeQ/2CrB1G66geaKR/O56+OQ==", + "dependencies": { + "v-tooltip": "^2.0.0-rc.32" + } + }, + "node_modules/vue-clipboard2": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/vue-clipboard2/download/vue-clipboard2-0.3.1.tgz", + "integrity": "sha1-blUft704SImyiw2jsSKJ7WvKSJQ=", + "dependencies": { + "clipboard": "^2.0.0" + } + }, + "node_modules/vue-codemirror-lite": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/vue-codemirror-lite/download/vue-codemirror-lite-1.0.4.tgz", + "integrity": "sha1-SKXNfRfAkUUDyM2dm1a0OOScNBA=", + "dependencies": { + "codemirror": "^5.22.0" + } + }, + "node_modules/vue-cropper": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/vue-cropper/download/vue-cropper-0.5.5.tgz", + "integrity": "sha1-m9G6Vjx/qiaKvVL7KvTGwo0zyWI=" + }, + "node_modules/vue-dompurify-html": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/vue-dompurify-html/-/vue-dompurify-html-2.5.0.tgz", + "integrity": "sha512-k2ejMJmsCsREGtJFDXNwqMvvek447id5ZAOU10jm2+cmsZHXgFIEdlwDam4cU4wh0iOZM+uDmkwbVJAJtmgeVQ==", + "dependencies": { + "dompurify": "^2.3.4" + }, + "peerDependencies": { + "vue": "^2.0.0" + } + }, + "node_modules/vue-echarts": { + "version": "5.0.0-beta.0", + "resolved": "https://registry.npm.taobao.org/vue-echarts/download/vue-echarts-5.0.0-beta.0.tgz", + "integrity": "sha1-Q43UsPxczqKBcJwffGMhsFNSvfQ=", + "dependencies": { + "core-js": "^3.4.4", + "lodash": "^4.17.15", + "resize-detector": "^0.1.10" + }, + "peerDependencies": { + "echarts": "^4.1.0", + "vue": "^2.4.0" + } + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", + "dev": true + }, + "node_modules/vue-i18n": { + "version": "8.24.4", + "resolved": "https://registry.nlark.com/vue-i18n/download/vue-i18n-8.24.4.tgz", + "integrity": "sha1-sVhhTB332xg9nK3du3Ph1UAmlJI=" + }, + "node_modules/vue-katex-auto-render": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/vue-katex-auto-render/download/vue-katex-auto-render-0.1.3.tgz", + "integrity": "sha1-a2RYX9aiX6PDtwyxOiI6251CwZQ=", + "dependencies": { + "katex": "^0.11.1" + } + }, + "node_modules/vue-katex-auto-render/node_modules/katex": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/katex/download/katex-0.11.1.tgz", + "integrity": "sha512-5oANDICCTX0NqYIyAiFCCwjQ7ERu3DQG2JFHLbYOf+fXaMoH8eg/zOq5WSYJsKMi/QebW+Eh3gSM+oss1H/bww==", + "dependencies": { + "commander": "^2.19.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/vue-loader": { + "version": "15.9.4", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.4.tgz", + "integrity": "sha1-wuzvihoIAqx2xtaGZBtd3lIq4mc=", + "dev": true, + "dependencies": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "peerDependencies": { + "css-loader": "*", + "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/vue-loader/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "node_modules/vue-m-message": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/vue-m-message/download/vue-m-message-3.0.0.tgz", + "integrity": "sha1-D93EdZEovPO0iolxDl4jZoH2xpA=" + }, + "node_modules/vue-monoplasty-slide-verify": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/vue-monoplasty-slide-verify/download/vue-monoplasty-slide-verify-1.1.3.tgz", + "integrity": "sha1-cKOlaeMuwO2VthHWdUv1I8JJmjw=", + "dependencies": { + "vue": "^2.5.11" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/vue-particles": { + "version": "1.0.9", + "resolved": "https://registry.npm.taobao.org/vue-particles/download/vue-particles-1.0.9.tgz", + "integrity": "sha1-KdnMK+AVffHAqH7DuWyW8zJ5Um4=", + "dependencies": { + "particles.js": "^2.0.0", + "vue": "^2.2.6" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/vue-resize": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/vue-resize/-/vue-resize-1.0.1.tgz", + "integrity": "sha512-z5M7lJs0QluJnaoMFTIeGx6dIkYxOwHThlZDeQnWZBizKblb99GSejPnK37ZbNE/rVwDcYcHY+Io+AxdpY952w==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "vue": "^2.6.0" + } + }, + "node_modules/vue-router": { + "version": "3.4.8", + "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.8.tgz?cache=0&sync_timestamp=1603710629657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.8.tgz", + "integrity": "sha1-LAYmHTXYB1iTRwNS1C1wtih7gZQ=" + }, + "node_modules/vue-style-loader": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz", + "integrity": "sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg=", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-style-loader/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "node_modules/vue-template-compiler": { + "version": "2.6.12", + "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.12.tgz?cache=0&sync_timestamp=1597927407682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.12.tgz", + "integrity": "sha1-lH7XGWdEyKUoXr4SM/6WBDf8xX4=", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", + "dev": true + }, + "node_modules/vuex": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.5.1.tgz", + "integrity": "sha1-8bjc6mSbwlJUz09DWAgdv12hiz0=", + "peerDependencies": { + "vue": "^2.0.0" + } + }, + "node_modules/vuex-router-sync": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/vuex-router-sync/download/vuex-router-sync-5.0.0.tgz", + "integrity": "sha1-GiJcF6Hdni90rwobLGIHLpSSswU=", + "peerDependencies": { + "vue-router": "^3.0.0", + "vuex": "^3.0.0" + } + }, + "node_modules/vxe-table": { + "version": "2.9.26", + "resolved": "https://registry.npm.taobao.org/vxe-table/download/vxe-table-2.9.26.tgz", + "integrity": "sha1-0Ox2z/Mp1np4m6+Rl0yIprdq0Yo=", + "hasInstallScript": true, + "peerDependencies": { + "vue": ">= 2.6.0 < 3", + "xe-utils": ">= 2.7.10 < 3" + } + }, + "node_modules/watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.4.tgz?cache=0&sync_timestamp=1600385568268&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack%2Fdownload%2Fwatchpack-1.7.4.tgz", + "integrity": "sha1-bp2lOzyAuy1lCBiPWyAEEIZs0ws=", + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.0" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha1-mUihhmy71suCTeoTp+1pH2yN3/A=", + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + }, + "engines": { + "node": "<8.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602585381749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1602584331621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", + "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "4.44.2", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.44.2.tgz?cache=0&sync_timestamp=1603999440291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.44.2.tgz", + "integrity": "sha1-a/4rCvBVyLLR6Q7SzZNj+EEma3I=", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.4.0", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-4.4.0.tgz?cache=0&sync_timestamp=1611221513167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-4.4.0.tgz", + "integrity": "sha1-dAExBufisHy9ZPOlroR/foFIAsc=", + "dev": true, + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn": { + "version": "8.1.0", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-8.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-8.1.0.tgz", + "integrity": "sha1-UjEf1wN64RnLsTQwnpAapGKVs/4=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { + "version": "8.0.2", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-8.0.2.tgz?cache=0&sync_timestamp=1611560713023&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-8.0.2.tgz", + "integrity": "sha1-1GMr/GP9k9DxX9BeoOmE/9P1qMM=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1617175602652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-6.2.1.tgz?cache=0&sync_timestamp=1616363849438&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-6.2.1.tgz", + "integrity": "sha1-B5LraC37wyWZm7K4T93duhEKxzw=", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-6.0.0.tgz?cache=0&sync_timestamp=1605523244597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgzip-size%2Fdownload%2Fgzip-size-6.0.0.tgz", + "integrity": "sha1-BlNn/VDCOcBnHLy61b4+LusQ5GI=", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611393963969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ws": { + "version": "7.4.4", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-7.4.4.tgz?cache=0&sync_timestamp=1615063746103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-7.4.4.tgz", + "integrity": "sha1-ODvJdCyyAikskHfOq29gR7F/LVk=", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.5.1.tgz?cache=0&sync_timestamp=1595814928534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz", + "integrity": "sha1-TycoTLu2N+PI+970Pu9YjU2GEgY=", + "dev": true, + "dependencies": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1603894555091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", + "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz", + "integrity": "sha1-jxVKO84bz9HMYY705wMniFXn/4w=", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602585381749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&sync_timestamp=1602861367442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1603212180491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz", + "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1602584331621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1602805561021&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1602861397132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz", + "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&sync_timestamp=1602063120051&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz", + "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1603965311142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", + "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz?cache=0&sync_timestamp=1591288600527&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "dependencies": { + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz?cache=0&sync_timestamp=1591103014229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz", + "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", + "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1593925439808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz", + "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xe-utils": { + "version": "2.8.1", + "resolved": "https://registry.npm.taobao.org/xe-utils/download/xe-utils-2.8.1.tgz?cache=0&sync_timestamp=1604659233906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxe-utils%2Fdownload%2Fxe-utils-2.8.1.tgz", + "integrity": "sha1-PtUX1BdzGoKgGoyam6sk9JCb6IY=" + }, + "node_modules/xss": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/xss/-/xss-1.0.10.tgz", + "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz?cache=0&sync_timestamp=1603637417853&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=" + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1602805561021&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1602861397132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/zrender": { + "version": "4.3.2", + "resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.3.2.tgz?cache=0&sync_timestamp=1605029444182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fzrender%2Fdownload%2Fzrender-4.3.2.tgz", + "integrity": "sha1-7HQy+UFcgsc1hLa3uMR+GwFiCcY=" + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz?cache=0&sync_timestamp=1593529659031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", + "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.1.tgz?cache=0&sync_timestamp=1602801772375&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.1.tgz", + "integrity": "sha1-1zhqaJqg3fBiVQBbS5kZiAIRAaA=", + "dev": true + }, + "@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.3.tgz?cache=0&sync_timestamp=1602881203345&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.3.tgz", + "integrity": "sha1-G0NohOHjv/b7EyjcArIIdZ3pKtg=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.1.tgz?cache=0&sync_timestamp=1602799917077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.1.tgz", + "integrity": "sha1-DXC+Mr2qA9fFHIWX3aduDfHxVGg=", + "dev": true, + "requires": { + "@babel/types": "^7.12.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha1-W/DUlaP3V6w72ki1vzs7ownHK6M=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha1-uwt18xv5jL+f8UPBrleLhydK4aM=", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.1.tgz?cache=0&sync_timestamp=1602799917475&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.12.1.tgz", + "integrity": "sha1-MQ41KIj7292Fd76N/dKvueetz1A=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.12.0", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.12.1.tgz?cache=0&sync_timestamp=1602799938240&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha1-PEWZj0Me3UqSFMXx060USKYTf24=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.1.tgz?cache=0&sync_timestamp=1602799980691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.12.1.tgz", + "integrity": "sha1-GLEwLUZ3+dxHQP6MntlmgOKdN+g=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz", + "integrity": "sha1-tTwQ23imQIABUmkrEzkxR6y5uzA=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.12.1.tgz?cache=0&sync_timestamp=1602801819900&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha1-gAakZmlcSthqKl8vsVtfLDGtVjM=", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz", + "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha1-+6Dy/P8/ugDm7LZku15uJuLWFlw=", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.1.tgz?cache=0&sync_timestamp=1602799917569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.1.tgz", + "integrity": "sha1-FkTAFZGhWi8ITdbQktlDDrHRIWw=", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.12.1.tgz?cache=0&sync_timestamp=1602799922305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.12.1.tgz", + "integrity": "sha1-eVT+xx9bMsSOSzA7Q3w0RT/XJHw=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha1-UNyWQT1ZT5lad5BZBbBYk813lnM=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.10.5.tgz?cache=0&sync_timestamp=1594750677873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz", + "integrity": "sha1-Mt+7eYmQc8QVVXBToZvQVarlCuA=", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha1-jE27+RYxT2BH3AXmoiFwdCODR/0=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.12.1.tgz?cache=0&sync_timestamp=1602799937610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.12.1.tgz", + "integrity": "sha1-8VycyJdDkoGJHhHVzhJWKsDPP6k=", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.12.1.tgz?cache=0&sync_timestamp=1602799955395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.12.1.tgz", + "integrity": "sha1-MkJ+WqYVR9OOsebq9f0UJv2tkTY=", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha1-+KSRJErPamdhWKxCBykRuoOtCZ8=", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.1.tgz?cache=0&sync_timestamp=1602801773085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.12.1.tgz", + "integrity": "sha1-F1VnOAw+d9YP+YpUuwFf548heNk=", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.12.3.tgz?cache=0&sync_timestamp=1602881330831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.12.3.tgz", + "integrity": "sha1-MzIzn8TR+78cJ9eVjCfTRwjpkNk=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.12.1.tgz?cache=0&sync_timestamp=1602799921702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.12.1.tgz", + "integrity": "sha1-ioJhwdQ47BjLiQQ0307HaHNMHnk=", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz", + "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.3", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.3.tgz?cache=0&sync_timestamp=1602881242014&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.3.tgz", + "integrity": "sha1-owVBXr56bHAjtAtRIqBmLZKDNM0=", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.12.1.tgz?cache=0&sync_timestamp=1602799957225&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha1-3GwRcOJ9isqZ/2X0klvQaxyQVQ4=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602801742700&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha1-oIL/VB8qKaSCEGW4rdk0bAwW5d4=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.12.1.tgz", + "integrity": "sha1-WScUOf7UFFRWxBBnRQVDruMy0V8=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.12.1" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.12.1.tgz?cache=0&sync_timestamp=1602801779067&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha1-Q+tcKjSH7NmMXI6otf22midJstw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.1.tgz?cache=0&sync_timestamp=1602801775633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha1-i5uPN2stiPXdd05NJKXMLjZ5ttQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.12.1.tgz?cache=0&sync_timestamp=1602801778453&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha1-1FQjtRdxTu3VYhqd/cA/qfTrJBw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.12.1.tgz?cache=0&sync_timestamp=1602801777850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha1-8sSQ024bPJZZJBA0pdLNUCY6J1E=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz?cache=0&sync_timestamp=1602801777104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha1-PtT/8xwBXn8/FGfxkNvlRc17BGw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.1.tgz", + "integrity": "sha1-DixndMTOSL5BIRm01pOsd392haY=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.12.1.tgz?cache=0&sync_timestamp=1602799956368&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha1-3vm9A86g+bcig9rA7CLSicdpEGk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha1-zMJCGvZNOq5QtVinHO3pKaWrKUI=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.1.tgz?cache=0&sync_timestamp=1602799957375&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha1-zOEiID/IoyeUKW/Dd8be2vQ2N5c=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.12.1.tgz?cache=0&sync_timestamp=1602801864793&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha1-hoFPbnohN0yYDBDTi0ST5wP0o4k=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799956486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha1-Khg5WNQXdluerjNPR3WOXWqC4HI=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602801779713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha1-vLKXxTZueb663vUJVJzZOwTxmXg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.12.1.tgz", + "integrity": "sha1-gai1NbKER2xBvm3gaFOogCuYxd0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.12.1.tgz?cache=0&sync_timestamp=1602799927826&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha1-nZ01fMgYqnrnk1kXwSV/Z2d6CSY=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha1-3WwLNXrBuxQtmFN0UKMZYl0T0qA=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha1-gIP/yGrI53f74ktZZ8SyUh88srM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.12.1.tgz?cache=0&sync_timestamp=1602799957601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha1-OEmknMKiLpdDy9a1KSbTAzcimvE=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.1.tgz?cache=0&sync_timestamp=1602801921176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha1-8qGjZb3itxEuCm3tkGf918B5Bdk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha1-8O5yeHS0KiCKSKWGuEw9IiwrvvE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.12.1.tgz?cache=0&sync_timestamp=1602801866220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.12.1.tgz", + "integrity": "sha1-ZeZQ/K3dPYjdzmfA+DSj1DajLbY=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.12.1.tgz?cache=0&sync_timestamp=1602801922882&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha1-1oz2ybf4OKikFEutvpdUHqCQSFI=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.12.1.tgz?cache=0&sync_timestamp=1602801919435&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha1-uaVw/g0KjUYBFkE8tPl+jgiy+Ec=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799956601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha1-odFsFIYoF7ZAnApnjW+Tc8qc2XU=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha1-dFZhuropWsBuaGgieXpp+6osoig=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha1-sPLtNWuhvhQo7K8Sj/iiTwKDCuA=", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.12.1.tgz", + "integrity": "sha1-B2QPKIZ+0W+VEcmciIKR9WCSHPo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.12.1.tgz", + "integrity": "sha1-LsdiWMcP4IxtfaFUADpIBiDrpmc=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.12.1.tgz", + "integrity": "sha1-1zuAOiazcBfd+dO7j03Fi/uAb1c=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha1-SWA4YC2vFRSmTUPY4Xy7J1Xgw60=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.12.1.tgz?cache=0&sync_timestamp=1602801866519&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha1-MVQwCwJhhWZu67DA7X+EFf789vk=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.12.1.tgz?cache=0&sync_timestamp=1602801780277&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha1-+kAxJFQmNseGz5tGCg/7tIqG5kg=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.12.1.tgz?cache=0&sync_timestamp=1602799960092&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha1-Zj/qYg1ZPJPyFKRkzTmb9txoMIY=", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.12.1.tgz?cache=0&sync_timestamp=1602801867203&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha1-61ohjWscaPPWIXuPosyC/sZUeQI=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799956689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha1-tAf1yWvg2fX4hGdJf6grMKw+h1M=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.12.1.tgz", + "integrity": "sha1-gAc/Au4bstNlw0FkkOCFyVdZ3sA=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.1.tgz?cache=0&sync_timestamp=1602799958437&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.1.tgz", + "integrity": "sha1-TqCGlrjS5lhB0MdwZIKwSL7RBm4=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.12.1.tgz", + "integrity": "sha1-0uljsDh3FlDJIu/1k3mclthTJV0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha1-QbyBIA1zCrtEVquLP71VN7Wa3s0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha1-Xwoo2EL2RiKB8GqWToi6jXq0l1M=", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha1-b9/IzH7cxCs2p8EhiMZ4fIc63Ng=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha1-BLeSBX60YDif9qQZjjd2FOoee6U=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.1.tgz?cache=0&sync_timestamp=1602799951645&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha1-C/nKxVUPzgz98ENCD2YdZF/cdeM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.12.1.tgz?cache=0&sync_timestamp=1602799957708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.12.1.tgz", + "integrity": "sha1-Un+fMRvk7H/cK3m7ife/iEs+Hh4=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799951745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.12.1.tgz", + "integrity": "sha1-XCTPUN45bTDpmvyNHHAOi84PXK8=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.12.1.tgz?cache=0&sync_timestamp=1602799951964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha1-tD7ObtmnnAxxEZ9XbSme8J2UKEM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.1.tgz?cache=0&sync_timestamp=1602799953235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.1.tgz", + "integrity": "sha1-nKa+ND1CUS+8LmgjaoKuZLx694o=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.1.tgz?cache=0&sync_timestamp=1602799952036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha1-UjK5+BzLBwcLfDw2xnobePGEVwk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.1.tgz?cache=0&sync_timestamp=1602799957036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha1-zJZh9hOQ21xl4/66zO/Vxqw/rss=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.1.tgz?cache=0&sync_timestamp=1602801753046&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.1.tgz", + "integrity": "sha1-nH5cqCoZ78hlOEu0mJFI0u5desI=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.1", + "core-js-compat": "^3.6.2", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz?cache=0&sync_timestamp=1598549925898&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.4.tgz", + "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.18.3", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", + "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.1.tgz?cache=0&sync_timestamp=1602801751997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.1.tgz", + "integrity": "sha1-lBOV4MXMhtXT51yqCV05JFJvDB4=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.1", + "@babel/types": "^7.12.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.1", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.1.tgz?cache=0&sync_timestamp=1602799916513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.1.tgz", + "integrity": "sha1-4QnZq5mo3nNb4ofuPWqZR6GQxK4=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1603524710662&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", + "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=", + "dev": true + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz", + "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz?cache=0&sync_timestamp=1599008894201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz", + "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz?cache=0&sync_timestamp=1603524515155&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz", + "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz", + "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@iktakahiro/markdown-it-katex": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/@iktakahiro/markdown-it-katex/download/@iktakahiro/markdown-it-katex-4.0.1.tgz", + "integrity": "sha1-Zf+dEq/UwLdoTdJHq+fOQvwe2sM=", + "requires": { + "katex": "^0.12.0" + } + }, + "@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg=", + "dev": true, + "requires": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", + "dev": true + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@npmcli/move-file/download/@npmcli/move-file-1.1.2.tgz?cache=0&sync_timestamp=1613068732526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40npmcli%2Fmove-file%2Fdownload%2F%40npmcli%2Fmove-file-1.1.2.tgz", + "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1599054104695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@polka/url": { + "version": "1.0.0-next.12", + "resolved": "https://registry.npm.taobao.org/@polka/url/download/@polka/url-1.0.0-next.12.tgz", + "integrity": "sha1-Qx7DQqcZViL4Zoi72oLjFmzoyyg=", + "dev": true + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz", + "integrity": "sha1-cG9kvLSouWQrSK46zkRMcDNNYV0=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687070184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/@soda/get-current-script/download/@soda/get-current-script-1.0.2.tgz", + "integrity": "sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc=", + "dev": true + }, + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz", + "integrity": "sha1-M2utwb7sudrMOL6izzKt9ieoQho=", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz", + "integrity": "sha1-BoWzxH6zAG/+0RfN1VFkth+AU48=", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.33", + "resolved": "https://registry.npm.taobao.org/@types/connect/download/@types/connect-3.4.33.tgz?cache=0&sync_timestamp=1596837850490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect%2Fdownload%2F%40types%2Fconnect-3.4.33.tgz", + "integrity": "sha1-MWEMkB7KVzuHE8MzCrxua59YhUY=", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/@types/connect-history-api-fallback/download/@types/connect-history-api-fallback-1.3.3.tgz", + "integrity": "sha1-R3K3m4tTGF8PTJ3qsJI2uvdu47Q=", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/express": { + "version": "4.17.8", + "resolved": "https://registry.npm.taobao.org/@types/express/download/@types/express-4.17.8.tgz?cache=0&sync_timestamp=1598966318122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.8.tgz", + "integrity": "sha1-PfQpMpMxfmHGATfSc6LpbNjV8no=", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.13", + "resolved": "https://registry.npm.taobao.org/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.13.tgz?cache=0&sync_timestamp=1600734282121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress-serve-static-core%2Fdownload%2F%40types%2Fexpress-serve-static-core-4.17.13.tgz", + "integrity": "sha1-2a8CXpJfyLCJvjdCO40erHgb4IQ=", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz?cache=0&sync_timestamp=1596838206290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz", + "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/highlight.js": { + "version": "10.1.0", + "resolved": "https://registry.npm.taobao.org/@types/highlight.js/download/@types/highlight.js-10.1.0.tgz", + "integrity": "sha1-ibsMICmX16kKB70uwffQDFa7kLQ=", + "dev": true, + "requires": { + "highlight.js": "*" + } + }, + "@types/http-proxy": { + "version": "1.17.4", + "resolved": "https://registry.npm.taobao.org/@types/http-proxy/download/@types/http-proxy-1.17.4.tgz?cache=0&sync_timestamp=1596839386031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy%2Fdownload%2F%40types%2Fhttp-proxy-1.17.4.tgz", + "integrity": "sha1-58kuPb4+E6p5lED/QubToXqdBFs=", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/http-proxy-middleware": { + "version": "0.19.3", + "resolved": "https://registry.npm.taobao.org/@types/http-proxy-middleware/download/@types/http-proxy-middleware-0.19.3.tgz?cache=0&sync_timestamp=1596839386511&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy-middleware%2Fdownload%2F%40types%2Fhttp-proxy-middleware-0.19.3.tgz", + "integrity": "sha1-suuW+8D5rHJQtdnExTqt4ElJfQM=", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/http-proxy": "*", + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.6.tgz?cache=0&sync_timestamp=1598910403749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.6.tgz", + "integrity": "sha1-9MfsQ+gbMZqYFRFQMXCfJph4kfA=" + }, + "@types/mime": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/@types/mime/download/@types/mime-2.0.3.tgz", + "integrity": "sha1-yJO3NyHbc2mZQ7/DZTsd63+qSjo=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&sync_timestamp=1596839141589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", + "dev": true + }, + "@types/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@types/minimist/download/@types/minimist-1.2.0.tgz", + "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", + "dev": true + }, + "@types/node": { + "version": "14.14.6", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.6.tgz?cache=0&sync_timestamp=1603910973093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.6.tgz", + "integrity": "sha1-FG09pXs8Y2zA0XaTls4c+omRFH8=", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1596839391651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz", + "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz", + "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", + "dev": true + }, + "@types/qs": { + "version": "6.9.5", + "resolved": "https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.5.tgz?cache=0&sync_timestamp=1600295893721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fqs%2Fdownload%2F%40types%2Fqs-6.9.5.tgz", + "integrity": "sha1-Q0cRvdSete5p2QwdZ8NUqajssYs=", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@types/range-parser/download/@types/range-parser-1.2.3.tgz", + "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=", + "dev": true + }, + "@types/serve-static": { + "version": "1.13.6", + "resolved": "https://registry.npm.taobao.org/@types/serve-static/download/@types/serve-static-1.13.6.tgz?cache=0&sync_timestamp=1603136972762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fserve-static%2Fdownload%2F%40types%2Fserve-static-1.13.6.tgz", + "integrity": "sha1-hmsbjexBw24ox75ArHJbiL5DxcE=", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz", + "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", + "dev": true + }, + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.6.tgz", + "integrity": "sha1-qcpLcKGLJwzLK8Cqr+/R1Ia36nQ=", + "dev": true + }, + "@types/uglify-js": { + "version": "3.11.1", + "resolved": "https://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.11.1.tgz?cache=0&sync_timestamp=1603833602967&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.11.1.tgz", + "integrity": "sha1-l/8w5hoKpodsJwtfU4c34tarjOs=", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "@types/webpack": { + "version": "4.41.24", + "resolved": "https://registry.npm.taobao.org/@types/webpack/download/@types/webpack-4.41.24.tgz?cache=0&sync_timestamp=1603911290982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack%2Fdownload%2F%40types%2Fwebpack-4.41.24.tgz", + "integrity": "sha1-dbZkq+PVvP5U5kMTyjtD5JhVBCI=", + "dev": true, + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "@types/webpack-dev-server": { + "version": "3.11.1", + "resolved": "https://registry.npm.taobao.org/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.1.tgz?cache=0&sync_timestamp=1604039710913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-dev-server%2Fdownload%2F%40types%2Fwebpack-dev-server-3.11.1.tgz", + "integrity": "sha1-+PTawdoibVML0VodXcNLI7p2bMs=", + "dev": true, + "requires": { + "@types/connect-history-api-fallback": "*", + "@types/express": "*", + "@types/http-proxy-middleware": "*", + "@types/serve-static": "*", + "@types/webpack": "*" + } + }, + "@types/webpack-sources": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-2.0.0.tgz", + "integrity": "sha1-CCFqub4r4uFJm+rrxNRpzsgegqc=", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } + } + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.2.1.tgz?cache=0&sync_timestamp=1602851122331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-jsx-merge-props%2Fdownload%2F%40vue%2Fbabel-helper-vue-jsx-merge-props-1.2.1.tgz", + "integrity": "sha1-MWJKelBfsU2h1YAjclpMXycOaoE=", + "dev": true + }, + "@vue/babel-helper-vue-transform-on": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-transform-on/download/@vue/babel-helper-vue-transform-on-1.0.0-rc.2.tgz", + "integrity": "sha1-ckY0H2ZufG5lsT2kIOLOhXFPu8o=", + "dev": true + }, + "@vue/babel-plugin-jsx": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-jsx/download/@vue/babel-plugin-jsx-1.0.0-rc.3.tgz?cache=0&sync_timestamp=1600074484657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-jsx-1.0.0-rc.3.tgz", + "integrity": "sha1-q0d+6Vx2T75ohCou3dR08SLnCsY=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.0-rc.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.2.1.tgz?cache=0&sync_timestamp=1602851121024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-transform-vue-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-transform-vue-jsx-1.2.1.tgz", + "integrity": "sha1-ZGBGxlLC8CQnJ/NFGdkXsGQEHtc=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + } + } + }, + "@vue/babel-preset-app": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.8.tgz", + "integrity": "sha1-P8X1IYHbdgVOzAhWIvPLBmwkL20=", + "dev": true, + "requires": { + "@babel/core": "^7.11.0", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-decorators": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.11.0", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.0", + "@vue/babel-plugin-jsx": "^1.0.0-0", + "@vue/babel-preset-jsx": "^1.1.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.6.5", + "core-js-compat": "^3.6.5", + "semver": "^6.1.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "@vue/babel-preset-jsx": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.2.4.tgz?cache=0&sync_timestamp=1603806772378&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-jsx%2Fdownload%2F%40vue%2Fbabel-preset-jsx-1.2.4.tgz", + "integrity": "sha1-kv6nnbbxOwHoDToAmeKSS9y+Toc=", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", + "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", + "@vue/babel-sugar-functional-vue": "^1.2.2", + "@vue/babel-sugar-inject-h": "^1.2.2", + "@vue/babel-sugar-v-model": "^1.2.3", + "@vue/babel-sugar-v-on": "^1.2.3" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-inject-h/download/@vue/babel-sugar-composition-api-inject-h-1.2.1.tgz?cache=0&sync_timestamp=1602851211529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-inject-h-1.2.1.tgz", + "integrity": "sha1-BdbgxDJxDjdYKyvppgSbaJtvA+s=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-render-instance/download/@vue/babel-sugar-composition-api-render-instance-1.2.4.tgz?cache=0&sync_timestamp=1603806780231&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-render-instance%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-render-instance-1.2.4.tgz", + "integrity": "sha1-5MvGmXw0T6wnF4WteikyXFHWjRk=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.2.2.tgz?cache=0&sync_timestamp=1602929533577&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-functional-vue%2Fdownload%2F%40vue%2Fbabel-sugar-functional-vue-1.2.2.tgz", + "integrity": "sha1-JnqayNeHyW7b8Dzj85LEnam9Jlg=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.2.2.tgz?cache=0&sync_timestamp=1602929533397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-inject-h-1.2.2.tgz", + "integrity": "sha1-1zjTyJM2fshJHcu2abAAkZKT46o=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.2.3.tgz?cache=0&sync_timestamp=1603182488740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-model%2Fdownload%2F%40vue%2Fbabel-sugar-v-model-1.2.3.tgz", + "integrity": "sha1-+h8pulHr8KoabDX6ZtU5vEWaGPI=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + } + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.2.3.tgz?cache=0&sync_timestamp=1603181872606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-on%2Fdownload%2F%40vue%2Fbabel-sugar-v-on-1.2.3.tgz", + "integrity": "sha1-NCNnF4WGpp85LwS/ujICHQKROto=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + } + } + }, + "@vue/cli-overlay": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-4.5.8.tgz?cache=0&sync_timestamp=1603102330205&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-4.5.8.tgz", + "integrity": "sha1-W3G4G9SQubWWz92nj5AVVkPgN9Q=", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.5.8.tgz?cache=0&sync_timestamp=1603102349671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-babel%2Fdownload%2F%40vue%2Fcli-plugin-babel-4.5.8.tgz", + "integrity": "sha1-V1ng0kxWjLFF59CzB0l85k9HLLA=", + "dev": true, + "requires": { + "@babel/core": "^7.11.0", + "@vue/babel-preset-app": "^4.5.8", + "@vue/cli-shared-utils": "^4.5.8", + "babel-loader": "^8.1.0", + "cache-loader": "^4.1.0", + "thread-loader": "^2.1.3", + "webpack": "^4.0.0" + } + }, + "@vue/cli-plugin-router": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.5.8.tgz", + "integrity": "sha1-23CmnfTtyQaQdl+MJXSaaLIN2FA=", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^4.5.8" + } + }, + "@vue/cli-plugin-vuex": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.8.tgz?cache=0&sync_timestamp=1603102281094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-vuex%2Fdownload%2F%40vue%2Fcli-plugin-vuex-4.5.8.tgz", + "integrity": "sha1-gSKuk79ZMn06AGPAxtpRUToeJFY=", + "dev": true, + "requires": {} + }, + "@vue/cli-service": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.5.8.tgz?cache=0&sync_timestamp=1603104183081&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.8.tgz", + "integrity": "sha1-n+WLx8d8USHqu5QPgOBsGNqxI+o=", + "dev": true, + "requires": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@soda/get-current-script": "^1.0.0", + "@types/minimist": "^1.2.0", + "@types/webpack": "^4.0.0", + "@types/webpack-dev-server": "^3.11.0", + "@vue/cli-overlay": "^4.5.8", + "@vue/cli-plugin-router": "^4.5.8", + "@vue/cli-plugin-vuex": "^4.5.8", + "@vue/cli-shared-utils": "^4.5.8", + "@vue/component-compiler-utils": "^3.1.2", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^7.4.0", + "acorn-walk": "^7.1.1", + "address": "^1.1.2", + "autoprefixer": "^9.8.6", + "browserslist": "^4.12.0", + "cache-loader": "^4.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.4", + "clipboardy": "^2.3.0", + "cliui": "^6.0.0", + "copy-webpack-plugin": "^5.1.1", + "css-loader": "^3.5.3", + "cssnano": "^4.1.10", + "debug": "^4.1.1", + "default-gateway": "^5.0.5", + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "file-loader": "^4.2.0", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.9.0", + "minimist": "^1.2.5", + "pnp-webpack-plugin": "^1.6.4", + "portfinder": "^1.0.26", + "postcss-loader": "^3.0.0", + "ssri": "^7.1.0", + "terser-webpack-plugin": "^2.3.6", + "thread-loader": "^2.1.3", + "url-loader": "^2.2.0", + "vue-loader": "^15.9.2", + "vue-loader-v16": "npm:vue-loader@^16.0.0-beta.7", + "vue-style-loader": "^4.1.2", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.8.0", + "webpack-chain": "^6.4.0", + "webpack-dev-server": "^3.11.0", + "webpack-merge": "^4.2.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", + "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687070184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true, + "optional": true + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz", + "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1606205035829&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "terser-webpack-plugin": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1603881713213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz", + "integrity": "sha1-iUdkoZsHQ/L3BOfCqEjFKDppZyQ=", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.3.1", + "jest-worker": "^25.4.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.6.12", + "webpack-sources": "^1.4.3" + } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.1.2", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.1.2.tgz?cache=0&sync_timestamp=1608188009078&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.1.2.tgz", + "integrity": "sha1-XAO2xQ0qX5g8fOuhXFDXjKKymPQ=", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + } + }, + "webpack-bundle-analyzer": { + "version": "3.9.0", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1611221513167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.19", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1617175602652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1611393963969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + } + } + }, + "@vue/cli-shared-utils": { + "version": "4.5.8", + "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.8.tgz?cache=0&sync_timestamp=1603102380635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.8.tgz", + "integrity": "sha1-1FQwaqpRDmZqNLFEr8gYMPwjrMk=", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "read-pkg": "^5.1.1", + "request": "^2.88.2", + "semver": "^6.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "@vue/component-compiler-utils": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.0.tgz?cache=0&sync_timestamp=1595427628913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcomponent-compiler-utils%2Fdownload%2F%40vue%2Fcomponent-compiler-utils-3.2.0.tgz", + "integrity": "sha1-j4UYLO7Sjps8dTE95mn4MWbRHl0=", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.14", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427567713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "@vue/preload-webpack-plugin": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fpreload-webpack-plugin%2Fdownload%2F%40vue%2Fpreload-webpack-plugin-1.1.2.tgz", + "integrity": "sha1-zrkktOyzucQ4ccekKaAvhCPmIas=", + "dev": true, + "requires": {} + }, + "@vue/web-component-wrapper": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz", + "integrity": "sha1-uw5G8VhafiibTuYGfcxaauYvHdE=", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz", + "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz", + "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz", + "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz", + "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz", + "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz", + "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz", + "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz", + "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz", + "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz", + "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz", + "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz", + "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz", + "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz", + "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz", + "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz", + "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", + "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.2.tgz", + "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=" + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1597235855275&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz", + "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", + "dev": true + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz", + "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1598049717562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1603561547443&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", + "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", + "requires": {} + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1603566069729&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", + "requires": {} + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz?cache=0&sync_timestamp=1593529711167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.4.tgz", + "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.2.0.tgz?cache=0&sync_timestamp=1603836487323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farch%2Fdownload%2Farch-2.2.0.tgz", + "integrity": "sha1-G8R4GPMFdk8jqzMGsL/AhsWinRE=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1598649734444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", + "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", + "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz", + "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", + "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", + "devOptional": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", + "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", + "dev": true + }, + "async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1596623572478&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz", + "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=", + "requires": { + "babel-runtime": "6.x" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz?cache=0&sync_timestamp=1601167582745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz", + "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.10.1", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.10.1.tgz?cache=0&sync_timestamp=1597236947743&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.1.tgz", + "integrity": "sha1-4eguTz6Zniz9YbFhKA0WoRH4ZCg=", + "dev": true + }, + "axios": { + "version": "0.21.0", + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.21.0.tgz", + "integrity": "sha1-Jt8IiAOiNQ3/LCf5b++Z/klEKso=", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "babel-helper-vue-jsx-merge-props": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY=" + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.1.0.tgz?cache=0&sync_timestamp=1584715910722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz", + "integrity": "sha1-xhHVESvVIJq+i5+oTD5NolJ18cM=", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmmirror.com/core-js/download/core-js-2.6.12.tgz", + "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1595456311465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", + "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", + "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", + "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=" + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz", + "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", + "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=" + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.3.tgz", + "integrity": "sha1-vsoAVAj2Quvr6oCwQrTRjSrA7ms=" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true + } + } + }, + "body-scroll-lock": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/body-scroll-lock/download/body-scroll-lock-2.7.1.tgz", + "integrity": "sha1-yvP5yRdzrx/7aEzWbtkTe1tzcBQ=" + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", + "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz?cache=0&sync_timestamp=1601898189928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-detect": { + "version": "0.2.28", + "resolved": "https://registry.npm.taobao.org/browser-detect/download/browser-detect-0.2.28.tgz", + "integrity": "sha1-Voj8IvY4OQYU6+pGRkg0A/sg6/s=", + "requires": { + "core-js": "^2.5.7" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1606326891071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz", + "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=" + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", + "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", + "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", + "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz", + "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", + "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.14.5", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.14.5.tgz?cache=0&sync_timestamp=1600993129773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.5.tgz", + "integrity": "sha1-HHUUYaEC3cYOQJk2ObcJvn8sQBU=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001135", + "electron-to-chromium": "^1.3.571", + "escalade": "^3.1.0", + "node-releases": "^1.1.61" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1603834228181&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", + "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", + "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", + "dev": true + }, + "buffer-json": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/buffer-json/download/buffer-json-2.0.0.tgz", + "integrity": "sha1-9z4TseQvGW/i/WfQAcfXEH7dfCM=", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", + "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cache-loader": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-4.1.0.tgz", + "integrity": "sha1-mUjK41OuwKH8ser9ojAIFuyFOH4=", + "dev": true, + "requires": { + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-6.2.0.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-6.2.0.tgz", + "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", + "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001154", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001154.tgz?cache=0&sync_timestamp=1604001843079&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001154.tgz", + "integrity": "sha1-87vCRc5V5MHNIPpzGwl4gBgafxc=", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687070184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz", + "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=", + "dev": true + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.3.tgz?cache=0&sync_timestamp=1602585381749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.3.tgz", + "integrity": "sha1-wd84IxRI5FykrFiObHlXO6alfVs=", + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", + "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", + "requires": { + "tslib": "^1.9.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", + "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz", + "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-highlight": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.4.tgz", + "integrity": "sha1-CYy2Qs8X9CrcHBFF4H+WDsTXUis=", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "highlight.js": "^9.6.0", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^5.1.1", + "yargs": "^15.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1591687070184&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "highlight.js": { + "version": "9.18.3", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.3.tgz", + "integrity": "sha1-oaCiAo1eMUniOA+Khl7oUWcD1jQ=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.5.0.tgz?cache=0&sync_timestamp=1602505826257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.5.0.tgz", + "integrity": "sha1-EnY+RyUb+VHLdcIB36WP8byy0Ec=", + "dev": true + }, + "clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz?cache=0&sync_timestamp=1599054235610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.6.tgz", + "integrity": "sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y=", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz", + "integrity": "sha1-PCkDZQxo5GqRs4iYW8J3QofbopA=", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz", + "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz?cache=0&sync_timestamp=1602861367442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", + "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "codemirror": { + "version": "5.59.3", + "resolved": "https://registry.npm.taobao.org/codemirror/download/codemirror-5.59.3.tgz", + "integrity": "sha1-I37DrA45/uUNbxphlsgXKnx8K6E=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz?cache=0&sync_timestamp=1602228883047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.3.tgz", + "integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.4.tgz?cache=0&sync_timestamp=1602228106182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-string%2Fdownload%2Fcolor-string-1.5.4.tgz", + "integrity": "sha1-3VHNJc/ulT0Tj+QAI3LMPQ5QTLY=", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955804228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz", + "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1603599636161&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", + "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz", + "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "compression-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-5.0.1.tgz?cache=0&sync_timestamp=1610367177662&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-5.0.1.tgz", + "integrity": "sha1-MWwaTkzMlFEKl4yWf8FDWB0eNkM=", + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "cacache": { + "version": "15.0.6", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-15.0.6.tgz?cache=0&sync_timestamp=1616431156987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.6.tgz", + "integrity": "sha1-ZajFgP2hW1kVD7dr8/Oo5F1YMJk=", + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1599054261724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "requires": { + "semver": "^6.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-4.0.0.tgz?cache=0&sync_timestamp=1599054263097&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "requires": { + "find-up": "^4.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1599054104695&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826295004&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", + "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", + "requires": { + "minipass": "^3.1.1" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", + "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=" + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz?cache=0&sync_timestamp=1599596647062&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.15.1.tgz", + "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz", + "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1573003637425&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", + "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz?cache=0&sync_timestamp=1587525865178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz", + "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "copy-webpack-plugin": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz", + "integrity": "sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI=", + "dev": true, + "requires": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1591083783605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz", + "integrity": "sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo=" + }, + "core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.5.tgz", + "integrity": "sha1-KlHZpOJd/W5pAlGqgfmePAVIHxw=", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310819353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1598129182781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz", + "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", + "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", + "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", + "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1603749642748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", + "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1602609200442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz", + "integrity": "sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU=", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz", + "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1603806516773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", + "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1602571001952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz", + "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", + "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "dev": true + }, + "cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmmirror.com/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz?cache=0&sync_timestamp=1603212729205&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano%2Fdownload%2Fcssnano-4.1.10.tgz", + "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz?cache=0&sync_timestamp=1603212741552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.7.tgz", + "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", + "dev": true + }, + "csso": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.1.0.tgz?cache=0&sync_timestamp=1603840362568&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.1.0.tgz", + "integrity": "sha1-HTEZPvqZuHqmutbAzvFV5UPQnos=", + "dev": true, + "requires": { + "css-tree": "^1.0.0" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0.tgz?cache=0&sync_timestamp=1603806516773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0.tgz", + "integrity": "sha1-IZk/onDXQmQqkECaLAyzrAKYrfY=", + "dev": true, + "requires": { + "mdn-data": "2.0.12", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.12", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.12.tgz?cache=0&sync_timestamp=1602987212845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.12.tgz", + "integrity": "sha1-u7ZY0Is49XS7uI97g3A979zEaEQ=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073454623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dayjs": { + "version": "1.9.6", + "resolved": "https://registry.npm.taobao.org/dayjs/download/dayjs-1.9.6.tgz?cache=0&sync_timestamp=1604990508741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdayjs%2Fdownload%2Fdayjs-1.9.6.tgz", + "integrity": "sha1-bwx312rB/2NyDdEZfly4e2eUPXA=" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=" + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.2.0.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.2.0.tgz", + "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz", + "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz?cache=0&sync_timestamp=1572279720382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz", + "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=" + }, + "default-gateway": { + "version": "5.0.5", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz", + "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=", + "dev": true, + "requires": { + "execa": "^3.3.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1603882912233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz", + "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056502934&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1596095644798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz?cache=0&sync_timestamp=1597005345612&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fonetime%2Fdownload%2Fonetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz", + "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076882347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz", + "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1591083783605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", + "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", + "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", + "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", + "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", + "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + } + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", + "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", + "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", + "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz", + "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.2.tgz?cache=0&sync_timestamp=1600028495728&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.2.tgz", + "integrity": "sha1-87blSSAeRvWItZRj3XcYcTH+aXE=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", + "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&sync_timestamp=1600028495728&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", + "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz", + "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "dompurify": { + "version": "2.3.6", + "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.3.6.tgz", + "integrity": "sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg==" + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz", + "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-8.2.0.tgz", + "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", + "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", + "dev": true + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", + "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", + "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-stack": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.0.tgz", + "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "echarts": { + "version": "4.9.0", + "resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.9.0.tgz?cache=0&sync_timestamp=1605024811446&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fecharts%2Fdownload%2Fecharts-4.9.0.tgz", + "integrity": "sha1-qbm6oD8Doqcx5jQMVb77V6nhNH0=", + "requires": { + "zrender": "4.3.2" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz?cache=0&sync_timestamp=1597678506855&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz", + "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.584", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.584.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.584.tgz", + "integrity": "sha1-UGz3uliVqvqCQYdqsChlS2H9nOs=", + "dev": true + }, + "element-ui": { + "version": "2.15.6", + "resolved": "https://registry.nlark.com/element-ui/download/element-ui-2.15.6.tgz", + "integrity": "sha1-yWCa3TWvWmhqS3aF3B11fHXgHfM=", + "requires": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + } + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz?cache=0&sync_timestamp=1592492805287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.3.tgz", + "integrity": "sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y=", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1603212180491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz", + "integrity": "sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY=", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", + "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.1.0.tgz?cache=0&sync_timestamp=1602897029273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.1.0.tgz", + "integrity": "sha1-mS0xKc999ocLlsV4WMJJoSD4uLU=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", + "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz", + "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0-next.1.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.18.0-next.1.tgz", + "integrity": "sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567224085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1599933651660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz", + "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz?cache=0&sync_timestamp=1598898255610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596642998635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596642998635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz", + "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz", + "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.2.0.tgz?cache=0&sync_timestamp=1595422595227&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.2.0.tgz", + "integrity": "sha1-k7h8GPjvzUICpGGuxN/AVWtjk3k=" + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", + "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", + "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1603882912233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", + "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599697571&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz", + "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", + "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=" + }, + "file-loader": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1603816843418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz", + "integrity": "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", + "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", + "optional": true + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&sync_timestamp=1582340569604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz", + "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "requires": { + "locate-path": "^3.0.0" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", + "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.0.tgz?cache=0&sync_timestamp=1597057976909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz", + "integrity": "sha1-tC6Nk6Kn7qXtiGM2dtZZe8jjhNs=" + }, + "font-awesome": { + "version": "4.7.0", + "resolved": "https://registry.npm.taobao.org/font-awesome/download/font-awesome-4.7.0.tgz", + "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.3.tgz", + "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz?cache=0&sync_timestamp=1603829773003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.2.tgz", + "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz?cache=0&sync_timestamp=1597056502934&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1603664378253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz?cache=0&sync_timestamp=1591083783605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-9.2.0.tgz", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", + "dev": true + } + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz", + "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=" + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", + "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", + "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082584903&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz", + "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", + "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" + } + } + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz", + "integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=" + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", + "dev": true + }, + "highlight.js": { + "version": "10.3.2", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-10.3.2.tgz", + "integrity": "sha1-E1/TYZoAw8u4tM1tvHjVa/y8RvE=" + }, + "highlight.js-async-webpack": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/highlight.js-async-webpack/-/highlight.js-async-webpack-1.0.4.tgz", + "integrity": "sha512-IC0AwUgNr7BU8pqheaCEvOQvOtIZwO3I4rtbmT489Ndz8loE31IRmBmT6C4qDCbfZjzNO+k2w3VceZjTQ3JQ8Q==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", + "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1602803832496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", + "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", + "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", + "dev": true + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz", + "integrity": "sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ=", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", + "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1603599636161&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz", + "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", + "dev": true + } + } + }, + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz", + "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=", + "dev": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1603664396975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz", + "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1603668161350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1602897029273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz", + "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", + "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868452638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1594184250387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&sync_timestamp=1602526927264&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz", + "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838208740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz", + "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1596563037835&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", + "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz", + "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + } + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", + "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", + "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1588707106955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.2.tgz?cache=0&sync_timestamp=1600719276620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.2.tgz", + "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=", + "dev": true + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.0.0.tgz?cache=0&sync_timestamp=1603133391687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-core-module%2Fdownload%2Fis-core-module-2.0.0.tgz", + "integrity": "sha1-WFMbcK7R23wOjU6xoKLR3dZL0S0=", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729165697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz", + "integrity": "sha1-QSWojkTkUNOE4JBH7eca3C0UQVY=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "devOptional": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "devOptional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", + "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz?cache=0&sync_timestamp=1602541451286&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-obj%2Fdownload%2Fis-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.1.tgz?cache=0&sync_timestamp=1596555640677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.1.tgz", + "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-svg%2Fdownload%2Fis-svg-3.0.0.tgz", + "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "javascript-stringify": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.0.1.tgz", + "integrity": "sha1-bvNYA1MQ411mfGde1j0+t8GqGeU=", + "dev": true + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz?cache=0&sync_timestamp=1603442917089&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.5.0.tgz", + "integrity": "sha1-JhHQcbec6g9D7lej0RhZOsFUfbE=", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/jquery/download/jquery-3.5.1.tgz", + "integrity": "sha1-17TQjhv9uGrS8aPQOeoXMEcXq7U=" + }, + "js-message": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz", + "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=", + "dev": true + }, + "js-queue": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.0.tgz", + "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", + "dev": true, + "requires": { + "easy-stack": "^1.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1586796260005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "dev": true + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz", + "integrity": "sha1-p6NBcPJqIbsWJCTYray0ETpp5II=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891232110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz?cache=0&sync_timestamp=1599064788298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-even-better-errors%2Fdownload%2Fjson-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1599333856086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", + "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz", + "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "katex": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/katex/download/katex-0.12.0.tgz", + "integrity": "sha1-L7HGZdvSsEPtz4ofXFVfRr6qDLk=", + "requires": { + "commander": "^2.19.0" + } + }, + "keycode": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/keycode/download/keycode-2.2.0.tgz", + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", + "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" + }, + "launch-editor": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz", + "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "shell-quote": "^1.6.1" + } + }, + "launch-editor-middleware": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz", + "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=", + "dev": true, + "requires": { + "launch-editor": "^2.2.1" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1601450715716&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", + "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=" + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", + "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz", + "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz?cache=0&sync_timestamp=1587898912367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-symbols%2Fdownload%2Flog-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "loglevel": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz", + "integrity": "sha1-coFmhVp0DVnTjbAc9G8ELKoEG7A=", + "dev": true + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427567713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "mavon-editor": { + "version": "2.9.1", + "resolved": "https://registry.npmmirror.com/mavon-editor/-/mavon-editor-2.9.1.tgz", + "integrity": "sha512-N42ZBBVjDOOmwwBKRLytItMGG9bR8KBZN4ZI8sxpHh3dqL6SF5HNhzn/sVHDctp9vxphO930a3zu4GFZWQwZ1Q==", + "requires": { + "highlight.js": "^9.11.0", + "highlight.js-async-webpack": "^1.0.4", + "xss": "^1.0.6" + }, + "dependencies": { + "highlight.js": { + "version": "9.18.5", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-9.18.5.tgz", + "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==" + } + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", + "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1602987212845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz", + "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz", + "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", + "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + } + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.6.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz", + "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz?cache=0&sync_timestamp=1600831210195&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz", + "integrity": "sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I=", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz", + "integrity": "sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8=", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz?cache=0&sync_timestamp=1596095644798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz?cache=0&sync_timestamp=1603807566472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", + "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz", + "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz?cache=0&sync_timestamp=1595998621838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.2.tgz", + "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + } + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "requires": { + "minimist": "^1.2.5" + } + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz", + "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", + "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "muse-ui": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/muse-ui/download/muse-ui-3.0.2.tgz", + "integrity": "sha1-8pLooGPWJdNbHc4bFQS8DMzXjmU=", + "requires": { + "body-scroll-lock": "^2.6.1", + "dayjs": "^1.8.2", + "keycode": "^2.1.9", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0" + } + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", + "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591684976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz", + "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317447342&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1576721537540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010773454&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz", + "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=", + "dev": true + }, + "node-ipc": { + "version": "9.1.1", + "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz", + "integrity": "sha1-TiRe1pOOZRAOWV68XcNLFujdXWk=", + "dev": true, + "requires": { + "event-pubsub": "4.3.0", + "js-message": "1.0.5", + "js-queue": "2.0.0" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", + "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "node-releases": { + "version": "1.1.65", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.65.tgz", + "integrity": "sha1-UtlXkXa9YPI+ugXEQ4WD80GUS4E=", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1602547447569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "devOptional": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz", + "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", + "dev": true + }, + "normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz", + "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz?cache=0&sync_timestamp=1587262530340&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnprogress%2Fdownload%2Fnprogress-0.2.0.tgz", + "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", + "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1571657171505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.8.0.tgz?cache=0&sync_timestamp=1592545149361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz", + "integrity": "sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA=", + "dev": true + }, + "object-is": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.3.tgz?cache=0&sync_timestamp=1601502788762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.3.tgz", + "integrity": "sha1-LjueZVYBN0Ve471irsTZCi6hzIE=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.1.tgz?cache=0&sync_timestamp=1599844927493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.1.tgz", + "integrity": "sha1-MDhnpmbN1Bk27N7fsfjz4ypHjN0=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz", + "integrity": "sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", + "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", + "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz?cache=0&sync_timestamp=1597005345612&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fonetime%2Fdownload%2Fonetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz", + "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz?cache=0&sync_timestamp=1598733244715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.2.tgz", + "integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz", + "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz?cache=0&sync_timestamp=1599424857800&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-3.4.0.tgz", + "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", + "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559856635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz", + "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", + "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=" + }, + "papaparse": { + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/papaparse/download/papaparse-5.3.0.tgz", + "integrity": "sha1-qxcC/rlueatDCWUvNtuVNlY60Fo=" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", + "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz?cache=0&sync_timestamp=1597167309380&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.6.tgz", + "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.1.0.tgz?cache=0&sync_timestamp=1598129182781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.1.0.tgz", + "integrity": "sha1-+WCIzfJKj6qa6poAny2dlCyZlkY=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz?cache=0&sync_timestamp=1595849263958&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-5.1.1.tgz?cache=0&sync_timestamp=1596089818598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5-htmlparser2-tree-adapter%2Fdownload%2Fparse5-htmlparser2-tree-adapter-5.1.1.tgz", + "integrity": "sha1-6MdD1OkhlNUpPs3isIvjHmdGHLw=", + "dev": true, + "requires": { + "parse5": "^5.1.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", + "dev": true + }, + "particles.js": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/particles.js/download/particles.js-2.0.0.tgz", + "integrity": "sha1-IThsQyjWx/lngKIB6W7t/AnHNvY=" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", + "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "devOptional": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz", + "integrity": "sha1-y4cksPramEWWhW0abrr9NYRlS5Q=", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz?cache=0&sync_timestamp=1584790434095&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "requires": { + "find-up": "^3.0.0" + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&sync_timestamp=1593529697659&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha1-yXEaxNxIpoXauvyG+Lbdn434QUk=", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmmirror.com/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz?cache=0&sync_timestamp=1596018176291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.28.tgz", + "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.35.tgz?cache=0&sync_timestamp=1603496056144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.35.tgz", + "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1601732630249&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", + "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz?cache=0&sync_timestamp=1603212729528&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-colormin%2Fdownload%2Fpostcss-colormin-4.0.3.tgz", + "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1603212729674&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz", + "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1603214702204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-discard-comments-4.0.2.tgz", + "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1603214703212&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz?cache=0&sync_timestamp=1603212724216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-empty%2Fdownload%2Fpostcss-discard-empty-4.0.1.tgz", + "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz?cache=0&sync_timestamp=1603212724307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-overridden%2Fdownload%2Fpostcss-discard-overridden-4.0.1.tgz", + "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1601607876353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz", + "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", + "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1603212724836&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-4.0.11.tgz", + "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1603212724951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz", + "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz?cache=0&sync_timestamp=1603212725064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-font-values%2Fdownload%2Fpostcss-minify-font-values-4.0.2.tgz", + "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1603212725189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", + "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz?cache=0&sync_timestamp=1603212725335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-params%2Fdownload%2Fpostcss-minify-params-4.0.2.tgz", + "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1603212725451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz", + "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz?cache=0&sync_timestamp=1602588245463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587568476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A=", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz?cache=0&sync_timestamp=1602593260387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.2.0.tgz", + "integrity": "sha1-OFyuATzHdD9afXYC0Qc6iequYu4=", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz?cache=0&sync_timestamp=1602586230505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-3.0.0.tgz", + "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1603212725539&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-normalize-charset-4.0.1.tgz", + "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&sync_timestamp=1603214719221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&sync_timestamp=1603212743465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-positions%2Fdownload%2Fpostcss-normalize-positions-4.0.2.tgz", + "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1603212744307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1603212744390&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-normalize-string-4.0.2.tgz", + "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz?cache=0&sync_timestamp=1603212744477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-timing-functions%2Fdownload%2Fpostcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz?cache=0&sync_timestamp=1603212744570&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-unicode%2Fdownload%2Fpostcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz?cache=0&sync_timestamp=1603212726241&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-url%2Fdownload%2Fpostcss-normalize-url-4.0.1.tgz", + "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&sync_timestamp=1603212744791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-whitespace%2Fdownload%2Fpostcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&sync_timestamp=1603212726427&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz", + "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1603212726527&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz", + "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz?cache=0&sync_timestamp=1603214556347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-transforms%2Fdownload%2Fpostcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.4.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.4.tgz", + "integrity": "sha1-VgdaE4CgRgTDiwY+p3Z6Epr1wrM=", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz", + "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz?cache=0&sync_timestamp=1603212891912&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-unique-selectors%2Fdownload%2Fpostcss-unique-selectors-4.0.1.tgz", + "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz", + "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1600215482255&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", + "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", + "dev": true, + "optional": true + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.2.tgz?cache=0&sync_timestamp=1603050467792&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-error%2Fdownload%2Fpretty-error-2.1.2.tgz", + "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz", + "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", + "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", + "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1602948828228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz?cache=0&sync_timestamp=1597686771604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.2.0.tgz", + "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", + "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz", + "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz", + "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz?cache=0&sync_timestamp=1602584331621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.5.0.tgz", + "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=", + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.1.tgz?cache=0&sync_timestamp=1591302331571&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.1.tgz", + "integrity": "sha1-ytkq2Oa1kXc0hfvgWkhcr09Ffm8=", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz?cache=0&sync_timestamp=1595456311465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz", + "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1593557846694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz", + "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388141321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz", + "integrity": "sha1-erqJs8E6ZFCdq888qNn7ub31y3U=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413461940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz", + "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz", + "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz", + "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz?cache=0&sync_timestamp=1603891232110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "devOptional": true + }, + "renderkid": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.4.tgz?cache=0&sync_timestamp=1603039762136&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.4.tgz", + "integrity": "sha1-0yXlMq+yjT+Hlv/uMGvo/9b8hkw=", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz?cache=0&sync_timestamp=1602571001952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz", + "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=", + "dev": true + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", + "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resize-detector": { + "version": "0.1.10", + "resolved": "https://registry.npm.taobao.org/resize-detector/download/resize-detector-0.1.10.tgz", + "integrity": "sha1-HaP5YapfkUzLz9N1LVL9Rb7raSw=" + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" + }, + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.18.1.tgz?cache=0&sync_timestamp=1603313597183&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.18.1.tgz", + "integrity": "sha1-AY/LLFsgfSpkJK7jYcWiZtqPQTA=", + "dev": true, + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fretry%2Fdownload%2Fretry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", + "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", + "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.8.tgz?cache=0&sync_timestamp=1600186189732&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.8.tgz", + "integrity": "sha1-DRcgi30Swz+OrIXEGDXyf8PYGjA=", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", + "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1599740650381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz", + "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", + "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz", + "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz", + "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", + "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", + "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", + "dev": true + } + } + }, + "sirv": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/sirv/download/sirv-1.0.11.tgz", + "integrity": "sha1-gcGaKSAgSFB9bsDYuokQ/aUutaQ=", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.9", + "mime": "^2.3.1", + "totalist": "^1.0.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz", + "integrity": "sha1-smooPsVi74smh7RAM6Tuzqx12FU=", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz?cache=0&sync_timestamp=1596410219305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz", + "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz", + "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1602621889278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", + "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584829515586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", + "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719289626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161967473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz", + "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz", + "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.6", + "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.6.tgz?cache=0&sync_timestamp=1600284873714&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.6.tgz", + "integrity": "sha1-yAdXODwoq/cpZ0SZjLwQaui4VM4=", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz?cache=0&sync_timestamp=1585970491493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz", + "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", + "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", + "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", + "dev": true + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz?cache=0&sync_timestamp=1590854108362&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.2.0.tgz", + "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1587327902535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz?cache=0&sync_timestamp=1587041194718&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-browserify%2Fdownload%2Fstream-browserify-2.0.2.tgz", + "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", + "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz", + "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", + "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.2.tgz?cache=0&sync_timestamp=1603219618123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.2.tgz", + "integrity": "sha1-bd2ah5a8cUtImjriIkaiCPN7+kY=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.2.tgz?cache=0&sync_timestamp=1603219618047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.2.tgz", + "integrity": "sha1-ItRdqBAVMJzQzdeXh+iRn8XGE+c=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "dev": true + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "dev": true + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz", + "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433263159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", + "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1600381197118&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", + "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=" + }, + "tar": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/tar/download/tar-6.1.0.tgz", + "integrity": "sha1-0XJOm8wEuXexjVxXOzM6IgcimoM=", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + } + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1603374108186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", + "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1603881713213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz", + "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + } + } + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz", + "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz?cache=0&sync_timestamp=1603809339530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthread-loader%2Fdownload%2Fthread-loader-2.1.3.tgz", + "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=", + "dev": true, + "requires": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + } + }, + "throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1604313832516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz", + "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz", + "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793741116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz", + "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", + "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1580550317222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", + "dev": true + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz?cache=0&sync_timestamp=1574984066913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoposort%2Fdownload%2Ftoposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/totalist/download/totalist-1.1.0.tgz", + "integrity": "sha1-pNZaPlRlF3AePlw3pHpwrJf+Vt8=", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1584646121003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", + "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=", + "dev": true + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz", + "integrity": "sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581364203962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1602623859603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz", + "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", + "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1603670355885&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz", + "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1603599636161&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz", + "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-2.2.0.tgz", + "integrity": "sha1-51vIDn8ZN/cllUybTFoeln6p0Nc=", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "source-map": "^0.6.1", + "uglify-js": "^3.6.0", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz?cache=0&sync_timestamp=1599740650381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-1.9.1.tgz", + "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "uglify-js": { + "version": "3.13.3", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.13.3.tgz?cache=0&sync_timestamp=1616975983207&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.13.3.tgz", + "integrity": "sha1-znKhrRVDSOoq9h9Qkzx2zIgCJ24=", + "dev": true + } + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583945910569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1603179967633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&sync_timestamp=1602008334498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", + "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", + "devOptional": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.0.tgz", + "integrity": "sha1-qnFCYd55PoqCNHp7zJznTobyhgI=", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-loader": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz?cache=0&sync_timestamp=1602252626029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-2.3.0.tgz", + "integrity": "sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs=", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz", + "integrity": "sha1-qKg1NejACjFuQDpdtKwbm4U64ng=", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz", + "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz", + "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "dev": true + }, + "v-tooltip": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/v-tooltip/-/v-tooltip-2.1.3.tgz", + "integrity": "sha512-xXngyxLQTOx/yUEy50thb8te7Qo4XU6h4LZB6cvEfVd9mnysUxLEoYwGWDdqR+l69liKsy3IPkdYff3J1gAJ5w==", + "requires": { + "@babel/runtime": "^7.13.10", + "lodash": "^4.17.21", + "popper.js": "^1.16.1", + "vue-resize": "^1.0.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1579857147055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz", + "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870717730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", + "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=" + }, + "vue": { + "version": "2.6.12", + "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz", + "integrity": "sha1-9evU+mvShpQD4pqJau1JBEVskSM=" + }, + "vue-avatar": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/vue-avatar/download/vue-avatar-2.3.3.tgz", + "integrity": "sha1-4SW/T0pvT5SA2gxSICAmaoYJ0qg=" + }, + "vue-calendar-heatmap": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/vue-calendar-heatmap/-/vue-calendar-heatmap-0.8.4.tgz", + "integrity": "sha512-Hx7OYBY1ghUIxKmFIIzpLT4XlcrwnI3WpadJEj/sKj5quoxwEuSDKmf94v0zWOHeQ/2CrB1G66geaKR/O56+OQ==", + "requires": { + "v-tooltip": "^2.0.0-rc.32" + } + }, + "vue-clipboard2": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/vue-clipboard2/download/vue-clipboard2-0.3.1.tgz", + "integrity": "sha1-blUft704SImyiw2jsSKJ7WvKSJQ=", + "requires": { + "clipboard": "^2.0.0" + } + }, + "vue-codemirror-lite": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/vue-codemirror-lite/download/vue-codemirror-lite-1.0.4.tgz", + "integrity": "sha1-SKXNfRfAkUUDyM2dm1a0OOScNBA=", + "requires": { + "codemirror": "^5.22.0" + } + }, + "vue-cropper": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/vue-cropper/download/vue-cropper-0.5.5.tgz", + "integrity": "sha1-m9G6Vjx/qiaKvVL7KvTGwo0zyWI=" + }, + "vue-dompurify-html": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/vue-dompurify-html/-/vue-dompurify-html-2.5.0.tgz", + "integrity": "sha512-k2ejMJmsCsREGtJFDXNwqMvvek447id5ZAOU10jm2+cmsZHXgFIEdlwDam4cU4wh0iOZM+uDmkwbVJAJtmgeVQ==", + "requires": { + "dompurify": "^2.3.4" + } + }, + "vue-echarts": { + "version": "5.0.0-beta.0", + "resolved": "https://registry.npm.taobao.org/vue-echarts/download/vue-echarts-5.0.0-beta.0.tgz", + "integrity": "sha1-Q43UsPxczqKBcJwffGMhsFNSvfQ=", + "requires": { + "core-js": "^3.4.4", + "lodash": "^4.17.15", + "resize-detector": "^0.1.10" + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", + "dev": true + }, + "vue-i18n": { + "version": "8.24.4", + "resolved": "https://registry.nlark.com/vue-i18n/download/vue-i18n-8.24.4.tgz", + "integrity": "sha1-sVhhTB332xg9nK3du3Ph1UAmlJI=" + }, + "vue-katex-auto-render": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/vue-katex-auto-render/download/vue-katex-auto-render-0.1.3.tgz", + "integrity": "sha1-a2RYX9aiX6PDtwyxOiI6251CwZQ=", + "requires": { + "katex": "^0.11.1" + }, + "dependencies": { + "katex": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/katex/download/katex-0.11.1.tgz", + "integrity": "sha512-5oANDICCTX0NqYIyAiFCCwjQ7ERu3DQG2JFHLbYOf+fXaMoH8eg/zOq5WSYJsKMi/QebW+Eh3gSM+oss1H/bww==", + "requires": { + "commander": "^2.19.0" + } + } + } + }, + "vue-loader": { + "version": "15.9.4", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.4.tgz", + "integrity": "sha1-wuzvihoIAqx2xtaGZBtd3lIq4mc=", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + } + } + }, + "vue-m-message": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/vue-m-message/download/vue-m-message-3.0.0.tgz", + "integrity": "sha1-D93EdZEovPO0iolxDl4jZoH2xpA=" + }, + "vue-monoplasty-slide-verify": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/vue-monoplasty-slide-verify/download/vue-monoplasty-slide-verify-1.1.3.tgz", + "integrity": "sha1-cKOlaeMuwO2VthHWdUv1I8JJmjw=", + "requires": { + "vue": "^2.5.11" + } + }, + "vue-particles": { + "version": "1.0.9", + "resolved": "https://registry.npm.taobao.org/vue-particles/download/vue-particles-1.0.9.tgz", + "integrity": "sha1-KdnMK+AVffHAqH7DuWyW8zJ5Um4=", + "requires": { + "particles.js": "^2.0.0", + "vue": "^2.2.6" + } + }, + "vue-resize": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/vue-resize/-/vue-resize-1.0.1.tgz", + "integrity": "sha512-z5M7lJs0QluJnaoMFTIeGx6dIkYxOwHThlZDeQnWZBizKblb99GSejPnK37ZbNE/rVwDcYcHY+Io+AxdpY952w==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "vue-router": { + "version": "3.4.8", + "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.8.tgz?cache=0&sync_timestamp=1603710629657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.8.tgz", + "integrity": "sha1-LAYmHTXYB1iTRwNS1C1wtih7gZQ=" + }, + "vue-style-loader": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz", + "integrity": "sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg=", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + } + } + }, + "vue-template-compiler": { + "version": "2.6.12", + "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.12.tgz?cache=0&sync_timestamp=1597927407682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.12.tgz", + "integrity": "sha1-lH7XGWdEyKUoXr4SM/6WBDf8xX4=", + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", + "dev": true + }, + "vuex": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.5.1.tgz", + "integrity": "sha1-8bjc6mSbwlJUz09DWAgdv12hiz0=", + "requires": {} + }, + "vuex-router-sync": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/vuex-router-sync/download/vuex-router-sync-5.0.0.tgz", + "integrity": "sha1-GiJcF6Hdni90rwobLGIHLpSSswU=", + "requires": {} + }, + "vxe-table": { + "version": "2.9.26", + "resolved": "https://registry.npm.taobao.org/vxe-table/download/vxe-table-2.9.26.tgz", + "integrity": "sha1-0Ox2z/Mp1np4m6+Rl0yIprdq0Yo=", + "requires": {} + }, + "watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.4.tgz?cache=0&sync_timestamp=1600385568268&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack%2Fdownload%2Fwatchpack-1.7.4.tgz", + "integrity": "sha1-bp2lOzyAuy1lCBiPWyAEEIZs0ws=", + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha1-mUihhmy71suCTeoTp+1pH2yN3/A=", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602585381749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1602584331621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", + "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webpack": { + "version": "4.44.2", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.44.2.tgz?cache=0&sync_timestamp=1603999440291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.44.2.tgz", + "integrity": "sha1-a/4rCvBVyLLR6Q7SzZNj+EEma3I=", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.4.0", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-4.4.0.tgz?cache=0&sync_timestamp=1611221513167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-4.4.0.tgz", + "integrity": "sha1-dAExBufisHy9ZPOlroR/foFIAsc=", + "dev": true, + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "acorn": { + "version": "8.1.0", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-8.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-8.1.0.tgz", + "integrity": "sha1-UjEf1wN64RnLsTQwnpAapGKVs/4=", + "dev": true + }, + "acorn-walk": { + "version": "8.0.2", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-8.0.2.tgz?cache=0&sync_timestamp=1611560713023&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-8.0.2.tgz", + "integrity": "sha1-1GMr/GP9k9DxX9BeoOmE/9P1qMM=", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1617175602652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-6.2.1.tgz?cache=0&sync_timestamp=1616363849438&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-6.2.1.tgz", + "integrity": "sha1-B5LraC37wyWZm7K4T93duhEKxzw=", + "dev": true + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-6.0.0.tgz?cache=0&sync_timestamp=1605523244597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgzip-size%2Fdownload%2Fgzip-size-6.0.0.tgz", + "integrity": "sha1-BlNn/VDCOcBnHLy61b4+LusQ5GI=", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1611393963969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "ws": { + "version": "7.4.4", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-7.4.4.tgz?cache=0&sync_timestamp=1615063746103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-7.4.4.tgz", + "integrity": "sha1-ODvJdCyyAikskHfOq29gR7F/LVk=", + "dev": true, + "requires": {} + } + } + }, + "webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.5.1.tgz?cache=0&sync_timestamp=1595814928534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz", + "integrity": "sha1-TycoTLu2N+PI+970Pu9YjU2GEgY=", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1603894555091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", + "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz", + "integrity": "sha1-jxVKO84bz9HMYY705wMniFXn/4w=", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602585381749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&sync_timestamp=1602861367442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1603212180491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz", + "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1602584331621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1602805561021&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1602861397132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz", + "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&sync_timestamp=1602063120051&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz", + "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1603965311142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", + "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + } + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz?cache=0&sync_timestamp=1591288600527&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz?cache=0&sync_timestamp=1591103014229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz", + "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", + "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1593925439808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz", + "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xe-utils": { + "version": "2.8.1", + "resolved": "https://registry.npm.taobao.org/xe-utils/download/xe-utils-2.8.1.tgz?cache=0&sync_timestamp=1604659233906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxe-utils%2Fdownload%2Fxe-utils-2.8.1.tgz", + "integrity": "sha1-PtUX1BdzGoKgGoyam6sk9JCb6IY=" + }, + "xss": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/xss/-/xss-1.0.10.tgz", + "integrity": "sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==", + "requires": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz?cache=0&sync_timestamp=1603637417853&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1602805561021&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1602861397132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + } + } + }, + "zrender": { + "version": "4.3.2", + "resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.3.2.tgz?cache=0&sync_timestamp=1605029444182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fzrender%2Fdownload%2Fzrender-4.3.2.tgz", + "integrity": "sha1-7HQy+UFcgsc1hLa3uMR+GwFiCcY=" + } + } +} diff --git a/src/hoj-vue/package.json b/src/hoj-vue/package.json new file mode 100644 index 0000000..13e2f16 --- /dev/null +++ b/src/hoj-vue/package.json @@ -0,0 +1,59 @@ +{ + "name": "hoj-vue", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build" + }, + "dependencies": { + "@iktakahiro/markdown-it-katex": "^4.0.1", + "axios": "^0.21.0", + "browser-detect": "^0.2.28", + "compression-webpack-plugin": "^5.0.1", + "core-js": "^3.6.5", + "echarts": "^4.9.0", + "element-ui": "^2.15.3", + "font-awesome": "^4.7.0", + "highlight.js": "^10.3.2", + "jquery": "^3.5.1", + "mavon-editor": "2.9.1", + "moment": "^2.29.1", + "muse-ui": "^3.0.2", + "nprogress": "^0.2.0", + "papaparse": "^5.3.0", + "vue": "^2.6.11", + "vue-avatar": "^2.3.3", + "vue-calendar-heatmap": "^0.8.4", + "vue-clipboard2": "^0.3.1", + "vue-codemirror-lite": "^1.0.4", + "vue-cropper": "^0.5.5", + "vue-dompurify-html": "^2.5.0", + "vue-echarts": "^5.0.0-beta.0", + "vue-i18n": "^8.24.4", + "vue-katex-auto-render": "^0.1.3", + "vue-m-message": "^3.0.0", + "vue-monoplasty-slide-verify": "^1.1.3", + "vue-particles": "^1.0.9", + "vue-router": "^3.2.0", + "vue-template-compiler": "^2.6.12", + "vuex": "^3.4.0", + "vuex-router-sync": "^5.0.0", + "vxe-table": "^2.9.26", + "xe-utils": "^2.8.1" + }, + "devDependencies": { + "@types/highlight.js": "^10.1.0", + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-plugin-router": "~4.5.0", + "@vue/cli-plugin-vuex": "~4.5.0", + "@vue/cli-service": "~4.5.0", + "uglifyjs-webpack-plugin": "^2.2.0", + "webpack-bundle-analyzer": "^4.4.0" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead" + ] +} diff --git a/src/hoj-vue/public/favicon.ico b/src/hoj-vue/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..35ce8fa1555ac0f7319e84a5b669c04e7b043eac GIT binary patch literal 17750 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 + + + + + + + + + + <% for (var i in htmlWebpackPlugin.options.cdn && + htmlWebpackPlugin.options.cdn.css) { %> + + <% } %> + + Hcode OnlineJudge + + + + + + +
+ +
+
+
+
+
+
+
+
+
+
+
+ Loading... +
+
+ + <% for (var i in htmlWebpackPlugin.options.cdn && + htmlWebpackPlugin.options.cdn.js) { %> + + <% } %> + + + \ No newline at end of file diff --git a/src/hoj-vue/src/App.vue b/src/hoj-vue/src/App.vue new file mode 100644 index 0000000..b7a645e --- /dev/null +++ b/src/hoj-vue/src/App.vue @@ -0,0 +1,709 @@ + + + + + + diff --git a/src/hoj-vue/src/assets/acm.jpg b/src/hoj-vue/src/assets/acm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fb6043a385d328e374c13514263bc85a2ab2f4b GIT binary patch literal 13574 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 Ub|vNX!-QGV*0~XKS)wA~eN(kN zr%v_MN^ej1?3_qdWmyzN0z?1+P~_#L)Byle_XCH(f1H4B-b2twhu|Wo_XPluF#kIs zfXr+>0D!``m6TLfwQ+WL{$k_oLMAUMN#^3_Y-Q_U2>{-!<{(h+*1`6_QL3IERaH&( ze;yeXwV^r>Dn7Z)s*=Bn8aX zlWC}`+4n&NgTcLY)J=RJL;oT{K}q`h$crODL75{%L50exd;VVx@gMe-OW^$AKWs2n z zQY7@b#T|nk;SV8?xtBUf@CcPS?wI~m^K_MT{<>5~$vW;ob+h?OAG9N}qZqhQEy>jOL`At6ix5)9T3QlIB;CmfvkU(r%LR5Jl08ZOMFYq_HbK(mh5z?3xuU z6y3}pWE&lx)t!B484;fAw_+TBW@cc*tn#m9cF=T`KG8ktS{3zbJ@xKAOusfxtExU; z*KT9I)&2Kt+8%r_kvGsa_M-h*gSJf2%6p)D@t9yxFxA&3#U_m?LoZD@)H)zDushH~ zHLm<8+nwjphe0FLuuVxu(@JZx@b{wn=y0m&aRI@$`Cl*Pw@M(s>pO_#ss$l-QV zzq9S(Ngid0Ac&W+@kh&~eftLa^5OczMnG#?!BkhbQ(sr)JFTFyZH}**z*YbSbW3Tp4M~#-C<->OS z1(LYV!{<0sRncXigIo0OqOADnyfWd(e~tGU%=;EoEhZ1{^k-M)KXH~)*FSZx_#PkU z+_dwaKMV0)4BuQHl}1fjb$#+*xy^i3T3^dM|19eNqu(j3X3g@}d^*HAj zD?IV!GCx*jf9OJ~TB%4-Bt|a=wF30#WcXA%bSAa`g?uHA{G$>4J3|abZ1(w}g)JDM z(XOzmJF9DAaAh--qR^+%y-#2w^Epyx!!VGjqwh$YAd`Ia>o$syg(iy-#+Wf%mpomI zX+>cf{J8EqqZX5)wZ&WH`v~s37kZ`N$U=0@K5XsaV34qZYMvjf!cE=L)eL^wHzfw8 zj{1RZ6F_-?`O>~7Ve9Bncm?k_YLQLd(ZM4G^kBsr>E9#9o%rXzPs8kCtJc>SypyR= z!D20~kmjIlnf^vk{~CU)`wHt2Gp2i59$Rft?O|;dS`>U{JtvbeQn;rHU>=e zA%JF;v5vlS>YawIzAX-~RKWAAlm$+Gl$_G9u#sr=sx*PA;b&upAd$Y54G9v8fwMw* zZ6lm9-y5zTyve}kHe{f{$iAyiBp1yhHpL35QfFe9dP0AXvBp{k#S|L$xP<=_vd87@ ztF(KaRIQ!YAAAg&7z0~4n~6X2dHMj^4QW_-WOSsfi_2&Ru;0W~{H>`Yftw63rnl}S z!#P#A=VB~@U9f^F6+Rt4H4D1;HmHsHc?BEVN~bX{C@7Es>WOi7?Frj$H!b@Y42F4F z#fiSOnI#q5BpjXI&ENO{%_9u~fC)o`HMG5$SM{tm7!Q z1YsS^YV8>>Vlg-M#&o+>dIjnpLpz4z`lZd-1V5Mr%#Z%i>!-H7W=(c>CHUS0AO830 z-zxQ3W~HGYVo`BT-O1^FuZDIw^$yB#o-c^7mp+FH#Jh1wQ^}<> ztc<|Vyi=Ik}DKKlNnQS7`T6Rc@7N^rvKD$(s)&!@5@aJ zwd@tE<;)>}E1ug_!YcYfp{o^(8?rj;2F@1hcLQK9D^ zGSTsg+u2y96Sk7y{_j!4P$8-|{UFy)ZU+P^ct~`;jXMOSUV}xSbUz)k}o5j#8S9be1T_4HNr{YTo^xKP}XP z3J3&rtDmM=1lKTvH=}ph!vdoeijVDwcr;uQiwJDgnr{hBh$KkGJsc7k#p%g?x#-E73I6TUSe8zUAyxgR&;0<_14DUE&Z+!tee !KG3T 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 literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/assets/backstage.png b/src/hoj-vue/src/assets/backstage.png new file mode 100644 index 0000000000000000000000000000000000000000..e0ee078d8625ba1f11675bcd557a49fa1cf35628 GIT binary patch literal 9449 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 EAE25fQUCw| literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/assets/codeforces-logo.png b/src/hoj-vue/src/assets/codeforces-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5cd9966ff58b96149dc18ee572170f2ddfea7ffd GIT binary patch literal 33908 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 literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/assets/default.jpg b/src/hoj-vue/src/assets/default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..39447aaf7d47aa3d9c83ec6ac76b5bd40ab425ae GIT binary patch literal 16184 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 J4Lkku{{UtdUPAx? literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/assets/gym-logo.png b/src/hoj-vue/src/assets/gym-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..90ddbb97c856bfd064c5a2bf1ea21a82fbda2c51 GIT binary patch literal 31119 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

~j)P>2{8_liT5 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 bk~f0#fkNmDV84~XfG=rr1+i)o!@&OsF?|9p literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/assets/home1.jfif b/src/hoj-vue/src/assets/home1.jfif new file mode 100644 index 0000000000000000000000000000000000000000..919391c4bc1c05d4e537dbb1ebe6836435832543 GIT binary patch literal 286527 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 z

    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
    S=VIOF=fa;YOpgi!24kK%51`iKNQ1?MDV2 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 I(Ee}vKWej?P5=M^ literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/assets/home2.jpeg b/src/hoj-vue/src/assets/home2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..149be07c1d5a690e8b1d9a60db253da64c3bb8a5 GIT binary patch literal 58258 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 WPf_qrIjb#b8+ei+2~1vUp18R}gp z6n|2Ub3RvCE8s=+7RTM<0bthBu0IQ$BLu0togRn%&do6r#a#t)=Y&OU;|cRDJ4H-$ zKh5LI`9~Frq1(&(D~vn6(jt zirI%nPy(9ef7;T7;iy-wX;em)l^gmux$vY+)jt;0OxG{$*n~B43qlG2FGv}JR zB{9UhNlnWH`}Qawmy&6_97NtP3t!vY2x&m874+;7Tpg0OdA9qGz~1JOnyVaRa<(=$ z7v<7kM@knGh2n`8)UXg$_e_O=H4G@w)kGT{n<`F8Z;*6>tJS8#MM)`iE+N+TyQ4^} zf`or|1~cWv$X>26zEmF*0%zx>@)4nVt6+)&`qiHmb)shON4$CcmW+W){#v=P1nt~3 z4{Fv^WTPyV;}-Ia?t-~n138{EJ?L7~2sEYW4+3_1fchE9#2m33K?p!X{;S197Qi*f z2rFa{``3r&e>Q#pV&-Ji_(%*uG?xqhR-`>Wya-FeCn>ab880Wcv;FYpk{@)9p0@6j zxbznVN56?RaZg`}fjG%HrH-;|26T6PFn8JmGy!-<@I`Pa{RpCrSk z{~E6ZkGxvxD}%w5N}X2-m1CRd2iNwqAFge8ZuByB;-MT%A%~gCJr}T_PwQxp`MGQV zO-5eptI0T7@c+i`IF=^OHa_2U6Eh_~YI9TST?d3t$p6f;Gh&k6_@d@M<3HE5Fm_ra ziuiv6r#|QD7cc+xqfghnA{HEU3h$v?Ph3=cyZ%L0w5k@8!ZE`TUtT?`h!>(-DPa|T zDI_l#@IlEoOih7Y$|QNlp@-ragDSn`gR4-)7+b`RKDaPGK|!7=e9+8Z=CF4!0TUw@ zC~NzPqLRh*kyJFc7#)%8u~s+9Rg(nxf@M|Cx#q6WR5=&axwh zwrTa376I&%b}nPIzbHHp@}I{d7x2Eh>!mTvf*J5zN0n5EaZW4P2WPk=>x5(}$D>CZ zU5JH!2;8GbQgNQd1DUR1%2DtON6hhWbEaP3EJ45AK2XYPyBn+J3a!~N(@Y@zjzgCCuucZU=m zzx(-CXo1&!b?fL7+R>@i$sNd$md@-`>E$V?-KKS|~;%1wFM7aUZo=3;Sh_IKHD z3%;s)yK|vlUL7r_FYYn)I&Cc7V*zxng-Ei2>YDu$NfRj4OyF;0SxbhQL^*)dRst|K z3D`CM_`GEXT6CFvk!2CqZvH%?bxq?R2pnH?_FBkPnIr#N=JGtOWZoTIz!nO5(X$q- z(&CG|Z&|CKF20EO2X!Gq)9LtoMihLus0Wm@ixqv&ixgYL%;vxo`Q>w)^fN~p-wI^V z0&KZJXai(SF)QJgdwGYxgENvm(*hjWZPIyN0o|^;xohK79@KhD@hU4vQ52-OQn!LY zv?fwDhh66@fksFmK}j}DJF(Y+UDVxpSA#Nss2)+qp~Fn8iB0|Q5q+OqgysE;|aWGzjE%a1^$;&PB%WH*x~vi z-BK4y>)^9R@Dq`CyZyO++owBAhPrPST}(eXtjflnsE!*v9oCxEi`D2cLCEYkE=jE| z8d*MImX(aux|YvP5Jm6{lk{oVopW%jF4*#nqPG~Tli$rTp}CIhY^jV09)_H$t**q@ z;j@FD%(Oz=@3I@Pflf3H_A~SW1@2=)(D*??2L1pL2~7##S@~Qk3;#iK1k$|h> zg*naL$7|iH7N0;D#2*!P9vnvJ&b3vUl|${x^jSpO_NJr(UDl6_#7Iz1YAN^gZ%EA$0*{?XU{Q-R_5+?_k=nEB_=JFV_e5J@obu_(_q#mrqfV!};}r&gZsr5834X;3AR%tnjdk;O^{%iOB*wA4VC_zATNTY72+T1rR&re#({8pEg) z{^2@m`t7y9kG#a*uBVQ^f=aJYm&WTYd0KxGUq#)vP#lT|O5$wZAdYg44@$zHDie>n zAfyywfTw3DY}?>Tfm@S9FDfUGsDOE4)4-b4I3gJgK!_c^%DZDP!2%*~^^I zG6l}oYa^3q*PKj+!Mht7l_ymsI%lnX{BciwT=i1Ec>}?|M*fbzx@}$-1giaRC$f%2 z?}+!Opa5oY6wPuZ-5;q_x$N3tIf=BBXNef|+iT5U{>!5tPdy#8NX_z=>>c z(sj0;t#kCc_09aWtCHB~{ujl1$G7vyFEHbw#IGb!!C>f-;^@Hm!Ss(eWaC;V^Hlk^ zSCY5;FUl&A{78tMG_c#PjjcW&(mYq-n4fAgCT?mue4G@UR4R{LTE6lFQ}3|_u1|5a zp8sdG5<`tIalw6(FWk4(Z|>R{c+k=V+1dWLt838GY}aki<$JGts{dXuZR6VD-+Dd& z>+ut1cYavD;dysJ1^)k8&Fg|1y495h)N90VkmN zKSpUc&`a~8bn_Ivr6O8r!uV_>Scex|Dta^K#Kno zRLoq=4A`Vdr?n52e*b!w__|S5!<=AveC#Lfn`5K{V`?cF-gu%mK*157AXwtZ`Eo)? zZBfq0R#cIN?)2kl?OkN|Q?}yZz~_JgL!~>+|6HuavCMbMJC}CIdSoCLohSC8*t3l9 zo_MbgBeUemUbv0G#d1>{L!<_+Jkop@m6`K{Z{c??JnQdp^ zf|AiIZcV94nW<`5narNGvEj1(iizY|Sd}1jb~-!kn}C)q*lVbu!`mf4GxhUQUUkDm z4(g})o<5HPn2^IW&s2$|M9Z(OcrY8CRJ!bUz0I?7Z#QR4`7!G|SxhM|RIp5>=D$O< zMMBx3%h9>;!B-TyUH3Ol<4)>X4MZS0Jt*e|A4c20AJQ8t{CITDOng3aJGzrkhn<&L zmBTogA9s`M(zOTyo6T31o2RwW7OfV#SeLL89GUSe;_^Fo<-`WG!s?jDdAtq*;;k_d z4;-)UvS8QF?j5LNz|@?^1hy!1IB~O1Mf05A{Xi-^&DW*#e9{>lEetCHf-5@K9J4B8 z&q)H#lte6!gH3_%1v?6A+2)H9J>EeYo>#IcPZk>p;WiA;59#BRoO~;qp&~BEo;=rA zC0X!68~xter9SS%@MPvbnO8hmQB#^bz>&W-5w44~==z z68d)U=@)~T#BGrV!;7bH+1rwU)aJ)oVZliF$kfY_Oi|Bx@(=-|Eb50oO}2RW&YZGU zo$mY*s1AW&dAid47`*DTU1Mn=s=V)PDJ4{R2zrsfe%)jSQB@qCAy>Q+@VTO5(cjk9 z<1dvZ;LRHhqtUT8mQpZHGmms=OEf8@;MHaLZ70K`a}->0(P>a^KoTiwwwYm#x{j}x@Wbf*-t?i zwCdLN(+h)vr%HXCAHyQ|l+ym8WtfRwJVvj)*s7Kc9dkJWIZDu>!a8pjI**$&HLs4^vo?R*Q@rLh*YgWYf!AgF*p~giL0TFJ9FQ)Dn zpZ?XY*Tkn5ejcHBoDc=vBTnG#CQ`5-<*&<&ft^TvG_6)a7xIwk`a#BZNIHbl=t{}r z(KMntF>BF(e$KX3=zC2b_-rdy6kD_-Fc{p*eZhKT23kLUJj1;-5`j=JzPT5NQ*!5( zk^P)dfUA%ter};ddg<2U=3Wz?jS1NvKv_(4%SVNv?l}hrlSnLn8uM^U8C4rU3>H=c z?O_iQv3iMzA4-g&S7Ck?m7~^-{b=_H$T5)q~ z_f^!JKf;H2ba4<8>+`xI41bxya^LIe=}flk38Z>M1iJ|JSgyG=wC*dijY;|s-$xID zMuM%`x0HAKs(#hLmppQLChWd?8MEW`$&a! zoL7rBBlU9}E<4s800*v4^IyvHzmACiOJX1}{fGY!=nf0QjF*(>wb4@>FX2*Rsn%*4 zhY8(|4YBcla%w*PR~n%wgqJW#wYXv|k_yX93xVla74|!QI+&_FL$C4HXr3HD*~JD) zLz#4*P2)|LH}S58_!KM>HMNf9H%-PEV%z^kabkh0_rJ+5e3^<26* z@+4%RvW=z4gR7$&}Xkybk)vfbiaTOifmTo zcndc)Cc_@2^WL?xuvM5k7j^VpN&$VR3x^4y8`>&(gcF1T`E=QD>q4Fa1_B_L{yS25 zYNzM1jl6I*P0;eba8&;Flg0448nmty9G|s`QTEn=8$$^Tq|VOf(+Fhc0QnEfjQQoL z81&fp!JW{&!t6qC!nmGi`<>^Gm54T4kq>L#K{1++RrS<>7W~8i`_pG{Oo3i6;(&)u zJpfwU{V#q{B8p#{kRXyHJS_|CCKyA;Ik5xfcctEaI7 zyA5du`$OK94&Fvmg0i@M7KctAx1Ac;wAAE%bO7e3U*Kz*v5||WFgA2^>G<}gRe&HV z?Xv(xFJk$eW%rf*BHTkI0IEZFYlWl?|LPtOiE|__+UIAsk^LG{^s6i+pB0qxgcis0 zDtM%)f{o$Ij@;nIR`@#V{6_qY4FQpk5`C2_7X<6bwpv8Vvpi6Lz_aud`zA}`;GD!L zp^(A)>GajXnLzCebQx9LK=Uqj4agAMS zyY_34Ry)DcbK%Uwtx-g8qhm~lXpON=2;g(4pW(|hi2;+#T%xutRB`XN9+uouWE>fn zX+Gx?B_A1!svD_y$5kX^#?Ek@R3%JLgTAzi$XHW&R`EWN-Pwj6b-Gc0;<8S^LUFdA z2l!ISzm{KIb?A0*3cr;*V=qlhC{UTtukvT2=8p2pL8V-4(U!L29NTTM>v)>T6pj&1B#tB0LkS(T5G&GEWv zqY?|{#ol>oj%VG7wk4Xv;P0ek;^*jfDJScqnco(I=~LWy`<%z7W4Rwfb`@4d=}T7@ z@b%_whg?8jVKy)s6an_aw<7K*t3Ds>u6b=U(>N~|w#CJKxOIGjV6zGNWJq!lYg7vH z33%G^Wd!mUeHp^N1zK6v{k6c$iWg0Sd8zFXFMxEXoUpLpC(&PKE22amCj`a)R%U>n6tN1R(5ShL<)9#Z*lo$5j`g7cYkJT_}M_n(XtKJm^j~X&PX2} z`gAHzrA&>w&BnMCoGPJi-8fS7r$=7*^T`(fTdDX};)LTG0^W<1o%V4;uCZQ0A%3Fd z)FQ}cq>#5)%c-4$68x7!3oLC^0ZmCNs`jl9B}o4Bu7aS`7{VubG`;hMZ~_i%oLk_< za%pJJWi^kYjcA^^RjWO7HVKU%Q-jYNo3scov%JdZa?{{<<`y)u0@QfGR&S%SZy9}M z31RFNNrP7Sx=MY!dRWIOH~&ky$>psndYmBopGB) z^9F=M$gy|-QqZHMakp;5rBz|a@HOYisn)_;NTu@=+sN3!j&W7%^a8QxOOo^-`&U@Q zA_C>_-)+v1q)dN5TQ4J_3R~)0B>pki(US9Xy?Uw@ULIRIb}pWAy_V({^TXjQkRUYb z)6msMgY~oIhQrllTWU@Q(F4v4y{tZ;@^bKT=hX~12KWwad4Hu`p2xakXOv7?u;a+x zm;TxXw~#ni!t>1wGiP^bCKYU6CjMkHyS_zJsG+W%#6G5=zfr#U6&A|qG~neFy$LaL zu|VkR*#rhnVGS15Zq$NCw&e*|CTqhuH2A{{3oMsnMJPniuY)UTkUIm$;+^9^>OT8+ zy}^!$1YX!1NRH{Gt$dBUVVR>Bz7~aiND=T2T&>u})-PaZwJh|WoEehlsqw!y@=mS= zNrfXjg_nnliuI++a2#iN*B1w7F4Mtx60^pcr0(zPti0G$fAdsTwb7M6<0A2u0Ue5+ zYoz-e_Uq^}5j=h7r$FIaY^QEo!^&>fD%PIa;l6Xz7P?0QB_3L_R= z=2BY{3^^DAUjDi`dB{@@KXs3NdgYAb{KTU7wulAHSd=k0_W6uAAwIEkAugd&7CiP!L$k#!Gu{MDc7)VwRS1x<@`kJwko%f7%B0J%EWU zI==)*{iY7s_(}Oo*P!IqsLlAcf3|Q7F8zKMt4YHyl z)0cBq3S(uVrNg*eL--q4f1nH)vnoEJ{L=ERQE`+c`@PW&YMn?8)M7!`W#sBbv2}tp z<);x>b}mj4+jS~~IO31cwV?lxt-lP4tKGVAVF(ZiPC{@C8r*{uoB#oWy9IY|q=6(5 z+&#hF8*ikM;ElVxH||czb5@@H?yvTD>QwP#RntG9SM|E*9COTTED#T9rirYumR0&1 zUo*^3(UI!WQIbb4v|_lTo?WBa%T>S@JvE>>6g3Uoh_;>HuZ^6jBB2luq#Z>^+2zqc z%0{4o8nTQ5>b{kn)Gsbhr_WD*XG`4!0`Tl*>DI5gVfb>sJH;G-I^>c&hN^JlEO{&hlP(XypY<(Hol2^g}wO-+C3 zlHLaZJ+OMOEjR^Hi(|CC$0~vO3*}8lo{B_ydSJ`^2Y@N)PFt5mZwidGpf9M6qEGX- zcD0y(t(`_5O`&X&bUpr~!2I%CoZQ*@CM+21SXq@{^C%=uK#3RNOJgT!i{9i;h8%KYu)5_C=X08!EXmDK>pdhH8=QEDpt=hh27c;KBsNFGKj|Fshc_Wy=Lp8egtGyMa=mYKuW$&%cI;ravd+n_ai#a)xN;Sd|NbiG_!?u zECf#FC65f5%@bZ^6HdT{bX|5uO@lTGIgPo#?;KR>bs*kCVrwulYai4l`7HtbQuyV^ z%aEGr0ak~ioH{zxj3)VBJrHrZtYu1R(k(`hTRZn#8=-ag*qq8XI>8aA$U(Zu$nFy< zSRQOR6cT{r2eKvj2kD`?J+2`!QhySGkF={@amOF9tM&ylauqyxtQcgQsw~N#s;W8R zAGJ#7pssmiRy)oY(C?m+xzQ~s){P!<;qb6e{LH$xe9J)Qy1lT4b z(t;l3zO>k_6g-TO{mSV~Dp3cVLRc&_z9n`BMkP8L)X^pLrU`Xl#9GbCTe?p}sl>Ed zsz_H{Ty}A#dV2*Diq})?YnCcesW!PZ+3GY7(v;;bLbtHYNlQMnn>9%scZwjF>)YrNR0~}L4`wd z3rB@f9HiSU|JLuq;LIm=BRh+3nCsP=KC$d!h5Kmvl}0#w*aLn&xAwVMpZsP3=Y=v0TK`)3Wuw;UDu$8Nge~W%^2KxVl;M z`ZJFd1|8@2qZhozWljf%x_%KB%-=E}Ne>2l`mtk)9=}+LB#_D6n?w0xbllFVl4}L8s>p}vrn@r67VMftr)?F^J4=On2;#U zU~2i$|7TvZ8d3fn#q7?V*pyGIUF{zs3)!Zt42WRciyCsT1e@Jyp&a2d9Z`IrdY}AN z%u%ewNF(|(_&^N-V9?2;kuec6qzgawVhmIyXr)rVlQmQhn6L_k;#tzOeK+6Du!yx~ z#jjhn-7FyVdM-4c@%6~Uw`=QQDZffM4dDvD{auuMYD-7uGCA|m$oX2A^V>lo*{6GV? z`aTt^5lDT<2z#N$GDye+6r90tb4ovHGhkvSqX7h>uVttbxp8lUiD&@9JXh*p*`M&O zj4aZ>Kaw8*O8Ef7Nd0BA_5%<{s=;Doo$zAe!nixIsiYvEl)Y9@@?Dl%hStH7=br^W z-;|X$Hw&jDR^~KhCUoTPmOs_iarn&orFnde`3pbw%Uc&{q_d(ZUR=kY7;u+w3EyfZ zrwFqGp}DsYRxwSg+(qN)+oovr1`!t38!ee<)tid zSs4o}!g@tj*uj*;uMcF)-wl1XEsnTWrp|z46vJKbId0CbgRkF*J{06y=b8`tx5L9{ z_|%fbK5(d291~tay+~-9G=2D4R}dpD2@~tJ2O}oVwNve}a+4U1O~Np%ozruqKiQu< z#$J<{SUM$}&~IO)#-fkSd6X;5Y-?$b=!g`Tr6?4A8T5-85Qkn!L>6(Y>B^-n`B(s9 z*r9o#H}&k?#e5>{bLr`}WlL&w!~Rh*>mNFY^re=`@^$Cy>r4d>Zqz~dMJ3)HR*mUDC=tk8QI%_kcD^e{B}_1#%#nYP-o2F^`fR#A@t~@a zJRruC)DD;N#N~d>Di!%W{wvhrUUaRb6%I9Mdwpp`9GP6^v>M}84X3enx*-|&rl2yd zP{n+F-4zkZhdCe8<{z~>rD4DlQO&fcI@CyES4+aIi zMtj)?GRvnO10p;}f#{i2;aFck(FT5qZm3!G%Fp7#hq#NW`VXw0z|8BnwN}r zANDbi{jXJs1)sw|ZBEY@rm=Kf4R{z=V0{AnVjZ5WfwRpgIHnx#F-Q~x#>Mk7U&%ht zE+r4X|5Kwq%I*R;9gU`9`YB$S;j!jc_TJr*?;+ul)M~6g`d!S_gu#BlAABs!!8IQ7 z^U4b?i4~0%?%0?DR*Q(}0xV<CiYNsj1hM@BVC}DoXGla*NK{ckVg^Q(kk3SxsKG@ky?cgx9);{V>$* z!O8wP%^ysC<>6~$G5hEjm37Hom0V0K>eM&2x2x?6YB8uk26pm?D8=}cyY&TM#Y8*r z>32OfaG`A08jRjjw`ce|JEcfz z$zixy$XSfp@1Txso%iZjnFnji0X5TVW1*cIR4AcTeqpzSs&3s}4ewK%6~$s1u>&y# z>Ef}bT12N^50phvch;x-P~96#yblkJ-F_|FIe6Jc`rEs*sr2~@dbpgio)+=rfB>1f zc8w8_neIKK+%5IPdV%pQ$c{y)Q!t&*&Op2@VS{0{TV;QVn$mPe?M zS}v+du5*w~C5!lN8P*w-&kY2OclDo6Z*SNQi}a2wZ0v2Ak^Y3Sfylq8n{4_p`RMtk zHOlWlAjGcUMaX~H2s|f2pO)(6XM_V>zA0U6Ptp9}J#e4U@e}hZ(TBvT0Gzl3{KW3{ z$*^XxNK4Bs=v6A2m!wF5JuK#Yl^B~1cY8WTP0K<{nvQe9NG9pwVP=5>6yxD^MU(+q zg9@TPJU{7j4eRbaw-5RyHElrDkhWqmn94^|vgJ{b_5F-mwb{|J@1k+xq06wuF-pBK_$#2??)~wg@E2KiiDS zMd9UoJjg39UG)+JKC%1kNBYxyXK}IaP75rLH}&UG{aAe^%6JbMy^L>W=|-);EoqvtzCGkF64V zr{<103DPkx-?zEH3?VmzEuNGX6KYyfs;^YYnF`encKX2d@4{JjJZp(lYcsO>E9o<0 zDH4zMSGPpz4&A42mCPMaDhoWMHpnfD=mY8PYXZ6Vu?`ti+vH1@%n|}6L9R#|mMzN$ zt-@QWRQ9nZ0Wd?q(4lgM^!^|7`?s-2%1&J9)vOAo&M()Nd{Z_=PNMr*6fXOoqf^VH z@zTAwy>7IPoEb!zIOjGF@LS^ECdp0mQthvR+QsmI>QdLJN5AIP2yAkcnCIp$ia9{ z!<*pdhZ%BU(Ctak-moDE%kq2!SQJ-8{V9k?*GilkZs%YTFmEH{$-%ri*W_X$^hIs) z^J9G5Lx4_VzwP1dSwqRh-Q#E?JD?C1gJvpG6e_i{5~`0oXi%mhFEy5^R-klKw$T z_o^-}%DkHSG%ZJF5#D*c>Le#Q#;HCMu;68~{_fWi-fX>*NZwpA;qV5@d&qj15&1mN zt{@(MuEp(&qf6^jrmPr0s+v&eD7SQ|%cfvrr}>K)i-+J@k|fiDBr3H7ESy*DH~N^` zreQheJkNO~HvRqPKDYC&L393?2L$u;!j(~WOXB0ZI#b0E$hiSVzDXykDGN7R$I-So zy5c4Et0jw`4#}S>#W&FStZ#Jqh!qY*10M`;^3^!93mn_pGG|sDPS}R@(bcl94>-P+ zxkkdjT)F-!Rd@6w|3*|a)$-}60!mH6H{cR_!^CCYFebec^V_#>EU54%*@$u(>nKl= z*_(0}d4cM?w^!N2^HOF}|M#aiOb5x9oQdw0`Pyplekm{8E+el7_gGkmks4*F^XM+n ztJ-gQlZ_&O3iNr%B&HRK`>8J}E zNbHK2FDz*7l%R->zY%V+cJab|Q>b#2h)$DUo z`J$8s$c#~qu%Zx(C84Grm zo!@@Hjmi86Nu{Z7@9}BTjFO=;H=mC4XVJT;yX59~K6NF0mrF)2U=|K~pC&2`v30NP z*R?OUH)i!TLT2wp{JrvR`IT`gWcX_WKWAXauYHAA9u5I zeaAV9jQ~(04xXRj zi=e1`TvB++xxQke(i$t{QRy*%C5RUxwToxlwQ9gNQM(@@9A2KW#!%6&$VxT3j=cB4b6<+Dk`Ep~k;=-_M2dS{;LI-y zpNl@BL|o1F-0a2~NGf6+&Nm(y_SL^F@0{SsTihTS{XRKv3zkom+hDt(yf0koyKHGg zY3TtRKY46tE{ZCu?j*8rOT+&CG7!24A#(_#l%0!DRUy<5BO#r&Lesm(gBcX-a%=oe z=qaulUI}et4VhAWyMa|dV^_+`sFctzGjRPESo`h=PbRt_$KD%Q+t8{Jcx7PF{-^f` z79eN<)Pe3#eBeosPfN(mLI|WHLHGb)sJ4M=Iyjf!4kufEy~g> zUEHTwWugyAo`;P&|9OE2DG!e*vOQk1>B;TElhgjGDoSgy?I-K_2Xm~?Yc@yM@mHt8 z-RQ&I%L?PxkT9uJ7=q^(Abym=17C%@Uto#%IuiW)P4J8UH^SfE z=vf0Lai0mv?7cP)XJ+%XxA`>mVCiKKAY4E~%<%JqS-#=F`Tt27AJhq%F?qhr=m!4v zTP0&^0vbFj;0mODqva{Lb~;PE}ySLf@Uf z^?C6x^n8Pe+rk^Cp+y7yNYFJL9K-Z_&jJCaM2q`^Cn{)LH3qw=p-$)MR%Wr>V;xfYyiBn_Qvbusk$0SupPSGf$LlIfE%vs5kV3}@Q%aT% zC#MjD!q^^TTB!~TPr(ecvxW%az=jWD4f~oB z=OvEPgwrhRc1lNYA5}f2q9A^n!(E;e5l@gMFl}m-wS_qs|f^l#f{cR8av;o^j(S znx6dy;s?rgcWnGHgL9;$72yr{5q;{YD5uI@t{0!WMrvCFV^H9*Q<cA(8T zuGyf!zodBU+os^wYWpAGFdYWNEFQlemZZ(?D1)*iwiNs1hYd=clnA>;_(cTwRBK`f zE?qbcN1JczI^4Ffc;c1ekG^|LEu{tejL}0CvNhcHnao*-ShTXXQ|xJC%BVwq)-TDw z4JcL9+wW|P?RQN3yc|$B78i zP{~lWNsX^p4pwNhWu(j=dSiq&kO2f&$+uy($VO^L82vJ`AC+i1AzJLR^qHB4FFP5L zSCWH^(JL`6LI?CTSpmZ<4NFDjKDKj~%|>{PU#%c_l+A#9EX}k2Q2TV5SCX}v$cQCUmN(YR$psEIzG$E#jxTAM_BM*uQI-lEI?*E_W}f}`g#LdY)j$d|A+rqna5s6o2ARJk zDgjD7Iq&cB_HT+mI221|KAL_bc#W=9UQrFyb4IAgP8Md%uB6Lf zak+keH0}&sDm4sb`2EPXf3A~(qXjV;iQT?2HR=eSdFZFs?`_025#3sO%s+lxp|^9# z9BuovNIAChvV+q2A!ocjESj(DFaIw0{yntl)JjctKMgQ zHfZyM7UL=bxq@XD=uZCNOElC%JI!l1Wxi_;dz;iKaO(gG&)Ij{{@6%|-_v16OO-Rr z`X|-aOwV@mx$!VfE@Awpo`8_$cfgDET1JK$5N!YjmoOPqv8O+GH$s&k!|=6?EGF<- zhTA==2P}pHR5%lStxravxIP+0OuGd9$CdjH0SXmGd$f=j$GfUF~6nyoPu&=>yq~h`ceL3te zgaDW?NdODgiok9q?Q0!i3J9!MtG}#$;t#0Pg*aw50C1vqp&oP<EXzc)tBdj7- zZqNRvx`eHElDK2eX+Zt5<&_x66S8f4(*k83;3X*}{*meb=h3Bo8fG7@wEfukOxm1u z6lwpeq(+xxZlQ%-3|7{lLW>aB_1o$fC)DTG|bmUtoMUYQR zHt)I%(P~~^VQ#Slq2{?p*Q#1i$GDiJZFGF8BgBlnjahGaVJGr=2UOYAB9(dX_-j;3 z^Hct!pR_l4cCoZpbKbPDu)O4=6jhq{=VhhUl&UEuCdF#*Rl*3p*_UnZ=m4Q|(42l56^7rKwUH7nOt?O2mT@&nd{9OQR8PPm)C2&7iH z>fKB=ymy^^f^>}{mf3zAZ?%Lo!`;8`a$km4vuhH!HMDGn4(zneh~vUFRz9~FQtF|h z^67;+!|?_pw7_jg>$T?DBQCivrVGdTlgvGVQ(OMEdRQ@tfWKcctpA_TB3Koi^g$ zBD(_mN8N<+bQr#Vt9%1@_%#usG(w@3)Y#&hW^q zejMN-4_ui;QjrjHIl0uX762D-7-a7x1k`Sg@y+mnl6jT*egH{{oFFl#hz0E|wG=nI zhPzS0&Py5DdDp*FR>1wJEh9;QUl>oIfdZYn)Hj2;S4~4bHJ83W*Z4>ax{-hRfsSNw ze#s|mfZ={5Bn>jhtBT8Xy!aV= z{TXOH@Y9NxTNFXhC+KoZ)Q_8Qhx$0+bh$JETYJ^s^mf_piLgc$2^%M_X3rEsIM%>a z0YpVF02fgfY^k-ARV}0O9rZ6DAq+Tj{;M-%0cer`UjOIimj1vB)D8-ALil4X z{zTTu3iu3zLR4|lU#F`mizUs+H1pf}hsim(B9QY1ghU;fKwwPBV(Wn7-s%OI{e>X9K3t_y|Ut>1tOkVka)uP%d@m|-B>mVX{4M->s~&!pHBLM_8xnntr>ojlm}c zF~2#p6m~3+|3)I%H#9Af_AT(B%lRw7g+=hvw5;&k*Dr5n&N)h=fmm@~Hz-C1 zR1`H$^F?XY#@Gz~s@MpQ!o_^i75zSu{>)3?ZqBaRN4{@v&+)ma6DVm?Y0-VBNzm+eev9H&J~dNmBPxx&9>>7fw)w{cg_>f+;Rr5Lw*S+#qboMuI1DBeQygjOFmX%y*0^<3@;4w#h+R|yF)GG2wBoz`z+Om<| zD$#|Rear{j_4Yo5mL!g{k;ssR`N!a;mSyl*;9z)n#9T_PUG2+6w?8gVB;jG`)0w4{0CZNB*a#kE`bszIy6%@8pDH zZQKpHBuP;@B92^qjB@YG64WZ&?G2e7xTEJ+li3YeD2blAPMW+V~|^%`%k3 ztxZrtMM(aq;Bg9R@}V+;$0T3F!ijS+*nZK3*kbbo33`mgsfn^uE=QV|ivFqASP@?; z(iFb==-sN*SwCG%uZIr!dh(nCyLom@z5hAg%a%7mp&TcY`deRM%Qnn=<>iR1glx(v zRgnHLHa4C-YEMl_pLs@pTeA%- zANJ_Z;6ix)y;*C`>dE!g7~qexj+x=_%Dve&2W7Mjlk9Ygi^BXA4<)KH3@F?VOi#Ho zf`%rav3GOJJK9d9vKB=(9oTtIMUcJts9rNl`|;~khdKIAOxu3(mF3`LF~=N?X{sS+ z9;^7JU}zk9TZehG$JJbUGJ6r&Qq19eTxIj#)V>v-Me*TJ$qgDGaZ6@&gAFsw zw^zO7)eAh_y@nsc;p->$A>qvjWmr&4=+#KbVkdoDc^ExWQ}i-QcAWnp-@Axrd!cf3 zsCZ^be4qmMC_9PJ&R1~6{;^I=W)WG5BeZTxRvpF4!KuTWv_pLASi8=IBSrq>p|ZzS zh*ikIf(UtshxnCiHvP>RDDAzR;kD60(VUYfFAMWLqILL!ykmU}>9(Za7Ats8Z>*>^ z8>vZ_tww0f6?@ocbt`r|c}Cw^fK}Ea88o=RZ)drFPX~HII)KUSOiZR!SLre1)@zIq z+683@HZK6Umw}s#8qNf;>-@1^LHQa)yboplu0zFks4-^uwwR(#k@YIGD^j2LXxy1JVfo+Tv%slSm%(50dQ;`D(yz0C-vz)THcnH>=p3>AL0+ znA5_6>%`@+OV!KGWAz^0{>!8n7FC&JVClFpbSyf3qJ?efyai6h!rzcoHE|1Cs*L@1 z348OFtEst({@XC_&g|?;9M?NKL+dJy6e+Dq}TIEaB(l~SF_ZZ9z|d0I9@95s^w zma&(s8r6$)4qMdZR*+8pThA4CJ-#e?9Yup*#J24eQv=;!MLYLbdMcGXE~`>J=SqWP zG3MWf)o1>1UkUVKdIW@k9Sx9!|Mq16rwqT=){+6_94TNU73iM+@72#>r5QC_N>&{g zSKBgn?kTwdzwa*BxYivkiHTj@iE4UQF?R}fm#%FZ`wv3A3et#ag3DdH)NA=RcoRDp z@oZV1KJ2F*3zbEhPHGz>J$zHApVO*|WeZBhpXlymMnKf92XI=xziqx@Rkpl2M1w7n zBvd*c_oY4$3Q476>UbSw%T`Ap)09X16B%#;1XAR)7?$OJ_`3l_Bg+ERPJeU9F$o9> z(KMMq%#7IWqkY9=OXgI5x%23OX{n(NAG-2Uds?+;E7TriXdnXAda_w3|7Rp3)-T||u8oY#kWA`I0BRi#Qr`+ZNJ>%aA ze*N%)C@-|>4fj#!&f|&P@7mTw@19y5M#b`-w8z)DPK22dqvvRL2Eh)uWc!CK876#V zobKVfiUnXua*WHWz2OUIDUpZ;@W)zpo%!R%lx}R-iFU4mt?(b%CxR%&`2NPM*p18c zxkj&ajYcdcTG!EeT!?*2>wDqK10Rwmh6xZQwJ zL>v>NHHwK_grp1^Qxol3xV8(_e-(Bn2yD(V^Am3f*KkNmO%xn*8({qgZu+g~nB_Pp z*j)G(IX;0K-t0b0S;2YMzznGo2+%PVy6>lS5!KcwV{k0D8^zq|Jj<4tRkIZ^;duQ? zgL3>vqaVW+J(UW;Z?ka;2E~1#D>2Yij{Z7SGzjd4Xg7HLmKAL8E5}m!#unhZz zNBZXQt{8oyZ5_5(=TLLuBQOV;^J+Dj)q?k_Kv;mloDlZC^iwe_<1=P+6Z&WiM^11I zio^g@4zdH->U-ln`-E{rkmkb&s;&dD;rj+_ak|}DYN|+de*C-z$n=gi2nW+?6Fk#r zHSf{k3brZ%U9K)8K-?p6(yamijfv^ShFj4G^%v}EpMN}8Ffn0D;~x2w*o{Ng>e_Ry z=Ks!qId9%eiL&gGoiS@+r@d%P4Xg2>(v5O;rpI)h3db5d(9fTt}&fCWlH zh(*_`%W#~{Pp-G%zrHT_?U#MRRM z-c)!(vq|1x3&Lp`xN`Iar>#H0^2Sw}_@hbaW)XPm+cT}&qtPrQVap|9t%>u1o&r1< z{@ac{>krHQ?=|qG`Tx88i+1_9PkTljce7FPXVB9k=_-ME=`B`nC^~z5$NdDU$4zYrcH#attmT#!Y|`=T+DxHkbcL@mIdCH6;QeSh!2EJQ6Lk5-lf}C zyj0@LOlC9Z00|{W6(pb=Mz+1jZ#NzSSylgolre_Z(PEJ4oSgH%K77k37UhTT$#yXk zB)FE{M4|X}`qQ!vggyV59(=f4xKhOk!glf< zO$~C-+O>r`cek~VZ_Jwz^e8=dmAQ(v3T(6jsd0aU3@~X=t}KWYGvyViinF}ggV#L# zq(yyEmhseUoUs@cEY}}waTq`|o<&%O)NWDes%mdmB8YCAm)i{QZ#lT9u9L}9!0btW z_9BcPY6FT`Ki{I0uU|PEUYr|n+D)y#W!~F+YZ|eZyL#F*-~jsV&J~B1b=rPLSEaSE zmd=nW)%TR#i+$7lxwmVBV6|fPJ^$7>(<|=_IF+-u(a0z?QQHo}q*Hv#H=DJJ72KyC zefKszexfxy4!qL;Fh{4k2g~HNDlBQ$o|N?{>F%wmT>Tjze~}r3QUVVxbP!8dlIMuY z*wbSkg@KGjfLK6Fw$9a~7aLi0i#kSiZ>*ehnxa2rdB&Vy=ooeKJ#J$=Uk`}==8mGP zHGGOndes@$n{z^7%L0+~O(R#P(`!?r)Oo=&uuZb+2RG&3uiruIqclrn-`FvE23NkYqu1Jt&cYCq~~MFIj&ypS5Bw= zSh-~ZfhHU8op!RN{gnBd%H;51DS8?FD_}`tTmBgGr{xqmI!4n&mt1u22-II1{uEh zkFzF>bEkN=&jN!BqAZ-B?DeMyA0oo7NRb< zz|OOr_1U(g4w7S6Ceq6ulQzDPYuQdC`30SS-iD&3(dVw>9V|hgY+&DxyoHaGyRA4E zYqLfbU8C|HK(M=-9ll0^5~T*_d0Cawn*F$K^1Kej9Aq(#DSAPZnfq5ms=r3ho61Iq zg@ij3e)rjyXY_k6zi&{C<>#X(%Knj%%~d`G6kfDFnbx&s?@sY1M){6Hekgib-#?Tp zPWxRO@mb+i8x*JUlf)QI$}i!waP@ZMy!$chs41uZ&(j#a%_Z~~rf=TnK#KA@^)zXV zfGEam-g>~Uzqk076$SaZki7IvaqhX^)4>=Oq{%;Z@1f4SB>cFvtZpuAQg_rHMiyWo z=thZdtfX40RlA{QUlq}?q`}T_D9@H6U>f|rTzSWfSHsrq=H2y)uUJK|GR5oB`UAyx zAZ4g#Yr~7oxmxt?mJsfk)0ges2V~&rG%=id3_G^O@oyBbT@q&Np)HVOy@4&19nU^_ zQHZjdftr~4!ET!TjJV45P#eM-A+m64VgOxizf>QLEHs2_)V}MP8+4O4=(jZ6yW;_o ze_qfssIyZ{$IZ{@*SFeL`sv#EK_797#Iu0B)!~=8HO!`}Ys1VwyX7|pb!gp3P%m-) zE>RIuTuUEzJ>QB74in$dVZhc@*Bm|&%rNd(8ZbAM<3U%!v~}W7N}2&2)Ed32pSbxP zd~o8t@Z*D2nSV4h)&xa_Mdp$Xv31GK2&hhCK5r3$a4z4=(=lP;86`JdYDlc~;otqa z9>StsT<_VnvqglgpA5>^B=qs1grRw`ilpq2lob}11o=a;amTn`><893$|_J&jtqY{ zi?Ipd9uiuwDN}7go&#*lZ{GfOu=EodPc3MbEHr>E^1+4!XoB&_UR<{cw|Mpu=a8be zh!!7(q6vWw(R7@sNw3qdQoMu^-;OT&cjAr3q zeAWM0RQ`MYKmEzSm;ZSa>g%pn!%_$lEbU<*)noenC)H&?Qgiue_6sp9>ylWd@qX~z zb9O!3b%eXUnBkM40c%i3b+nG&em7&$99c}h)`49MR7Kv-%iQcfikhJu$l9wi12Vq0 z8n!RGXjvp`k){~qo)IPN_Jco(iT(+!xgM)uUUQDWvq@lz5(_Px<6AQY3T4+zzFri| zr{qzF_Nc@w{DS3*k>n}N7auc`QM~q_uKLR3a+s2ty`_bKnZ!{(RVY=^oG zD15rJvcYo}D$>dK?1igH zkrS^f70_GB`dX{0%P^ zNhdfG2m<-oHc)fA+^zhjl-qV%9B2BLm$tQ~zMopPva<6ZByq>{JsSKrx%!Y5zN6@h zkb7mS&tMsil-LCM0oOA)o=(Ji+Mt*t_OwIyg&m*9_pWhpZ>#VX<&L$lxm6>1;rry3 z0>_3(^3KUv(U{*<(v#Igj)wIDWcp>GQ)N_03U^fCZkz;MD+AyIU$<=We46G-+?APF z=sjf0hFB819Wc>Ps$v|EZw?R`$ozz3V>Mj^c{;{<}Z}USNvfOCP?&S~27|3>d z*pnOPcV6H72Z=fM(1>#FqcH@BqiMy%8+V>OV>a{D;b?3{rQ3ApWO~3NV;)4 zxlMUN-#o$g_fviRmKpJXtj7JJ|O}+G`@+?oYy~c5mWuMX182UJ)w%;GaidQDj8HJd#oynX&U9{k#-CS(urYoURR#`tw+c8%x~J5lc4C&Mj@d~v>*2Q zk6Bt%!~tw~ErS2h#sKLC*+K>ot^QZs`Jd-#?!Uh<_x%S+UAE8z;y7zGC;slF3+{K1 z_dM3_T-H-_<{J9iQ(agwe4D5LmLgR!Bcb86OGAU~Nfs?6>*M6OK!Bm=&+aP$s>atv zT~}AokrP25+?NpKJHuQL{0j zZ*L%w9>Q*_$bV<{$v`25zao}J9^1C6eL+*Fe_hJ~;(K&X$R>E(Bb;HOY@{ydC_`8EXbd+$<{xserjo7&%G7eQagC$Q#nQ(;GE-a z9ntHQt}+d+6{#(cN#N~v!w9{NQSrCOVB&BO+uTY3Pb1!L&zVuOi43J!V9)wSC-5J) z&b^$<5LVwfVx_A+HaQZF)F& z&f}9JV+s0RL?;>F0+;b|yacc1N` zo?Dll5jW32L1j=aVb~aX*|CPtv4^=gJhA^aMijH7yC6iaImVr8Do(N!?eoN%@xn~R zD)#*&)3jNSK>srGI@rMiOax!p9m|YSMew9y12M5?!uDOJn-koF>20J9CG@dnd05w zCAu!^jdEbDWE_(WX%c;s0*A@SPP)exO10=4O4!h6=^m6~mKuJO*4D=;4!{e%7Z<4B zluOClERq0(;y3>aI5~eKWRqm1QeLY6wP=Oo+kSa-Gpr*0lR-4?l`mVXU}abno&+p_Yrmt`UUv?z;) zP$IlJy>OKVrf0~ut9^a#jl#ESX~#YP7DfM+-~Yd)`2Rkw|Gvp@+uNK1;buc$mA7g1 zs~7rZ{MVk0IR`uhs%(FvpR%vV7NRqvLD$&dCwC5S_G}}>{Zr=4=_Xd~4cXbw-OW|l z{mW1QoL7u%^6Z`(G+!-8MO7t4W?$7vai||z8@bgg;_EqVF%tFF@59I#p_g)tKObO{ z@kd7E#X;`w)sgO}UUFiQ2*<DQcrh3T~d^YT)n#QC`gT6TA_*cT6>3N13196AH=PZ8x4qSb(o@wIlKzM;O^ zww!%;L6VYn|D@(evB$7`#`DAU-Sw}y6h479NxJoE-8{;beM)AtjUtRGuz6;>LOva~ zo6-0fPA7dbuMaLLsh_kQVWT^ed585q+>_~^7Avi>Ui?QRt{_0>R8_1$~B z`*xqxrzJ$hBt!8IqVGsz@jf8COw2IOuoALty)v6RDD`bx@%&Im$?cSs)p#SLPc|a? z4SZ`UJYxahHcBgM>BzE$)KSqn)x`9x^*5%bJ(fm=6`Qe}Qo61m$J-PqCuuvsPEj#I z;R*ZL;_E0`U-=7f{xw`-ep4<`h`Q zvJRE+ZyY9FT;MhR0)2s!%?7-ABp8B;w28yfAzV2(Mv7O@c1h60s2FQ-T#X?#0H5I`Bdiu7drnK9H}$!OR@cBb-9n7nN7VDrV_K|1yfIr^ z@~2}ZD6uCPdN?Fbsh8Z_YPq-nET#h18G~9!*FYYo3gfa@k6a zcfQWl*Yi08k*Y4f?c*Cs>pW$pqXr1LGB5Hv?H5C>1*#IPEA!=kX`ak3ncRU?rC7S^ zy8cQB!^tlX&>uR>1rpecQf0a=>35iMVSR5G;gNz(rSB{!R)a;x)Nckf;+rx0)k~5r zbzf?0FWZ&dAO*^Ip9NCPZn@YNdj_pheWqBLFD?5aT(9>*yu_SC%FKECDbBOYohhd8 z3Xe9y($zr2UqXe+FR@=^BKH-v&!6~V^h9v5~Tdoefal56K2QWdu(t9dIvQWIdBIu8G{cbcFdUinZ^ z$5<(ov!PjVuk&Y7JZDz(arULfrobqIar4w0#916O6@L9oYQa*! zGo%ft%r+PdiTS#(K4%H&=&`#}_t}xb*VbzFib3s~S3}(C`15PdK8cFGB3%lJm)s7r ze!tzt&3`zW5r4Sfb5rY%(?e!PF}p_V9V??wOt5fXFd2geU%PNeZ@emFeJj7nzOO8N z{HFEkq{yyL?-eFrB!WrcN13^EY%do#M70}`q!K|G1D5%BBvVko04vZUe629{t=iH+ zRLlDMtJC_m!u2-ICGpbnmP&XK4LYoJ7c&rNlhj4VGGg7(5QuzF6S3@AkU9V3N3|-$ z0|;#x`dr}jAEe{|fkVim0VkFQP()>IVsJ2b|MTlBPvgpQ!z?b#I2DCSXw@sk>pA1g6+!+y@*h^J2uy?*UTg~c+u zw?!=~FHOIXuxwr0wr|(AW&GA^Rf99Ot+62NbZp2zEhNIs#8!PGqA;HIy}vvj5YS=W zFlAXaYw8)9E448@E(|CzR|MxwO4|2C-d$73blibI#yD;vu($vlM4fY+uu4s*OB56obK@-2*bCF}mEd@@Eh?ReP}CRcTB zU+G%;<4exu)T`J&g|KX~u#*-4n;ysxO2Xx_;?9(OKxUPw{$rZI$*&H@mmh>}k|j98}FbT{wR& zQVjKe%V_KC@AxlnA>Rmhd~F4~Zo$vgT$1^+7P#kN^T#^pe0SwX%C$bNaCmINd{i%CGgS`y$hv$KkJwR#%-q**Q1&{vBpeSmyL)uN1R zzow>$P#ey97GUaBR5$HV>cDKQtqHYx+4jm!oG`HTfujk+xWL}!M?PXAShc?_(alq{ z++&6Swd^%~`$Q0k2U7rukK&C1!&D((e?H%SRR(vTg-%J2TE(vIZ&=5Z5~gv+ zfZIov(A`F%fPq27yqG1OA>AP&QhWAr@s9rK$1dL`d%E-)`$P>r!_5p+Qlp~m{}BrS zMu@MKyU8yRIc)tHvACop|4HVGLzu_I02bLNA39+L(_4o}X}M#J0l5Lxpxs?JJU0 z*xE>@?=!S-7b^7g+3y_kMoy?rYSYQx zs%YiiWBS8WR_o{>H$~Gz)Ddn1@`jKqEyA{0W znH8BJvzhyX-Wu*~YJO8+U7+n{_f*P;^l!pJbYN_@nSW}xsby7_4o#YV`r`}HqHa(= z`Nw@J=;=iyL5K$wgJ@Rl+Q+-IIu-l7mRjmBuk!@%^234{U6ZCTFZHp$SCl+nc)$1y zPaqS<@SX6inO}!+c{9a85{1fKt%X25UxS0Blcpf1&ZZ1LSlOr-?w(In{l6+Bgx^b| zG&FdX)~f0!?|$f|d}+f>fNfo_muSFSpsq~#x=44^7kTtzamG0)f0l21bD2T9pTmo6 z;>Az`quMpl9wk7C|4Um(&rn}ULy2q+oitSzFOVU2d}-8{G1ji$RPi-tx`VKzA4y_U zP7%DA<-UyPCgz_fX~3r<6qjnM@k+H%2sT=Kz{v1AvKLIPKHD{E$2p8{q!$*MHNTdC znf*vFWq0v1*~FFda4tbc61X0(qyRMzH}ChX2}iXvl?KaJQ-9%cd>{LPQ0EA*L43LC zt70uU%hH-&Mr3B5X>f#--R_{O*%znt<&T&GmD#%;>NrivT37~TW4$^r+2f&M`LKju zF|uwJpoQMgFgMx^o4E>lMkJbSIIoXF}fTE?qZfqTF`s{ntF-Z0s2y zb^F{?LexG89JSE?sweb{bICm}{YT(5#W8cRRaawxDe)MlyiEqE{kipNi}T*Z4S(Xl zoiPf(JS;4dXp?xPosnB`F%G@MX8{SSEcKlu)|Ry{pwdG4$EFTRlmoD z<`X>rT)E`;(Zx&Ot4S66Mc3JzT3^Q}5q0C85T0l&lc45x@lZE|fI#ML5vLCg1*wmT zqnaLGhd|`mfny_%P6b77Id*M`W$QUWOAYETTKK8N)i&oh;9$^kq9<!rUObe zfWr-vN*UE@X(A2hBk5xD^cophy(r$$(l4fIBqAuGw9#RC)~#~`8t*|X7?a$_YpTil zhnlp{^r^JzpH~i?S;m~+W3iMY#~*he^)bn8fXRJs4JHor-{Ml!fj0#uAiRIF$BRdT zN~Rz-RwOxkI+m1D`+4iOQMzfw?=KJVT~Hq^LG2K*+u4k`i}h&bwbN8WwZRuTl)yT>!JBDCMaiW- z&=)4R7S^leMbSk={Z_{*D~<*r$wv`E|^ZW8|K*T~FR5au-Cghf_lFuf8m|~Vso=@H!sIC z+@;|mQGfg!hToQ?C5<01%@8h6{!}j))!qvkhDG!j)Lq}u>R!&(~`H*ZXz!ppssPquyXp!hS?4G!5kuJ*ssOum1c+c|qsyA}P^CTXNb zd{VQYBhN2k>+-hAhU=RMjZ&H;wKm2@7OG;4U8Ly4UkE$@vyPmMQu%iTe#g8TpbqXV z{3bx6c-?WaI4^B)MA4&%-pwS4v=75P=;DijJJbte8!IDG$~;Uz1-V60n#|v^?j27Y zsZ({iQ`9aaIhV6XL3GAPM}c6@eLi-|D0EMC-7dx;Sl!jBMKYekEr<@i-4rw|X!-;( z#MrC)WoCli8ooo|3&Hu@(3Wx=_=>k} z8wQ0>54)z;6wdy_Gyf@IqU1a!mp^XEO>0tY9TO8SO{I<(RN>AfvwDT-In(|^mkHXK z8%mU_V$Q`28lIemBJ^$aW#lYT+1cB>OV~L<21}63-VPu}Eg;6A z1;8n=()iS9ok$IUO8u?E2U1vYKhPVW0N+$)5nvmzgAmqQWOz?k!N$sQU z9LOe`S6zkb{fh|f(BCbtjjmQ>(?Nx)68XWzF_Ud)*&RMr0hLtgbkFA3`OW5H2sa4! zR>-X|F_iF8;>m?q!hHNLe-6k*1{B z>7$`B=}c;7XeMJdOnWB!l054!r1y-TVqFAAy6y66}G_5_j`L}Ia0JFehaH#9b! z-KKrR+M!#LxOX2T%&ErHv%XR05zp{NUg5L%#RB}hy8>z4-x!3G`Ns*3B|Gng=#XJt zBZjy8RvnMh(%HN_By++h8d6Hf_V&)ZF zr>!AJb3?K8X?TycrHARH*zb?4iB;DHb4pn><5w+;#9OPK>CEXU`ncDf(69bzEwIM8 zw4}8E{P3KuHK^8RKuO2mX$N+cEMA$S#F?8knDI@lQ_k%h%ABPV)qG4$vbsPIhP0rJjEuz^r@OvjA-KY$_w+Y z3Dn10ED3*g<*c=l5y~r<@e=j1fibZh0AiL`U{IDWN?hvkn46zdO4bHrXFxOu7gO-_k8cj|33INwqFM9n z#E-}a?|V`<<-B1`=;57DcT5KdH)38&t4ZpbmEt`uv#NRWxGma8oGKpgq!NbT^aJN8 zZubW5&=(vP`*sZk+|*PpKtcvQFB;YhYs}|R4VOVcWVvOv1*3r10)`R}0`IwR;*@9L z_?Ow}MP!tJxMukLrHH2n70Mh&olxj|_3`EOgbp@;j({8UMTSuHAMqm+sY3-Y(_$h?QN z01&v&t->MbdPyN9x`>|D$)+q8vjTh%v`j z7htG|=x3#FBAg=MTXj2uJJcn!)LyWV)C=n8*Ck3;oe1UJ^9loJuOhfy=>S)$2OK6T zS0Vtkx>MzKS%I$xe*iWfPoCI-w-^*UfD}P6xPK{H|9t??HygO}U;y)81;GjI7UkC_ z!WxOg+9?C$_vBPBt;3lhjr-51U=~AU%0cu(#dQvuyBOZ~<2#m22isYw`|sXZ&Wf2C z^oX{OtGhLV<905Y^0$v7MEfjZNQ9nhP4Rvbo#nprJ@BONibuah14`!9U}n9UA7k2_ zQJ!P5nePtAP(%bb`3aZ7^N5-v5l-HBb%K!mDKYaaaED1;|DEmlX1fHUir$o`r;C|y zMZQf4j2Y1{BKpkni`aZPmF5>`&onZR4#pp~Z9M0&8^Jd9k7Ckh@7+{b^~-~L)nyZh zFvH*SvXJTyC$!9-sj1ycQU1vh_y*d4fLcmkn$_2)wFk4Lj9(>3#ZY1|rmX@zMfvaR zA&|1-z)$70e5hAK=>0%UJG?hLhggC0yh$2NW+G7_23Zk!0$%zyS^4muapFr;--K1{ z3%>*iRB3}p6*jO3wq&m{_mXGe~bi}CU^w95iU8m zha5sgnBOkUx62fr<~~-!TiCz3#lW01TPr{|bBgV{l0S?YLzWS5TEQqfea&%ggKo|D zymHZXW?P)xO9CT0z3bMlo=7*toWgfJPLhArsV%hIByj-T2aN#K=w8sbCd;aW<}548 zXG;RCf6)J34cq|m3arH1vcbV%Oz`=KEGSUW-c|sIkT~jPa8%4)aDb}0LB&B8xDLt~ z((`+@&PBMo8hYLXcaFAN;%w&Dr9}D4M$@>}y%R5o{Bz@2)2MPHNfj1Vbsuvi>YQC(v#kiK9YFBwUnc(3C1e?_= zeDY4b7$6T8NefKFOjFvv{#@t}*+IV{Rtc*@;yJ69t*K+UZlkp0{~Y-&;^!jP>+GS1 zQgEicxe^!9G9b9EO&NhZPdEPVWKfU+yKN4k47mXJscATa3Axe5jJ!qM5Mm=PEg(fC zd;Ut4G1}*Pr6BNw7d3+Q?3ueU&dv|{VMAJ;!D*4EO7nB~@+Qr$x^i(9P#lU%=Qw^m zeLA5@rBt2-@mnjqI3vI`E>`J(1a-pI=i%Q{_SMQo3JM-mj)o8_uCK5%JKRr?d#)ew z#Oidjm7)kJ4Xf`E)kht~9w%jTcYR@9;7(hiLR-HaEnL0v*E`<6|W;6ko7lpRV4fyhRX>T!b` hj}g#Z0Rkl;H9Kb}$vn_E;4Wcc@4lEDCH>dLe*g{X_D28! literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/assets/icon.png b/src/hoj-vue/src/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9b57fdc7ce605315c986b7d3433c035609743191 GIT binary patch literal 4568 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 W-Nz!t%ZzRelQqKLyus8b_5T3=IE9P= literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/assets/logo.png b/src/hoj-vue/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..14bc1a92dbe023e6fe9fac5c0145a1e7f0e2a07d GIT binary patch literal 8675 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 literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/assets/spoj-logo.png b/src/hoj-vue/src/assets/spoj-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..607429c772f9c2b76826cb0623402152aae8858f GIT binary patch literal 31489 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 PTMbf_Rg?J%H4XYdus!2M literal 0 HcmV?d00001 diff --git a/src/hoj-vue/src/common/api.js b/src/hoj-vue/src/common/api.js new file mode 100644 index 0000000..ab61431 --- /dev/null +++ b/src/hoj-vue/src/common/api.js @@ -0,0 +1,1866 @@ +import axios from 'axios' +import Vue from 'vue' +import mMessage from '@/common/message' +import router from '@/router' +import store from "@/store" +import utils from '@/common/utils' +import i18n from '@/i18n' +// import NProgress from 'nprogress' // nprogress插件 +// import 'nprogress/nprogress.css' // nprogress样式 + +// // 配置NProgress进度条选项 —— 动画效果 +// NProgress.configure({ ease: 'ease', speed: 1000,showSpinner: false}) +Vue.prototype.$http = axios + + +// 请求超时时间 +axios.defaults.timeout = 90000; + +axios.interceptors.request.use( + + config => { + + // NProgress.start(); + // 每次发送请求之前判断vuex中是否存在token + // 如果存在,则统一在http请求的header都加上token,这样后台根据token判断你的登录情况 + // 即使本地存在token,也有可能token是过期的,所以在响应拦截器中要对返回状态进行判断 + const token = localStorage.getItem('token') + token && (config.headers.Authorization = token); + let type = config.url.split("/")[1]; + if (type === 'admin'){ // 携带请求区别是否为admin + config.headers['Url-Type'] = type + }else{ + config.headers['Url-Type'] = 'general' + } + + return config; + }, + error => { + // NProgress.done(); + mMessage.error(error.response.data.msg); + return Promise.error(error); + }) + +// 响应拦截器 +axios.interceptors.response.use( + response => { + // NProgress.done(); + if(response.headers['refresh-token']){ // token续约! + store.commit('changeUserToken',response.headers['authorization']) + } + if (response.data.status === 200 || response.data.status==undefined) { + return Promise.resolve(response); + } else { + mMessage.error(response.data.msg); + return Promise.reject(response); + } + + }, + // 服务器状态码不是200的情况 + error => { + // NProgress.done(); + if (error.response) { + if(error.response.headers['refresh-token']){ // token续约!! + store.commit('changeUserToken',error.response.headers['authorization']) + } + if(error.response.data instanceof Blob){ // 如果是文件操作的返回,由后续进行处理 + return Promise.resolve(error.response); + } + switch (error.response.status) { + // 401: 未登录 token过期 + // 未登录则跳转登录页面,并携带当前页面的路径 + // 在登录成功后返回当前页面,这一步需要在登录页操作。 + case 401: + if(error.response.data.msg){ + mMessage.error(error.response.data.msg); + } + if(error.response.config.headers['Url-Type'] === 'admin'){ + router.push("/api/admin/login") + }else{ + store.commit('changeModalStatus', { mode: 'Login', visible: true }); + } + store.commit('clearUserInfoAndToken'); + break; + // 403 + // 无权限访问或操作的请求 + case 403: + if(error.response.data.msg){ + mMessage.error(error.response.data.msg); + } + break; + // 404请求不存在 + case 404: + mMessage.error(i18n.t('m.Query_error_unable_to_find_the_resource_to_request')); + break; + // 其他错误,直接抛出错误提示 + default: + if(error.response.data){ + if(error.response.data.msg){ + mMessage.error(error.response.data.msg); + }else{ + mMessage.error(i18n.t('m.Server_error_please_refresh_again')); + } + } + break; + } + return Promise.reject(error); + } else { //处理断网或请求超时,请求没响应 + if(error.code == 'ECONNABORTED' || error.message.includes('timeout')){ + mMessage.error(i18n.t('m.Request_timed_out_please_try_again_later')); + }else{ + mMessage.error(i18n.t('m.Network_error_abnormal_link_with_server_please_try_again_later')); + } + return Promise.reject(error); + } + } +); + + +// 处理oj前台的请求 +const ojApi = { + // Home页的请求 + getWebsiteConfig(){ + return ajax('/api/get-website-config', 'get', { + }) + }, + getHomeCarousel(){ + return ajax('/api/home-carousel', 'get', { + }) + }, + getRecentContests(){ + return ajax('/api/get-recent-contest', 'get', { + }) + }, + getRecentOtherContests(){ + return ajax('/api/get-recent-other-contest', 'get', { + }) + }, + getAnnouncementList(currentPage, limit) { + let params = { + currentPage: currentPage, + limit: limit + } + return ajax('/api/get-common-announcement', 'get', { + params + }) + }, + getRecent7ACRank(){ + return ajax('/api/get-recent-seven-ac-rank', 'get', { + }) + }, + + // 用户账户的相关请求 + getRegisterEmail(email) { + let params = { + email: email + } + return ajax('/api/get-register-code', 'get', { + params + }) + }, + + login(data) { + return ajax('/api/login', 'post', { + data + }) + }, + checkUsernameOrEmail(username, email) { + return ajax('/api/check-username-or-email', 'post', { + data: { + username, + email + } + }) + }, + // 获取验证码 + getCaptcha(){ + return ajax('/api/captcha', 'get') + }, + // 注册 + register(data) { + return ajax('/api/register', 'post', { + data + }) + }, + logout() { + return ajax('/api/logout', 'get') + }, + + // 账户的相关操作 + applyResetPassword (data) { + return ajax('/api/apply-reset-password', 'post', { + data + }) + }, + resetPassword (data) { + return ajax('/api/reset-password', 'post', { + data + }) + }, + // Problem List页的相关请求 + getProblemTagList (oj) { + return ajax('/api/get-all-problem-tags', 'get',{ + params:{ + oj + } + }) + }, + + getProblemTagsAndClassification(oj){ + return ajax('/api/get-problem-tags-and-classification', 'get',{ + params:{ + oj + } + }) + }, + + getProblemList (limit, searchParams) { + let params = { + limit + } + Object.keys(searchParams).forEach((element) => { + if (searchParams[element]!==''&&searchParams[element]!==null&&searchParams[element]!==undefined) { + params[element] = searchParams[element] + } + }) + return ajax('/api/get-problem-list', 'get', { + params: params + }) + }, + + // 查询当前登录用户对题目的提交状态 + getUserProblemStatus(pidList,isContestProblemList,cid,gid){ + return ajax("/api/get-user-problem-status",'post',{ + data:{ + pidList, + isContestProblemList, + cid, + gid + } + }) + }, + // 随机来一题 + pickone () { + return ajax('/api/get-random-problem', 'get') + }, + + // Problem详情页的相关请求 + getProblem(problemId,cid,gid){ + return ajax('/api/get-problem-detail','get',{ + params:{ + problemId, + gid + } + }) + }, + + // 获取题目代码模板 + getProblemCodeTemplate(pid){ + return ajax('/api/get-problem-code-template','get',{ + params:{ + pid + } + }) + }, + + // 提交评测模块 + submitCode (data) { + return ajax('/api/submit-problem-judge', 'post', { + data + }) + }, + // 获取单个提交的信息 + getSubmission (submitId) { + return ajax('/api/get-submission-detail', 'get', { + params: { + submitId + } + }) + }, + // 在线调试 + submitTestJudge(data){ + return ajax('/api/submit-problem-test-judge', 'post', { + data + }) + }, + // 获取调试结果 + getTestJudgeResult(testJudgeKey){ + return ajax('/api/get-test-judge-result', 'get', { + params: { + testJudgeKey + } + }) + }, + // 获取单个提交的全部测试点详情 + getAllCaseResult (submitId) { + return ajax('/api/get-all-case-result', 'get', { + params: { + submitId, + } + }) + }, + // 远程虚拟判题失败进行重新提交 + reSubmitRemoteJudge(submitId){ + return ajax("/api/resubmit",'get',{ + params:{ + submitId, + } + }) + }, + // 更新提交详情 + updateSubmission(data){ + return ajax('/api/submission', 'put', { + data + }) + }, + getSubmissionList (limit, params) { + params.limit = limit + return ajax('/api/get-submission-list', 'get', { + params + }) + }, + checkSubmissonsStatus(submitIds,cid){ + return ajax('/api/check-submissions-status', 'post', { + data:{submitIds,cid} + }) + }, + checkContestSubmissonsStatus(submitIds,cid){ + return ajax('/api/check-contest-submissions-status', 'post', { + data:{submitIds,cid} + }) + }, + + submissionRejudge (submitId) { + return ajax('/api/admin/judge/rejudge', 'get', { + params: { + submitId + } + }) + }, + + admin_manualJudge (submitId,status,score) { + return ajax('/api/admin/judge/manual-judge', 'get', { + params: { + submitId, + status, + score + } + }) + }, + + admin_cancelJudge (submitId) { + return ajax('/api/admin/judge/cancel-judge', 'get', { + params: { + submitId + } + }) + }, + + // ------------------------------------训练模块的请求--------------------------------------------- + + // 获取训练分类列表 + getTrainingCategoryList(){ + return ajax('/api/get-training-category', 'get') + }, + + + // 获取训练列表 + getTrainingList(currentPage,limit,query){ + let params = { + currentPage, + limit + } + if(query!==undefined){ + Object.keys(query).forEach((element) => { + if (query[element]) { + params[element] = query[element] + } + }) + } + return ajax('/api/get-training-list','get',{ + params: params + }) + }, + + // 获取训练详情 + getTraining(tid){ + return ajax('/api/get-training-detail','get',{ + params: {tid} + }) + }, + // 注册私有训练 + registerTraining(tid, password){ + return ajax('/api/register-training','post',{ + data:{ + tid, + password + } + }) + }, + // 获取注册训练权限 + getTrainingAccess(tid){ + return ajax('/api/get-training-access','get',{ + params: {tid} + }) + }, + // 获取训练题目列表 + getTrainingProblemList(tid){ + return ajax('/api/get-training-problem-list','get',{ + params: {tid} + }) + }, + // 获取训练题目详情 + getTrainingProblem(displayId,cid){ + return ajax('/api/get-training-problem-details','get',{ + params: {displayId,cid} + }) + }, + // 获取训练记录榜单 + getTrainingRank(params){ + return ajax('/api/get-training-rank', 'get', { + params + }) + }, + + + + // ------------------------------------------------------------------------------------------------ + + + // 比赛列表页的请求 + getContestList(currentPage,limit,query){ + let params = { + currentPage, + limit + } + if(query!==undefined){ + Object.keys(query).forEach((element) => { + if (query[element]) { + params[element] = query[element] + } + }) + } + return ajax('/api/get-contest-list','get',{ + params: params + }) + }, + + // 比赛详情的请求 + getContest(cid){ + return ajax('/api/get-contest-info','get',{ + params: {cid} + }) + }, + // 获取赛外榜单比赛的信息 + getScoreBoardContestInfo(cid){ + return ajax('/api/get-contest-outsize-info','get',{ + params: {cid} + }) + }, + // 提供比赛外榜排名数据 + getContestOutsideScoreboard(data){ + return ajax('/api/get-contest-outside-scoreboard','post',{ + data + }) + }, + // 注册私有比赛权限 + registerContest(cid,password){ + return ajax('/api/register-contest','post',{ + data:{ + cid, + password + } + }) + }, + // 获取注册比赛权限 + getContestAccess(cid){ + return ajax('/api/get-contest-access','get',{ + params: {cid} + }) + }, + // 获取比赛题目列表 + getContestProblemList(cid){ + return ajax('/api/get-contest-problem','get',{ + params: {cid} + }) + }, + // 获取比赛题目详情 + getContestProblem(displayId,cid){ + return ajax('/api/get-contest-problem-details','get',{ + params: {displayId,cid} + }) + }, + // 获取比赛提交列表 + getContestSubmissionList (limit, params) { + params.limit = limit + return ajax('/api/contest-submissions', 'get', { + params + }) + }, + + getContestRank(data){ + return ajax('/api/get-contest-rank', 'post', { + data + }) + }, + + // 获取比赛公告列表 + getContestAnnouncementList(currentPage,limit,cid){ + let params = { + currentPage, + limit, + cid + } + return ajax('/api/get-contest-announcement', 'get', { + params + }) + }, + + // 获取比赛未阅读公告列表 + getContestUserNotReadAnnouncement(data){ + return ajax('/api/get-contest-not-read-announcement', 'post', { + data + }) + }, + + // 获取acm比赛ac信息 + getACMACInfo(params){ + return ajax('/api/get-contest-ac-info', 'get', { + params + }) + }, + // 确认ac信息 + updateACInfoCheckedStatus(data){ + return ajax('/api/check-contest-ac-info', 'put', { + data + }) + }, + + // 提交打印文本 + submitPrintText(data){ + return ajax('/api/submit-print-text', 'post', { + data + }) + }, + + // 获取比赛打印文本列表 + getContestPrintList(params){ + return ajax('/api/get-contest-print', 'get', { + params + }) + }, + + // 更新比赛打印的状态 + updateContestPrintStatus(params){ + return ajax('/api/check-contest-print-status', 'put', { + params + }) + }, + + + // 比赛题目对应的提交重判 + ContestRejudgeProblem(params){ + return ajax('/api/admin/judge/rejudge-contest-problem', 'get', { + params + }) + }, + + // ACM赛制或OI赛制的排行榜 + getUserRank(currentPage,limit,type,searchUser){ + return ajax('/api/get-rank-list','get',{ + params: { + currentPage, + limit, + type, + searchUser + } + }) + }, + + // about页部分请求 + getAllLanguages(all){ + return ajax("/api/languages",'get',{ + params:{ + all + } + }) + }, + // userhome页的请求 + getUserInfo(uid,username){ + return ajax("/api/get-user-home-info",'get',{ + params:{uid,username} + }) + }, + + getUserCalendarHeatmap(uid,username){ + return ajax("/api/get-user-calendar-heatmap",'get',{ + params:{uid,username} + }) + }, + + // setting页的请求 + changePassword(data){ + return ajax("/api/change-password",'post',{ + data + }) + }, + changeEmail(data){ + return ajax("/api/change-email",'post',{ + data + }) + }, + changeUserInfo(data){ + return ajax("/api/change-userInfo",'post',{ + data + }) + }, + + // 讨论页相关请求 + getCategoryList(){ + return ajax("/api/discussion-category",'get') + }, + + getDiscussionList(limit,searchParams){ + let params = { + limit + } + Object.keys(searchParams).forEach((element) => { + if (searchParams[element]!==''&&searchParams[element]!==null&&searchParams[element]!==undefined) { + params[element] = searchParams[element] + } + }) + return ajax("/api/get-discussion-list",'get',{ + params + }) + }, + + getDiscussion(did){ + return ajax("/api/get-discussion-detail",'get',{ + params:{ + did + } + }) + }, + + addDiscussion(data){ + return ajax("/api/discussion",'post',{ + data + }) + }, + + updateDiscussion(data){ + return ajax("/api/discussion",'put',{ + data + }) + }, + + deleteDiscussion(did){ + return ajax("/api/discussion",'delete',{ + params:{ + did + } + }) + }, + + toLikeDiscussion(did,toLike){ + return ajax("/api/discussion-like",'get',{ + params:{ + did, + toLike + } + }) + }, + toReportDiscussion(data){ + return ajax("/api/discussion-report",'post',{ + data + }) + }, + + getCommentList(params){ + return ajax("/api/comments",'get',{ + params + }) + }, + + addComment(data){ + return ajax("/api/comment",'post',{ + data + }) + }, + + deleteComment(data){ + return ajax("/api/comment",'delete',{ + data + }) + }, + + toLikeComment(cid,toLike,sourceId,sourceType){ + return ajax("/api/comment-like",'get',{ + params:{ + cid, + toLike, + sourceId, + sourceType + } + }) + }, + + addReply(data){ + return ajax("/api/reply",'post',{ + data + }) + }, + + deleteReply(data){ + return ajax("/api/reply",'delete',{ + data + }) + }, + + getAllReply(commentId,cid){ + return ajax("/api/reply",'get',{ + params:{ + commentId, + cid + } + }) + }, + + // Group + getGroupList(currentPage, limit, query) { + let params = { currentPage, limit } + Object.keys(query).forEach((element) => { + if (query[element] !== '' && query[element] !== null && query[element] !== undefined) { + params[element] = query[element] + } + }) + return ajax('/api/get-group-list', 'get', { + params: params + }) + }, + + getGroup(gid) { + return ajax('/api/get-group-detail', 'get', { + params: { gid } + }) + }, + + addGroup(data) { + return ajax("/api/group", 'post', { + data + }) + }, + + updateGroup(data) { + return ajax("/api/group", 'put', { + data + }) + }, + + deleteGroup(gid) { + return ajax("/api/group", 'delete', { + params: { gid } + }) + }, + + getGroupAccess(gid) { + return ajax('/api/get-group-access', 'get', { + params: { gid } + }) + }, + + getGroupAuth(gid) { + return ajax('/api/get-group-auth', 'get', { + params: { gid } + }) + }, + + // Group Member + getGroupMemberList(currentPage, limit, gid) { + return ajax('/api/group/get-member-list', 'get', { + params: { currentPage, limit, gid } + }) + }, + + getGroupApplyList(currentPage, limit, gid) { + return ajax('/api/group/get-apply-list', 'get', { + params: { currentPage, limit, gid } + }) + }, + + addGroupMember(gid, code, reason) { + return ajax("/api/group/member", 'post', { + params: { gid, code, reason } + }) + }, + + updateGroupMember(data) { + return ajax("/api/group/member", 'put', { + data + }) + }, + + + deleteGroupMember(uid, gid) { + return ajax("/api/group/member", 'delete', { + params: { uid, gid } + }) + }, + + exitGroup(gid) { + return ajax("/api/group/member/exit", 'delete', { + params: { gid } + }) + }, + + // Group Announcement + getGroupAnnouncementList(currentPage, limit, gid) { + return ajax('/api/group/get-announcement-list', 'get', { + params: { currentPage, limit, gid } + }) + }, + + getGroupAdminAnnouncementList(currentPage, limit, gid) { + return ajax('/api/group/get-admin-announcement-list', 'get', { + params: { currentPage, limit, gid } + }) + }, + + addGroupAnnouncement(data) { + return ajax("/api/group/announcement", 'post', { + data + }) + }, + + updateGroupAnnouncement(data) { + return ajax("/api/group/announcement", 'put', { + data + }) + }, + + deleteGroupAnnouncement(aid) { + return ajax("/api/group/announcement", 'delete', { + params: { aid } + }) + }, + + // Group Problem + getGroupProblemList(currentPage, limit, gid) { + return ajax('/api/group/get-problem-list', 'get', { + params: { currentPage, limit, gid } + }) + }, + + getGroupAdminProblemList(currentPage, limit, gid){ + return ajax('/api/group/get-admin-problem-list', 'get', { + params: { currentPage, limit, gid } + }) + }, + + getGroupProblem(pid) { + return ajax("/api/group/problem", 'get', { + params: { pid } + }) + }, + + addGroupProblem(data) { + return ajax("/api/group/problem", 'post', { + data: data + }) + }, + + updateGroupProblem(data) { + return ajax("/api/group/problem", 'put', { + data + }) + }, + + deleteGroupProblem(pid) { + return ajax("/api/group/problem", 'delete', { + params: { pid } + }) + }, + + getGroupProblemCases(pid, isUpload) { + return ajax("/api/group/get-problem-cases", 'get', { + params: { pid, isUpload } + }) + }, + getGroupProblemTags(pid) { + return ajax('/api/get-problem-tags', 'get',{ + params:{ + pid + } + }) + }, + + getGroupProblemTagList (gid) { + return ajax('/api/group/get-all-problem-tags', 'get',{ + params:{ + gid + } + }) + }, + + groupCompileSpj(data, gid) { + return ajax("/api/group/compile-spj", 'post', { + data: data, + params: { gid } + }) + }, + + groupCompileInteractive(data, gid) { + return ajax("/api/group/compile-interactive", 'post', { + data: data, + params: { gid } + }) + }, + + changeGroupProblemAuth(pid, auth) { + return ajax("/api/group/change-problem-auth", 'put', { + params: { pid, auth } + }) + }, + + // Group Training + getGroupTrainingList(currentPage, limit, gid) { + return ajax('/api/group/get-training-list', 'get', { + params: { currentPage, limit, gid } + }) + }, + + getGroupAdminTrainingList(currentPage, limit, gid) { + return ajax('/api/group/get-admin-training-list','get', { + params: {currentPage, limit, gid} + }) + }, + + getGroupTraining(tid) { + return ajax("/api/group/training", 'get', { + params: { tid } + }) + }, + + addGroupTraining(data) { + return ajax("/api/group/training", 'post', { + data + }) + }, + + updateGroupTraining(data) { + return ajax("/api/group/training",'put',{ + data + }) + }, + + deleteGroupTraining(tid) { + return ajax("/api/group/training", 'delete', { + params: { tid } + }) + }, + + changeGroupTrainingStatus(tid, status) { + return ajax("/api/group/change-training-status", 'put', { + params:{ tid, status } + }) + }, + + getGroupTrainingProblemList(currentPage, limit, query) { + let params = { currentPage, limit } + Object.keys(query).forEach((element) => { + if (query[element] !== '' && query[element] !== null && query[element] !== undefined) { + params[element] = query[element] + } + }) + return ajax("/api/group/get-training-problem-list",'get',{ + params: params + }) + }, + + updateGroupTrainingProblem(data) { + return ajax("/api/group/training-problem", 'put', { + data + }) + }, + + deleteGroupTrainingProblem(pid, tid) { + return ajax("/api/group/training-problem",'delete', { + params:{ pid, tid } + }) + }, + + addGroupTrainingProblemFromPublic(data) { + return ajax("/api/group/add-training-problem-from-public", 'post', { + data + }) + }, + + addGroupTrainingProblemFromGroup(problemId, tid) { + return ajax("/api/group/add-training-problem-from-group", 'post', { + params:{ problemId, tid } + }) + }, + + //Group Contest + getGroupContestList(currentPage, limit, gid) { + return ajax('/api/group/get-contest-list', 'get', { + params: {currentPage, limit, gid} + }) + }, + + getGroupAdminContestList(currentPage, limit, gid) { + return ajax('/api/group/get-admin-contest-list','get', { + params: {currentPage, limit, gid} + }) + }, + + getGroupContest(cid) { + return ajax("/api/group/contest", 'get', { + params: { cid } + }) + }, + + addGroupContest(data) { + return ajax("/api/group/contest", 'post', { + data + }) + }, + + updateGroupContest(data) { + return ajax("/api/group/contest",'put',{ + data + }) + }, + + deleteGroupContest(cid) { + return ajax("/api/group/contest", 'delete', { + params:{ cid } + }) + }, + + changeGroupContestVisible(cid, visible) { + return ajax("/api/group/change-contest-visible", 'put', { + params:{ cid, visible } + }) + }, + + getGroupContestProblemList(currentPage, limit, query) { + let params = { currentPage, limit } + Object.keys(query).forEach((element) => { + if (query[element] !== '' && query[element] !== null && query[element] !== undefined) { + params[element] = query[element] + } + }) + return ajax("/api/group/get-contest-problem-list",'get',{ + params: params + }) + }, + + addGroupContestProblem(data) { + return ajax("/api/group/contest-problem", 'post', { + data + }) + }, + + getGroupContestProblem(pid, cid) { + return ajax("/api/group/contest-problem", 'get', { + params:{ pid, cid } + }) + }, + + updateGroupContestProblem(data) { + return ajax("/api/group/contest-problem", 'put', { + data + }) + }, + + applyGroupProblemPublic(pid,isApplied) { + return ajax("/api/group/apply-public", 'put', { + params:{ pid, isApplied } + }) + }, + + deleteGroupContestProblem(pid, cid) { + return ajax("/api/group/contest-problem",'delete', { + params:{ pid, cid } + }) + }, + + addGroupContestProblemFromPublic(data) { + return ajax("/api/group/add-contest-problem-from-public", 'post', { + data + }) + }, + + addGroupContestProblemFromGroup(problemId, cid, displayId) { + return ajax("/api/group/add-contest-problem-from-group", 'post', { + params:{ problemId, cid, displayId } + }) + }, + + getGroupContestAnnouncementList(currentPage, limit, cid) { + return ajax('/api/group/get-contest-announcement-list', 'get', { + params: { currentPage, limit, cid } + }) + }, + + addGroupContestAnnouncement(data) { + return ajax("/api/group/contest-announcement", 'post', { + data + }) + }, + + updateGroupContestAnnouncement(data) { + return ajax("/api/group/contest-announcement", 'put', { + data + }) + }, + + deleteGroupContestAnnouncement(aid, cid) { + return ajax("/api/group/contest-announcement", 'delete', { + params: { aid, cid } + }) + }, + + // Group Discussion + getGroupDiscussionList(currentPage, limit, gid, pid) { + return ajax('/api/group/get-discussion-list', 'get', { + params: { currentPage, limit, gid, pid} + }) + }, + + getGroupAdminDiscussionList(currentPage, limit, gid) { + return ajax('/api/group/get-admin-discussion-list', 'get', { + params: { currentPage, limit, gid } + }) + }, + + addGroupDiscussion(data) { + return ajax("/api/group/discussion", 'post', { + data + }) + }, + + updateGroupDiscussion(data) { + return ajax("/api/group/discussion", 'put', { + data + }) + }, + + deleteGroupDiscussion(did) { + return ajax("/api/group/discussion", 'delete', { + params: { did } + }) + }, + + getGroupRank(currentPage,limit,gid,type,searchUser){ + return ajax('/api/get-group-rank-list','get',{ + params: { + currentPage, + limit, + gid, + type, + searchUser + } + }) + }, + + // 站内消息 + + getUnreadMsgCount(){ + return ajax("/api/msg/unread",'get') + }, + + getMsgList(routerName,searchParams){ + let params ={}; + Object.keys(searchParams).forEach((element) => { + if (searchParams[element]!==''&&searchParams[element]!==null&&searchParams[element]!==undefined) { + params[element] = searchParams[element] + } + }) + switch(routerName){ + case "DiscussMsg": + return ajax("/api/msg/comment",'get',{ + params + }); + case "ReplyMsg": + return ajax("/api/msg/reply",'get',{ + params + }); + case "LikeMsg": + return ajax("/api/msg/like",'get',{ + params + }); + case "SysMsg": + return ajax("/api/msg/sys",'get',{ + params + }); + case "MineMsg": + return ajax("/api/msg/mine",'get',{ + params + }); + } + }, + + cleanMsg(routerName,id){ + let params ={}; + if(id){ + params.id=id; + } + switch(routerName){ + case "DiscussMsg": + params.type = 'Discuss'; + break; + case "ReplyMsg": + params.type = 'Reply'; + break; + case "LikeMsg": + params.type = 'Like'; + break; + case "SysMsg": + params.type = 'Sys'; + break; + case "MineMsg": + params.type = 'Mine'; + break; + } + return ajax("/api/msg/clean",'delete',{ + params + }); + } + +} + +// 处理admin后台管理的请求 +const adminApi = { + // 登录 + admin_login (username, password) { + return ajax('/api/admin/login', 'post', { + data: { + username, + password + } + }) + }, + admin_logout () { + return ajax('/api/admin/logout', 'get') + }, + admin_getDashboardInfo () { + return ajax('/api/admin/dashboard/get-dashboard-info', 'get') + }, + getSessions (data) { + return ajax('/api/admin/dashboard/get-sessions', 'post',{ + data + }) + }, + //获取数据后台服务和nacos相关详情 + admin_getGeneralSystemInfo(){ + return ajax('/api/admin/config/get-service-info','get') + }, + + getJudgeServer () { + return ajax('/api/admin/config/get-judge-service-info', 'get') + }, + + // 获取用户列表 + admin_getUserList (currentPage, limit, keyword,onlyAdmin) { + let params = {currentPage, limit} + if (keyword) { + params.keyword = keyword + } + params.onlyAdmin = onlyAdmin + return ajax('/api/admin/user/get-user-list', 'get', { + params: params + }) + }, + // 编辑用户 + admin_editUser (data) { + return ajax('/api/admin/user/edit-user', 'put', { + data + }) + }, + admin_deleteUsers (ids) { + return ajax('/api/admin/user/delete-user', 'delete', { + data:{ids} + }) + }, + admin_importUsers (users) { + return ajax('/api/admin/user/insert-batch-user', 'post', { + data: { + users + } + }) + }, + admin_generateUser (data) { + return ajax('/api/admin/user/generate-user', 'post', { + data + }) + }, + // 获取公告列表 + admin_getAnnouncementList (currentPage, limit) { + return ajax('/api/admin/announcement', 'get', { + params: { + currentPage, + limit + } + }) + }, + // 删除公告 + admin_deleteAnnouncement (aid) { + return ajax('/api/admin/announcement', 'delete', { + params: { + aid + } + }) + }, + // 修改公告 + admin_updateAnnouncement (data) { + return ajax('/api/admin/announcement', 'put', { + data + }) + }, + // 添加公告 + admin_createAnnouncement (data) { + return ajax('/api/admin/announcement', 'post', { + data + }) + }, + + + // 获取公告列表 + admin_getNoticeList (currentPage, limit,type) { + return ajax('/api/admin/msg/notice', 'get', { + params: { + currentPage, + limit, + type + } + }) + }, + // 删除公告 + admin_deleteNotice (id) { + return ajax('/api/admin/msg/notice', 'delete', { + params: { + id + } + }) + }, + // 修改公告 + admin_updateNotice (data) { + return ajax('/api/admin/msg/notice', 'put', { + data + }) + }, + // 添加公告 + admin_createNotice (data) { + return ajax('/api/admin/msg/notice', 'post', { + data + }) + }, + + // 系统配置 + admin_getSMTPConfig () { + return ajax('/api/admin/config/get-email-config', 'get') + }, + admin_editSMTPConfig (data) { + return ajax('/api/admin/config/set-email-config', 'put', { + data + }) + }, + + admin_deleteHomeCarousel(id){ + return ajax('/api/admin/config/home-carousel', 'delete', { + params:{ + id + } + }) + }, + + admin_testSMTPConfig (email) { + return ajax('/api/admin/config/test-email', 'post', { + data: { + email + } + }) + }, + admin_getWebsiteConfig () { + return ajax('/api/admin/config/get-web-config', 'get') + }, + admin_editWebsiteConfig (data) { + return ajax('/api/admin/config/set-web-config', 'put', { + data + }) + }, + admin_getDataBaseConfig(){ + return ajax('/api/admin/config/get-db-and-redis-config', 'get') + }, + admin_editDataBaseConfig(data){ + return ajax('/api/admin/config/set-db-and-redis-config', 'put', { + data + }) + }, + + // 系统开关 + admin_getSwitchConfig () { + return ajax('/api/admin/switch/info', 'get') + }, + + admin_saveSwitchConfig (data) { + return ajax('/api/admin/switch/update', 'put', { + data + }) + }, + + getLanguages (pid,all) { + return ajax('/api/languages', 'get',{ + params:{ + pid, + all + } + }) + }, + getProblemLanguages (pid) { + return ajax('/api/get-problem-languages', 'get',{ + params: { + pid: pid + } + }) + }, + + admin_getProblemList (params) { + params = utils.filterEmptyValue(params) + return ajax('/api/admin/problem/get-problem-list', 'get', { + params + }) + }, + + admin_addRemoteOJProblem(name,problemId){ + return ajax("/api/admin/problem/import-remote-oj-problem","get",{ + params: { + name, + problemId + } + }) + }, + + admin_addContestRemoteOJProblem(name,problemId,cid,displayId){ + return ajax("/api/admin/contest/import-remote-oj-problem","get",{ + params: { + name, + problemId, + cid, + displayId + } + }) + }, + + admin_createProblem (data) { + return ajax('/api/admin/problem', 'post', { + data + }) + }, + admin_editProblem (data) { + return ajax('/api/admin/problem', 'put', { + data + }) + }, + admin_deleteProblem (pid) { + return ajax('/api/admin/problem', 'delete', { + params: { + pid + } + }) + }, + admin_changeProblemAuth (data) { + return ajax('/api/admin/problem/change-problem-auth', 'put', { + data + }) + }, + admin_getProblem (pid) { + return ajax('/api/admin/problem', 'get', { + params: { + pid + } + }) + }, + admin_getAllProblemTagList (oj) { + return ajax('/api/get-all-problem-tags', 'get',{ + params: { + oj + } + }) + }, + + admin_getProblemTags(pid){ + return ajax('/api/get-problem-tags', 'get',{ + params: { + pid + } + }) + }, + admin_getProblemCases(pid,isUpload){ + return ajax('/api/admin/problem/get-problem-cases', 'get',{ + params: { + pid, + isUpload + } + }) + }, + compileSPJ (data) { + return ajax('/api/admin/problem/compile-spj', 'post', { + data + }) + }, + compileInteractive(data){ + return ajax('/api/admin/problem/compile-interactive', 'post', { + data + }) + }, + + admin_addTag (data) { + return ajax('/api/admin/tag', 'post', { + data + }) + }, + + admin_updateTag (data) { + return ajax('/api/admin/tag', 'put', { + data + }) + }, + + admin_deleteTag (tid) { + return ajax('/api/admin/tag', 'delete', { + params: { + tid + } + }) + }, + + admin_getTagClassification(oj){ + return ajax('/api/admin/tag/classification', 'get', { + params: { + oj + } + }) + }, + + admin_addTagClassification(data){ + return ajax('/api/admin/tag/classification', 'post', { + data + }) + }, + + admin_updateTagClassification (data) { + return ajax('/api/admin/tag/classification', 'put', { + data + }) + }, + + admin_deleteTagClassification (tcid) { + return ajax('/api/admin/tag/classification', 'delete', { + params: { + tcid + } + }) + }, + + admin_getGroupApplyProblemList (params) { + params = utils.filterEmptyValue(params) + return ajax('/api/admin/group-problem/list', 'get', { + params + }) + }, + + admin_changeGroupProblemApplyProgress (data) { + return ajax('/api/admin/group-problem/change-progress', 'put', { + data + }) + }, + + admin_getTrainingList (currentPage, limit, keyword) { + let params = {currentPage, limit} + if (keyword) { + params.keyword = keyword + } + return ajax('/api/admin/training/get-training-list', 'get', { + params: params + }) + }, + admin_changeTrainingStatus(tid,status,author){ + return ajax('/api/admin/training/change-training-status', 'put', { + params: { + tid, + status, + author + } + }) + }, + + admin_getTrainingProblemList(params) { + params = utils.filterEmptyValue(params) + return ajax('/api/admin/training/get-problem-list', 'get', { + params + }) + }, + + admin_deleteTrainingProblem (pid,tid) { + return ajax('/api/admin/training/problem', 'delete', { + params: { + pid, + tid + } + }) + }, + + admin_addTrainingProblemFromPublic (data) { + return ajax('/api/admin/training/add-problem-from-public', 'post', { + data + }) + }, + + admin_addTrainingRemoteOJProblem(name,problemId,tid){ + return ajax("/api/admin/training/import-remote-oj-problem","get",{ + params: { + name, + problemId, + tid, + } + }) + }, + + admin_updateTrainingProblem(data){ + return ajax('/api/admin/training/problem', 'put', { + data + }) + }, + + admin_createTraining (data) { + return ajax('/api/admin/training', 'post', { + data + }) + }, + admin_getTraining (tid) { + return ajax('/api/admin/training', 'get', { + params: { + tid + } + }) + }, + admin_editTraining (data) { + return ajax('/api/admin/training', 'put', { + data + }) + }, + admin_deleteTraining(tid){ + return ajax('/api/admin/training', 'delete', { + params: { + tid + } + }) + }, + + admin_addCategory(data) { + return ajax('/api/admin/training/category', 'post', { + data + }) + }, + + admin_updateCategory (data) { + return ajax('/api/admin/training/category', 'put', { + data + }) + }, + + admin_deleteCategory (cid) { + return ajax('/api/admin/training/category', 'delete', { + params: { + cid + } + }) + }, + + + admin_getContestProblemInfo(pid,cid) { + return ajax('/api/admin/contest/contest-problem', 'get', { + params: { + cid, + pid + } + }) + }, + admin_setContestProblemInfo(data) { + return ajax('/api/admin/contest/contest-problem', 'put', { + data + }) + }, + + admin_getContestProblemList (params) { + params = utils.filterEmptyValue(params) + return ajax('/api/admin/contest/get-problem-list', 'get', { + params + }) + }, + + admin_getContestProblem (pid) { + return ajax('/api/admin/contest/problem', 'get', { + params: { + pid, + } + }) + }, + admin_createContestProblem (data) { + return ajax('/api/admin/contest/problem', 'post', { + data + }) + }, + admin_editContestProblem (data) { + return ajax('/api/admin/contest/problem', 'put', { + data + }) + }, + admin_deleteContestProblem (pid,cid) { + return ajax('/api/admin/contest/problem', 'delete', { + params: { + pid, + cid + } + }) + }, + admin_addContestProblemFromPublic (data) { + return ajax('/api/admin/contest/add-problem-from-public', 'post', { + data + }) + }, + + exportProblems (data) { + return ajax('export_problem', 'post', { + data + }) + }, + + admin_createContest (data) { + return ajax('/api/admin/contest', 'post', { + data + }) + }, + admin_getContest (cid) { + return ajax('/api/admin/contest', 'get', { + params: { + cid + } + }) + }, + admin_editContest (data) { + return ajax('/api/admin/contest', 'put', { + data + }) + }, + admin_deleteContest(cid){ + return ajax('/api/admin/contest', 'delete', { + params: { + cid + } + }) + }, + admin_changeContestVisible(cid,visible,uid){ + return ajax('/api/admin/contest/change-contest-visible', 'put', { + params: { + cid, + visible, + uid + } + }) + }, + admin_getContestList (currentPage, limit, keyword) { + let params = {currentPage, limit} + if (keyword) { + params.keyword = keyword + } + return ajax('/api/admin/contest/get-contest-list', 'get', { + params: params + }) + }, + admin_getContestAnnouncementList (cid,currentPage,limit) { + return ajax('/api/admin/contest/announcement', 'get', { + params: { + cid, + currentPage, + limit + } + }) + }, + admin_createContestAnnouncement (data) { + return ajax('/api/admin/contest/announcement', 'post', { + data + }) + }, + admin_deleteContestAnnouncement (aid) { + return ajax('/api/admin/contest/announcement', 'delete', { + params: { + aid + } + }) + }, + admin_updateContestAnnouncement (data) { + return ajax('/api/admin/contest/announcement', 'put', { + data + }) + }, + + admin_updateDiscussion(data){ + return ajax("/api/admin/discussion",'put',{ + data + }) + }, + + admin_deleteDiscussion(data){ + return ajax("/api/admin/discussion",'delete',{ + data + }) + }, + admin_getDiscussionReport(currentPage,limit){ + return ajax("/api/admin/discussion-report",'get',{ + params:{ + currentPage, + limit + } + }) + }, + admin_updateDiscussionReport(data){ + return ajax("/api/admin/discussion-report",'put',{ + data + }) + } +} + +// 集中导出oj前台的api和admin管理端的api +let api = Object.assign(ojApi,adminApi) +export default api +/** + * @param url + * @param method get|post|put|delete... + * @param params like queryString. if a url is index?a=1&b=2, params = {a: '1', b: '2'} + * @param data post data, use for method put|post + * @returns {axios} + */ +function ajax(url, method, options) { + if (options !== undefined) { + var { params = {}, data = {} } = options + } else { + params = data = {} + } + return new Promise((resolve, reject) => { + axios({ + url, + method, + params, + data + }).then((res) => { + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + diff --git a/src/hoj-vue/src/common/codeblock.js b/src/hoj-vue/src/common/codeblock.js new file mode 100644 index 0000000..bb9288b --- /dev/null +++ b/src/hoj-vue/src/common/codeblock.js @@ -0,0 +1,32 @@ + +import $ from 'jquery' +import myMessage from '@/common/message'; +export const addCodeBtn = _ => { + //markdown代码存放在pre code 标签对中 + $('pre code').each(function () { + let lines = $(this).text().split('\n').length - 1 + //添加有序列表 + let $numbering = $('
      ').addClass('pre-numbering') + //添加复制按钮,此处使用的是element-ui icon 图标 + let $copy = $(' COPY').addClass('el-icon-document-copy code-copy') + $(this) + .parent() + .append($numbering) + .append($copy) + for (let i = 0; i <= lines; i++) { + $numbering.append($('
    1. ')) + } + }) + //监听复制按钮点击事件 + $('pre i.code-copy').click(e => { + let text = $(e.target).siblings('code').text() + let element = $('') + $('body').append(element) + element[0].select() + document.execCommand('Copy') + element.remove() + //这里是自定义的消息通知组件 + myMessage.success('success') + }) +} + diff --git a/src/hoj-vue/src/common/constants.js b/src/hoj-vue/src/common/constants.js new file mode 100644 index 0000000..85e0b92 --- /dev/null +++ b/src/hoj-vue/src/common/constants.js @@ -0,0 +1,317 @@ +export const JUDGE_STATUS = { + '-10': { + name: 'Not Submitted', + short: 'NS', + color: 'gray', + type: 'info', + rgb:'#909399' + }, + '-5': { + name: 'Submitted Unknown Result', + short: 'SNR', + color: 'gray', + type: 'info', + rgb:'#909399' + }, + '-4': { + name: 'Cancelled', + short: 'CA', + color: 'purple', + type: 'info', + rgb:'#676fc1' + }, + '-3': { + name: 'Presentation Error', + short: 'PE', + color: 'yellow', + type: 'warning', + rgb:'#f90' + }, + '-2': { + name: 'Compile Error', + short: 'CE', + color: 'yellow', + type: 'warning', + rgb:'#f90' + }, + '-1': { + name: 'Wrong Answer', + short: 'WA', + color: 'red', + type: 'error', + rgb:'#ed3f14' + }, + '0': { + name: 'Accepted', + short: 'AC', + color: 'green', + type: 'success', + rgb:'#19be6b' + }, + '1': { + name: 'Time Limit Exceeded', + short: 'TLE', + color: 'red', + type: 'error', + rgb:'#ed3f14' + }, + '2': { + name: 'Memory Limit Exceeded', + short: 'MLE', + color: 'red', + type: 'error', + rgb:'#ed3f14' + }, + '3': { + name: 'Runtime Error', + short: 'RE', + color: 'red', + type: 'error', + rgb:'#ed3f14' + }, + '4': { + name: 'System Error', + short: 'SE', + color: 'gray', + type: 'info', + rgb:'#909399' + }, + '5': { + name: 'Pending', + color: 'yellow', + type: 'warning', + rgb:'#f90' + }, + '6':{ + name: 'Compiling', + short: 'CP', + color: 'green', + type: 'info', + rgb:'#25bb9b' + }, + '7': { + name: 'Judging', + color: 'blue', + type: '', + rgb:'#2d8cf0' + }, + '8': { + name: 'Partial Accepted', + short: 'PAC', + color: 'blue', + type: '', + rgb:'#2d8cf0' + }, + '9': { + name: 'Submitting', + color: 'yellow', + type: 'warning', + rgb:'#f90' + }, + '10':{ + name:"Submitted Failed", + color:'gray', + short:'SF', + type: 'info', + rgb:'#909399', + } +} + +export const JUDGE_STATUS_RESERVE={ + 'ns':-10, + 'snr':-5, + 'ca':-4, + 'pe':-3, + 'ce':-2, + 'wa':-1, + 'ac':0, + 'tle':1, + 'mle':2, + 're':3, + 'se':4, + 'Pending':5, + 'Compiling':6, + 'Judging':7, + 'pa':8, + 'sf':10, +} + +export const PROBLEM_LEVEL={ + '0':{ + name:{ + 'zh-CN':'简单', + 'en-US':'Easy', + }, + color:'#19be6b' + }, + '1':{ + name:{ + 'zh-CN':'中等', + 'en-US':'Mid', + }, + color:'#2d8cf0' + }, + '2':{ + name:{ + 'zh-CN':'困难', + 'en-US':'Hard', + }, + color:'#ed3f14' + } +} + + +export const REMOTE_OJ = [ + { + name:'HDU', + key:"HDU" + }, + { + name:"Codeforces", + key:"CF" + }, + { + name:"POJ", + key:"POJ" + }, + { + name:"GYM", + key:"GYM" + }, + { + name:"AtCoder", + key:"AC" + }, + { + name:"SPOJ", + key:"SPOJ" + } +] + +export const CONTEST_STATUS = { + 'SCHEDULED': -1, + 'RUNNING': 0, + 'ENDED': 1 +} + +export const CONTEST_STATUS_REVERSE = { + '-1': { + name: 'Scheduled', + color: '#f90' + }, + '0': { + name: 'Running', + color: '#19be6b' + }, + '1': { + name: 'Ended', + color: '#ed3f14' + } +} + +export const TRAINING_TYPE = { + 'Public':{ + color:'success', + name:'Public' + }, + 'Private':{ + color:'danger', + name:'Private' + } +} + +export const GROUP_TYPE = { + PUBLIC: 1, + PROTECTED: 2, + PRIVATE: 3 +} + +export const GROUP_TYPE_REVERSE = { + '1':{ + name: 'Public', + color: 'success', + tips: 'Group_Public_Tips', + }, + '2':{ + name: 'Protected', + color: 'warning', + tips: 'Group_Protected_Tips', + }, + '3':{ + name: 'Private', + color: 'danger', + tips: 'Group_Private_Tips', + } +} + +export const RULE_TYPE = { + ACM: 0, + OI: 1 +} + +export const CONTEST_TYPE_REVERSE = { + '0': { + name:'Public', + color:'success', + tips:'Public_Tips', + submit:true, // 公开赛可看可提交 + look:true, + }, + '1':{ + name:'Private', + color:'danger', + tips:'Private_Tips', + submit:false, // 私有赛 必须要密码才能看和提交 + look:false, + }, + '2':{ + name:'Protected', + color:'warning', + tips:'Protected_Tips', + submit:false, //保护赛,可以看但是不能提交,提交需要附带比赛密码 + look:true, + } +} + +export const CONTEST_TYPE = { + PUBLIC: 0, + PRIVATE: 1, + PROTECTED: 2 +} + +export const USER_TYPE = { + REGULAR_USER: 'user', + ADMIN: 'admin', + PROBLEM_ADMIN:'problem_admin', + SUPER_ADMIN: 'root' +} + + +export const STORAGE_KEY = { + AUTHED: 'authed', + PROBLEM_CODE_AND_SETTING: 'hojProblemCodeAndSetting', + languages: 'languages', + CONTEST_ANNOUNCE:'hojContestAnnounce', + individualLanguageAndSetting:'hojIndividualLanguageAndSetting', + CONTEST_RANK_CONCERNED:'hojContestRankConcerned' +} + +export function buildIndividualLanguageAndSettingKey () { + return `${STORAGE_KEY.individualLanguageAndSetting}` +} + +export function buildProblemCodeAndSettingKey (problemID, contestID = null) { + if (contestID) { + return `${STORAGE_KEY.PROBLEM_CODE_AND_SETTING}_${contestID}_${problemID}` + } + return `${STORAGE_KEY.PROBLEM_CODE_AND_SETTING}_NoContest_${problemID}` +} + +export function buildContestAnnounceKey (uid, contestID) { + return `${STORAGE_KEY.CONTEST_ANNOUNCE}_${uid}_${contestID}` +} + +export function buildContestRankConcernedKey(contestID) { + return `${STORAGE_KEY.CONTEST_RANK_CONCERNED}_${contestID}` +} + diff --git a/src/hoj-vue/src/common/filters.js b/src/hoj-vue/src/common/filters.js new file mode 100644 index 0000000..88a483e --- /dev/null +++ b/src/hoj-vue/src/common/filters.js @@ -0,0 +1,52 @@ +import moment from 'moment' +import utils from './utils' +import time from './time' +import {PROBLEM_LEVEL} from './constants' + +// 友好显示时间 +function fromNow (time) { + return moment(time).fromNow() +} + +function parseRole(num){ + if(num==1000){ + return '超级管理员' + }else if(num==1001){ + return '普通管理员' + }else if(num==1002){ + return '用户(默认)' + }else if(num==1003){ + return '用户(禁止提交)' + }else if(num==1004){ + return '用户(禁止发讨论)' + }else if(num==1005){ + return '用户(禁言)' + }else if(num==1006){ + return '用户(禁止提交&禁止发讨论)' + }else if(num==1007){ + return '用户(禁止提交&禁言)' + }else if(num==1008){ + return '题目管理员' + } +} +function parseContestType(num){ + if(num==0){ + return 'ACM' + }else if(num==1){ + return 'OI' + } +} + +function parseProblemLevel(num){ + return PROBLEM_LEVEL[num].name; +} + +export default { + submissionMemory: utils.submissionMemoryFormat, + submissionTime: utils.submissionTimeFormat, + localtime: time.utcToLocal, + fromNow: fromNow, + parseContestType:parseContestType, + parseRole:parseRole, + parseProblemLevel:parseProblemLevel, +} diff --git a/src/hoj-vue/src/common/highlight.js b/src/hoj-vue/src/common/highlight.js new file mode 100644 index 0000000..d1d7604 --- /dev/null +++ b/src/hoj-vue/src/common/highlight.js @@ -0,0 +1,26 @@ +import hljs from 'highlight.js' +import 'highlight.js/styles/atom-one-light.css' + +export default { + install (Vue, options) { + Vue.directive('highlight', { + deep: true, + bind: function (el, binding) { + Array.from(el.querySelectorAll('pre code')).forEach((target) => { + if (binding.value) { + target.textContent = binding.value + } + hljs.highlightBlock(target) + }) + }, + componentUpdated: function (el, binding) { + Array.from(el.querySelectorAll('pre code')).forEach((target) => { + if (binding.value) { + target.textContent = binding.value + } + hljs.highlightBlock(target) + }) + } + }) + } +} diff --git a/src/hoj-vue/src/common/katex.js b/src/hoj-vue/src/common/katex.js new file mode 100644 index 0000000..dc7be22 --- /dev/null +++ b/src/hoj-vue/src/common/katex.js @@ -0,0 +1,36 @@ +import 'katex' +import renderMathInElement from 'katex/contrib/auto-render/auto-render' +import 'katex/dist/katex.min.css' + +function _ () { +} + +const defaultOptions = { + errorCallback: _, + throwOnError: false, + delimiters: [ + {left: '$', right: '$', display: false}, + {left: '$$', right: '$$', display: true}, + {left: '\\[', right: '\\]', display: true}, + {left: '\\(', right: '\\)', display: false} + ], + ignoredTags:["script", "noscript", "style", "textarea", "code", "option",], +} + +function render (el, binding) { + let options = {} + if (binding.value) { + options = binding.value.options || {} + } + Object.assign(options, defaultOptions) + renderMathInElement(el, options) +} + +export default { + install: function (Vue, options) { + Vue.directive('katex', { + bind: render, + componentUpdated: render + }) + } +} diff --git a/src/hoj-vue/src/common/logo.js b/src/hoj-vue/src/common/logo.js new file mode 100644 index 0000000..9e7beff --- /dev/null +++ b/src/hoj-vue/src/common/logo.js @@ -0,0 +1,15 @@ +export const LOGO = +" _ _ _____ ____ _____ ______ \n"+ +" | | | |/ ____/ __ \| __ \| ____| \n"+ +" | |__| | | | | | | | | | |__ \n"+ +" | __ | | | | | | | | | __| \n"+ +" | | | | |___| |__| | |__| | |____ \n"+ +" |_| |_|\_____\____/|_____/|______| \n"+ +" Hcode Online Judge(HOJ)"+"\n"+ +" @Author Himit_ZH"+"\n"+ +" QQ Group: 598587305"+"\n"+ +" ->Github<- https://www.github.com/HimitZH/HOJ"+"\n"+ +" ->Gitee<- https://gitee.com/himitzh0730/hoj"; + +export const MOTTO = +" Welcome to Use HOJ, Dream in Code!"; \ No newline at end of file diff --git a/src/hoj-vue/src/common/message.js b/src/hoj-vue/src/common/message.js new file mode 100644 index 0000000..e13a3c6 --- /dev/null +++ b/src/hoj-vue/src/common/message.js @@ -0,0 +1,42 @@ +import Vue from 'vue' + +let messageInstance = null; + +const message=function(type,msg,duration=3000){ + if(messageInstance !=null){ + messageInstance.close() + } + messageInstance = Vue.prototype.$msg({ type: type, message: msg, zIndex: 3000 ,position:'top-center',duration:duration}) + return messageInstance +} + + +const error = function (msg) { + return message('error',msg) +} + +const success = function (msg) { + return message('success',msg) +} + +const info = function (msg) { + return message('info',msg) +} + +const warning = function (msg) { + return message('warning',msg) +} +const loading = function(msg){ + return message('loading',msg) +} + +const mMessage = { + error, + success, + info, + warning, + loading, + message +} + +export default mMessage; \ No newline at end of file diff --git a/src/hoj-vue/src/common/storage.js b/src/hoj-vue/src/common/storage.js new file mode 100644 index 0000000..77e7308 --- /dev/null +++ b/src/hoj-vue/src/common/storage.js @@ -0,0 +1,37 @@ +const localStorage = window.localStorage + +export default { + name: 'storage', + + /** + * save value(Object) to key + * @param {string} key 键 + * @param {Object} value 值 + */ + set (key, value) { + localStorage.setItem(key, JSON.stringify(value)) + }, + + /** + * get value(Object) by key + * @param {string} key 键 + * @return {Object} + */ + get (key) { + return JSON.parse(localStorage.getItem(key)) || null + }, + + /** + * remove key from localStorage + * @param {string} key 键 + */ + remove (key) { + localStorage.removeItem(key) + }, + /** + * clear all + */ + clear () { + localStorage.clear() + } +} diff --git a/src/hoj-vue/src/common/time.js b/src/hoj-vue/src/common/time.js new file mode 100644 index 0000000..4ea41d5 --- /dev/null +++ b/src/hoj-vue/src/common/time.js @@ -0,0 +1,79 @@ +import moment from 'moment' +import i18n from '@/i18n' +// 全局设定语言 +moment.locale(i18n.locale); + + +// convert utc time to localtime +function utcToLocal (utcDt, format = 'YYYY-MM-DD HH:mm:ss') { + return moment.utc(utcDt).local().format(format) +} + +// get duration from startTime to endTime, return like 3 days, 2 hours, one year .. +function duration (startTime, endTime) { + let start = moment(startTime) + let end = moment(endTime) + let duration = moment.duration(start.diff(end, 'seconds'), 'seconds') + return duration.humanize() +} + +function formatSpecificDuration(startTime, endTime){ + let start = moment(startTime) + let end = moment(endTime) + let ms = moment.duration(start.diff(end, 'seconds'), 'seconds') + if (ms < 0) ms = -ms; + let arr=[86400000,3600000,60000,1000]; + let en_time=['day','hour','minute','second']; + let zh_time=['天','小时','分钟','秒']; + + let res = ''; + + if(i18n.locale=='en-US'){ + for(let i=0;i=1){ + res+=tmp+' '+en_time[i]; + if(tmp!=1){ + res+='s'; + } + return res; + } + } + }else if(i18n.locale=='zh-CN'){ + + for(let i=0;i=1){ + return tmp+zh_time[i]; + } + } + } +}; + + +function formatDuration(time){ + let duration = moment.duration(time) + return duration.humanize() +} + +function secondFormat (time) { + let m = moment.duration(time, 'seconds') + let seconds = m.seconds()>=10?m.seconds():'0'+m.seconds(); + let hours = Math.floor(m.asHours())>=10?Math.floor(m.asHours()):'0'+Math.floor(m.asHours()); + let minutes = m.minutes()>=10?m.minutes():'0'+m.minutes(); + return hours + ':' + minutes + ':' + seconds; +} + +function durationMs (startTime, endTime) { // 计算时间段的时间戳 + let start = moment(startTime) + let end = moment(endTime) + return end.diff(start, 'seconds'); +} +export default { + utcToLocal: utcToLocal, + duration: duration, + formatSpecificDuration:formatSpecificDuration, + secondFormat: secondFormat, + durationMs:durationMs, + formatDuration:formatDuration +} diff --git a/src/hoj-vue/src/common/utils.js b/src/hoj-vue/src/common/utils.js new file mode 100644 index 0000000..2983f9a --- /dev/null +++ b/src/hoj-vue/src/common/utils.js @@ -0,0 +1,187 @@ +import Vue from 'vue' +import storage from '@/common/storage' +import { STORAGE_KEY,PROBLEM_LEVEL } from '@/common/constants' +import myMessage from '@/common/message' +import api from "@/common/api"; +import store from '@/store' + +// function submissionMemoryFormat (memory) { +// if (memory === undefined || memory ===null || memory === '') return '--' +// // 1048576 = 1024 * 1024 +// let t = parseInt(memory) +// return String(t.toFixed(0)) + 'KB' +// } +function submissionMemoryFormat(a,b){ + if(a ===null || a === ''||a=== undefined)return"--"; + if(a===0) return"0 KB"; + var c=1024,d=b||1,e=["KB","MB","GB","TB","PB","EB","ZB","YB"], + f=Math.floor(Math.log(a)/Math.log(c)); + return parseFloat((a/Math.pow(c,f)).toFixed(d))+" "+e[f] +} + +function submissionTimeFormat (time) { + if (time === undefined || time === null || time === '') return '--' + return time + 'ms' +} + +function submissionLengthFormat(length){ + if (length === undefined || length ===null || length === '') return '--' + return length + 'B' +} + +function getACRate (acCount, totalCount) { + let rate = totalCount === 0 ? 0.00 : (acCount / totalCount * 100).toFixed(2) + return String(rate) + '%' +} + +// 去掉值为空的项,返回object +function filterEmptyValue (object) { + let query = {} + Object.keys(object).forEach(key => { + if (object[key] || object[key] === 0 || object[key] === false) { + query[key] = object[key] + } + }) + return query +} + +// 按指定字符数截断添加换行,非英文字符按指定字符的半数截断 +function breakLongWords (value, length = 16) { + let re + if (escape(value).indexOf('%u') === -1) { + // 没有中文 + re = new RegExp('(.{' + length + '})', 'g') + } else { + // 中文字符 + re = new RegExp('(.{' + (parseInt(length / 2) + 1) + '})', 'g') + } + return value.replace(re, '$1\n') +} + +function downloadFile (url) { + return new Promise((resolve, reject) => { + Vue.prototype.$axios.get(url, {responseType: 'blob',timeout: 5 * 60 * 1000}).then(resp => { + let headers = resp.headers + if (headers['content-type'].indexOf('json') !== -1) { + let fr = new window.FileReader() + if (resp.data.error) { + myMessage.error(resp.data.error) + } + fr.onload = (event) => { + let data = JSON.parse(event.target.result) + if (data.msg) { + myMessage.info(data.msg) + } else { + myMessage.error('Invalid file format') + } + } + let b = new window.Blob([resp.data], {type: 'application/json'}) + fr.readAsText(b) + return + } + let link = document.createElement('a') + link.href = window.URL.createObjectURL(new window.Blob([resp.data], {type: headers['content-type']})) + link.download = (headers['content-disposition'] || '').split('filename=')[1] + document.body.appendChild(link) + link.click() + link.remove() + myMessage.success("Downloading...") + resolve() + }).catch((error) => { + reject(error) + }) + }) +} + +function downloadFileByText (fileName,fileContent) { + return new Promise((resolve, reject) => { + let link = document.createElement('a') + link.href = window.URL.createObjectURL(new window.Blob([fileContent], {type:'text/plain;charset=utf-8'})) + link.download = fileName + document.body.appendChild(link) + link.click() + link.remove() + myMessage.success("Download Successfully!") + resolve() + }) +} + +function getLanguages (all=true) { + return new Promise((resolve, reject) => { + let languages = storage.get(STORAGE_KEY.languages) + if (languages) { + resolve(languages) + }else{ + api.getAllLanguages(all).then(res=>{ + let langs = res.data.data + storage.set(STORAGE_KEY.languages,langs); + resolve(langs); + },err=>{ + reject(err) + }) + } + }) +} + +function stringToExamples(value){ + let reg = "([\\s\\S]*?)([\\s\\S]*?)"; + let re = RegExp(reg,"g"); + let objList = [] + let tmp; + while(tmp=re.exec(value)){ + objList.push({input:tmp[1],output:tmp[2]}) + } + return objList +} + +function examplesToString(objList){ + if(objList.length == 0){ + return ""; + } + let result="" + for(let obj of objList){ + result+= ""+obj.input+""+obj.output+"" + } + return result +} + +function getLevelColor(difficulty) { + if (difficulty != undefined && difficulty != null) { + if (PROBLEM_LEVEL[difficulty]) { + return ( + 'color: #fff !important;background-color:' + + PROBLEM_LEVEL[difficulty]['color'] + + ' !important;' + ); + } else { + return 'color: #fff !important;background-color: rgb(255, 153, 0)!important;'; + } + } +} +function getLevelName(difficulty) { + if ( + difficulty != undefined && + difficulty != null && + PROBLEM_LEVEL[difficulty] + ) { + return PROBLEM_LEVEL[difficulty]['name'][store.getters.webLanguage]; + } else { + return 'unknown [' + difficulty + ']'; + } +} + +export default { + submissionMemoryFormat: submissionMemoryFormat, + submissionTimeFormat: submissionTimeFormat, + submissionLengthFormat:submissionLengthFormat, + getACRate: getACRate, + filterEmptyValue: filterEmptyValue, + breakLongWords: breakLongWords, + downloadFile: downloadFile, + downloadFileByText:downloadFileByText, + getLanguages:getLanguages, + stringToExamples:stringToExamples, + examplesToString:examplesToString, + getLevelColor:getLevelColor, + getLevelName:getLevelName +} diff --git a/src/hoj-vue/src/components/admin/Accordion.vue b/src/hoj-vue/src/components/admin/Accordion.vue new file mode 100644 index 0000000..d478fb0 --- /dev/null +++ b/src/hoj-vue/src/components/admin/Accordion.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/hoj-vue/src/components/admin/AddExtraFile.vue b/src/hoj-vue/src/components/admin/AddExtraFile.vue new file mode 100644 index 0000000..4cb4ac4 --- /dev/null +++ b/src/hoj-vue/src/components/admin/AddExtraFile.vue @@ -0,0 +1,146 @@ + + + + diff --git a/src/hoj-vue/src/components/admin/AddPublicProblem.vue b/src/hoj-vue/src/components/admin/AddPublicProblem.vue new file mode 100644 index 0000000..0d66790 --- /dev/null +++ b/src/hoj-vue/src/components/admin/AddPublicProblem.vue @@ -0,0 +1,170 @@ + + + diff --git a/src/hoj-vue/src/components/admin/CodeMirror.vue b/src/hoj-vue/src/components/admin/CodeMirror.vue new file mode 100644 index 0000000..2eb7e80 --- /dev/null +++ b/src/hoj-vue/src/components/admin/CodeMirror.vue @@ -0,0 +1,107 @@ + + + + diff --git a/src/hoj-vue/src/components/admin/Editor.vue b/src/hoj-vue/src/components/admin/Editor.vue new file mode 100644 index 0000000..9b2ad58 --- /dev/null +++ b/src/hoj-vue/src/components/admin/Editor.vue @@ -0,0 +1,193 @@ + + + diff --git a/src/hoj-vue/src/components/admin/KatexEditor.vue b/src/hoj-vue/src/components/admin/KatexEditor.vue new file mode 100644 index 0000000..355465e --- /dev/null +++ b/src/hoj-vue/src/components/admin/KatexEditor.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/hoj-vue/src/components/admin/RemoteJudgeAccount.vue b/src/hoj-vue/src/components/admin/RemoteJudgeAccount.vue new file mode 100644 index 0000000..db1efa3 --- /dev/null +++ b/src/hoj-vue/src/components/admin/RemoteJudgeAccount.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/hoj-vue/src/components/admin/infoCard.vue b/src/hoj-vue/src/components/admin/infoCard.vue new file mode 100644 index 0000000..5b0ce78 --- /dev/null +++ b/src/hoj-vue/src/components/admin/infoCard.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/comment/comment.vue b/src/hoj-vue/src/components/oj/comment/comment.vue new file mode 100644 index 0000000..205da35 --- /dev/null +++ b/src/hoj-vue/src/components/oj/comment/comment.vue @@ -0,0 +1,1279 @@ + + + + + + + diff --git a/src/hoj-vue/src/components/oj/comment/emoji.json b/src/hoj-vue/src/components/oj/comment/emoji.json new file mode 100644 index 0000000..91dca10 --- /dev/null +++ b/src/hoj-vue/src/components/oj/comment/emoji.json @@ -0,0 +1 @@ +["😀","😄","😁","😆","😅","🤣","😂","🙂","🙃","😉","😊","😇","🥰","😍","🤩","😘","😗","😚","😙","😋","😛","😜","🤪","😝","🤑","🤗","🤭","🤫","🤔","🤐","🤨","😐","😶","😶‍🌫️","😏","😒","🙄","😬","😮‍💨","🤥","😌","😔","😪","🤤","😴","😷","🤒","🤕","🤢","🤮","🤧","🥵","🥶","🥴","😵","😵‍💫","🤯","🤠","🥳","😎","🤓","🧐","😕","😟","🙁","☹️","😮","😯","😲","😳","🥺","😦","😧","😨","😰","😥","😢","😭","😱","😖","😣","😞","😓","😩","😫","🥱","😤","😡","😠","🤬","😈","👿","💀","☠️","💩","🤡","👹","👺","👻","👽","👾","🤖","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🙈","🙉","🙊","💋","💌","💘","💝","💖","💗","💓","💞","💕","💟","❣️","❣","💔","❤️‍🔥","❤‍🩹","❤️","❤","🧡","💛","💚","💙","💜","🤎","🖤","🤍","💯","💢","💥","💫","💦","💨","🕳️","🕳","💣","💬","👁️‍🗨️","🗨️","🗨","🗯️","🗯","💭","💤","🙋","🙇","🙌","🙏","🚶","🏃","👯","💃","👫","👬","👭","💏","💑","👪","💪","👈","👉","☝","👆","👇","✌","✋","👌","👍","👎","✊","👊","👋","👏","👐","✍","🐁","🐂","🐅","🐇","🐉","🐍","🐎","🐐","🐒","🐓","🐕","🐖","💐","🌸","💮","🌹","🌺","🌻","🌼","🌷","🌱","🌿","🍀"] \ No newline at end of file diff --git a/src/hoj-vue/src/components/oj/common/Announcements.vue b/src/hoj-vue/src/components/oj/common/Announcements.vue new file mode 100644 index 0000000..43ad358 --- /dev/null +++ b/src/hoj-vue/src/components/oj/common/Announcements.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/common/CodeMirror.vue b/src/hoj-vue/src/components/oj/common/CodeMirror.vue new file mode 100644 index 0000000..f1d24f2 --- /dev/null +++ b/src/hoj-vue/src/components/oj/common/CodeMirror.vue @@ -0,0 +1,834 @@ + + + + + + diff --git a/src/hoj-vue/src/components/oj/common/Highlight.vue b/src/hoj-vue/src/components/oj/common/Highlight.vue new file mode 100644 index 0000000..2b3dea1 --- /dev/null +++ b/src/hoj-vue/src/components/oj/common/Highlight.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/common/Login.vue b/src/hoj-vue/src/components/oj/common/Login.vue new file mode 100644 index 0000000..e022e3e --- /dev/null +++ b/src/hoj-vue/src/components/oj/common/Login.vue @@ -0,0 +1,217 @@ + + + diff --git a/src/hoj-vue/src/components/oj/common/Marquee.vue b/src/hoj-vue/src/components/oj/common/Marquee.vue new file mode 100644 index 0000000..af392ce --- /dev/null +++ b/src/hoj-vue/src/components/oj/common/Marquee.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/common/NavBar.vue b/src/hoj-vue/src/components/oj/common/NavBar.vue new file mode 100644 index 0000000..8a500aa --- /dev/null +++ b/src/hoj-vue/src/components/oj/common/NavBar.vue @@ -0,0 +1,845 @@ + + + diff --git a/src/hoj-vue/src/components/oj/common/Pagination.vue b/src/hoj-vue/src/components/oj/common/Pagination.vue new file mode 100644 index 0000000..418a8c3 --- /dev/null +++ b/src/hoj-vue/src/components/oj/common/Pagination.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/common/Register.vue b/src/hoj-vue/src/components/oj/common/Register.vue new file mode 100644 index 0000000..0242c20 --- /dev/null +++ b/src/hoj-vue/src/components/oj/common/Register.vue @@ -0,0 +1,315 @@ + + + diff --git a/src/hoj-vue/src/components/oj/common/ResetPassword.vue b/src/hoj-vue/src/components/oj/common/ResetPassword.vue new file mode 100644 index 0000000..db0cc8b --- /dev/null +++ b/src/hoj-vue/src/components/oj/common/ResetPassword.vue @@ -0,0 +1,208 @@ + + + diff --git a/src/hoj-vue/src/components/oj/group/AddGroupProblem.vue b/src/hoj-vue/src/components/oj/group/AddGroupProblem.vue new file mode 100644 index 0000000..3ae1c90 --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/AddGroupProblem.vue @@ -0,0 +1,87 @@ + + diff --git a/src/hoj-vue/src/components/oj/group/AddPublicProblem.vue b/src/hoj-vue/src/components/oj/group/AddPublicProblem.vue new file mode 100644 index 0000000..b2e0cb2 --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/AddPublicProblem.vue @@ -0,0 +1,190 @@ + + + diff --git a/src/hoj-vue/src/components/oj/group/Announcement.vue b/src/hoj-vue/src/components/oj/group/Announcement.vue new file mode 100644 index 0000000..a5de964 --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/Announcement.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/group/AnnouncementList.vue b/src/hoj-vue/src/components/oj/group/AnnouncementList.vue new file mode 100644 index 0000000..677205d --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/AnnouncementList.vue @@ -0,0 +1,354 @@ + + + + + \ No newline at end of file diff --git a/src/hoj-vue/src/components/oj/group/Contest.vue b/src/hoj-vue/src/components/oj/group/Contest.vue new file mode 100644 index 0000000..ad6f1ae --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/Contest.vue @@ -0,0 +1,659 @@ + + + + diff --git a/src/hoj-vue/src/components/oj/group/ContestList.vue b/src/hoj-vue/src/components/oj/group/ContestList.vue new file mode 100644 index 0000000..09b9528 --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/ContestList.vue @@ -0,0 +1,313 @@ + + + diff --git a/src/hoj-vue/src/components/oj/group/DiscussionList.vue b/src/hoj-vue/src/components/oj/group/DiscussionList.vue new file mode 100644 index 0000000..6e94b47 --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/DiscussionList.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/group/MemberList.vue b/src/hoj-vue/src/components/oj/group/MemberList.vue new file mode 100644 index 0000000..6a0b5c7 --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/MemberList.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/group/Problem.vue b/src/hoj-vue/src/components/oj/group/Problem.vue new file mode 100644 index 0000000..0924c63 --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/Problem.vue @@ -0,0 +1,1499 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/group/ProblemList.vue b/src/hoj-vue/src/components/oj/group/ProblemList.vue new file mode 100644 index 0000000..45c3015 --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/ProblemList.vue @@ -0,0 +1,459 @@ + + + diff --git a/src/hoj-vue/src/components/oj/group/Training.vue b/src/hoj-vue/src/components/oj/group/Training.vue new file mode 100644 index 0000000..111e93d --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/Training.vue @@ -0,0 +1,320 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/group/TrainingList.vue b/src/hoj-vue/src/components/oj/group/TrainingList.vue new file mode 100644 index 0000000..830302b --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/TrainingList.vue @@ -0,0 +1,208 @@ + + + \ No newline at end of file diff --git a/src/hoj-vue/src/components/oj/group/TrainingProblemList.vue b/src/hoj-vue/src/components/oj/group/TrainingProblemList.vue new file mode 100644 index 0000000..3340dc1 --- /dev/null +++ b/src/hoj-vue/src/components/oj/group/TrainingProblemList.vue @@ -0,0 +1,292 @@ + + + diff --git a/src/hoj-vue/src/components/oj/msg/msgSvg.vue b/src/hoj-vue/src/components/oj/msg/msgSvg.vue new file mode 100644 index 0000000..dc6f5e3 --- /dev/null +++ b/src/hoj-vue/src/components/oj/msg/msgSvg.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/hoj-vue/src/components/oj/setting/Account.vue b/src/hoj-vue/src/components/oj/setting/Account.vue new file mode 100644 index 0000000..c5cf442 --- /dev/null +++ b/src/hoj-vue/src/components/oj/setting/Account.vue @@ -0,0 +1,428 @@ + + + + + diff --git a/src/hoj-vue/src/components/oj/setting/UserInfo.vue b/src/hoj-vue/src/components/oj/setting/UserInfo.vue new file mode 100644 index 0000000..c69b1e7 --- /dev/null +++ b/src/hoj-vue/src/components/oj/setting/UserInfo.vue @@ -0,0 +1,454 @@ + + + + + diff --git a/src/hoj-vue/src/i18n/admin/en-US.js b/src/hoj-vue/src/i18n/admin/en-US.js new file mode 100644 index 0000000..09960ea --- /dev/null +++ b/src/hoj-vue/src/i18n/admin/en-US.js @@ -0,0 +1,442 @@ +export const m = { + Tips: 'Tips', + Warning: 'Warning', + Successfully: 'Successfully', + // /views/admin/Login.vue + Welcome_to_Login_Admin: 'Welcome to Login Background Management System', + Login: 'Login', + Please_enter_username: 'Please enter username', + Please_enter_password: 'Please enter password', + Admin_Login_Success: 'Dear administrator, welcome back~', + Please_check_your_username_or_password: 'Please check your username or password', + + // /views/admin/Home.vue + Dashboard: 'Dashboard', + General: 'General', + User_Admin: 'Admin User', + Auth_Admin: 'Auth Admin', + Announcement_Admin: 'Announcement', + System_Config: 'System Config', + System_Switch:'System Switch', + Problem_Admin: 'Problem', + Problem_List: 'Problem List', + Create_Problem: 'Create Problem', + Admin_Group_Apply_Problem:'Group Problem Examine', + Export_Import_Problem: 'Export | Import Problem', + Training_Admin: 'Training', + Training_List: 'Training List', + Create_Training: 'Create Training', + Admin_Category: 'Admin Category', + Contest_Admin: 'Contest', + Contest_List: 'Contest List', + Create_Contest: 'Create Contest', + Discussion: 'Discussion', + Discussion_Admin: 'Admin Discussion', + Home_Page: 'Home Page', + Logout: 'Logout', + Log_Out_Successfully: 'Log out successfully', + + // /views/admin/Dashboard.vue + Last_Login: 'Last Login', + Super_Admin: 'Super Admin', + Admin: 'Admin', + All_Problem_Admin: 'Problem Admin', + Total_Users: 'Total Users', + Today_Submissions: 'Today Submissions', + Recent_14_Days_Contests: 'Recent 14 Days Contests', + Backend_System: 'Backend System', + Server_Number: 'Server Number', + Nacos_Status: 'Nacos Status', + HTTPS_Status: 'HTTPS Status', + Backend_Service: 'Backend Service', + Name: 'Name', + Host: 'Host', + Port: 'Port', + CPU_Core: 'CPU Core', + CPU_Usage: 'CPU Usage', + Mem_Usage: 'Mem Usage', + Healthy: 'Healthy', + Secure: 'Secure', + Healthy_Status: 'Healthy', + Unhealthy: 'Unhealthy', + Judge_Server: 'Judge Server', + + // /views/admin/general/User.vue + General_User: 'User', + Created_Time: 'Created Time', + Delete: 'Delete', + OnlyAdmin: 'OnlyAdmin', + User_Type: 'User Type', + Normal: 'Normal', + Disable: 'Disable', + Edit_User: 'Edit User', + Delete_User: 'Delete User', + Import_User: 'Import User', + Import_User_Tips1: 'The imported user data only supports user data in CSV format.', + Import_User_Tips2: 'There are seven columns of data: username, password, email, realname and gender. The username and password cannot be empty, others can be enmpty, otherwise the data in this row may fail to be imported.', + Import_User_Tips3:'The first line does not need to write the seven column names ("username", "password", "email","realname","gender","nickname","school").', + Import_User_Tips4: 'If the gender is male, please use "male" or "0", if the gender is female, please use "female" or "1". If it is not filled in, it is assumed to be "secrecy".', + Import_User_Tips5: 'Please import the file saved as UTF-8 code, otherwise Chinese may be garbled.', + Choose_File: 'Choose File', + Password: 'Password', + Upload_All: 'Upload All', + Clear_All: 'Clear All', + Generate_User: 'Generate User', + Prefix: 'Prefix', + Suffix: 'Suffix', + Start_Number: 'Start Number', + End_Number: 'End Number', + Extra_Account: 'Extra Accounts Allowed to The Contest', + Extra_Account_Tips: 'Please enter the username of the account allowed to enter to the contest, separated by spaces.', + Password_Length: 'Password Length', + Generate_and_Export: 'Generate & Export', + The_usernames_will_be: 'The usernames will be', + Set_New_PWD: 'Set PWD', + General_New_Password: 'New PWD', + Title_Color: 'Title Color', + Title_Name: 'Title Name', + The_end_number_cannot_be_less_than_the_start_number: 'The end number cannot be less than the start number', + Please_select_6_to_25_characters_for_password_length: 'Please select 6 ~ 25 characters for password length', + Start_Number_Required: 'The Start Number is required.', + End_Number_Required: 'The End Number is required.', + Password_Length_Checked: 'Password length must be numeric', + Delete_User_Tips: 'Are you sure you want to delete this user? May be associated to delete the user created announcements, topics, competitions, etc.', + The_number_of_users_selected_cannot_be_empty: 'The number of users selected cannot be empty', + Error_Please_check_your_choice: 'Wrong, please check your choice.', + Generate_User_Success: 'All users in the specified format have been created successfully, and the user table has been downloaded to your computer successfully!', + Generate_Skipped_Reason: 'rows user data are filtered because it may be an empty row or a column(username or password) value is empty.', + Upload_Users_Successfully: 'Upload Users Successfully', + + // /views/admin/general/Auth.vue + General_Auth: 'Auth', + Auth: 'Auth', + Create_Auth: 'Create Auth', + Edit_Auth: 'Edit Auth', + Auth_Name: 'Name', + Auth_Permission: 'Permission', + Role_Auth: 'Role Auth', + Role: 'Role', + Auth_Id: 'Auth ID', + Create_Role_Auth: 'Create Role Auth', + Delete_Auth: 'Delete Auth', + Delete_Auth_Tips: 'Are you sure you want to delete this auth?', + + // /views/admin/general/Announcement.vue + General_Announcement: 'Announcement', + Create: 'Create', + Modified_Time: 'Modified Time', + Edit_Announcement: 'Edit Announcement', + Create_Announcement: 'Create Announcement', + Delete_Announcement: 'Delete Announcement', + Announcement_Title: 'Title', + Announcement_Content: 'Content', + Announcement_visible: 'Visible', + Delete_Announcement_Tips: 'Are you sure you want to delete this announcement?', + + // /views/admin/general/SysNotice.vue + SysNotice: 'Notification', + Notice_Admin: 'Notification', + Push_System_Notification_Every_Hour: 'Tips: Push System Notification Every Hour', + Edit_Notice: 'Edit Notification', + Create_Notice: 'Create Notification', + Delete_Notice: 'Delete Notification', + Notice_Title: 'Notification Title', + Notice_Content: 'Notification Content', + Notice_Push: 'Pushed', + Notice_Recipient: 'Recipient', + All_User: 'All User', + Designated_User: 'Designated User', + All_Admin: 'Admin', + Delete_Notice_Tips: 'Are you sure you want to delete this notification?', + + // /views/admin/general/SystemConfig.vue + Website_Config: 'Website Config', + Base_Url: 'Base Url', + Web_Name: 'Web Name', + Short_Name: 'Short Name', + Record_Name: 'Record Name', + Record_Url: 'Record Url', + Project_Name: 'Project Name', + Project_Url: 'Project Url', + Web_Desc: 'Web Desc', + Allow_Register: 'Allow Register', + Home_Rotation_Chart: 'Home Rotation Chart', + SMTP_Config: 'SMTP Config', + Email_BG: 'BG IMG', + Email_BG_Desc: 'SMTP Template Background IMG Address', + Send_Test_Email: 'Send Test Email', + Email: 'Email', + Mobile_Config: 'Mobile Config', + Region_Id: 'Region ID', + Domain: 'Domain', + Access_Key_Id: 'Access Key Id', + Secret: 'Secret', + Sign_Name: 'Sign Name', + Template_Code: 'Template Code', + Send_Test_Message: 'Send Test Message', + DataSource_Config: 'DataSource Config', + Please_input_your_email: 'Please input your email', + + // /views/admin/general/SysSwitch.vue + Judge_Config:'Judge Config', + Open_Public_Judge:'Open Public Judge', + Open_Group_Judge:'Open Group Judge', + Open_Contest_Judge:'Open Contest Judge', + Non_Contest_Submission_Frequency:'Non Contest Submission Frequency(s)', + Discussion_Config:'Discussion Config', + Open_Public_Discussion:'Open Public Discussion', + Open_Group_Discussion:'Open Group Discussion', + Open_Contest_Comment:'Open Contest Comment', + Hide_Non_Contest_Submission_Code:'Hide Non Master Station Contest Submission Code', + Number_of_AC_required_for_ordinary_users_to_post:'Users can create discussion (Required AC)', + Number_of_posts_that_users_can_create_per_day:'Number of Users can create discussion per day', + Number_of_AC_required_for_Comment_of_ordinary_users:'Users can comment (Required AC)', + Group_Config:'Group Config', + Number_of_Groups_that_users_can_create_per_day:'Number of Users can create group per day', + Total_number_of_groups_that_ordinary_users_can_create:'Total number of Users can create group', + Number_of_AC_required_for_ordinary_users_to_create_group:'Users can create group (Required AC)', + Account_Config:'Account Config', + Account:'Account', + Add_Account:'Add Account', + + // /views/admin/problem/ProblemList.vue + Contest_Problem_List: 'Contest Problem List', + Display_ID: 'Display ID', + Display_Title: 'Display Title', + Original_Display: 'Original Display', + Contest_Display: 'Contest Display', + Add_Rmote_OJ_Problem: 'Add Remote OJ Problem', + Add_From_Public_Problem: 'Add From Public Problem', + ACM_Contest_Add_From_Public_Problem_Tips:'ACM Contest: Only ACM type problem and Remote Judge problem can be imported', + OI_Contest_Add_From_Public_Problem_Tips:'OI Contest: Only OI type problem and Remote Judge problem can be imported', + Auth: 'Auth', + Modified_User: 'Modified User', + All_Problem: 'All Problem', + Public_Problem: 'Public Problem', + Private_Problem: 'Private Problem', + Contest_Problem: 'Contest Problem', + Download_Testcase: 'Download Testcase', + Add_Contest_Problem: 'Add Contest Problem', + Remote_OJ: 'Remote OJ', + Add: 'Add', + Remove: 'Remove', + Delete_Problem_Tips: 'Are you sure you want to delete this problem? Note: the relevant submission data for this issue will also be deleted.', + Remove_Contest_Problem_Tips: 'Are you sure you want to remove the problem from the contest?', + Add_Successfully: 'Add Successfully', + Download_Testcase_Success: 'The testcase of this problem has been downloaded successfully!', + Enter_The_Problem_Display_ID_in_the_Contest: 'Enter The Problem Display ID in the Contest', + Problem_ID_is_required: 'Problem ID is required', + The_Problem_Display_ID_in_the_Contest_is_required: 'The Problem Display ID in the Contest is required', + Balloon_Color: 'Balloon Color', + Update_Balloon_Color_Successfully: 'Update the Balloon color of the problem successfully!', + + // /views/admin/problem/Problem.vue + Problem_Display_ID: 'Problem Display ID', + Title: 'Title', + Contest_Display_Title: 'Contest Display Title', + Contest_Display_ID: 'Contest Display ID', + Description: 'Description', + Input_Description: 'Input Description', + Output_Description: 'Output Description', + Time_Limit: 'Time Limit', + Memory_Limit: 'Memory Limit', + Stack_Limit: 'Stack Limit', + Code_Shareable: 'Code Shareable', + Languages: 'Languages', + Problem_Examples: 'Problem Examples', + Problem_Examples_Desc: 'Problem Examples: please do not have more than 2 problem examples. Problem examples are not included in the testcase.', + Problem_Example: 'Example', + Example_Input: 'Example Input', + Example_Output: 'Example Output', + Add_Example: 'Add Example', + Judge_Mode: 'Judge Mode', + General_Judge: 'General Judge', + Special_Judge: 'Special Judge', + Interactive_Judge: 'Interactive Judge', + Special_Judge_Code: 'Special Judge Program Code', + Interactive_Judge_Code: 'Interactive Judge Program Code', + General_Judge_Mode_Tips: 'General Judge: the contestant program reads the problem standard input file, executes the code logic to obtain the contestant\'s output, and compares the contents of the problem standard output file to obtain the problem judgment result', + Special_Judge_Mode_Tips: 'Special Judge: the output results required by the problem may not be unique, and different results are allowed. Therefore, a special program is needed to read standard output, player output and standard input, and compare them to obtain the final judgment result', + Interactive_Judge_Mode_Tips: 'Interactive Judge: the standard output of the interactive program is written to the standard input of the player program through the interactive channel, and the standard output of the player program is written to the standard input of the interactive program through the interactive channel. Both need to flush the output buffer', + Use_Special_Judge: 'Use Special Judge', + SPJ_Language: 'SPJ Program Language', + Interactive_Language: 'Interactive Program Langugae', + Compile: 'Compile', + Compiled_Successfully: 'Compiled Successfully', + Code_Template: 'Code Template', + Type: 'Type', + Judge_Samples: 'Judge Samples', + Problem_Sample: 'Sample', + Sample_Input: 'Sample Input', + Sample_Output: 'Sample Output', + Sample_Input_File: 'Input File', + Sample_Output_File: 'Output File', + Sample_Tips: 'Sample: the data source of the judger to test the submission.', + Add_Sample: 'Add Sample', + Use_Upload_File: 'Use Upload File', + Use_Manual_Input: 'Use Manual Input', + Hint: 'Hint', + Source: 'Source', + Auto_Remove_the_Blank_at_the_End_of_Code: 'Automatically Remove Whitespace at The End of Each Line of Code', + Publish_the_Judging_Result_of_Test_Data: 'Publish the Judging Result of Test Data', + Edit_Problem: 'Edit Problem', + Create_Problem: 'Create Problem', + Change_Judge_Mode: 'Note: switching the judgment mode may change the evaluation logic!', + Add_Tag_Error: 'The tag has been added, please do not add it repeatedly!', + + Upload_Testcase_Successfully: 'Upload Testcase Successfully', + Upload_Testcase_Failed: 'Upload Testcase Failed', + is_required: 'is required!', + Score_must_be_greater_than_or_equal_to_0: 'Score must be greater than or equal to 0!', + Score_must_be_an_integer: 'Score must be an integer!', + Spj_Or_Interactive_Code: 'Spj Or Interactive Code', + Spj_Or_Interactive_Code_not_Compile_Success: 'Spj Or Interactive Code was not compiled successfully, please compile again!', + Judge_Extra_File: 'Judge Extra File', + Judge_Extra_File_Tips1: '1. User Program: Provide additional library files for user program', + Judge_Extra_File_Tips2: '2. Special Or Interactive Program: Provide additional library files for special or interactive programs', + User_Program: 'User Program', + SPJ_Or_Interactive_Program: 'Special Or Interactive Program', + + + // /views/admin/problem/Tag.vue + Admin_Tag: 'Admin Tag', + Add_Tag: 'Add Tag', + Update_Tag: 'Update Tag', + To_Add: 'Add', + To_Update: 'Update', + Create_Training: 'Create Training', + Tag_Name: 'Tag Name', + Tag_Color: 'Tag Color', + Tag_Attribution: 'Tag Attribution', + Delete_Tag_Tips: 'Are you sure you want to delete this tag?', + Tag_Tips:'Note: By default, there is no tag classification column, and all tags are [Unclassified]. Please click [Add Tag Classification] in the upper left corner to add tag classification, and then click tag modification #Tag Classification# to classify.', + Tag_Classification:'Tag Classification', + Add_Tag_Classification: 'Add Tag Classification', + Update_Tag_Classification: 'Update Tag Classification', + Tag_Classification_Name: 'Tag Classification Name', + Tag_Classification_Rank: 'Tag Classification Rank', + Tag_Classification_Attribution: 'Tag Classification Attribution', + Delete_Tag_Classification_Tips: 'Are you sure you want to delete this tag classification? Prompt: This operation will attribute the labels under this classification to unclassified!', + Unclassified:'Unclassified', + + // /views/amdin/problem/GroupProblemList.vue + Search:'Search', + Enter_Group_ID:'Enter Group ID', + Agreed:'Agreed', + Examine:'Examine', + + + // /views/admin/training/TrainingList.vue + Update_Time: 'Update Time', + Order_Number: 'Order Number', + View_Training_Problem_List: 'View Training Problem List', + Delete_Training_Tips: 'This operation will delete the training and its submission, rank record and other data. Do you want to continue?', + + // /views/admin/training/Training.vue + Training_rank: 'Training Sort Number (Ascending Sort)', + Training_Title: 'Training Title', + Training_Description: 'Training Description', + Training_Auth: 'Training Auth', + Training_Category: 'Training Category', + Public_Training: 'Public Training', + Private_Training: 'Private Training', + Training_Password: 'Training Password', + Edit_Training: 'Edit Training', + Create_Training: 'Create Training', + Redirect_To_Category: 'The category list of current training is empty. Please go to create category first!', + Redirect: 'Redirect', + + // /views/admin/training/TrainingProblemList.vue + Training_Problem_List: 'Training Problem List', + Add_Training_Problem: 'Add Training Problem', + Remove_Training_Problem_Tips: 'Are you sure you want to remove the problem from the training?', + Training_Problem_Rank: 'Title Display Order(Ascending)', + + // /views/admin/training/Category.vue + Add_Category: 'Add Category', + Update_Category: 'Update Category', + To_Add: 'Add', + To_Update: 'Update', + Category_Name: 'Category Name', + Category_Color: 'Category Color', + Delete_Category_Tips: 'Are you sure you want to delete this category?', + + // /views/admin/problem/ImportAndExport.vue + Export_Problem: 'Export Problem', + Export: 'Export', + Import_Problem: 'Import Problem', + Import_QDOJ_Problem: 'Import QDUOJ Problem', + Import_FPS_Problem: 'Import FPS Problem', + Export_Problem_NULL_Tips: 'The problem selected for export cannot be empty', + Upload_Problem_Succeeded: 'Upload Problem Succeeded', + Upload_Problem_Failed: 'Upload Problem Failed', + + // /views/admin/contest/ContestList.vue + Start_Time: 'Start Time', + End_Time: 'End Time', + Creator: 'Creator', + Visible: 'Visible', + Info: 'Info', + View_Contest_Problem_List: 'View Contest Problem List', + View_Contest_Announcement_List: 'View Contest Announcement List', + Download_Contest_AC_Submission: 'Download Contest AC Submissions', + Exclude_admin_submissions: 'Exclude admin submissions', + SplitType_User: 'Split folders by username', + SplitType_Problem: 'Split folders by problem id', + Delete_Contest_Tips: 'This operation will delete the contest and its submission, discussion, announcement, record and other data. Do you want to continue?', + + // /views/admin/contest/Contest.vue + Contest_Title: 'Contest Title', + Contest_Description: 'Contest Description', + Contest_Start_Time: 'Start Time', + Contest_End_Time: 'End Time', + Contest_Duration: 'Contest Duration', + Contest_Rule_Type: 'Contest Rule Type', + Seal_Time_Rank: 'Seal Time Rank', + Real_Time_Rank: 'Real Time Rank', + Seal_Rank_Time: 'Seal Rank Time', + Contest_Auth: 'Contest Auth', + Contest_Password: 'Contest Password', + OI_Rank_Score_Type: 'OI RANK Score Type', + OI_Rank_Score_Type_Recent: 'Use Recent Score', + OI_Rank_Score_Type_Highest: 'Use Highest Score', + Contest_Seal_Half_Hour: 'Half an hour', + Contest_Seal_An_Hour: 'An hour', + Contest_Seal_All_Hour: 'All hours', + Auto_Real_Rank: 'Auto_Real_Rank', + Real_Rank_After_Contest: 'Real Rank After Contest', + Seal_Rank_After_Contest: 'Seal Rank After Contest', + Edit_Contest: 'Edit Contest', + Create_Contest: 'Create Contest', + Contest_Duration_Check: 'The duration of the contest cannot be less than or equal to zero!', + Contets_Time_Check: 'The start time should be earlier than the end time!', + Print_Func: 'Print Function', + Open: 'Open', + Not_Support_Print: 'Not Support Print', + Support_Offline_Print: 'Support Offline Print', + Add_Star_User_Error: 'Please do not add existing star user repeatedly!', + Star_User_UserName: 'Star User (Please use login username)', + Rank_Show_Name: 'The Name Showed in The Rank', + Show_Username: 'Username', + Show_Nickname: 'Nickname', + Show_Realname: 'Real name', + Account_Limit: 'Account Limit (Login Username)', + The_allowed_account_will_be: 'The allowed username will be ', + + // /views/admin/discussion/Discussion.vue + Discussion_ID: 'Discussion ID', + Top: 'Top', + Discussion_Report: 'Discussion Report', + Reporter: 'Reporter', + Report_Time: 'Report Time', + View_Report_content: 'View Report Content', + View_Discussion: 'View Discussion Detail', + Content: 'Content', + Report_Content: 'Report Content', + The_number_of_discussions_selected_cannot_be_empty: 'The number of discussions selected cannot be empty', + + // components/admin/AddExtraFile.vue + Delete_Extra_File_Tips: 'Are you sure you want to delete this extra file?', + File_Name: 'File Name', + File_Content: 'File Content' +} diff --git a/src/hoj-vue/src/i18n/admin/zh-CN.js b/src/hoj-vue/src/i18n/admin/zh-CN.js new file mode 100644 index 0000000..9f9dd38 --- /dev/null +++ b/src/hoj-vue/src/i18n/admin/zh-CN.js @@ -0,0 +1,438 @@ +export const m = { + Tips: '提示', + Warning: '警告', + Successfully: '成功', + // /views/admin/Login.vue + Welcome_to_Login_Admin: '欢迎登录后台管理系统', + Login: '登录', + Please_enter_username: '用户名', + Please_enter_password: '密码', + Admin_Login_Success: '尊敬的管理员,欢迎回来~', + Please_check_your_username_or_password: '请检查你的用户名或密码', + + // /views/admin/Home.vue + Dashboard: '仪表盘', + General: '常用设置', + User_Admin: '用户管理', + Auth_Admin: '权限管理', + Announcement_Admin: '公告管理', + System_Config: '系统配置', + System_Switch: '系统开关', + Problem_Admin: '题目管理', + Problem_List: '题目列表', + Create_Problem: '增加题目', + Admin_Group_Apply_Problem:'团队题目审批', + Export_Import_Problem: '导入|导出题目', + Training_Admin: '训练管理', + Training_List: '训练列表', + Create_Training: '创建训练', + Admin_Category: '分类管理', + Contest_Admin: '比赛管理', + Contest_List: '比赛列表', + Create_Contest: '创建比赛', + Discussion: '讨论管理', + Discussion_Admin: '讨论管理', + Home_Page: '主页', + Logout: '退出登录', + Log_Out_Successfully: '退出登录成功', + + // /views/admin/Dashboard.vue + Last_Login: '最近登录', + Super_Admin: '超级管理员', + Admin: '普通管理员', + All_Problem_Admin: '题目管理员', + Total_Users: '总用户数', + Today_Submissions: '今日总交题数', + Recent_14_Days_Contests: '最近两周比赛', + Backend_System: '后端系统', + Server_Number: '服务器数量', + Nacos_Status: 'Nacos 状态', + HTTPS_Status: 'HTTPS 状态', + Backend_Service: '后端服务', + Name: '名称', + Host: '主机', + Port: '端口', + CPU_Core: 'CPU核心数', + CPU_Usage: 'CPU使用率', + Mem_Usage: '内存使用率', + Secure: '不稳定', + Healthy_Status: '状态', + Healthy: '健康', + Unhealthy: '不健康', + Judge_Server: '判题系统', + + // /views/admin/general/User.vue + General_User: '用户管理', + Created_Time: '创建时间', + Delete: '删除', + OnlyAdmin: '仅显示管理员', + User_Type: '用户角色', + Normal: '正常', + Disable: '封禁', + Edit_User: '编辑用户', + Delete_User: '删除用户', + Import_User: '导入用户', + Import_User_Tips1: '用户数据导入仅支持csv格式的用户数据。', + Import_User_Tips2: '共七列数据:用户名和密码不能为空,邮箱、真实姓名、性别、昵称和学校可选填,否则该行数据可能导入失败。', + Import_User_Tips3:'第一行不必写(“用户名”,“密码”,“邮箱”,"真实姓名",“性别”,“昵称”,“学校”)这七个列名', + Import_User_Tips4: '性别为男请使用“male”或“0”,女请使用“female”或“1”,不填默认为“secrecy”。', + Import_User_Tips5: '请导入保存为UTF-8编码的文件,否则中文可能会乱码。', + Choose_File: '选择文件', + Password: '密码', + Upload_All: '上传全部', + Clear_All: '清除全部', + Generate_User: '生成用户', + Prefix: '前缀', + Suffix: '后缀', + Start_Number: '开始数字', + End_Number: '结束数字', + Extra_Account: '额外允许参加比赛的账号列表', + Extra_Account_Tips: '请输入允许参加比赛账号的用户名,并用空格隔开。', + Password_Length: '密码长度', + Generate_and_Export: '生成 & 导出', + The_usernames_will_be: '生成的用户名将会是', + Set_New_PWD: '设置新密码', + General_New_Password: '新密码', + Title_Color: '头衔颜色', + Title_Name: '头衔名称', + The_end_number_cannot_be_less_than_the_start_number: '结束数字不能小于开始数字', + Please_select_6_to_25_characters_for_password_length: '请输入6~25作为密码的长度', + Start_Number_Required: '开始数字不能为空', + End_Number_Required: '结束数字不能为空', + Password_Length_Checked: '密码长度必须是数字', + Delete_User_Tips: '你确定要删除该用户吗?可能会关联删除该用户创建的公告,题目,比赛等。', + The_number_of_users_selected_cannot_be_empty: '选择的用户不能为空', + Error_Please_check_your_choice: '错误,请检查你的输入或选择是否准确', + Generate_User_Success: '所有用户已经被成功创建, 用户的列表数据文件将下载到你的电脑里', + Generate_Skipped_Reason: '行用户数据被过滤,原因是可能为空行或某个列值(用户名或密码)为空', + Upload_Users_Successfully: '上传用户成功', + + // /views/admin/general/User.vue + General_Auth: '权限管理', + Auth: '权限', + Create_Auth: '创建权限', + Edit_Auth: '编辑权限', + Auth_Name: '名称', + Auth_Permission: '权限', + Role_Auth: '角色权限', + Role: '角色', + Auth_Id: '权限 ID', + Create_Role_Auth: '创建角色权限', + Delete_Auth: '删除权限', + Delete_Auth_Tips: '你确定要删除该权限吗?', + + // /views/admin/general/Announcement.vue + General_Announcement: '公告管理', + Create: '创建', + Modified_Time: '修改时间', + Edit_Announcement: '编辑公告', + Create_Announcement: '创建公告', + Delete_Announcement: '删除公告', + Announcement_Title: '公告标题', + Announcement_Content: '公告内容', + Announcement_visible: '是否可见', + Delete_Announcement_Tips: '你确定要删除该公告吗?', + + // /views/admin/general/SysNotice.vue + SysNotice: '通知管理', + Notice_Admin: '通知管理', + Push_System_Notification_Every_Hour: '提示:每小时推送一次系统通知', + Edit_Notice: '编辑通知', + Create_Notice: '创建通知', + Delete_Notice: '删除通知', + Notice_Title: '通知标题', + Notice_Content: '通知内容', + Notice_Push: '已推送', + Notice_Recipient: '接收者', + All_User: '所有用户', + Designated_User: '指定用户', + All_Admin: '管理员', + Delete_Notice_Tips: '你确定要删除该通知吗?', + + // /views/admin/general/SystemConfig.vue + Website_Config: '网站设置', + Base_Url: '基础URL', + Web_Name: '网站名称', + Short_Name: '网站简称', + Record_Name: '备案名', + Record_Url: '备案地址', + Project_Name: '项目名', + Project_Url: '项目地址', + Web_Desc: '网站简介', + Allow_Register: '是否允许注册', + Home_Rotation_Chart: '首页轮播图', + SMTP_Config: 'SMTP 设置', + Email_BG: '邮件背景', + Email_BG_Desc: '请输入邮件背景图的URL链接', + Send_Test_Email: '发送测试邮件', + Email: '邮箱', + Mobile_Config: '信息设置', + Region_Id: '区域 ID', + Domain: '域名', + Access_Key_Id: '权限代码', + Secret: '密钥', + Sign_Name: '短信签名', + Template_Code: '模板代码', + Send_Test_Message: '发送测试短信', + DataSource_Config: '数据源设置', + Please_input_your_email: '请输入你的邮箱', + + // /views/admin/general/SysSwitch.vue + Judge_Config:'评测配置', + Open_Public_Judge:'是否开启公开题目评测', + Open_Group_Judge:'是否开启团队题目评测', + Open_Contest_Judge:'是否开启比赛题目评测', + Non_Contest_Submission_Frequency:'非比赛提交评测的间隔秒数', + Discussion_Config:'讨论配置', + Open_Public_Discussion:'是否开启公开评论区', + Open_Group_Discussion:'是否开启团队评论区', + Open_Contest_Comment:'是否开启比赛讨论区', + Hide_Non_Contest_Submission_Code:'隐藏非公共比赛提交详情的代码', + Number_of_AC_required_for_ordinary_users_to_post:'普通用户发布帖子需要的AC题目数', + Number_of_posts_that_users_can_create_per_day:'普通用户每天可以创建的帖子数', + Number_of_AC_required_for_Comment_of_ordinary_users:'普通用户评论和回复需要的AC题目数', + Group_Config:'团队配置', + Number_of_Groups_that_users_can_create_per_day:'普通用户每天可以创建的团队数', + Total_number_of_groups_that_ordinary_users_can_create:'普通用户总共可以创建的团队数', + Number_of_AC_required_for_ordinary_users_to_create_group:'普通用户创建团队需要的AC题目数', + Account_Config:'账号配置', + Account:'账号', + Add_Account:'增加账号', + + // /views/admin/problem/ProblemList.vue + Contest_Problem_List: '比赛题目列表', + Display_ID: '展示ID', + Display_Title: '展示标题', + Add_Rmote_OJ_Problem: '添加远程OJ题目', + Add_From_Public_Problem: '从公共题库添加题目', + ACM_Contest_Add_From_Public_Problem_Tips:'当前比赛为ACM赛制:只支持导入ACM类型的题目和远程题目', + OI_Contest_Add_From_Public_Problem_Tips:'当前比赛为OI赛制:只支持导入OI类型的题目和远程题目', + Original_Display: '原题显示', + Contest_Display: '比赛显示', + Auth: '权限', + Modified_User: '最近修改者', + All_Problem: '全部题目', + Public_Problem: '公开题目', + Private_Problem: '隐藏题目', + Contest_Problem: '比赛题目', + Download_Testcase: '下载评测数据', + Add_Contest_Problem: '添加比赛题目', + Remote_OJ: '远程OJ', + Add: '添加', + Remove: '移除', + Delete_Problem_Tips: '确定要删除此题目吗?注意:该问题的相关数据也将被彻底删除,包括题目详情、题目的提交记录等!', + Remove_Contest_Problem_Tips: '你是否确定要将该题目移出比赛?', + Add_Successfully: '添加成功', + Download_Testcase_Success: '该题目的评测数据已经被成功下载!', + Enter_The_Problem_Display_ID_in_the_Contest: '请输入该题目在比赛中展示ID', + Problem_ID_is_required: '题目ID不能为空', + The_Problem_Display_ID_in_the_Contest_is_required: '题目在比赛中的展示ID不能为空', + Balloon_Color: '气球颜色', + Update_Balloon_Color_Successfully: '更新该题气球颜色成功!', + + // /views/admin/problem/Problem.vue + Problem_Display_ID: '题目展示ID', + Contest_Display_Title: '比赛中的展示标题', + Contest_Display_ID: '比赛中的展示ID', + Description: '描述', + Input_Description: '输入描述', + Output_Description: '输出描述', + Time_Limit: '时间限制', + Memory_Limit: '内存限制', + Stack_Limit: '栈限制', + Code_Shareable: '代码是否可分享', + Languages: '语言列表', + Problem_Examples: '题面样例', + Problem_Examples_Desc: '题目样例:请最好不要超过2个题目样例,题面样例不纳入评测数据。', + Problem_Example: '样例', + Example_Input: '样例输入', + Example_Output: '样例输出', + Add_Example: '添加样例', + Judge_Mode: '判题模式', + General_Judge: '普通判题', + Special_Judge: '特殊判题', + Interactive_Judge: '交互判题', + Special_Judge_Code: '特殊判题程序代码', + Interactive_Judge_Code: '交互判题程序代码', + General_Judge_Mode_Tips: '普通判题:选手程序读取题目标准输入文件,执行代码逻辑得到选手输出,对比题目标准输出文件内容得到判题结果', + Special_Judge_Mode_Tips: '特殊判题:题目要求的输出结果可能不唯一,允许不同结果存在,所以需要一个特殊程序读取标准输出、选手输出和标准输入,进行对比得出最终判题结果', + Interactive_Judge_Mode_Tips: '交互判题:交互程序的标准输出通过交互通道写到选手程序标准输入,选手程序的标准输出通过交互通道写到交互程序的标准输入,两者需要刷新输出缓冲区', + Interactive_Language: '交互判题程序语言', + SPJ_Language: '特殊判题程序语言', + Compile: '编译', + Compiled_Successfully: '编译成功', + Code_Template: '代码模板', + Type: '类型', + Judge_Samples: '评测数据', + Problem_Sample: '测试用例', + Sample_Input: '用例输入', + Sample_Output: '用例输出', + Sample_Input_File: '输入文件名', + Sample_Output_File: '输出文件名', + Sample_Tips: '评测数据:判题机对该题目的相关提交进行评测的数据来源。', + Add_Sample: '添加用例', + Use_Upload_File: '使用上传文件', + Use_Manual_Input: '使用手动输入', + Hint: '提示', + Source: '来源', + Auto_Remove_the_Blank_at_the_End_of_Code: '自动去除代码每行末尾空白符', + Publish_the_Judging_Result_of_Test_Data: '公开评测点数据结果', + Edit_Problem: '编辑题目', + Create_Problem: '创建题目', + Change_Judge_Mode: '注意:切换判题模式后可能会改变评测的逻辑!', + Add_Tag_Error: '不要添加已有的标签!', + + Upload_Testcase_Successfully: '上传评测数据成功', + Upload_Testcase_Failed: '上传评测数据失败', + is_required: '不能为空!', + Score_must_be_greater_than_or_equal_to_0: '分数必须大于0!', + Score_must_be_an_integer: '分数必须是整数!', + Spj_Or_Interactive_Code: 'Spj或交互程序的代码', + Spj_Or_Interactive_Code_not_Compile_Success: 'Spj或交互程序的代码没有编译成功,请重新编译!', + Judge_Extra_File: '评测额外文件', + Judge_Extra_File_Tips1: '1. 选手程序:给选手程序提供额外的库文件', + Judge_Extra_File_Tips2: '2. 特殊或交互程序:给特殊或交互程序提供额外的库文件', + User_Program: '选手程序', + SPJ_Or_Interactive_Program: '特殊或交互程序', + + // /views/admin/problem/tag + Admin_Tag: '标签管理', + Add_Tag: '添加标签', + Update_Tag: '修改标签', + To_Add: '添加', + To_Update: '更新', + Tag_Name: '标签名称', + Tag_Color: '标签颜色', + Tag_Attribution: '标签归属', + Delete_Tag_Tips: '你是否确定删除该标签?', + Tag_Tips:'提示:默认无标签分类栏,所有标签都是[未分类],请自行点击左上角【添加标签分类】添加标签分类,再点击标签修改#标签分类#进行归类。', + Tag_Classification:'标签分类', + Add_Tag_Classification: '添加标签分类', + Update_Tag_Classification: '修改标签分类', + Tag_Classification_Name: '标签分类名称', + Tag_Classification_Rank: '标签分类排序', + Tag_Classification_Attribution: '标签分类归属', + Delete_Tag_Classification_Tips: '你是否确定删除该分类?提示:此操作会把该分类下的标签归属到未分类!', + Unclassified:'未分类', + + // /views/amdin/problem/GroupProblemList.vue + Search:'搜索', + Enter_Group_ID:'请输入团队ID', + Agreed:'已同意', + Examine:'审批', + + // /views/admin/problem/ImportAndExport.vue + Export_Problem: '导出题目', + Export: '导出', + Import_Problem: '导入题目', + Import_QDOJ_Problem: '导入QDUOJ的题目', + Import_FPS_Problem: '导入FPS格式的题目', + Export_Problem_NULL_Tips: '选择导出的题目不能为空', + Upload_Problem_Succeeded: '上传题目成功', + Upload_Problem_Failed: '上传题目失败', + + // /views/admin/training/TrainingList.vue + Update_Time: '更新时间', + Order_Number: '序号', + View_Training_Problem_List: '查看训练题目列表', + Delete_Training_Tips: '此操作将删除该训练提交记录、榜单等数据, 是否继续?', + + // /views/admin/training/Training.vue + Training_rank: '训练排序编号(升序)', + Training_Title: '训练标题', + Training_Description: '训练描述', + Training_Auth: '训练权限', + Training_Category: '训练分类', + Public_Training: '公开训练', + Private_Training: '私有训练', + Training_Password: '训练密码', + Edit_Training: '编辑训练', + Create_Training: '创建训练', + Redirect_To_Category: '当前训练的分类列表为空,请先前往创建分类!', + Redirect: '重定向', + + // /views/admin/training/TrainingProblemList.vue + Training_Problem_List: '训练题目列表', + Add_Training_Problem: '添加训练题目', + Remove_Training_Problem_Tips: '你是否确定要将该题目移出训练?', + Training_Problem_Rank: '题目显示顺序(升序)', + + // /views/admin/training/Category.vue + Add_Category: '添加分类', + Update_Category: '修改分类', + To_Add: '添加', + To_Update: '更新', + Create_Training: '创建训练', + Category_Name: '分类名称', + Category_Color: '分类颜色', + Delete_Category_Tips: '你是否确定删除该分类?', + + // /views/admin/contest/ContestList.vue + Start_Time: '开始时间', + End_Time: '结束时间', + Creator: '创建者', + Visible: '是否可见', + Info: '信息', + View_Contest_Problem_List: '查看比赛题目列表', + View_Contest_Announcement_List: '查看比赛公告列表', + Download_Contest_AC_Submission: '下载比赛通过的提交代码', + Exclude_admin_submissions: '排除管理员的提交', + SplitType_User: '以用户名分割文件夹', + SplitType_Problem: '以题目ID分割文件夹', + Delete_Contest_Tips: '此操作将删除该比赛以及比赛的提交、讨论、公告、记录等数据, 是否继续?', + + // /views/admin/contest/Contest.vue + Contest_Title: '比赛标题', + Contest_Description: '比赛描述', + Contest_Start_Time: '开始时间', + Contest_End_Time: '结束时间', + Contest_Duration: '比赛时长', + Contest_Rule_Type: '比赛赛制', + Seal_Time_Rank: '开启封榜', + Real_Time_Rank: '实时榜单', + Seal_Rank_Time: '封榜时间', + Contest_Auth: '比赛权限', + Contest_Password: '比赛密码', + OI_Rank_Score_Type: 'OI排行榜得分类型', + OI_Rank_Score_Type_Recent: '使用最近得分', + OI_Rank_Score_Type_Highest: '使用最高得分', + Contest_Seal_Half_Hour: '比赛结束前半小时', + Contest_Seal_An_Hour: '比赛结束前一小时', + Contest_Seal_All_Hour: '比赛全程', + Auto_Real_Rank: '自动取消封榜', + Real_Rank_After_Contest: '比赛完取消封榜', + Seal_Rank_After_Contest: '比赛完继续封榜', + Edit_Contest: '编辑比赛', + Create_Contest: '创建比赛', + Contest_Duration_Check: '比赛时长不能小于0', + Contets_Time_Check: '开始时间应该早于结束时间', + Print_Func: '打印功能', + Not_Support_Print: '不支持打印', + Support_Offline_Print: '支持线下打印', + Open: '开启', + Add_Star_User_Error: '请不要重复添加已有打星用户!', + Star_User_UserName: '打星用户(请使用登录用户名)', + Rank_Show_Name: '榜单显示用户名称', + Show_Username: '用户名', + Show_Nickname: '昵称', + Show_Realname: '真实姓名', + Account_Limit: '账号限制(登录用户名)', + The_allowed_account_will_be: '允许参加比赛的用户名是:', + + // /views/admin/discussion/Discussion.vue + Discussion_ID: '讨论ID', + Top: '置顶', + Discussion_Report: '讨论举报', + Reporter: '举报者', + Report_Time: '举报时间', + View_Report_content: '查看举报内容', + View_Discussion: '查看讨论详情', + Content: '内容', + Report_Content: '举报内容', + The_number_of_discussions_selected_cannot_be_empty: '勾选的讨论不能为空', + + // components/admin/AddExtraFile.vue + Delete_Extra_File_Tips: '你是否确定要删除该额外文件?', + File_Name: '文件名字', + File_Content: '文件内容' +} diff --git a/src/hoj-vue/src/i18n/index.js b/src/hoj-vue/src/i18n/index.js new file mode 100644 index 0000000..47f92cb --- /dev/null +++ b/src/hoj-vue/src/i18n/index.js @@ -0,0 +1,32 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' +import elenUS from 'element-ui/lib/locale/lang/en' +import elzhCN from 'element-ui/lib/locale/lang/zh-CN' +import vxeEnUS from 'vxe-table/lib/locale/lang/en-US' +import vxeZhCN from 'vxe-table/lib/locale/lang/zh-CN' +import storage from '@/common/storage' +Vue.use(VueI18n) + +const languages = [ + {value: 'en-US', label: 'English', el: elenUS, vxe: {...vxeEnUS}}, + {value: 'zh-CN', label: '简体中文', el: elzhCN, vxe: {...vxeZhCN}}, +] +const messages = {} + +// combine admin and oj +for (let lang of languages) { + let locale = lang.value + let m = require(`./oj/${locale}`).m + Object.assign(m, require(`./admin/${locale}`).m) + let ui = Object.assign(lang.vxe, lang.el) + messages[locale] = Object.assign({m: m}, ui); +} + + +// load language packages +export default new VueI18n({ + locale: storage.get('Web_Language') || 'zh-CN', + messages: messages +}) + +export {languages} diff --git a/src/hoj-vue/src/i18n/oj/en-US.js b/src/hoj-vue/src/i18n/oj/en-US.js new file mode 100644 index 0000000..b084bef --- /dev/null +++ b/src/hoj-vue/src/i18n/oj/en-US.js @@ -0,0 +1,696 @@ +export const m = { + + // /src/common/api.js + Query_error_unable_to_find_the_resource_to_request: 'Query error! Unable to find the resource to request!', + Server_error_please_refresh_again: 'Server error! Please refresh again!', + Request_timed_out_please_try_again_later: 'Request timed out! Please try again later!', + Network_error_abnormal_link_with_server_please_try_again_later: 'Network error! Abnormal link with server, Please try again later!', + + // /components/oj/common/NavBar.vue 导航栏 + NavBar_Home: 'Home', + NavBar_Problem: 'Problem', + NavBar_Training: 'Training', + NavBar_Contest: 'Contest', + NavBar_Status: 'Status', + NavBar_Rank: 'Rank', + NavBar_ACM_Rank: 'ACM Rank', + NavBar_OI_Rank: 'OI Rank', + NavBar_Discussion: 'Discussion', + NavBar_Group: 'Group', + NavBar_About: 'About', + NavBar_Introduction: 'Introduction', + NavBar_Developer: 'Developer', + NavBar_Login: 'Login', + NavBar_Register: 'Register', + NavBar_UserHome: 'Home', + NavBar_Submissions: 'Submissions', + NavBar_Setting: 'Setting', + NavBar_Management: 'Management', + NavBar_Logout: 'Logout', + Dialog_Login: 'Login', + Dialog_Register: 'Register', + Dialog_Reset_Password: 'Reset Password', + Click_To_Change_Web_Language: 'Click to change web language', + + // /components/oj/common/Login.vue 登录弹窗 + Login_Username: 'Username', + Login_Password: 'Password', + Login_Btn: 'Login', + Slide_Verify: 'Please slide right to verify', + Slide_Verify_Success: 'Success', + Login_No_Account: 'No account? Register now!', + Login_Forget_Password: 'Forget Password', + Username_Check_Required: 'The username is required.', + Username_Check_Max: 'The longest length of a username is 20.', + Password_Check_Required: 'The password is required.', + Password_Check_Between: 'The length of the password is between 6 and 20.', + Welcome_Back: 'Welcome back~', + + // /components/oj/common/Register.vue 注册弹窗 + Register_Username: 'Please Enter Username', + Register_Password: 'Please Enter Password', + Register_Password_Again: 'Please Enter Password Again', + Register_Email: 'Please Enter Email', + Register_Email_Captcha: 'Please enter the captcha from the email', + Register_Btn: 'Register', + Register_Already_Registed: 'Already registed? Login now!', + The_username_already_exists: 'The username already exists.', + The_email_already_exists: 'The email already exists.', + Password_does_not_match: 'Password does not match.', + Email_Check_Required: 'The email is required.', + Email_Check_Format: 'The email format is incorrect.', + Password_Again_Check_Required: 'The password again is required.', + Code_Check_Required: 'The captcha is required.', + Code_Check_Length: 'The captcha must be six digits.', + The_system_is_processing: 'Please Waiting... The system is processing...', + Register_Send_Email_Msg: 'Verification code has been sent to the designated mailbox! If you haven\'t received the email for a long time, please check whether your email is accurate!', + Thanks_for_registering: 'Thanks for your registering, you can login now.', + + // /components/oj/common/ResetPassword.vue 重置密码弹窗 + // /views/oj/user/SetNeWPassword.vue 设置新密码页 + Reset_Password_Email: 'Please Enter Your Email', + Reset_Password_Captcha: 'Please Enter the captcha', + Send_Password_Reset_Email: 'Send Password Reset Email', + Waiting_Can_Resend_Email: 'resend the Reset Email...', + ResetPwd_Send_Email_Msg: 'Reset password email has been sent to the designated mailbox! If you haven\'t received the email for a long time, please check whether your email is accurate!', + Remember_Passowrd_To_Login: 'Remember password? To login!', + Set_New_Password: 'Set New Password', + Set_New_Password_Msg: 'Please Enter New Password', + Set_New_Password_Again_Msg: 'Please Enter New Password Again', + The_username_does_not_exists: 'The username does not exist.', + The_email_does_not_exists: 'The email does not exist.', + Your_password_has_been_reset: 'Your password has been reset.', + + // /components/oj/setting/Account.vue 账号信息管理页面 + Old_Password: 'Old Password', + New_Password: 'new Password', + Confirm_New_Password: 'Confirm New Password', + Current_Password: 'Current Password', + Old_Email: 'Old Email', + New_Email: 'New Email', + Old_Mobile: 'Old Mobile', + New_Mobile: 'New Mobile', + Change_Password: 'Change Password', + Change_Email: 'Change Email', + Change_Mobile: 'Change Mobile', + Update_Password: 'Update Password', + Update_Email: 'Update Email', + Update_Mobile: 'Update Mobile', + Captcha: 'Captcha', + The_new_password_does_not_change: 'The new password doesn\'t change.', + The_new_email_does_not_change: 'The new email doesn\'t change.', + The_new_mobile_does_not_change: 'The new mobile doesn\'t change.', + Mobile_Check_Required: 'The mobile is required.', + Mobile_Check_Format: 'The mobile format is incorrect.', + Change_Email_Captcha: 'Please enter the captcha from the email', + Change_Mobile_Captcha: 'Please enter the captcha from the mobile', + Change_Send_Email_Msg: 'Verification code has been sent to the designated mailbox! If you haven\'t received the email for a long time, please check whether your email is accurate!', + Change_Send_Mobile_Msg: 'Verification code has been sent to the designated mobile! If you haven\'t received the message for a long time, please check whether your mobile is accurate!', + Update_Successfully: 'Update Successfully', + Update_Failed: 'Update Failed', + Guess_robot: 'Speed too fast, may be machine operation! Please verify again!', + + + // /components/oj/setting/UserInfo.vue + Avatar_Setting: 'Avatar Setting', + UserInfo_Setting: 'UserInfo Setting', + Upload_avatar_hint: 'Drag and drop the avatar here, or click here.', + CF_Username: 'Codeforces Username', + School: 'School', + Student_Number: 'Student Number', + Blog: 'Blog', + Github: 'Github', + Gender: 'Gender', + Male: 'Male', + Female: 'Female', + Secrecy: 'Secrecy', + Save: 'Save', + Upload: 'Upload', + Your_new_avatar: 'Your new avatar', + Upload_Avatar_Successfully: 'Upload avatar successfully', + File_type_not_support: 'File type not support', + is_incorrect_format_file: ' is an incorrect format file,please choose the file format of .GIF, .JPG, .JPEG, .PNG, .BMP, .Webp', + Exceed_max_size_limit: 'Exceed max size limit', + File_Exceed_Tips: ' file size is wrong, you can upload a image up to 2MB in size', + Cancel_Avater_Tips: 'Are you sure you want to cancel the capture of this image?', + + // /views/oj/user/UserHome.vue + Recent_login_time: 'Recently launched:', + Not_set_yet: 'This guy is lazy. He doesn\'t write anything.', + UserHome_Solved: 'Solved', + UserHome_Submissions: 'Submissions', + UserHome_Score: 'Score', + UserHome_Rating: 'Rating', + List_Solved_Problems: 'List of solved problems', + UserHome_Not_Data: 'The guy is so lazy that has not solved any problem yet.', + Personal_Profile: 'Persion Profile', + UserHome_Solved_Problems: 'Solved Problems', + Thermal_energy_table_submitted_in_the_last_year:'Thermal energy table submitted in the last year', + Calendar_Tooltip_Uint:'submissions', + Jan: 'Jan', + Feb: 'Feb', + Mar: 'Mar', + Apr: 'Apr', + May: 'May', + Jun: 'Jun', + Jul: 'Jul', + Aug: 'Aug', + Sep: 'Sep', + Oct: 'Oct', + Nov: 'Nov', + Dec: 'Dec', + Sun: 'Sun', + Mon: 'Mon', + Tue: 'Tue', + Wed: 'Wed', + Thu: 'Thu', + Fri: 'Fri', + Sat: 'Sat', + Less:'Less', + More:'More', + on:'on', + + // /views/oj/user/Setting.vue + Account_Setting: 'Account Setting', + + // App.vue 底部文案 + Service: 'Service', + Judging_Queue: 'Judging Queue', + System_Info: 'System Info', + Development: 'Development', + Open_Source: 'Open Source', + Support: 'Support', + Help: 'Help', + Group: 'Group', + + // /views/oj/Home.vue + Welcome_to: 'Welcome to ', + Recent_7_Days_AC_Rank: 'Recent 7 Days AC Top 10 Rank', + Other_OJ_Contest: 'Other Online Judge Contest', + Supported_Remote_Online_Judge: 'Supported Remote Online Judge', + + + // 表格通用列名,按钮,搜索框等 + Enter_keyword: 'Enter keyword', + Reset: 'Reset', + Username: 'Username', + Solved: 'Solved', + AC: 'AC', + OJ: 'OJ', + Title: 'Title', + Begin_Time: 'Begin Time', + End_Time: 'End Time', + Contest_Time: 'Contest Time', + Recent_Contest: 'Recent Contest', + Problem_ID: 'Problem ID', + Total: 'Total', + AC_Rate: 'AC Rate', + Score: 'Score', + + // /views/oj/problem/problemList.vue + Problem_List: 'Problem List', + Problem_Bank: 'Problem Bank', + All: 'All', + My_OJ: 'Mine', + Level: 'Level', + Tags: 'Tags', + Search_Filter_Tag: 'Enter the tag name...', + Pick_a_random_question: 'Pick a random question', + Touch_Get_Status: 'Please touch or hover the mouse to the designated problem line to view the submission status', + Good_luck_to_you: 'Good luck to you!', + + // /views/oj/problem/Problem.vue + Problem_Description: 'Problem Description', + My_Submission: 'My Submission', + Problem_Annex: 'Problem Annex', + Login_to_view_your_submission_history: 'Login to view your submission history', + Shrink_Sidebar: 'Shrink Sidebar', + View_Problem_Content: 'View Problem Content', + Only_View_Problem: 'Only View Problem', + Put_away_the_full_screen_and_write_the_code: 'Put away the full screen and write the code', + Contest_Problem: 'Contest Problem', + Show_Tags: 'Show Tags', + Hide_Tags: 'Hide Tags', + No_tag: 'No tag', + Statistic: 'Statistic', + Solutions: 'Solutions', + Problem_Discussion: 'Discussion', + Description: 'Description', + Input: 'Input', + Output: 'Output', + Sample_Input: 'Sample Input', + Sample_Output: 'Sample Output', + Hint: 'Hint', + Source: 'Source', + Status: 'Status', + Information: 'Information', + Time_Limit: 'Time Limit', + Memory_Limit: 'Memory Limit', + Other: 'Other', + Created: 'Created By', + Please_login_first: 'Please login first', + Submit: 'Submit', + Online_Test:'Online Test', + Submitting: 'Submitting', + Judging: 'Judging', + Wrong_Answer: 'Wrong Answer', + View_Contest: 'View Contest', + Are_you_sure_you_want_to_reset_your_code: 'Are you sure you want to reset your code?', + Code_can_not_be_empty: 'Code can not be empty', + Code_Length_can_not_exceed_65535: 'The code should contain no more than 65535 characters!', + Submit_code_successfully: 'Submit code successfully', + You_have_solved_the_problem: 'You have solved the problem', + Submitted_successfully: 'Submitted successfully', + Submitted_Not_Result: 'Submitted successfully, but the result is not known at present', + You_have_submitted_a_solution: 'You have submitted a solution.', + Contest_has_ended: 'Contest has ended', + You_have_submission_in_this_problem_sure_to_cover_it: 'You have submission in this problem, sure to cover it?', + Close: 'Close', + Cancel: 'Cancel', + OK: 'OK', + Copied_successfully: 'Copied successfully', + Copied_failed: 'Copied failed', + + + // /views/oj/status/SubmissionList.vue + Mine: 'Mine', + Time: 'Time', + Memory: 'Memory', + Length: 'Length', + Language: 'Language', + View_submission_details: 'View submission details', + Judger: 'Judger', + Author: 'Author', + Submit_Time: 'Submit Time', + Option: 'Option', + Rejudge: 'Rejudge', + Resubmitted_Successfully: 'Resubmitted Successfully!', + Refresh: 'Refresh', + Enter_Problem_ID: 'Enter Problem ID', + Enter_Author: 'Enter Author', + Run_ID: 'Run ID', + Problem: 'Problem', + Problem_Score: 'Problem Score', + OI_Rank_Score: 'OI Rank Score', + OI_Rank_Calculation_Rule: 'OI Rank Calculation Rule', + Cancel_Evaluation: 'Cancel', + Modify_Evaluation:'Modify', + Has_Been_Manually_Judged:'Has been manually judged', + Manually_Jugde:'Manually Judge', + Cancel_Judge_Tips:'Are you sure you want to mark this submission as Cancelled?', + Cancel_Successfully:'Cancel Successfully', + Click_to_Manually_Judge:'Click to Manually Judge', + + // /views/oj/status/SubmissionDetails.vue + Test_point_details: 'Test point details', + Copy: 'Copy', + Shared: 'Shared', + Unshared: 'Unshared', + Shared_successfully: 'Shared successfully', + Cancel_Sharing_Successfully: 'Cancel Sharing Succeessfully', + Input_File: 'Input File', + Output_File: 'Output File', + Case_tips: 'Case Tips', + Nothing: 'Nothing', + + // /views/oj/rank/ACMRank.vue + ACM_Ranklist: 'ACM Ranklist', + User: 'User', + Nickname: 'Nickname', + Signature: 'Signature', + Rating: 'Rating', + Rank_Search_Placeholder: 'Please enter username, nickname or real name.', + + // /views/oj/rank/OIRank.vue + OI_Ranklist: 'OI Ranklist', + + // /views/oj/discussion/discussionList.vue + Go_to_problem:"Go to Problem", + Release_Time: 'Release Time', + Likes: 'Likes', + Like_Successfully: 'Like Successfully', + Cancel_Like_Successfully: 'Cancel Successfully', + Views: 'Views', + Edit: 'Edit', + Delete: 'Delete', + Post_discussion: 'Post Discussion', + Post_problem_discussion: 'Post Problem Discussion', + General_discussion: 'General Discussion', + Return: 'Return', + Category: 'Category', + Discussion_title: 'Title', + Discussion_Desc: 'Description', + Discussion_Category: 'Category', + Discussion_top: 'Top', + Discussion_content: 'Content', + Create_Discussion: 'Create Discussion', + Edit_Discussion: 'Edit Discussion', + Delete_Discussion_Tips: 'This operation will delete the discussion, including the associated comments and replies. Do you want to continue?', + Delete_successfully: 'Delete Successfully', + Post_successfully: 'Post Successfully', + Send_successfully:'Send Successfully', + + // /views/oj/discussion/discussion.vue + Report: 'Report', + Like: 'Like', + Liked: 'Liked', + Report_Reason: 'Report Reason', + The_report_label_and_reason_cannot_be_empty: 'The report label and reason cannot be empty.', + + // 404.vue + Page_Not_Found:"Sorry, the page can't be found", + Go_Home: 'Go Home', + Back: 'Back', + + // /views/oj/contest/ContestList.vue + Rule: 'Rule', + Running: 'Running', + Scheduled: 'Scheduled', + Ended: 'Ended', + No_contest: 'No contest', + Contests: 'Contests', + Public: 'Public', + Private: 'Private', + Protected: 'Protected', + Public_Tips: 'Public - Any one can see and submit.', + Protected_Tips: 'Protected - Any one can see, but only users knowing contest password can submit.', + Private_Tips: 'Private - Only users knowing contest password can see and submit.', + Contest_Outside_ScoreBoard: 'OutSide Contest ScoreBoard', + + // /views/oj/contest/ContestDetail.vue + StartAt: 'StartAt', + EndAt: 'EndAt', + Password_Required: 'Password Required', + To_Enter_Need_Password: 'To enter the Private contest, please input the password!', + Enter_the_contest_password: 'Enter the contest password', + Enter: 'Enter', + Overview: 'Overview', + Announcement: 'Announcement', + Submissions: 'Submissions', + Rankings: 'Rankings', + Comment: 'Comment', + Print: 'Print', + Admin_Print: 'Admin Print', + Admin_Helper: 'AC Info', + Register_contest_successfully: 'Register contest successfully', + Please_check_the_contest_announcement_for_details: 'Please check the contest announcement for details', + Go_To_Group_Contest_List:'Go to Group Contest List', + Group_Contest_Tag:'Group Contest', + + // /views/oj/contest/children/ACMContestRank.vue + Contest_Rank: 'Contest Rank', + Menu: 'Menu', + Chart: 'Chart', + Table: 'Table', + Auto_Refresh: 'Auto Refresh', + RealName: 'RealName', + Force_Update: 'Force Update', + Download_as_CSV: 'Download as CSV', + TotalTime: 'Time', + Top_10_Teams: 'Top 10 Teams', + save_as_image: 'save as image', + Contest_Rank_Seq: 'Rank', + Star_User: 'Star User', + Unfollow: 'Unfollow', + Top_And_Follow: 'Top And Follow', + + // /views/oj/contest/children/ACMInfo.vue + AC_Time: 'AC Time', + First_Blood: 'First Blood', + Checked: 'Checked', + Not_Checked: 'Not Checked', + Check_It: 'Check It', + Accepted: 'Accepted', + + // /views/oj/contest/children/ContestPrint.vue + Print_Title: 'Contest Text Printing', + Print_tips: 'Please put the text to be printed into the content box, and then submit. Note: please do not submit maliciously!', + Content: 'Content', + Content_cannot_be_empty: 'Tne content cannot be empty!', + The_number_of_content_cannot_be_less_than_50: 'The number of words cannot be less than 50', + Success_submit_tips: 'Submitted successfully! Please wait patiently for the staff to print!', + + // /views/oj/contest/children/ContestAdminPrint.vue + Download: 'Download', + Printed: 'Printed', + Not_Printed: 'Not Printed', + + // /views/oj/contest/children/ContestRejudgeAdmin.vue + Contest_Rejudge: 'Contest Rejudge', + ID: 'ID', + Contest_Rejudge_Tips: 'Are you sure you want to rejudge all submissions of the questions?', + Rejudge_All: 'Rejudge All', + Rejudge_successfully: 'Rejudge successfully', + + // /views/oj/contest/children/OIContestRank.vue + Total_Score: 'Total Score', + Based_on_The_Highest_Score_Submitted_For_Each_Problem: 'Based on the highest score submitted for each problem', + Based_on_The_Recent_Score_Submitted_Of_Each_Problem: 'Based on the recent score submitted of each problem', + + // /views/oj/about/Introduction.vue + Compiler: 'Compiler', + Example: 'Example', + Result_Explanation: 'Result Explanation', + Pending_Description: 'Your solution is waiting be judged, please wait for the result...', + Submitted_Faild_Description: 'Your submission failed this time, please click the button to submit again.', + Compiling_Description: 'Your source code is being compiled, please wait for the result...', + Judging_Description: 'Your program is running with test data. Please wait for the result...', + Compile_Error_Description: "Failed to compile your source code. Click on the link to see compiler's output.", + Persentation_Error_Description: 'The code you submitted is very close to the correct answer. Please check whether there are extra spaces, newlines and other blanks in the code format output.', + Accepted_Description: 'Congratulations! Your solution is correct.', + Wrong_Answer_Description: "Your program's output doesn't match judger's answer.", + Runtime_Error_Description: 'Your program terminated abnormally. Possible reasons are: segment fault, divided by zero or exited with code other than 0.', + Time_Limit_Exceeded_Description: 'The time your program used has exceeded limit.', + Memory_Limit_Exceeded_Description: 'The memory your program actually used has exceeded limit.', + System_Error_Description: 'Oops, something has gone wrong with the judger. Please report this to administrator.', + Cancelled_Description:'Your submission has been cancelled!', + Compile_Explanation: 'Compile Explanation', + Compile_Tips1:"`__int64` is not defined by ANSI standard and can only be used in `VC`. It should be written as `long long` type in `GNU C++`. For `scanf` and `printf`, please use `%lld` as the format.", + Compile_Tips2:"The return value of `main()` must be defined as `int`, not `void`", + Compile_Tips3:"`i` lost definition outside the loop,\"for(int i=0...){...}\"", + Compile_Tips4:"`itoa` is not an ANSI standard function (not available in standard `C/C++`)", + + // /views/oj/about/Developer.vue + Leader_BackEnd_FrontEnd_Engineer: 'Leader & BackEnd | FrontEnd Engineer', + Group_Function_Development_Contributor: 'Group Function Development Contributor', + Distributed: 'Distributed', + Distributed_Desc: 'It is divided into frontend and backend separation, and supports the micro service cluster', + Customization: 'Customization', + Customization_Desc: 'The website configuration is highly integrated and supports customized modification', + Security: 'Security', + Security_Desc: 'The Sandbox is isolated by CGroup, and the website authority control is perfect', + Diversity: 'Diversity', + Diversity_Desc: 'Support Codefoces, HDU, POJ, GYM, AtCoder, SPOJ remote judge', + Available: 'Available', + Faulty: 'Faulty', + + // /components/oj/common/Announcements.vue + Contest_Announcement: 'Contest Announcement', + No_Announcements: 'No Announcements', + + // /components/oj/common/CodeMirror.vue + Lang: 'Lang', + Code_Editor_Setting:'Code Editor Setting', + Setting:'Setting', + Theme: 'Theme', + FontSize: 'Font Size', + TabSize:'Tab Size', + Two_Spaces:'2 spaces', + Four_Spaces:'4 spaces', + Eight_Spaces:'8 spaces', + Reset_Code: 'Reset Code', + Upload_file: 'Upload file', + monokai: 'Mnokai', + solarized: 'Molarized Light', + material: 'Material', + idea:'IDEA', + eclipse:'Eclipse', + base16_dark:'Base16-dark', + cobalt:'Cobalt', + dracula:'Dracula', + Test_Case: 'Test Case', + Test_Result: 'Test Result', + Running_Test: 'Running Test', + Non_Test_Judge_Tips:'After entering the test case, click Running test, and the running results will be displayed here.', + Problem_Uncertain_Answer: 'Note: there may be multiple outputs that meet the requirements of this problem. Please judge whether the program output passes.', + Fill_Case: 'Fill Case', + Compilation_Failed: 'Compilation Failed', + Test_Input: 'Test Input', + Expected_Output: 'Expected Output', + Real_Output: 'Real Output', + Pass_Test_Case: 'Pass Test Case', + + // /components/oj/comment/Comment.vue + Announcement_of_contest_Q_and_A_area: 'Announcement of Contest Q & A Area', + Announcement_of_contest_Q_and_A_area_tips1:"Please don't ask questions irrelevant to the contest. No irrigation!", + Announcement_of_contest_Q_and_A_area_tips2: 'During the contest, only the comments of yourself and the contest administrator can be seen!', + Announcement_of_contest_Q_and_A_area_tips3:"The contest administrator's comments cannot be replied. The comments return to normal at the end of the contest!", + Come_and_write_down_your_comments: 'Come and write down your comments', + Inline_Code: 'Inline Code', + Code_Block: 'Code Block', + Link: 'Link', + Unordered_list: 'Unordered List', + Ordered_List: 'Ordered List', + Submit_Comment: 'Submit', + All_Comment: 'All Comment', + Reply: 'Reply', + Reply_Successfully: 'Reply Successfully', + Comment_Successfully: 'Comment Successfully', + Reply_Total: 'Total', + Replies: 'replies', + Click_Show_All: 'Click to Show All', + Pick_up:"Pick up", + Load_More: 'Load More', + Delete_Comment_Tips: 'This operation will delete the comment and all its replies. Do you want to continue?', + Delete_Reply_Tips: 'This operation will delete the reply. Do you want to continue?', + + + // /views/oj/message/message.vue + Message_Center: 'Message Center', + No_Data: 'No Data', + + // /views/oj/message/UserMsg.vue + Msg_Total: 'Total', + Msg_Messages: 'messages', + DiscussMsg: 'Discuss', + ReplyMsg: 'Reply', + LikeMsg: 'Likes', + SysMsg: 'System', + MineMsg: 'Mine', + Clean_All: 'Clean All', + Action_Like_Discuss: 'Praised My Comment', + Action_Like_Post: 'Praised My Discussion Post', + Action_Discuss: 'Commented on My Discussion Post', + Action_Reply: 'Responded to My Comment', + From_Discussion_Post: 'From Discussion Post', + From_the_Contest: 'From the Contest', + Delete_Msg_Tips: 'Are you sure you want to delete the message?', + + // /views/oj/training/TrainingList.vue + Search_Training: 'Search Training', + Training_Public: 'Public', + Training_Private: 'Private', + Training_Category: 'Training Category', + Number: 'Number', + Problem_Number: 'Problem Number', + Recent_Update: 'Recent Update', + + // /views/oj/training/TrainingDetails.vue + Training_Introduction: 'Training Introduction', + Training_Number: 'Number', + Training_Auth: 'Training Auth', + Training_Total_Problems: 'Total Problems', + Record_List: 'Record List', + To_Enter_Training_Need_Password: 'To enter the Private training, please input the password!', + Enter_the_training_password: 'Enter the training password', + Register_training_successfully: 'Register training successfully', + + // /views/oj/training/TrainingRank.vue + Total_AC: 'Total AC', + + // /views/oj/group/GroupList.vue + Search_Group: 'Search Group', + Create_Group: 'Create Group', + All_Group: 'All Group', + My_Group: 'My Group', + No_Groups: 'No Groups', + Group_Name: 'Group Name', + Group_Short_Name: 'Group Short Name(display ID prefix for group problems)', + Group_Brief: 'Group Brief', + Group_Description: 'Group Description', + Group_Public: 'Public', + Group_Protected: 'Protected', + Group_Private: 'Private', + Group_Hidden: 'Hidden', + Group_Auth: 'Group Auth', + Group_Owner: 'Group Owner', + Group_Code: 'Invitation Code', + Total_Members: 'Total Members', + Group_Public_Tips: 'Public - Free to join in.', + Group_Protected_Tips: 'Protected - Apply to join in.', + Group_Private_Tips: 'Private - Require invitation code to apply.', + Group_Hidden_Tips: 'Hidden - Only group members can see.', + Create_Successfully: 'Create Successfully', + Group_Name_Check_Required: 'The group name is required.', + Group_Name_Check_Min_Max: 'The length of group name is 5 to 25', + Group_Short_Name_Check_Required: 'The group shortname is required.', + Group_Short_Name_Check_Min_Max: 'The length of group shortname is 5 to 10', + Group_Brief_Check_Required: 'The group brief is required.', + Group_Brief_Check_Min_Max: 'The length of group brief is 5 to 50', + Group_Auth_Check_Required: 'The group auth is required.', + Group_Code_Check_Required: 'The invitation code is required.', + Group_Code_Check_Min_Max: 'The length of invitation code is 6', + Group_Description_Check_Required: 'The group description is required.', + Group_Description_Check_Min_Max: 'The length of group description is 5 to 1000', + + // /views/oj/group/GroupDetails.vue + Apply_Group: 'Apply to Join', + Apply_Successfully: 'Apply Successfully', + Exit_Group: 'Exit Group', + Applying:'Applying...', + Reject_Application:'Rejected', + Exit_Group_Tips: 'Are you sure you want to exit the group? After exiting, you will no longer be able to view group resources!', + Exit_Successfully: 'Exit Successfully', + Disband_Group:'Disband Group', + Disband_Group_Tips:'Are you sure you want to disband the group?', + Disband_Successfully:'Disband Successfully', + Group_Number: 'Number', + Group_Home: 'Home', + Group_Problem: 'Problem', + Group_Training: 'Training', + Group_Contest: 'Contest', + Group_Submission: 'Submission', + Group_Discussion: 'Discussion', + Group_Setting: 'Setting', + Group_Rank:'Rank', + Group_Announcement: 'Announcement', + Group_Member: 'Member', + Apply_Reason: 'Apply Reason', + Apply_Reason_Check_Required: 'The apply reason is required.', + Apply_Reason_Check_Min_Max: 'The length of apply reason is 5 to 100', + + // /views/oj/group/GroupTrainingList.vue + Back_To_Admin_Training_List:'Back to Admin Trainingt List', + Back_To_Training_List:'Back To Training List', + Back_Admin_Training_Problem_List:'Back Admin Training Problem List', + + // /views/oj/group/GroupContestList.vue + Back_To_Admin_Contest_List:'Back to Admin Contest List', + Back_To_Contest_List:'Back to Contest List', + Back_Admin_Contest_Problem_List:'Back to Admin Contest Problem List', + + // /views/oj/group/GroupDiscussionList.vue + No_Discussion: 'No Discussion', + Problem_Discussion:'Problem Discussion', + + // /views/oj/group/GroupMemberList.vue + Applying: 'Applying', + Refused: 'Refused', + General_Member: 'General Member', + Member_Admin: 'Member Admin', + Join_Time: 'Joined Time', + Change_Time: 'Changed Time', + Member_Auth: 'Member Auth', + Group_Admin: 'Admin', + Group_Root: 'Root', + View_Reason: 'View Reason', + Delete_Member: 'Kick Member', + Delete_Member_Tips: 'Are you sure you want to kick the member out of the group? After kicking out, the member will no longer be able to view group resources! What\'s more, if the member is the owner, the group will be disbanded together!', + + // /views/oj/group/GroupSetting.vue + Add_From_Group_Problem: 'Add_From_Group_Problem', + + // /views/oj/group/GroupSetting.vue + Group_Visible: 'Show in group list', + Group_Not_Visible: 'Hide in group list', + + // /views/oj/group/GroupRank.vue + Group_ACM_Rank_Type: 'ACM Rank', + Group_OI_Rank_Type: 'OI Rank', + + // GroupAdminProblemList.vue + Group_Problem_Apply_Public:'Apply to join the public problem bank', + Already_Public_Problem:'Already in the public problem bank', + Group_Problem_Apply_Public_Tips:'Are you sure you want to apply for this problem to be added to the public bank?', + Cancel_Group_Problem_Apply_Public_Tips:'Do you want to cancel the application for this problem to be added to the public bank?' +} diff --git a/src/hoj-vue/src/i18n/oj/zh-CN.js b/src/hoj-vue/src/i18n/oj/zh-CN.js new file mode 100644 index 0000000..e9d487b --- /dev/null +++ b/src/hoj-vue/src/i18n/oj/zh-CN.js @@ -0,0 +1,696 @@ +export const m = { + + // /src/common/api.js + Query_error_unable_to_find_the_resource_to_request: '查询错误,找不到要请求的资源!', + Server_error_please_refresh_again: '服务器错误,请重新刷新!', + Request_timed_out_please_try_again_later: '请求超时,请稍后再尝试!', + Network_error_abnormal_link_with_server_please_try_again_later: '网络错误,与服务器链接出现异常,请稍后再尝试!', + + // /components/oj/common/NavBar.vue 导航栏 + NavBar_Home: '首页', + NavBar_Problem: '题目', + NavBar_Training: '训练', + NavBar_Contest: '比赛', + NavBar_Status: '评测', + NavBar_Rank: '排名', + NavBar_ACM_Rank: 'ACM 排名', + NavBar_OI_Rank: 'OI 排名', + NavBar_Discussion: '讨论', + NavBar_Group: '团队', + NavBar_About: '关于', + NavBar_Introduction: '简介', + NavBar_Developer: '开发者', + NavBar_Login: '登录', + NavBar_Register: '注册', + NavBar_UserHome: '我的首页', + NavBar_Submissions: '我的提交', + NavBar_Setting: '我的设置', + NavBar_Management: '后台管理', + NavBar_Logout: '退出登录', + Dialog_Login: '登录', + Dialog_Register: '注册', + Dialog_Reset_Password: '重置密码', + Click_To_Change_Web_Language: '点击切换网站语言', + + // /components/oj/common/Login.vue 登录弹窗 + Login_Username: '用户名', + Login_Password: '密码', + Login_Btn: '登录', + Slide_Verify: '请向右滑动验证', + Slide_Verify_Success: '验证成功', + Login_No_Account: '没有账号?立即注册!', + Login_Forget_Password: '忘记密码', + Username_Check_Required: '用户名不能为空', + Username_Check_Max: '用户名长度不能超过20位', + Password_Check_Required: '密码不能为空', + Password_Check_Between: '请输入长度为6~20位的密码', + Welcome_Back: '欢迎回来~', + + // /components/oj/common/Register.vue 注册弹窗 + Register_Username: '请输入用户名', + Register_Password: '请输入密码', + Register_Password_Again: '请再次输入密码', + Register_Email: '请输入邮箱,点击右侧发送验证码', + Register_Email_Captcha: '请输入邮件中的验证码', + Register_Btn: '注册', + Register_Already_Registed: '已有账号?立即登录!', + The_username_already_exists: '用户名已存在', + The_email_already_exists: '邮箱已存在', + Password_does_not_match: '两次输入密码不一致', + Email_Check_Required: '邮箱不能为空', + Email_Check_Format: '邮箱格式不正确', + Password_Again_Check_Required: '请再次输入密码', + Code_Check_Required: '验证码不能为空', + Code_Check_Length: '请输入6位数字的验证码', + The_system_is_processing: '请稍等... 系统正在处理...', + Register_Send_Email_Msg: '发送成功!如果长时间没收到邮件,请检查你的邮箱是否准确!', + Thanks_for_registering: '感谢您的注册,您现在可以登录了', + + // /components/oj/common/ResetPassword.vue 重置密码弹窗 + // /views/oj/user/SetNeWPassword.vue 设置新密码页 + Reset_Password_Email: '请输入您的邮箱', + Reset_Password_Captcha: '请输入验证码', + Send_Password_Reset_Email: '发送密码重置邮件', + Waiting_Can_Resend_Email: '请稍等片刻,重新发送重置邮件...', + ResetPwd_Send_Email_Msg: '发送成功!如果长时间没收到邮件,请检查你的邮箱是否准确!', + Remember_Passowrd_To_Login: '咦,好像记得密码? 请尝试登录!', + Set_New_Password: '设置新密码', + Set_New_Password_Msg: '请输入新密码', + Set_New_Password_Again_Msg: '请再次输入新密码', + The_username_does_not_exists: '用户名不存在', + The_email_does_not_exists: '邮箱不存在', + Your_password_has_been_reset: '您的密码已重置', + + // /components/oj/setting/Account.vue 账号信息管理页面 + Old_Password: '当前密码', + New_Password: '新密码', + Confirm_New_Password: '确认新密码', + Current_Password: '当前密码', + Old_Email: '当前邮箱', + New_Email: '新邮箱', + Old_Mobile: '当前手机号', + New_Mobile: '新手机号', + Change_Password: '更改密码', + Change_Email: '更改邮箱', + Change_Mobile: '更改手机号', + Update_Password: '更新密码', + Update_Email: '更新邮箱', + Update_Mobile: '更新手机号', + Captcha: '验证码', + The_new_password_does_not_change: '新密码未变动', + The_new_email_does_not_change: '新邮箱未变动', + The_new_mobile_does_not_change: '新手机号未变动', + Mobile_Check_Required: '手机号不能为空', + Mobile_Check_Format: '手机号格式不正确', + Change_Email_Captcha: '请输入邮件中的验证码', + Change_Mobile_Captcha: '请输入短信中的验证码', + Change_Send_Email_Msg: '发送成功!如果长时间没收到邮件,请检查你的邮箱是否准确!', + Change_Send_Mobile_Msg: '发送成功!如果长时间没收到短信,请检查你的手机号是否准确!', + Update_Successfully: '更新成功', + Update_Failed: '更新失败', + Guess_robot: '您的操作太快啦,可能是机器操作!请再次验证!', + + + // /components/oj/setting/UserInfo.vue + Avatar_Setting: '头像设置', + Upload_avatar_hint: '将头像拖放到此处,或单击此处', + CF_Username: 'Codeforces 用户名', + School: '学校', + Student_Number: '学号', + Blog: '博客', + Github: 'Github', + Gender: '性别', + Male: '男', + Female: '女', + Secrecy: '保密', + Save: '保存', + Upload: '上传', + Your_new_avatar: '您的新头像', + Upload_Avatar_Successfully: '上传头像成功', + File_type_not_support: '文件类型不支持', + is_incorrect_format_file: '的文件格式不正确,请选择.gif,.jpg,.jpeg,.png,.bmp,.webp的图片文件。', + Exceed_max_size_limit: '超过文件大小限制', + File_Exceed_Tips: '文件大小错误, 您只能上传不大于2MB的图片文件!', + Cancel_Avater_Tips: '您确定取消该图像的截取?', + + // /views/oj/user/UserHome.vue + Recent_login_time: '最近上线时间:', + Not_set_yet: '这个家伙很懒,什么也没写…', + UserHome_Solved: '已解决', + UserHome_Submissions: '总交题数', + UserHome_Score: 'OI分数', + UserHome_Rating: 'CF分数', + List_Solved_Problems: '已解决问题列表', + UserHome_Not_Data: '这家伙太懒了,还没有做过题...', + Personal_Profile: '个人简介', + UserHome_Solved_Problems: '做题情况', + Thermal_energy_table_submitted_in_the_last_year:'最近一年提交热力表', + Calendar_Tooltip_Uint:'次提交', + Jan: '一月', + Feb: '二月', + Mar: '三月', + Apr: '四月', + May: '五月', + Jun: '六月', + Jul: '七月', + Aug: '八月', + Sep: '九月', + Oct: '十月', + Nov: '十一月', + Dec: '十二月', + Sun: '周日', + Mon: '周一', + Tue: '周二', + Wed: '周三', + Thu: '周四', + Fri: '周五', + Sat: '周六', + Less:'较少', + More:'较多', + on:'在', + + // /views/oj/user/Setting.vue + Account_Setting: '账户设置', + UserInfo_Setting: '资料设置', + + // App.vue 底部文案 + Service: '服务', + Judging_Queue: '评测队列', + System_Info: '系统信息', + Development: '开发', + Open_Source: '开源', + Support: '支持', + Help: '帮助', + Group: 'Q群', + + // /views/oj/Home.vue + Welcome_to: '欢迎使用 ', + Recent_7_Days_AC_Rank: '最近7天内AC排名', + Other_OJ_Contest: '其它OJ的近期比赛', + Supported_Remote_Online_Judge: '支持的远程评测平台', + + + // 表格通用列名,按钮,搜索框等 + Enter_keyword: '输入关键词', + Reset: '重置', + Username: '用户名', + Solved: '已解决', + AC: 'AC', + OJ: 'OJ', + Title: '标题', + Begin_Time: '开始时间', + End_Time: '结束时间', + Contest_Time: '比赛时间', + Recent_Contest: '近期比赛', + Problem_ID: '题目ID', + Total: '总数', + AC_Rate: 'AC 通过率', + Score: '分数', + + // /views/oj/problem/problemList.vue + Problem_List: '题目列表', + Problem_Bank: '题库', + All: '全部', + My_OJ: '主题库', + Level: '难度', + Tags: '标签', + Search_Filter_Tag: '输入标签名称...', + Pick_a_random_question: '随机选一题', + Touch_Get_Status: '请点击或悬停鼠标至问题行查看提交状态', + Good_luck_to_you: '祝你好运!', + + // /views/oj/problem/Problem.vue + Problem_Description: '题目描述', + My_Submission: '我的提交', + Problem_Annex: '题目附件', + Login_to_view_your_submission_history: '登录以查看您的提交记录', + Shrink_Sidebar: '收缩侧边栏', + View_Problem_Content: '查看题目内容', + Only_View_Problem: '只看题目内容', + Put_away_the_full_screen_and_write_the_code: '收起全屏,编写代码', + Contest_Problem: '比赛题目', + Show_Tags: '显示标签', + Hide_Tags: '隐藏标签', + No_tag: '暂无标签', + Statistic: '题目统计', + Solutions: '全部提交', + Problem_Discussion: '题目讨论', + Description: '题目描述', + Input: '输入描述', + Output: '输出描述', + Sample_Input: '样例输入', + Sample_Output: '样例输出', + Hint: '说明', + Source: '来源', + Status: '状态', + Information: '题目信息', + Time_Limit: '时间限制', + Memory_Limit: '内存限制', + Other: '其他语言', + Created: '出题人', + Please_login_first: '请先登录', + Submit: '提交评测', + Online_Test:'在线自测', + Submitting: '提交中', + Judging: '正在评测', + Wrong_Answer: 'Wrong Answer', + View_Contest: '查看比赛', + Are_you_sure_you_want_to_reset_your_code: '您确定要重置代码吗?', + Code_can_not_be_empty: '代码不能为空', + Code_Length_can_not_exceed_65535: '代码的字符长度不能超过65535!', + Submit_code_successfully: '提交代码成功', + You_have_solved_the_problem: '你已经解决了该问题', + Submitted_successfully: '提交成功', + Submitted_Not_Result: '提交成功,判题结果暂不可知', + You_have_submitted_a_solution: '您已有提交记录', + Contest_has_ended: '比赛已结束', + You_have_submission_in_this_problem_sure_to_cover_it: '您已经提交过该问题的代码,确定重新提交?', + Close: '关闭', + Cancel: '取消', + OK: '确定', + Copied_successfully: '复制成功', + Copied_failed: '复制失败', + + + // /views/oj/status/SubmissionList.vue + Mine: '我的', + ID: 'ID', + Time: '运行时间', + Memory: '运行内存', + Length: '代码长度', + Language: '语言', + View_submission_details: '查看提交详情', + Judger: '判题源', + Author: '作者', + Submit_Time: '提交时间', + Option: '操作', + Rejudge: '重新评测', + Resubmitted_Successfully: '重新提交成功!', + Refresh: '刷新', + Enter_Problem_ID: '请输入题目ID', + Enter_Author: '请输入作者', + Run_ID: 'Run ID', + Problem: '题目', + Problem_Score: 'OI题目总分数', + OI_Rank_Score: 'OI排行榜得分', + OI_Rank_Calculation_Rule: 'OI排行得分计算公式', + Cancel_Evaluation: '取消评测', + Modify_Evaluation:'修改评测', + Has_Been_Manually_Judged:'已被人工评测', + Manually_Jugde:'人工评测', + Cancel_Judge_Tips:'你是否确定将该提交标记为已取消?', + Cancel_Successfully:'取消成功', + Click_to_Manually_Judge:'点击进行人工评测', + + + // /views/oj/status/SubmissionDetails.vue + Test_point_details: '测试点详情', + Copy: '复制', + Shared: '分享', + Unshared: '不分享', + Shared_successfully: '分享成功', + Cancel_Sharing_Successfully: '取消分享成功', + Input_File: '输入文件', + Output_File: '输出文件', + Case_tips: '信息提示', + Nothing: '无', + + // /views/oj/rank/ACMRank.vue + ACM_Ranklist: 'ACM 排行榜', + User: '用户', + Nickname: '昵称', + Signature: '个性简介', + Rating: '通过率', + Rank_Search_Placeholder: '请输入查询的用户名、昵称或真实姓名', + + // /views/oj/rank/OIRank.vue + OI_Ranklist: 'OI 排行榜', + + // /views/oj/discussion/discussion.vue + Go_to_problem: '前往原题', + Release_Time: '发布时间', + Likes: '点赞', + Like_Successfully: '点赞成功', + Cancel_Like_Successfully: '取消成功', + Views: '浏览', + Edit: '编辑', + Delete: '删除', + Post_discussion: '发布一个讨论~', + Post_problem_discussion: '发布题解', + General_discussion: '公共讨论区', + Return: '返回', + Category: '分类', + Discussion_title: '标题', + Discussion_Desc: '描述', + Discussion_Category: '分类', + Discussion_top: '是否置顶', + Discussion_content: '内容', + Create_Discussion: '创建', + Edit_Discussion: '编辑', + Delete_Discussion_Tips: '此操作将删除讨论,包括相关的评论和回复。你要继续吗?', + Delete_successfully: '删除成功', + Post_successfully: '发布成功', + Send_successfully: '发送成功', + + // /views/oj/discussion/discussionList.vue + Report: '举报', + Like: '点赞', + Liked: '已点赞', + Report_Reason: '举报原因', + The_report_label_and_reason_cannot_be_empty: '举报标签和理由不能都为空', + + // 404.vue + Page_Not_Found:"页面找不到啦", + Go_Home: '返回主页', + Back: '返回', + + // /views/oj/contest/ContestList.vue + Rule: '规则', + Running: '进行中', + Scheduled: '筹备中', + Ended: '已结束', + No_contest: '暂无比赛', + Contests: '比赛', + Public: '公开赛', + Private: '私有赛', + Protected: '保护赛', + Public_Tips: '公开赛 - 每个用户都可查看与提交', + Protected_Tips: '保护赛 - 每个用户都可查看,但是提交需要密码', + Private_Tips: '私有赛 - 用户需要密码才可查看与提交', + Contest_Outside_ScoreBoard: '赛外榜单', + + // /views/oj/contest/ContestDetail.vue + StartAt: '开始时间', + EndAt: '结束时间', + Password_Required: '需要密码', + To_Enter_Need_Password: '请输入该比赛的密码,方可进入比赛', + Enter_the_contest_password: '请输入比赛密码', + Enter: '进入', + Overview: '比赛简介', + Announcement: '公告', + Submissions: '提交记录', + Rankings: '排行榜', + Comment: '评论', + Print: '打印', + Admin_Print: '管理打印', + Admin_Helper: 'AC助手', + Register_contest_successfully: '比赛报名成功', + Please_check_the_contest_announcement_for_details: '具体内容请查看比赛公告', + Go_To_Group_Contest_List:'前往团队比赛列表', + Group_Contest_Tag:'团队比赛', + + // /views/oj/contest/children/ACMContestRank.vue + Contest_Rank: '比赛排名', + Menu: '菜单', + Chart: '图表', + Table: '表格', + Auto_Refresh: '自动刷新', + RealName: '真实姓名', + Force_Update: '强制更新', + Download_as_CSV: '以CSV格式导出排名', + TotalTime: '总时间', + Top_10_Teams: 'Top 10 Teams', + save_as_image: '保存成图片', + Contest_Rank_Seq: '排名', + Star_User: '打星用户', + Unfollow: '取消关注', + Top_And_Follow: '置顶关注', + + // /views/oj/contest/children/ACMInfo.vue + AC_Time: 'AC 时间', + First_Blood: 'First Blood', + Checked: '已检查', + Not_Checked: '未检查', + Check_It: '检查', + Accepted: 'Accepted', + + // /views/oj/contest/children/ContestPrint.vue + Print_Title: '比赛文本打印', + Print_tips: '请将需要打印的文本放入内容框内提交。注意:请不要恶意提交!', + Content: '内容', + Content_cannot_be_empty: '内容不能为空', + The_number_of_content_cannot_be_less_than_50: '内容字符数不能低于50!', + Success_submit_tips: '提交成功!请耐心等待工作人员打印!', + + // /views/oj/contest/children/ContestAdminPrint.vue + Download: '下载', + Printed: '已打印', + Not_Printed: '未打印', + + // /views/oj/contest/children/ContestRejudgeAdmin.vue + Contest_Rejudge: '比赛重新测评', + ID: 'ID', + Rejudge_All: '重测', + Contest_Rejudge_Tips: '您确定重测所有提交记录?', + Rejudge_successfully: '重测成功', + + // /views/oj/contest/children/OIContestRank.vue + Total_Score: '总分', + Based_on_The_Highest_Score_Submitted_For_Each_Problem: '以每题提交的最高得分计算', + Based_on_The_Recent_Score_Submitted_Of_Each_Problem: '以每题提交的最近得分计算', + + // /views/oj/about/Introduction.vue + Compiler: '编译器', + Example: '例题', + Result_Explanation: '结果说明', + Pending_Description: '您的解答正在排队等待评测中,请等待结果...', + Submitted_Faild_Description: '您的此次提交失败,请点击按钮重新提交...', + Compiling_Description: '正在对您的源代码进行编译中,请等待结果...', + Judging_Description: '正在使用测试数据运行您的程序中,请等待结果...', + Compile_Error_Description: "无法编译您的源代码,点击链接查看编译器的输出。", + Persentation_Error_Description: '您提交的代码已经很接近正确答案,请检查代码格式输出是否有多余空格,换行等空白符。', + Accepted_Description: '恭喜! 您的解题方法是正确的。', + Wrong_Answer_Description: "您的程序输出结果与判题程序的答案不符。", + Runtime_Error_Description: '您的程序异常终止,可能的原因是:段错误,被零除或用非0的代码退出程序。', + Time_Limit_Exceeded_Description: '您的程序运行时间已超出题目限制。', + Memory_Limit_Exceeded_Description: '您的程序实际使用的内存已超出题目限制。', + System_Error_Description: '糟糕,判题机系统出了问题。请报告给管理员。', + Cancelled_Description:'您的此次提交被取消!', + Compile_Explanation: '编译说明', + Compile_Tips1:"__int64不是ANSI标准定义,只能在VC使用,在 GNU C++ 中应写成 long long 类型, scanf和printf 请使用%lld作为格式", + Compile_Tips2:"main() 返回值必须定义为 int ,而不是 void", + Compile_Tips3:"i 在循环外失去定义 \"for(int i=0...){...}\"", + Compile_Tips4:"itoa 不是ansi标准函数(标准 C/C++ 中无此函数)", + + // /views/oj/about/Developer.vue + Leader_BackEnd_FrontEnd_Engineer: '主导 & 后端 | 前端 开发者', + Group_Function_Development_Contributor:'团队功能开发贡献者', + Distributed: '分布式', + Distributed_Desc: '前后端分离,支持判题微服务集群', + Customization: '定制化', + Customization_Desc: '网站配置高度集成,支持定制化修改', + Security: '安全性', + Security_Desc: '判题沙盒使用cgroup隔离,网站权限控制完善', + Diversity: '多样性', + Diversity_Desc: '支持Codefoces,HDU,POJ,GYM,AtCoder,SPOJ的远程判题', + Available: '有效', + Faulty: '不完善', + + // /components/oj/common/Announcements.vue + Contest_Announcement: '比赛公告', + No_Announcements: '暂无公告', + + // /components/oj/common/CodeMirror.vue + Lang: '语言', + Code_Editor_Setting:'代码编辑器设置', + Setting:'设置', + Theme: '主题', + FontSize: '字体大小', + TabSize:'Tab 长度', + Two_Spaces:'2个空格', + Four_Spaces:'4个空格', + Eight_Spaces:'8个空格', + Reset_Code: '重置代码', + Upload_file: '上传文件', + monokai: 'Monokai', + solarized: 'Molarized Light', + material: 'Material', + idea:'IDEA', + eclipse:'Eclipse', + base16_dark:'Base16-dark', + cobalt:'Cobalt', + dracula:'Dracula', + Test_Case: '测试用例', + Test_Result: '运行结果', + Running_Test: '运行自测', + Non_Test_Judge_Tips: '输入测试用例后,点击运行自测,这里将会显示运行结果', + Problem_Uncertain_Answer:'注意:本题可能存在多个符合题目要求的输出,请自行判断程序输出是否通过。', + Fill_Case: '填充用例', + Compilation_Failed: '编译失败', + Test_Input: '自测输入', + Expected_Output: '预期输出', + Real_Output: '实际输出', + Pass_Test_Case: '通过测试用例', + + // /components/oj/comment/Comment.vue + Announcement_of_contest_Q_and_A_area: '比赛评论区公告', + Announcement_of_contest_Q_and_A_area_tips1: '请不要提问与比赛无关的问题,禁止灌水!', + Announcement_of_contest_Q_and_A_area_tips2: '比赛过程中,仅自己与比赛管理员的评论可见!', + Announcement_of_contest_Q_and_A_area_tips3: '比赛管理员评论不可回复,比赛结束评论恢复正常!', + Come_and_write_down_your_comments: '快来写下你的评论吧', + Inline_Code: '行内代码', + Code_Block: '代码块', + Link: '链接', + Unordered_list: '无序列表', + Ordered_List: '有序列表', + Submit_Comment: '提交评论', + All_Comment: '全部评论', + Reply: '回复', + Reply_Successfully: '回复成功', + Comment_Successfully: '评论成功', + Reply_Total: '总共', + Replies: '条回复', + Click_Show_All: '点击查看全部', + Pick_up: '收起', + Load_More: '加载更多', + Delete_Comment_Tips: '此操作将删除该评论及其所有回复, 是否继续?', + Delete_Reply_Tips: '此操作将删除该回复, 是否继续?', + + // /views/oj/message/message.vue + Message_Center: '消息中心', + No_Data: '暂无数据', + + // /views/oj/message/UserMsg.vue + Msg_Total: '共', + Msg_Messages: '条', + DiscussMsg: '评论我的', + ReplyMsg: '回复我的', + LikeMsg: '收到的赞', + SysMsg: '系统通知', + MineMsg: '我的消息', + Clean_All: '清空全部', + Action_Like_Discuss: '赞了我的评论', + Action_Like_Post: '赞了我的讨论帖', + Action_Discuss: '评论了我的讨论帖', + Action_Reply: '回复了我的评论', + From_Discussion_Post: '来自讨论帖', + From_the_Contest: '来自比赛', + Delete_Msg_Tips: '你是否确定要删除或清空消息?', + + // /views/oj/training/TrainingList.vue + Search_Training: '搜索训练', + Training_Public: '公开训练', + Training_Private: '私有训练', + Training_Category: '训练分类', + Number: '编号', + Problem_Number: '题目数', + Recent_Update: '最近更新', + + // /views/oj/training/TrainingDetails.vue + Training_Introduction: '训练简介', + Training_Number: '训练编号', + Training_Auth: '训练权限', + Training_Total_Problems: '总题数', + Record_List: '记录榜单', + To_Enter_Training_Need_Password: '请输入该私有训练的密码,方可进入', + Enter_the_training_password: '请输入私有训练的密码', + Register_training_successfully: '验证训练密码成功!', + + // /views/oj/training/TrainingRank.vue + Total_AC: 'AC总数', + + // /views/oj/group/GroupList.vue + Search_Group: '搜索团队', + Create_Group: '创建团队', + All_Group: '所有团队', + My_Group: '我的团队', + No_Groups: '暂无团队', + Group_Name: '团队名称', + Group_Short_Name: '团队简称(团队题目展示ID前缀)', + Group_Brief: '团队简介', + Group_Description: '团队描述', + Group_Public: '公开团队', + Group_Protected: '保护团队', + Group_Private: '私有团队', + Group_Hidden: '隐藏', + Group_Auth: '团队权限', + Group_Owner: '团队负责人', + Group_Code: '团队邀请码', + Total_Members: '成员总数', + Group_Public_Tips: '公开团队 - 加入无需申请', + Group_Protected_Tips: '保护团队 - 加入需要申请', + Group_Private_Tips: '私有团队 - 需要邀请码才能申请', + Group_Hidden_Tips: '隐藏 - 只有团队成员可见', + Create_Successfully: '创建成功', + Group_Name_Check_Required: '团队名称不能为空', + Group_Name_Check_Min_Max: '团队名称的长度应为 5 到 25', + Group_Short_Name_Check_Required: '团队简称不能为空', + Group_Short_Name_Check_Min_Max: '团队简称的长度应为 5 到 10', + Group_Brief_Check_Required: '团队简介不能为空', + Group_Brief_Check_Min_Max: '团队简介的长度应为 5 到 50', + Group_Auth_Check_Required: '团队权限不能为空', + Group_Code_Check_Required: '团队邀请码不能为空', + Group_Code_Check_Min_Max: '团队邀请码的长度应为 6', + Group_Description_Check_Required: '团队描述不能为空', + Group_Description_Check_Min_Max: '团队描述的长度应为 5 到 1000', + + // /views/oj/group/GroupDetails.vue + Apply_Group: '申请加入', + Apply_Successfully: '申请成功', + Exit_Group: '退出团队', + Exit_Group_Tips: '确定要退出团队吗?退出后您将无法再查看团队资源!', + Exit_Successfully: '退出成功', + Disband_Group:'解散团队', + Disband_Group_Tips:'您是否确定要解散该团队?', + Disband_Successfully:'解散成功', + + Group_Number: '团队编号', + Group_Home: '主页 ', + Group_Problem: '题目', + Group_Training: '训练', + Group_Contest: '比赛', + Group_Submission: '评测', + Group_Discussion: '讨论', + Group_Setting: '设置', + Group_Announcement: '公告', + Group_Rank:'排名', + Group_Member: '成员', + Apply_Reason: '申请理由', + Apply_Reason_Check_Required: '申请理由不能为空', + Apply_Reason_Check_Min_Max: '申请理由的长度应为 5 到 100', + + // /views/oj/group/GroupDiscussionList.vue + No_Discussion: '暂无讨论', + Problem_Discussion:'题目讨论', + + // /views/oj/group/GroupMemberList.vue + Applying: '申请中', + Refused: '已拒绝', + General_Member: '普通成员', + Member_Admin: '成员管理', + Join_Time: '加入时间', + Change_Time: '变更时间', + Member_Auth: '成员权限', + Group_Admin: '管理员', + Group_Root: '超级管理员', + View_Reason: '查看理由', + Delete_Member: '踢出该成员', + Delete_Member_Tips: '确定要踢出该成员吗?踢出后该成员将无法再查看团队资源!另外,如果该成员是团队负责人,那么团队也将被一同解散!', + + // /views/oj/group/GroupTrainingList.vue + Back_To_Admin_Training_List:'返回训练管理列表', + Back_To_Training_List:'返回训练列表', + Back_Admin_Training_Problem_List:'返回训练题目管理列表', + + // /views/oj/group/GroupContestList.vue + Back_To_Admin_Contest_List:'返回比赛管理列表', + Back_To_Contest_List:'返回比赛列表', + Back_Admin_Contest_Problem_List:'返回比赛题目管理列表', + + // /views/oj/group/GroupSetting.vue + Add_From_Group_Problem: '从团队题库添加题目', + + // /views/oj/group/GroupSetting.vue + Group_Visible: '在团队列表显示', + Group_Not_Visible: '在团队列表隐藏', + + // /views/oj/group/GroupRank.vue + Group_ACM_Rank_Type: 'ACM排序', + Group_OI_Rank_Type: 'OI排序', + + // GroupAdminProblemList.vue + Group_Problem_Apply_Public:'申请加入公开题库', + Already_Public_Problem:'已在公开题库中', + Group_Problem_Apply_Public_Tips:'您是否确定要申请该题目加入公开题库?', + Cancel_Group_Problem_Apply_Public_Tips:'您是否要取消申请该题目加入公开题库?' +} diff --git a/src/hoj-vue/src/main.js b/src/hoj-vue/src/main.js new file mode 100644 index 0000000..32b36ca --- /dev/null +++ b/src/hoj-vue/src/main.js @@ -0,0 +1,101 @@ +import Vue from 'vue' +import App from './App.vue' +import store from './store' +import Element from 'element-ui' +import i18n from '@/i18n' + +// import "element-ui/lib/theme-chalk/index.css" +import 'font-awesome/css/font-awesome.min.css' +import Message from 'vue-m-message' +import 'vue-m-message/dist/index.css' +import axios from 'axios' + +import Md_Katex from '@iktakahiro/markdown-it-katex' + +// 注释表示使用cdn引入 +// import 'xe-utils' +import VXETable from 'vxe-table' +// import 'vxe-table/lib/style.css' + +import Katex from '@/common/katex' + +import VueClipboard from 'vue-clipboard2' + +import highlight from '@/common/highlight' + +import filters from '@/common/filters.js' +import VueCropper from 'vue-cropper' + +// import ECharts from 'vue-echarts/components/ECharts.vue' +// import 'echarts/lib/chart/bar' +// import 'echarts/lib/chart/line' +// import 'echarts/lib/chart/pie' +// import 'echarts/lib/component/title' +// import 'echarts/lib/component/grid' +// import 'echarts/lib/component/dataZoom' +// import 'echarts/lib/component/legend' +// import 'echarts/lib/component/tooltip' +// import 'echarts/lib/component/toolbox' +// import 'echarts/lib/component/markPoint' +// Vue.component('ECharts', ECharts) + +// 使用CDN的方式如下引入echarts +import VueECharts from 'vue-echarts'; +Vue.component('ECharts', VueECharts) + + +import VueParticles from 'vue-particles' +import SlideVerify from 'vue-monoplasty-slide-verify' + +// markdown编辑器 +import mavonEditor from 'mavon-editor' //引入markdown编辑器 +import 'mavon-editor/dist/css/index.css'; +Vue.use(mavonEditor) + +import {Drawer,List,Menu,Icon,AppBar,Button,Divider} from 'muse-ui'; +import 'muse-ui/dist/muse-ui.css'; + +import VueDOMPurifyHTML from 'vue-dompurify-html' +Vue.use(VueDOMPurifyHTML) + +import router from './router' +Vue.use(Drawer) +Vue.use(List) +Vue.use(Menu) +Vue.use(Icon) +Vue.use(AppBar) +Vue.use(Button) +Vue.use(Divider) + +Object.keys(filters).forEach(key => { // 注册全局过滤器 + Vue.filter(key, filters[key]) +}) +Vue.use(VueParticles) // 粒子特效背景 +Vue.use(Katex) // 数学公式渲染 +VXETable.setup({ + // 对组件内置的提示语进行国际化翻译 + i18n: (key, value) => i18n.t(key, value) +}) +Vue.use(VXETable) // 表格组件 +Vue.use(VueClipboard) // 剪贴板 +Vue.use(highlight) // 代码高亮 +Vue.use(Element,{ + i18n: (key, value) => i18n.t(key, value) +}) + +Vue.use(VueCropper) // 图像剪切 +Vue.use(Message, { name: 'msg' }) // `Vue.prototype.$msg` 全局消息提示 + +Vue.use(SlideVerify) // 滑动验证码组件 + +Vue.prototype.$axios = axios + +Vue.prototype.$markDown = mavonEditor.mavonEditor.getMarkdownIt().use(Md_Katex) // 挂载到vue + +Vue.config.productionTip = false +new Vue({ + router, + store, + i18n, + render: h => h(App) +}).$mount('#app') diff --git a/src/hoj-vue/src/router/adminRoutes.js b/src/hoj-vue/src/router/adminRoutes.js new file mode 100644 index 0000000..0ac9319 --- /dev/null +++ b/src/hoj-vue/src/router/adminRoutes.js @@ -0,0 +1,198 @@ + +// 引入 view 组件 +const Login= ()=>import('@/views/admin/Login') +const Home= ()=>import('@/views/admin/Home') +const Dashboard= ()=>import('@/views/admin/Dashboard') +const User= ()=>import('@/views/admin/general/User') +const Announcement= ()=>import('@/views/admin/general/Announcement') +const SysNotice= ()=>import('@/views/admin/general/SysNotice') +const SystemConfig= ()=>import('@/views/admin/general/SystemConfig') +const SysSwitch= ()=>import('@/views/admin/general/SysSwitch') +const ProblemList= ()=>import('@/views/admin/problem/ProblemList') +const AdminGroupProblemList= ()=>import('@/views/admin/problem/GroupProblemList') +const Problem= ()=>import('@/views/admin/problem/Problem') +const Tag= ()=>import('@/views/admin/problem/Tag') +const ProblemImportAndExport= ()=>import('@/views/admin/problem/ImportAndExport') +const Contest= ()=>import('@/views/admin/contest/Contest') +const ContestList= ()=>import('@/views/admin/contest/ContestList') +const Training= ()=>import('@/views/admin/training/Training') +const TrainingList= ()=>import('@/views/admin/training/TrainingList') +const TrainingProblemList= ()=>import('@/views/admin/training/TrainingProblemList') +const TrainingCategory= ()=>import('@/views/admin/training/Category') +const DiscussionList= ()=>import('@/views/admin/discussion/Discussion') +const adminRoutes= [ + { + path: '/admin/login', + name: 'admin-login', + component: Login, + meta: { title: 'Login' } + }, + { + path: '/admin/', + component: Home, + meta: { requireAuth:true, requireAdmin: true }, + children: [ + { + path: '', + redirect: 'dashboard', + component: Dashboard, + meta: { title: 'Dashboard' } + }, + { + path: 'dashboard', + name: 'admin-dashboard', + component: Dashboard, + meta: { title: 'Dashboard' } + }, + { + path: 'user', + name: 'admin-user', + component: User, + meta: { requireSuperAdmin: true,title:'User Admin'}, + }, + { + path: 'announcement', + name: 'admin-announcement', + component: Announcement, + meta: { requireSuperAdmin: true,title:'Announcement Admin'}, + }, + { + path: 'notice', + name: 'admin-notice', + component: SysNotice, + meta: { requireSuperAdmin: true,title:'Notice Admin'}, + }, + { + path: 'conf', + name: 'admin-conf', + component: SystemConfig, + meta: { requireSuperAdmin: true,title:'System Config'}, + }, + { + path: 'switch', + name: 'admin-switch', + component: SysSwitch, + meta: { requireSuperAdmin: true,title:'System Switch'}, + }, + { + path: 'problems', + name: 'admin-problem-list', + component: ProblemList, + meta: { title:'Problem List'}, + }, + { + path: 'problem/create', + name: 'admin-create-problem', + component: Problem, + meta: { title:'Create Problem'}, + }, + { + path: 'problem/edit/:problemId', + name: 'admin-edit-problem', + component: Problem, + meta: { title:'Edit Problem'}, + }, + { + path: 'problem/tag', + name: 'admin-problem-tag', + component: Tag, + meta: { title:'Admin Tag'}, + }, + { + path: 'group-problem/apply', + name: 'admin-group-apply-problem', + component: AdminGroupProblemList, + meta: { title:'Admin Group Apply Problem'}, + }, + { + path: 'problem/batch-operation', + name: 'admin-problem_batch_operation', + component: ProblemImportAndExport, + meta: { title:'Export Import Problem'}, + }, + { + path: 'training/create', + name: 'admin-create-training', + component: Training, + meta: { title:'Create Training'}, + }, + { + path: 'training', + name: 'admin-training-list', + component: TrainingList, + meta: { title:'Training List'} + }, + { + path: 'training/:trainingId/edit', + name: 'admin-edit-training', + component: Training, + meta: { title:'Edit Training'} + }, + { + path: 'training/:trainingId/problems', + name: 'admin-training-problem-list', + component: TrainingProblemList, + meta: { title:'Training Problem List'} + }, + { + path: 'training/category', + name: 'admin-training-category', + component: TrainingCategory, + meta: { title:'Admin Category'} + }, + { + path: 'contest/create', + name: 'admin-create-contest', + component: Contest, + meta: { title:'Create Contest'}, + }, + { + path: 'contest', + name: 'admin-contest-list', + component: ContestList, + meta: { title:'Contest List'} + }, + { + path: 'contest/:contestId/edit', + name: 'admin-edit-contest', + component: Contest, + meta: { title:'Edit Contest'} + }, + { + path: 'contest/:contestId/announcement', + name: 'admin-contest-announcement', + component: Announcement, + meta: { title:'Contest Announcement'} + }, + { + path: 'contest/:contestId/problems', + name: 'admin-contest-problem-list', + component: ProblemList, + meta: { title:'Contest Problem List'} + }, + { + path: 'contest/:contestId/problem/create', + name: 'admin-create-contest-problem', + component: Problem, + meta: { title:'Create Problem'} + }, + { + path: 'contest/:contestId/problem/:problemId/edit', + name: 'admin-edit-contest-problem', + component: Problem, + meta: { title:'Edit Problem'} + }, + { + path: 'discussion', + name: 'admin-discussion-list', + component: DiscussionList, + meta: { title:'Discussion Admin'} + }, + ] + }, + { + path: '/admin/*', redirect: '/admin/login' + } + ] + + export default adminRoutes diff --git a/src/hoj-vue/src/router/index.js b/src/hoj-vue/src/router/index.js new file mode 100644 index 0000000..0c04781 --- /dev/null +++ b/src/hoj-vue/src/router/index.js @@ -0,0 +1,142 @@ +import Vue from 'vue' +import VueRouter from 'vue-router' +import { sync } from 'vuex-router-sync' +import adminRoutes from '@/router/adminRoutes' +import ojRoutes from '@/router/ojRoutes' +import mMessage from '@/common/message' +import store from '@/store' +import NProgress from 'nprogress' // nprogress插件 +import 'nprogress/nprogress.css' // nprogress样式 + +// 配置NProgress进度条选项 —— 动画效果 +NProgress.configure({ ease: 'ease', speed: 1000,showSpinner: false }) + +Vue.use(VueRouter) + +//获取原型对象上的push函数 +const originalPush = VueRouter.prototype.push +//修改原型对象中的push方法 +VueRouter.prototype.push = function push(location) { + return originalPush.call(this, location).catch(err => err) +} + +let routes = new Set([...ojRoutes, ...adminRoutes]); +const router = new VueRouter({ + mode: 'history', + base: process.env.BASE_URL, + routes, + scrollBehavior(to, from, savedPosition) { + if (savedPosition) { + return savedPosition + } else { + return { x: 0, y: 0 } + } + }, +}) + + +// 路由判断登录 根据路由配置文件的参数(全局身份验证token) +router.beforeEach((to, from, next) => { + NProgress.start() + if (to.matched.some(record => record.meta.requireAuth)) { // 判断该路由是否需要登录权限 + const token = localStorage.getItem('token') || '' + const isSuperAdmin = store.getters.isSuperAdmin + const isAmdin = store.getters.isAdminRole + if (token) { // 判断当前的token是否存在 ; 登录存入的token + + if(to.matched.some(record => record.meta.requireSuperAdmin)){ // 判断是否需要超级管理权限 + + if(isSuperAdmin){ // 拥有权限就进入 + next() + }else{ // 没有超级管理员权限 全部返回登录页,并且清除缓存 + if(to.path.split('/')[1]==='admin'){ //管理端 + next({ + path: '/admin/login' + }) + }else{ // oj端 + next({ + path: '/home' + }) + store.commit('changeModalStatus',{mode: 'Login', visible: true}) + } + mMessage.error('Error!Please Login Again!') + store.commit("clearUserInfoAndToken"); + } + }else if(to.matched.some(record => record.meta.requireAdmin)){ //判断是否需要管理员权限 + if(isAmdin){ + next() + }else{ // 没有管理员权限 全部返回登录页,并且清除缓存 + if(to.path.split('/')[1]==='admin'){ // 管理端 + next({ + path: '/admin/login' + }) + }else{ + next({ + path: '/home' + }) + store.commit('changeModalStatus',{mode: 'Login', visible: true}) + } + mMessage.error('Error!Please Login Again!') + store.commit("clearUserInfoAndToken"); + } + }else{ + next() + } + + } else { // 如果没有token + + if(to.path.split('/')[1]==='admin'){ + next({ + path: '/admin/login' // 管理端无token认证返回登录页 + }) + }else{ + next({ + path: '/home' // 无token认证的一致返回到主页 + }) + store.commit('changeModalStatus',{mode: 'Login', visible: true}) + } + store.commit("clearUserInfoAndToken"); + mMessage.error('Please Login First!') + } + } else { // 不需要登录认证的页面 + if(to.meta.access){ // 单级路由有access控制 + const webConfig = store.getters.websiteConfig; + switch(to.meta.access){ + case 'discussion': + if(!webConfig.openPublicDiscussion){ + next({ + path: '/home' + }) + mMessage.error('No Access: There is no open discussion area on the website!') + } + break; + case 'groupDiscussion': + if(!webConfig.openGroupDiscussion){ + next({ + path: '/home' + }) + mMessage.error('No Access: There is no open group discussion area on the website!') + } + break; + case 'contestComment': + if(!webConfig.openContestComment){ + next({ + path: '/home' + }) + mMessage.error('No Access: There is no open contest comment area on the website!') + } + break; + } + } + next() + } + +}) + +router.afterEach((to, from, next) => { + NProgress.done() +}) + +sync(store, router) + +export default router diff --git a/src/hoj-vue/src/router/ojRoutes.js b/src/hoj-vue/src/router/ojRoutes.js new file mode 100644 index 0000000..be627d5 --- /dev/null +++ b/src/hoj-vue/src/router/ojRoutes.js @@ -0,0 +1,435 @@ +import Home from '@/views/oj/Home.vue' +import SetNewPassword from "@/views/oj/user/SetNewPassword.vue" +import UserHome from "@/views/oj/user/UserHome.vue" +import Setting from "@/views/oj/user/Setting.vue" +import ProblemLIst from "@/views/oj/problem/ProblemList.vue" +import Logout from "@/views/oj/user/Logout.vue" +import SubmissionList from "@/views/oj/status/SubmissionList.vue" +import SubmissionDetails from "@/views/oj/status/SubmissionDetails.vue" +import ContestList from "@/views/oj/contest/ContestList.vue" +import Problem from "@/views/oj/problem/Problem.vue" +import ACMRank from "@/views/oj/rank/ACMRank.vue" +import OIRank from "@/views/oj/rank/OIRank.vue" +import ContestDetails from "@/views/oj/contest/ContestDetails.vue" +import ACMScoreBoard from "@/views/oj/contest/outside/ACMScoreBoard.vue" +import OIScoreBoard from "@/views/oj/contest/outside/OIScoreBoard.vue" +import ContestProblemList from "@/views/oj/contest/children/ContestProblemList.vue" +import ContestRank from "@/views/oj/contest/children/ContestRank.vue" +import ACMInfoAdmin from "@/views/oj/contest/children/ACMInfoAdmin.vue" +import Announcements from "@/components/oj/common/Announcements.vue" +import ContestComment from "@/views/oj/contest/children/ContestComment.vue" +import ContestPrint from "@/views/oj/contest/children/ContestPrint.vue" +import ContestAdminPrint from "@/views/oj/contest/children/ContestAdminPrint.vue" +import ContestRejudgeAdmin from "@/views/oj/contest/children/ContestRejudgeAdmin.vue" +import DiscussionList from "@/views/oj/discussion/discussionList.vue" +import Discussion from "@/views/oj/discussion/discussion.vue" +import Introduction from "@/views/oj/about/Introduction.vue" +import Developer from "@/views/oj/about/Developer.vue" +import Message from "@/views/oj/message/message.vue" +import UserMsg from "@/views/oj/message/UserMsg.vue" +import SysMsg from "@/views/oj/message/SysMsg.vue" +import TrainingList from "@/views/oj/training/TrainingList.vue" +import TrainingDetails from "@/views/oj/training/TrainingDetails.vue" +import TrainingProblemList from "@/views/oj/training/TrainingProblemList.vue" +import TrainingRank from "@/views/oj/training/TrainingRank.vue" +import GroupList from '@/views/oj/group/GroupList.vue' +import GroupDetails from '@/views/oj/group/GroupDetails.vue' +import GroupAnnouncementList from '@/views/oj/group/children/GroupAnnouncementList.vue' +import GroupProblemList from '@/views/oj/group/children/GroupProblemList.vue' +import GroupTrainingList from '@/views/oj/group/children/GroupTrainingList.vue' +import GroupContestList from '@/views/oj/group/children/GroupContestList.vue' +import GroupDiscussionList from '@/views/oj/group/children/GroupDiscussionList.vue' +import GroupMemberList from '@/views/oj/group/children/GroupMemberList.vue' +import GroupSetting from '@/views/oj/group/children/GroupSetting.vue' +import GroupRank from '@/views/oj/group/children/GroupRank.vue' +import NotFound from "@/views/404.vue" + +const ojRoutes = [ + { + path: '/', + redirect: '/home', + component: Home, + meta: { title: 'Home' } + }, + { + path: '/home', + name: 'Home', + component: Home, + meta: { title: 'Home' } + }, + { + path: '/problem', + name: 'ProblemList', + component: ProblemLIst, + meta: { title: 'Problem' } + }, + { + path: '/problem/:problemID', + name: 'ProblemDetails', + component: Problem, + meta: { title: 'Problem Details' } + }, + { + path: '/training', + name: 'TrainingList', + component: TrainingList, + meta: { title: 'Training' } + }, + { + name: 'TrainingDetails', + path: '/training/:trainingID/', + component:TrainingDetails, + meta: {title: 'Training Details'}, + children: [ + { + name: 'TrainingProblemList', + path: 'problems', + component: TrainingProblemList, + meta: { title: 'Training Problem' } + }, + { + name: 'TrainingProblemDetails', + path: 'problem/:problemID/', + component: Problem, + meta: { title: 'Training Problem Details' } + }, + { + name: 'TrainingRank', + path: 'rank', + component: TrainingRank, + meta: { title: 'Training Rank' } + } + ] + }, + { + path: '/contest', + name: 'ContestList', + component: ContestList, + meta: { title: 'Contest' } + }, + { + path: '/contest/acm-scoreboard/:contestID', + name: 'ACMScoreBoard', + component: ACMScoreBoard, + meta: { title: 'ACM Contest ScoreBoard' } + }, + { + path: '/contest/oi-scoreboard/:contestID', + name: 'OIScoreBoard', + component: OIScoreBoard, + meta: { title: 'OI Contest ScoreBoard' } + }, + { + name: 'ContestDetails', + path: '/contest/:contestID/', + component:ContestDetails, + meta: {title: 'Contest Details',requireAuth:true}, + children: [ + { + name: 'ContestSubmissionList', + path: 'submissions', + component: SubmissionList, + meta: { title: 'Contest Submission' } + }, + { + name: 'ContestSubmissionDeatil', + path: 'problem/:problemID/submission-deatil/:submitID', + component: SubmissionDetails, + meta: { title: 'Contest Submission Deatil' } + }, + { + name: 'ContestProblemList', + path: 'problems', + component: ContestProblemList, + meta: { title: 'Contest Problem' } + }, + { + name: 'ContestProblemDetails', + path: 'problem/:problemID/', + component: Problem, + meta: { title: 'Contest Problem Details' } + }, + { + name: 'ContestAnnouncementList', + path: 'announcements', + component: Announcements, + meta: { title: 'Contest Announcement' } + }, + { + name: 'ContestRank', + path: 'rank', + component: ContestRank, + meta: { title: 'Contest Rank' } + }, + { + name: 'ContestACInfo', + path: 'ac-info', + component: ACMInfoAdmin, + meta: { title: 'Contest AC Info'} + }, + { + name:'ContestRejudgeAdmin', + path:'rejudge', + component:ContestRejudgeAdmin, + meta: { title: 'Contest Rejudge',requireSuperAdmin:true } + }, + { + name: 'ContestComment', + path:'comment', + component: ContestComment, + meta: { title: 'Contest Comment', access:'contestComment'} + }, + { + name: 'ContestPrint', + path:'print', + component: ContestPrint, + meta: { title: 'Contest Print'} + }, + { + name: 'ContestAdminPrint', + path:'admin-print', + component: ContestAdminPrint, + meta: { title: 'Contest Admin Print'} + } + ] + }, + { + path: '/status', + name: 'SubmissionList', + component: SubmissionList, + meta: { title: 'Status' } + }, + { + path: '/submission-detail/:submitID', + name: 'SubmissionDeatil', + component: SubmissionDetails, + meta: {title: 'Submission Deatil' } + }, + { + path: '/acm-rank', + name: 'ACM Rank', + component: ACMRank, + meta: { title: 'ACM Rank' } + }, + { + path: '/oi-rank', + name: 'OI Rank', + component: OIRank, + meta: { title: 'OI Rank' } + }, + { + path: '/reset-password', + name: 'SetNewPassword', + component: SetNewPassword, + meta: { title: 'Reset Password' } + }, + { + name: 'UserHome', + path: '/user-home', + component: UserHome, + meta: { title: 'User Home' } + }, + { + name: 'Setting', + path: '/setting', + component: Setting, + meta: { requireAuth: true, title: 'Setting' } + }, + { + name: 'Logout', + path: '/logout', + component: Logout, + meta: { requireAuth: true, title: 'Logout' } + }, + { + path: '/discussion', + name: 'AllDiscussion', + meta: {title: 'Discussion', access:'discussion'}, + component:DiscussionList + }, + { + path: '/discussion/:problemID', + name: 'ProblemDiscussion', + meta: {title: 'Discussion', access:'discussion'}, + component:DiscussionList + }, + { + path: '/discussion-detail/:discussionID', + name:'DiscussionDetails', + meta: {title: 'Discussion Details', access:'discussion'}, + component: Discussion + }, + { + path: '/group', + name: 'GroupList', + component: GroupList, + meta: {title: 'Group'} + }, + { + path: '/group/:groupID', + name: 'GroupDetails', + component: GroupDetails, + meta: {title: 'Group Details', requireAuth: true}, + children: [ + { + path: 'announcement', + name: 'GroupAnnouncementList', + component: GroupAnnouncementList, + meta: { title: 'Group Announcement' }, + }, + { + path: 'problem', + name: 'GroupProblemList', + component: GroupProblemList, + meta: { title: 'Group Problem' }, + }, + { + name: 'GroupProblemDetails', + path: 'problem/:problemID/', + component: Problem, + meta: { title: 'Group Problem Details' } + }, + { + path: 'training', + name: 'GroupTrainingList', + component: GroupTrainingList, + meta: { title: 'Group Training' } + }, + { + name: 'GroupTrainingDetails', + path: 'training/:trainingID/', + component:TrainingDetails, + meta: {title: 'Group Training Details'}, + children: [ + { + name: 'GroupTrainingProblemList', + path: 'problems', + component: TrainingProblemList, + meta: { title: 'Group Training Problem' } + }, + { + name: 'GroupTrainingProblemDetails', + path: 'problem/:problemID/', + component: Problem, + meta: { title: 'Group Training Problem Details' } + }, + { + name: 'GroupTrainingRank', + path: 'rank', + component: TrainingRank, + meta: { title: 'Group Training Rank' } + } + ] + }, + { + path: 'contest', + name: 'GroupContestList', + component: GroupContestList, + meta: { title: 'Group Contest' } + }, + { + path: 'status', + name: 'GroupSubmissionList', + component: SubmissionList, + meta: { title: 'Group Status' } + }, + { + path: 'submission-detail/:submitID', + name: 'GroupSubmissionDeatil', + component: SubmissionDetails, + meta: {title: 'Group Submission Deatil' } + }, + { + path: 'discussion', + name: 'GroupDiscussionList', + component: GroupDiscussionList, + meta: { title: 'Group Discussion', access:'groupDiscussion' } + }, + { + path: 'discussion/:problemID', + name: 'GroupProblemDiscussion', + meta: {title: 'Group Discussion', access:'groupDiscussion'}, + component:GroupDiscussionList + }, + { + path: 'discussion-detail/:discussionID', + name:'GroupDiscussionDetails', + meta: {title: 'Group Discussion Details', access:'groupDiscussion'}, + component: Discussion + }, + { + path: 'member', + name: 'GroupMemberList', + component: GroupMemberList, + meta: { title: 'Group Member' } + }, + { + path: 'setting', + name: 'GroupSetting', + component: GroupSetting, + meta: { title: 'Group Setting' } + }, + { + path: 'rank', + name: 'GroupRank', + component: GroupRank, + meta: { title: 'Group Rank' } + }, + ] + }, + { + path: '/introduction', + meta: {title: 'Introduction'}, + component:Introduction, + }, + { + path: '/developer', + meta: {title: 'Developer'}, + component:Developer, + }, + { + name:'Message', + path:'/message/', + component:Message, + meta: { requireAuth: true, title: 'Message' }, + children: [ + { + name: 'DiscussMsg', + path: 'discuss', + component: UserMsg, + meta: { requireAuth: true,title: 'Discuss Message' } + }, + { + name: 'ReplyMsg', + path: 'reply', + component: UserMsg, + meta: { requireAuth: true,title: 'Reply Message' } + }, + { + name: 'LikeMsg', + path: 'like', + component: UserMsg, + meta: { requireAuth: true,title: 'Like Message' } + }, + { + name: 'SysMsg', + path: 'sys', + component: SysMsg, + meta: { requireAuth: true,title: 'System Message' } + }, + { + name: 'MineMsg', + path: 'mine', + component: SysMsg, + meta: { requireAuth: true,title: 'Mine Message' } + }, + ] + }, + { + path: '*', + meta: {title: '404'}, + component:NotFound, + meta: { title: '404' } + } +] +export default ojRoutes diff --git a/src/hoj-vue/src/store/contest.js b/src/hoj-vue/src/store/contest.js new file mode 100644 index 0000000..6d479a9 --- /dev/null +++ b/src/hoj-vue/src/store/contest.js @@ -0,0 +1,282 @@ +import moment from 'moment' +import api from '@/common/api' +import { CONTEST_STATUS, CONTEST_TYPE } from '@/common/constants' +import time from '@/common/time' +const state = { + now: moment(), + intoAccess: false, // 比赛进入权限 + submitAccess:false, // 保护比赛的提交权限 + forceUpdate: false, // 强制实时榜单 + removeStar: false, // 榜单去除打星队伍 + concernedList:[], // 关注队伍 + contest: { + auth: CONTEST_TYPE.PUBLIC, + openPrint: false, + rankShowName:'username', + }, + contestProblems: [], + itemVisible: { + table: true, + chart: true, + }, + disPlayIdMapColor:{}, // 展示id对应的气球颜色 + groupContestAuth: 0, +} + +const getters = { + contestStatus: (state, getters) => { + return state.contest.status; + }, + contestRuleType: (state,getters) => { + return state.contest.type; + }, + isContestAdmin: (state, getters, _, rootGetters) => { + return rootGetters.isAuthenticated && + (state.contest.author === rootGetters.userInfo.username || rootGetters.isSuperAdmin || state.groupContestAuth == 5) + }, + canSubmit:(state, getters)=>{ + return state.intoAccess||state.submitAccess || state.contest.auth === CONTEST_TYPE.PUBLIC ||getters.isContestAdmin + }, + contestMenuDisabled: (state, getters) => { + // 比赛创建者或者超级管理员可以直接查看 + if (getters.isContestAdmin) return false + // 未开始不可查看 + if(getters.contestStatus === CONTEST_STATUS.SCHEDULED) return true + + if (state.contest.auth === CONTEST_TYPE.PRIVATE) { + // 私有赛需要通过验证密码方可查看比赛 + return !state.intoAccess + } + + }, + + // 榜单是否实时刷新 + ContestRealTimePermission: (state, getters, _, rootGetters) => { + // 比赛若是已结束,便是最后榜单 + if (getters.contestStatus === CONTEST_STATUS.ENDED) { + return true + } + // 比赛管理员直接可看到实时榜单 + if(getters.isContestAdmin){ + return true + } + // 比赛是否开启 + if(state.contest.sealRank === true){ + // 当前时间在封榜时间之后,即不刷新榜单 + return !state.now.isAfter(moment(state.contest.sealRankTime)) + }else{ + return true + } + }, + problemSubmitDisabled: (state, getters, _, rootGetters) => { + // 比赛结束不可交题 + if (getters.contestStatus === CONTEST_STATUS.ENDED) { + return true + + // 比赛未开始不可交题,除非是比赛管理者 + } else if (getters.contestStatus === CONTEST_STATUS.SCHEDULED) { + return !getters.isContestAdmin + } + // 未登录不可交题 + return !rootGetters.isAuthenticated + }, + // 是否需要显示密码验证框 + passwordFormVisible: (state, getters) => { + // 如果是公开赛,保护赛,或已注册过,管理员都不用再显示 + return state.contest.auth !== CONTEST_TYPE.PUBLIC &&state.contest.auth !== CONTEST_TYPE.PROTECTED &&!state.intoAccess && !getters.isContestAdmin + }, + contestStartTime: (state) => { + return moment(state.contest.startTime) + }, + contestEndTime: (state) => { + return moment(state.contest.endTime) + }, + // 比赛计时文本显示 + countdown: (state, getters) => { + // 还未开始的显示 + if (getters.contestStatus === CONTEST_STATUS.SCHEDULED) { + + let durationMs = getters.contestStartTime.diff(state.now, 'seconds') + + let duration = moment.duration(durationMs, 'seconds') + // time is too long + if (duration.weeks() > 0) { + return 'Start At ' + duration.humanize() + } + + if(duration.asSeconds()<=0){ + state.contest.status = CONTEST_STATUS.RUNNING + } + + let texts = time.secondFormat(durationMs) + return '-' + texts + // 比赛进行中的显示 + } else if (getters.contestStatus === CONTEST_STATUS.RUNNING) { + // 倒计时文本显示 + if(getters.contestEndTime.diff(state.now, 'seconds')>0){ + let texts = time.secondFormat(getters.contestEndTime.diff(state.now, 'seconds')) + return '-' + texts + }else{ + state.contest.status = CONTEST_STATUS.ENDED + return "00:00:00" + } + + } else { + return 'Ended' + } + }, + // 比赛开始到现在经过的秒数 + BeginToNowDuration:(state,getters)=>{ + return moment.duration(state.now.diff(getters.contestStartTime, 'seconds'), 'seconds').asSeconds() + }, + + // 比赛进度条显示 + progressValue:(state,getters)=>{ + // 还未开始的显示 + if (getters.contestStatus === CONTEST_STATUS.SCHEDULED) { + return 0; + // 比赛进行中的显示 + } else if (getters.contestStatus === CONTEST_STATUS.RUNNING) { + // 获取比赛开始到现在经过的秒数 + let duration = getters.BeginToNowDuration + // 消耗时间除以整体时间 + return (duration / state.contest.duration)*100 + }else{ + return 100; + } + }, +} + +const mutations = { + changeContest (state, payload) { + state.contest = payload.contest + }, + changeContestItemVisible(state, payload) { + state.itemVisible = {...state.itemVisible, ...payload} + }, + changeRankForceUpdate (state, payload) { + state.forceUpdate = payload.value + }, + changeRankRemoveStar(state, payload){ + state.removeStar = payload.value + }, + changeConcernedList(state, payload){ + state.concernedList = payload.value + }, + changeContestProblems(state, payload) { + state.contestProblems = payload.contestProblems; + let tmp={}; + for(var j = 0,len = payload.contestProblems.length; j < len; j++){ + tmp[payload.contestProblems[j].displayId] = payload.contestProblems[j].color; + } + state.disPlayIdMapColor = tmp; + }, + changeContestRankLimit(state, payload) { + state.rankLimit = payload.rankLimit + }, + contestIntoAccess(state, payload) { + state.intoAccess = payload.intoAccess + }, + changeGroupContestAuth(state, payload) { + state.groupContestAuth = payload.groupContestAuth + }, + contestSubmitAccess(state, payload) { + state.submitAccess = payload.submitAccess + }, + clearContest (state) { + state.contest = {} + state.contestProblems = [] + state.intoAccess = false + state.submitAccess = false + state.itemVisible = { + table: true, + chart: true, + realName: false + } + state.forceUpdate = false + state.removeStar = false + state.groupContestAuth = 0 + }, + now(state, payload) { + state.now = payload.now + }, + nowAdd1s (state) { + state.now = moment(state.now.add(1, 's')) + }, +} + +const actions = { + getContest ({commit, rootState, dispatch}) { + return new Promise((resolve, reject) => { + api.getContest(rootState.route.params.contestID).then((res) => { + resolve(res) + let contest = res.data.data + commit('changeContest', {contest: contest}) + if (contest.gid) { + dispatch('getGroupContestAuth', {gid: contest.gid}) + } + commit('now', {now: moment(contest.now)}) + if (contest.auth == CONTEST_TYPE.PRIVATE) { + dispatch('getContestAccess',{auth:CONTEST_TYPE.PRIVATE}) + }else if(contest.auth == CONTEST_TYPE.PROTECTED){ + dispatch('getContestAccess',{auth:CONTEST_TYPE.PROTECTED}) + } + }, err => { + reject(err) + }) + }) + }, + getScoreBoardContestInfo ({commit, rootState, dispatch}) { + return new Promise((resolve, reject) => { + api.getScoreBoardContestInfo(rootState.route.params.contestID).then((res) => { + resolve(res) + let contest = res.data.data.contest; + let problemList = res.data.data.problemList; + commit('changeContest', {contest: contest}) + commit('changeContestProblems', {contestProblems: problemList}) + commit('now', {now: moment(contest.now)}) + }, err => { + reject(err) + }) + }) + }, + + getContestProblems ({commit, rootState}) { + return new Promise((resolve, reject) => { + api.getContestProblemList(rootState.route.params.contestID).then(res => { + resolve(res) + commit('changeContestProblems', {contestProblems: res.data.data}) + }, (err) => { + commit('changeContestProblems', {contestProblems: []}) + reject(err) + }) + }) + }, + getContestAccess ({commit, rootState},contestType) { + return new Promise((resolve, reject) => { + api.getContestAccess(rootState.route.params.contestID).then(res => { + if(contestType.auth == CONTEST_TYPE.PRIVATE){ + commit('contestIntoAccess', {intoAccess: res.data.data.access}) + }else{ + commit('contestSubmitAccess', {submitAccess: res.data.data.access}) + } + resolve(res) + }).catch() + }) + }, + getGroupContestAuth ({commit, rootState}, gid) { + return new Promise((resolve, reject) => { + api.getGroupAuth(gid.gid).then(res => { + commit('changeGroupContestAuth', {groupContestAuth: res.data.data}) + resolve(res) + }).catch() + }) + } +} + +export default { + state, + mutations, + getters, + actions +} diff --git a/src/hoj-vue/src/store/group.js b/src/hoj-vue/src/store/group.js new file mode 100644 index 0000000..885644b --- /dev/null +++ b/src/hoj-vue/src/store/group.js @@ -0,0 +1,99 @@ +import api from '@/common/api' +import { GROUP_TYPE } from '@/common/constants' +const state = { + intoAccess: false, + group: { + auth: GROUP_TYPE.PUBLIC, + }, + auth: 0, +} + +const getters = { + group: state=> state.group || {}, + isGroupOwner: (state, getters, _, rootGetters) => { + return rootGetters.isAuthenticated && state.group.owner == getters.userInfo.username + }, + isGroupRoot: (state, getters, _, rootGetters) => { + return rootGetters.isAuthenticated && ( + state.auth === 5 || getters.isGroupOwner || rootGetters.isSuperAdmin + ) + }, + isGroupAdmin: (state, getters, _, rootGetters) => { + return rootGetters.isAuthenticated && ( + getters.isGroupRoot || state.auth === 4 + ) + }, + isGroupMember: (state, getters, _, rootGetters) => { + return rootGetters.isAuthenticated && ( + getters.isGroupAdmin || state.auth === 3 + ) + }, + groupMenuDisabled: (state, getters) => { + if (getters.isGroupMember) return false + return !state.intoAccess + }, + userAuth: (state, getters) => { + return state.auth; + }, +} + +const mutations = { + changeGroup (state, payload) { + state.group = payload.group + }, + changeGroupAuth(state, payload) { + state.auth = payload.auth + }, + changeGroupIntoAccess(state, payload) { + state.intoAccess = payload.intoAccess + }, + clearGroup (state) { + state.group = {} + state.auth = 0 + state.intoAccess = false + } +} + +const actions = { + setGroup ({commit}, group) { + commit('changeGroup', { + group: group + }) + }, + getGroup ({commit, rootState, dispatch}) { + return new Promise((resolve, reject) => { + api.getGroup(rootState.route.params.groupID).then((res) => { + resolve(res) + let group = res.data.data + commit('changeGroup', {group: group}) + dispatch('getGroupAccess') + dispatch('getGroupAuth') + }, err => { + reject(err) + }) + }) + }, + getGroupAccess ({commit, rootState}) { + return new Promise((resolve, reject) => { + api.getGroupAccess(rootState.route.params.groupID).then(res => { + commit('changeGroupIntoAccess', {intoAccess: res.data.data.access}) + resolve(res) + }).catch() + }) + }, + getGroupAuth ({commit, rootState}) { + return new Promise((resolve, reject) => { + api.getGroupAuth(rootState.route.params.groupID).then(res => { + commit('changeGroupAuth', {auth: res.data.data}) + resolve(res) + }).catch() + }) + } +} + +export default { + state, + mutations, + getters, + actions +} diff --git a/src/hoj-vue/src/store/index.js b/src/hoj-vue/src/store/index.js new file mode 100644 index 0000000..7882b6a --- /dev/null +++ b/src/hoj-vue/src/store/index.js @@ -0,0 +1,139 @@ +import Vue from 'vue' +import Vuex from 'vuex' +import user from '@/store/user' +import contest from "@/store/contest" +import training from "@/store/training" +import group from "@/store/group" +import api from '@/common/api' +import i18n from '@/i18n' +import storage from '@/common/storage' +import moment from 'moment' +Vue.use(Vuex) +const rootState = { + modalStatus: { + mode: 'Login', // or 'register', + visible: false + }, + websiteConfig:{ + recordName:'© 2020-2022', + projectName:'HOJ', + shortName:'OJ', + recordUrl:'#', + projectUrl:'#', + openPublicDiscussion: true, + openGroupDiscussion: true, + openContestComment: true + }, + registerTimeOut: 60, + resetTimeOut: 90, + language:storage.get('Web_Language') || 'zh-CN', +} + +const rootGetters = { + 'modalStatus'(state) { + return state.modalStatus + }, + 'registerTimeOut'(state) { + return state.registerTimeOut + }, + 'resetTimeOut'(state) { + return state.resetTimeOut + }, + 'websiteConfig' (state) { + return state.websiteConfig + }, + 'webLanguage'(state){ + return state.language + } +} + +const rootMutations = { + changeModalStatus(state, { mode, visible }) { + if (mode !== undefined) { + state.modalStatus.mode = mode + } + if (visible !== undefined) { + state.modalStatus.visible = visible + } + }, + changeRegisterTimeOut(state, { time }) { + if (time !== undefined) { + state.registerTimeOut = time + } + }, + changeResetTimeOut(state, { time }) { + if (time !== undefined) { + state.resetTimeOut = time + } + }, + startTimeOut(state, { name }) { // 注册邮件和重置邮件倒计时 + if (state.resetTimeOut == 0 ) { + state.resetTimeOut = 90 + return; + } + if (state.registerTimeOut == 0 ) { + state.registerTimeOut = 60 + return; + } + if (name == 'resetTimeOut') { + state.resetTimeOut--; + } + if (name == 'registerTimeOut') { + state.registerTimeOut--; + } + setTimeout(() => {this.commit('startTimeOut', { name: name }) }, 1000); + }, + changeWebsiteConfig(state, payload) { + state.websiteConfig = payload.websiteConfig + }, + changeWebLanguage (state, {language}) { + if (language) { + state.language = language + i18n.locale = language + moment.locale(language); + } + storage.set('Web_Language', language) + } +} +const rootActions = { + changeModalStatus({ commit }, payload) { + commit('changeModalStatus', payload) + }, + changeResetTimeOut({ commit }, payload) { + commit('changeResetTimeOut', payload) + }, + changeRegisterTimeOut({ commit }, payload) { + commit('changeRegisterTimeOut', payload) + }, + startTimeOut({ commit }, payload) { + commit('startTimeOut', payload) + }, + changeDomTitle ({commit, state}, payload) { + let ojName = state.websiteConfig.shortName?state.websiteConfig.shortName:'OJ' + if (payload && payload.title) { + window.document.title = payload.title + ' - ' + ojName + } else { + window.document.title = state.route.meta.title + ' - '+ ojName + } + }, + getWebsiteConfig ({commit}) { + api.getWebsiteConfig().then(res => { + commit('changeWebsiteConfig', { + websiteConfig: res.data.data + }) + }) + }, +} + +export default new Vuex.Store({ + modules: { + user, + contest, + training, + group + }, + state: rootState, + getters: rootGetters, + mutations: rootMutations, + actions: rootActions, +}) diff --git a/src/hoj-vue/src/store/training.js b/src/hoj-vue/src/store/training.js new file mode 100644 index 0000000..2a6b394 --- /dev/null +++ b/src/hoj-vue/src/store/training.js @@ -0,0 +1,126 @@ +import api from '@/common/api' +import { TRAINING_TYPE } from '@/common/constants' +const state = { + intoAccess: true, // 比赛进入权限 + training: { + auth: TRAINING_TYPE.Public.name, + rankShowName:'username', + gid:null + }, + trainingProblemList: [], + itemVisible: { + table: true, + chart: true, + }, + groupTrainingAuth: 0, +} + +const getters = { + isTrainingAdmin: (state, getters, _, rootGetters) => { + return rootGetters.isAuthenticated && + (state.training.author === rootGetters.userInfo.username || rootGetters.isSuperAdmin || state.groupTrainingAuth == 5) + }, + trainingMenuDisabled: (state, getters) => { + // 训练创建者和超级管理员可以直接查看 + if (getters.isTrainingAdmin) return false + + if (state.training.auth === TRAINING_TYPE.Private.name) { + // 私有训练需要通过验证密码方可查看比赛 + return !state.intoAccess + } + }, + isPrivateTraining: (state, getters) => { + return state.training.auth === TRAINING_TYPE.Private.name + }, + // 是否需要显示密码验证框 + trainingPasswordFormVisible: (state, getters) => { + // 如果是公开训练,或已注册过,管理员都不用再显示 + return !state.intoAccess && state.training.auth != TRAINING_TYPE.Public.name && !getters.isTrainingAdmin + } +} + +const mutations = { + changeTraining (state, payload) { + state.training = payload.training + }, + changeTrainingItemVisible(state, payload) { + state.itemVisible = {...state.itemVisible, ...payload} + }, + + changeTrainingProblemList(state, payload) { + state.trainingProblemList = payload.trainingProblemList; + }, + trainingIntoAccess(state, payload) { + state.intoAccess = payload.intoAccess + }, + changeGroupTrainingAuth(state, payload) { + state.groupTrainingAuth = payload.groupTrainingAuth + }, + clearTraining (state) { + state.training = {} + state.trainingProblemList = [] + state.intoAccess = false + state.itemVisible = { + table: true, + chart: true, + realName: false + } + state.groupTrainingAuth = 0 + } +} + +const actions = { + getTraining ({commit, rootState, dispatch}) { + return new Promise((resolve, reject) => { + api.getTraining(rootState.route.params.trainingID).then((res) => { + resolve(res) + let training = res.data.data + commit('changeTraining', {training: training}) + if (training.gid) { + dispatch('getGroupTrainingAuth', {gid: training.gid}) + } + if (training.auth == TRAINING_TYPE.Private.name) { + dispatch('getTrainingAccess',{auth:TRAINING_TYPE.Private.name}) + } + }, err => { + reject(err) + }) + }) + }, + getTrainingProblemList ({commit, rootState}) { + return new Promise((resolve, reject) => { + api.getTrainingProblemList(rootState.route.params.trainingID).then(res => { + resolve(res) + commit('changeTrainingProblemList', {trainingProblemList: res.data.data}) + }, (err) => { + commit('changeTrainingProblemList', {trainingProblemList: []}) + reject(err) + }) + }) + }, + getTrainingAccess ({commit, rootState},trainingType) { + return new Promise((resolve, reject) => { + api.getTrainingAccess(rootState.route.params.trainingID).then(res => { + if(trainingType.auth == TRAINING_TYPE.Private.name){ + commit('trainingIntoAccess', {intoAccess: res.data.data.access}) + } + resolve(res) + }).catch() + }) + }, + getGroupTrainingAuth ({commit, rootState}, gid) { + return new Promise((resolve, reject) => { + api.getGroupAuth(gid.gid).then(res => { + commit('changeGroupTrainingAuth', {groupTrainingAuth: res.data.data}) + resolve(res) + }).catch() + }) + } +} + +export default { + state, + mutations, + getters, + actions +} diff --git a/src/hoj-vue/src/store/user.js b/src/hoj-vue/src/store/user.js new file mode 100644 index 0000000..e0bac87 --- /dev/null +++ b/src/hoj-vue/src/store/user.js @@ -0,0 +1,110 @@ +import { USER_TYPE } from '@/common/constants' +import storage from '@/common/storage' +const state = { + userInfo: storage.get('userInfo'), + token: localStorage.getItem('token'), + loginFailNum:0, + unreadMessage:{ + comment:0, + reply:0, + like:0, + sys:0, + mine:0 + } +} + +const getters = { + userInfo: state => state.userInfo || {}, + token: state => state.token ||'', + unreadMessage:state => state.unreadMessage || {}, + loginFailNum:state=>state.loginFailNum || 0, + isAuthenticated: (state, getters) => { + return !!getters.token + }, + isAdminRole: (state, getters) => { + if(getters.userInfo.roleList){ + return getters.userInfo.roleList.indexOf(USER_TYPE.ADMIN)!=-1 || + getters.userInfo.roleList.indexOf(USER_TYPE.PROBLEM_ADMIN)!=-1 || + getters.userInfo.roleList.indexOf(USER_TYPE.SUPER_ADMIN)!=-1 + }else{ + return false; + } + }, + isSuperAdmin: (state, getters) => { + if(getters.userInfo.roleList){ + return getters.userInfo.roleList.indexOf(USER_TYPE.SUPER_ADMIN) !=-1 + }else{ + return false; + } + }, + isProblemAdmin:(state, getters) => { + if(getters.userInfo.roleList){ + return getters.userInfo.roleList.indexOf(USER_TYPE.PROBLEM_ADMIN) !=-1 + }else{ + return false; + } + }, +} + +const mutations = { + changeUserInfo(state, {userInfo}) { + state.userInfo = userInfo + storage.set('userInfo',userInfo) + }, + changeUserToken(state,token){ + state.token = token + localStorage.setItem("token",token) + }, + incrLoginFailNum(state,{success}){ + if(!success){ + state.loginFailNum +=1 + }else{ + state.loginFailNum = 0 + } + }, + + clearUserInfoAndToken(state){ + state.token = '' + state.userInfo = {} + state.loginFailNum = 0 + storage.clear() + }, + updateUnreadMessageCount(state, {unreadMessage}){ + state.unreadMessage = unreadMessage + }, + substractUnreadMessageCount(state,{needSubstractMsg}){ + // 负数也没关系 + state.unreadMessage[needSubstractMsg.name] = state.unreadMessage[needSubstractMsg.name]-needSubstractMsg.num; + } +} + +const actions = { + setUserInfo ({commit},userInfo) { + commit('changeUserInfo', { + userInfo: userInfo + }) + }, + incrLoginFailNum({commit},success){ + commit('incrLoginFailNum',{success:success}) + }, + clearUserInfoAndToken ({commit}) { + commit('clearUserInfoAndToken') + }, + updateUnreadMessageCount({commit},unreadMessage){ + commit('updateUnreadMessageCount', { + unreadMessage: unreadMessage + }) + }, + substractUnreadMessageCount({commit},needSubstractMsg){ + commit('substractUnreadMessageCount', { + needSubstractMsg: needSubstractMsg + }) + } +} + +export default { + state, + getters, + actions, + mutations +} diff --git a/src/hoj-vue/src/views/404.vue b/src/hoj-vue/src/views/404.vue new file mode 100644 index 0000000..9742be7 --- /dev/null +++ b/src/hoj-vue/src/views/404.vue @@ -0,0 +1,263 @@ + + + diff --git a/src/hoj-vue/src/views/admin/Dashboard.vue b/src/hoj-vue/src/views/admin/Dashboard.vue new file mode 100644 index 0000000..d5ab996 --- /dev/null +++ b/src/hoj-vue/src/views/admin/Dashboard.vue @@ -0,0 +1,422 @@ + + + + + diff --git a/src/hoj-vue/src/views/admin/Home.vue b/src/hoj-vue/src/views/admin/Home.vue new file mode 100644 index 0000000..666e44f --- /dev/null +++ b/src/hoj-vue/src/views/admin/Home.vue @@ -0,0 +1,732 @@ + + + + + diff --git a/src/hoj-vue/src/views/admin/Login.vue b/src/hoj-vue/src/views/admin/Login.vue new file mode 100644 index 0000000..97bbe36 --- /dev/null +++ b/src/hoj-vue/src/views/admin/Login.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/src/hoj-vue/src/views/admin/contest/Contest.vue b/src/hoj-vue/src/views/admin/contest/Contest.vue new file mode 100644 index 0000000..6e83de4 --- /dev/null +++ b/src/hoj-vue/src/views/admin/contest/Contest.vue @@ -0,0 +1,644 @@ + + + + diff --git a/src/hoj-vue/src/views/admin/contest/ContestList.vue b/src/hoj-vue/src/views/admin/contest/ContestList.vue new file mode 100644 index 0000000..c9c03ba --- /dev/null +++ b/src/hoj-vue/src/views/admin/contest/ContestList.vue @@ -0,0 +1,324 @@ + + + + diff --git a/src/hoj-vue/src/views/admin/discussion/Discussion.vue b/src/hoj-vue/src/views/admin/discussion/Discussion.vue new file mode 100644 index 0000000..6aac380 --- /dev/null +++ b/src/hoj-vue/src/views/admin/discussion/Discussion.vue @@ -0,0 +1,451 @@ + + + diff --git a/src/hoj-vue/src/views/admin/general/Announcement.vue b/src/hoj-vue/src/views/admin/general/Announcement.vue new file mode 100644 index 0000000..b8d6a2d --- /dev/null +++ b/src/hoj-vue/src/views/admin/general/Announcement.vue @@ -0,0 +1,388 @@ + + + + + diff --git a/src/hoj-vue/src/views/admin/general/SysNotice.vue b/src/hoj-vue/src/views/admin/general/SysNotice.vue new file mode 100644 index 0000000..fc11e00 --- /dev/null +++ b/src/hoj-vue/src/views/admin/general/SysNotice.vue @@ -0,0 +1,331 @@ + + + + + diff --git a/src/hoj-vue/src/views/admin/general/SysSwitch.vue b/src/hoj-vue/src/views/admin/general/SysSwitch.vue new file mode 100644 index 0000000..726277b --- /dev/null +++ b/src/hoj-vue/src/views/admin/general/SysSwitch.vue @@ -0,0 +1,276 @@ + + + diff --git a/src/hoj-vue/src/views/admin/general/SystemConfig.vue b/src/hoj-vue/src/views/admin/general/SystemConfig.vue new file mode 100644 index 0000000..433eba6 --- /dev/null +++ b/src/hoj-vue/src/views/admin/general/SystemConfig.vue @@ -0,0 +1,474 @@ + + + diff --git a/src/hoj-vue/src/views/admin/general/User.vue b/src/hoj-vue/src/views/admin/general/User.vue new file mode 100644 index 0000000..3b53124 --- /dev/null +++ b/src/hoj-vue/src/views/admin/general/User.vue @@ -0,0 +1,920 @@ + + + + + diff --git a/src/hoj-vue/src/views/admin/problem/GroupProblemList.vue b/src/hoj-vue/src/views/admin/problem/GroupProblemList.vue new file mode 100644 index 0000000..d81571f --- /dev/null +++ b/src/hoj-vue/src/views/admin/problem/GroupProblemList.vue @@ -0,0 +1,250 @@ + + + \ No newline at end of file diff --git a/src/hoj-vue/src/views/admin/problem/ImportAndExport.vue b/src/hoj-vue/src/views/admin/problem/ImportAndExport.vue new file mode 100644 index 0000000..5448524 --- /dev/null +++ b/src/hoj-vue/src/views/admin/problem/ImportAndExport.vue @@ -0,0 +1,312 @@ + + + + diff --git a/src/hoj-vue/src/views/admin/problem/Problem.vue b/src/hoj-vue/src/views/admin/problem/Problem.vue new file mode 100644 index 0000000..a468f1a --- /dev/null +++ b/src/hoj-vue/src/views/admin/problem/Problem.vue @@ -0,0 +1,1589 @@ + + + + + diff --git a/src/hoj-vue/src/views/admin/problem/ProblemList.vue b/src/hoj-vue/src/views/admin/problem/ProblemList.vue new file mode 100644 index 0000000..403bce7 --- /dev/null +++ b/src/hoj-vue/src/views/admin/problem/ProblemList.vue @@ -0,0 +1,675 @@ + + + + + diff --git a/src/hoj-vue/src/views/admin/problem/Tag.vue b/src/hoj-vue/src/views/admin/problem/Tag.vue new file mode 100644 index 0000000..fbe238d --- /dev/null +++ b/src/hoj-vue/src/views/admin/problem/Tag.vue @@ -0,0 +1,434 @@ + + + diff --git a/src/hoj-vue/src/views/admin/training/Category.vue b/src/hoj-vue/src/views/admin/training/Category.vue new file mode 100644 index 0000000..6bbb17e --- /dev/null +++ b/src/hoj-vue/src/views/admin/training/Category.vue @@ -0,0 +1,190 @@ + + + diff --git a/src/hoj-vue/src/views/admin/training/Training.vue b/src/hoj-vue/src/views/admin/training/Training.vue new file mode 100644 index 0000000..f39694e --- /dev/null +++ b/src/hoj-vue/src/views/admin/training/Training.vue @@ -0,0 +1,250 @@ + + + + diff --git a/src/hoj-vue/src/views/admin/training/TrainingList.vue b/src/hoj-vue/src/views/admin/training/TrainingList.vue new file mode 100644 index 0000000..4d19f71 --- /dev/null +++ b/src/hoj-vue/src/views/admin/training/TrainingList.vue @@ -0,0 +1,246 @@ + + + + diff --git a/src/hoj-vue/src/views/admin/training/TrainingProblemList.vue b/src/hoj-vue/src/views/admin/training/TrainingProblemList.vue new file mode 100644 index 0000000..77281ee --- /dev/null +++ b/src/hoj-vue/src/views/admin/training/TrainingProblemList.vue @@ -0,0 +1,435 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/Home.vue b/src/hoj-vue/src/views/oj/Home.vue new file mode 100644 index 0000000..ce5ac48 --- /dev/null +++ b/src/hoj-vue/src/views/oj/Home.vue @@ -0,0 +1,679 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/about/Developer.vue b/src/hoj-vue/src/views/oj/about/Developer.vue new file mode 100644 index 0000000..9445b77 --- /dev/null +++ b/src/hoj-vue/src/views/oj/about/Developer.vue @@ -0,0 +1,118 @@ + + + diff --git a/src/hoj-vue/src/views/oj/about/Introduction.vue b/src/hoj-vue/src/views/oj/about/Introduction.vue new file mode 100644 index 0000000..e1eb772 --- /dev/null +++ b/src/hoj-vue/src/views/oj/about/Introduction.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/contest/ContestDetails.vue b/src/hoj-vue/src/views/oj/contest/ContestDetails.vue new file mode 100644 index 0000000..2926c3b --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/ContestDetails.vue @@ -0,0 +1,573 @@ + + + diff --git a/src/hoj-vue/src/views/oj/contest/ContestList.vue b/src/hoj-vue/src/views/oj/contest/ContestList.vue new file mode 100644 index 0000000..21f0d3c --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/ContestList.vue @@ -0,0 +1,482 @@ + + + + diff --git a/src/hoj-vue/src/views/oj/contest/children/ACMContestRank.vue b/src/hoj-vue/src/views/oj/contest/children/ACMContestRank.vue new file mode 100644 index 0000000..d921d1a --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/ACMContestRank.vue @@ -0,0 +1,699 @@ + + + + diff --git a/src/hoj-vue/src/views/oj/contest/children/ACMInfoAdmin.vue b/src/hoj-vue/src/views/oj/contest/children/ACMInfoAdmin.vue new file mode 100644 index 0000000..d243cbf --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/ACMInfoAdmin.vue @@ -0,0 +1,241 @@ + + + diff --git a/src/hoj-vue/src/views/oj/contest/children/ContestAdminPrint.vue b/src/hoj-vue/src/views/oj/contest/children/ContestAdminPrint.vue new file mode 100644 index 0000000..4fe5a2b --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/ContestAdminPrint.vue @@ -0,0 +1,195 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/contest/children/ContestComment.vue b/src/hoj-vue/src/views/oj/contest/children/ContestComment.vue new file mode 100644 index 0000000..786c068 --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/ContestComment.vue @@ -0,0 +1,12 @@ + + diff --git a/src/hoj-vue/src/views/oj/contest/children/ContestPrint.vue b/src/hoj-vue/src/views/oj/contest/children/ContestPrint.vue new file mode 100644 index 0000000..f480065 --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/ContestPrint.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/contest/children/ContestProblemList.vue b/src/hoj-vue/src/views/oj/contest/children/ContestProblemList.vue new file mode 100644 index 0000000..7c56557 --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/ContestProblemList.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/contest/children/ContestRank.vue b/src/hoj-vue/src/views/oj/contest/children/ContestRank.vue new file mode 100644 index 0000000..353762a --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/ContestRank.vue @@ -0,0 +1,46 @@ + + + + diff --git a/src/hoj-vue/src/views/oj/contest/children/ContestRejudgeAdmin.vue b/src/hoj-vue/src/views/oj/contest/children/ContestRejudgeAdmin.vue new file mode 100644 index 0000000..5e31316 --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/ContestRejudgeAdmin.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/hoj-vue/src/views/oj/contest/children/OIContestRank.vue b/src/hoj-vue/src/views/oj/contest/children/OIContestRank.vue new file mode 100644 index 0000000..77f9584 --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/OIContestRank.vue @@ -0,0 +1,593 @@ + + + diff --git a/src/hoj-vue/src/views/oj/contest/children/contestRankMixin.js b/src/hoj-vue/src/views/oj/contest/children/contestRankMixin.js new file mode 100644 index 0000000..78d61fe --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/children/contestRankMixin.js @@ -0,0 +1,111 @@ +import api from '@/common/api' +import { mapGetters, mapState } from 'vuex' +import { CONTEST_STATUS, buildContestRankConcernedKey } from '@/common/constants' +import storage from '@/common/storage'; +export default { + methods: { + initConcernedList(){ + let key = buildContestRankConcernedKey(this.$route.params.contestID); + this.concernedList = storage.get(key) || []; + }, + getContestRankData (page = 1, refresh = false) { + if (this.showChart && !refresh) { + this.$refs.chart.showLoading({maskColor: 'rgba(250, 250, 250, 0.8)'}) + } + let data = { + currentPage:page, + limit: this.limit, + cid: this.$route.params.contestID, + forceRefresh: this.forceUpdate ? true: false, + removeStar: !this.showStarUser, + concernedList:this.concernedList + } + api.getContestRank(data).then(res => { + if (this.showChart && !refresh) { + this.$refs.chart.hideLoading() + } + this.total = res.data.data.total + if (page === 1) { + this.applyToChart(res.data.data.records) + } + this.applyToTable(res.data.data.records) + }) + }, + handleAutoRefresh (status) { + if (status == true) { + this.refreshFunc = setInterval(() => { + this.$store.dispatch('getContestProblems'); + this.getContestRankData(this.page, true); + }, 10000) + } else { + clearInterval(this.refreshFunc) + } + }, + updateConcernedList(uid, isConcerned){ + if(isConcerned){ + this.concernedList.push(uid); + }else{ + var index = this.concernedList.indexOf(uid); + if (index > -1) { + this.concernedList.splice(index, 1); + } + } + let key = buildContestRankConcernedKey(this.contestID); + storage.set(key, this.concernedList); + this.getContestRankData(this.page, true); + } + }, + computed: { + ...mapGetters(['isContestAdmin','userInfo']), + ...mapState({ + 'contest': state => state.contest.contest, + 'contestProblems': state => state.contest.contestProblems + }), + showChart: { + get () { + return this.$store.state.contest.itemVisible.chart + }, + set (value) { + this.$store.commit('changeContestItemVisible', {chart: value}) + } + }, + showStarUser:{ + get () { + return !this.$store.state.contest.removeStar + }, + set (value) { + this.$store.commit('changeRankRemoveStar', {value: !value}) + } + }, + showTable: { + get () { + return this.$store.state.contest.itemVisible.table + }, + set (value) { + this.$store.commit('changeContestItemVisible', {table: value}) + } + }, + forceUpdate: { + get () { + return this.$store.state.contest.forceUpdate + }, + set (value) { + this.$store.commit('changeRankForceUpdate', {value: value}) + } + }, + concernedList:{ + get () { + return this.$store.state.contest.concernedList + }, + set (value) { + this.$store.commit('changeConcernedList', {value: value}) + } + }, + refreshDisabled () { + return this.contest.status == CONTEST_STATUS.ENDED + } + }, + beforeDestroy () { + clearInterval(this.refreshFunc) + } +} diff --git a/src/hoj-vue/src/views/oj/contest/outside/ACMScoreBoard.vue b/src/hoj-vue/src/views/oj/contest/outside/ACMScoreBoard.vue new file mode 100644 index 0000000..40f60b0 --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/outside/ACMScoreBoard.vue @@ -0,0 +1,605 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/contest/outside/OIScoreBoard.vue b/src/hoj-vue/src/views/oj/contest/outside/OIScoreBoard.vue new file mode 100644 index 0000000..48d8f14 --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/outside/OIScoreBoard.vue @@ -0,0 +1,552 @@ + + + diff --git a/src/hoj-vue/src/views/oj/contest/outside/scoreBoardMixin.js b/src/hoj-vue/src/views/oj/contest/outside/scoreBoardMixin.js new file mode 100644 index 0000000..19173d3 --- /dev/null +++ b/src/hoj-vue/src/views/oj/contest/outside/scoreBoardMixin.js @@ -0,0 +1,162 @@ +import api from '@/common/api' +import time from '@/common/time'; +import { CONTEST_STATUS,CONTEST_STATUS_REVERSE,CONTEST_TYPE_REVERSE,RULE_TYPE, buildContestRankConcernedKey} from '@/common/constants' +import { mapState, mapGetters, mapActions } from 'vuex'; +import moment from 'moment'; +import storage from '@/common/storage'; +export default { + methods: { + init(){ + this.contestID = this.$route.params.contestID; + this.CONTEST_TYPE_REVERSE = Object.assign({}, CONTEST_TYPE_REVERSE); + this.CONTEST_STATUS = Object.assign({}, CONTEST_STATUS); + this.CONTEST_STATUS_REVERSE = Object.assign({}, CONTEST_STATUS_REVERSE); + this.RULE_TYPE = Object.assign({}, RULE_TYPE); + let key = buildContestRankConcernedKey(this.contestID); + this.concernedList = storage.get(key) || []; + this.loading.info = true; + this.$store.dispatch('getScoreBoardContestInfo').then((res) => { + if (!this.contestEnded) { + this.autoRefresh = true; + this.handleAutoRefresh(true); + } + this.changeDomTitle({ title: res.data.data.title }); + let data = res.data.data.contest; + let endTime = moment(data.endTime); + this.loading.info = false; + // 如果当前时间还是在比赛结束前的时间,需要计算倒计时,同时开启获取比赛公告的定时器 + if (endTime.isAfter(moment(data.now))) { + // 实时更新时间 + this.timer = setInterval(() => { + this.$store.commit('nowAdd1s'); + }, 1000); + } + },(err)=>{ + this.loading.info = false; + }); + }, + getContestOutsideScoreboard () { + let data = { + cid: this.$route.params.contestID, + forceRefresh: this.forceUpdate ? true: false, + removeStar: !this.showStarUser, + concernedList:this.concernedList + } + this.loading.rank = true; + api.getContestOutsideScoreboard(data).then(res => { + this.applyToTable(res.data.data); + this.loading.rank = false; + },(err)=>{ + this.loading.rank = false; + if(this.refreshFunc){ + this.autoRefresh = false; + clearInterval(this.refreshFunc) + } + }) + }, + handleAutoRefresh (status) { + if (status == true) { + this.refreshFunc = setInterval(() => { + this.getContestOutsideScoreboard() + }, 30000) + } else { + clearInterval(this.refreshFunc) + } + }, + ...mapActions(['changeDomTitle']), + formatTooltip(val) { + if (this.contest.status == -1) { + // 还未开始 + return '00:00:00'; + } else if (this.contest.status == 0) { + return time.secondFormat(this.BeginToNowDuration); // 格式化时间 + } else { + return time.secondFormat(this.contest.duration); + } + }, + getProblemCount(num){ + return num == undefined? 0 : num + }, + updateConcernedList(uid,isConcerned){ + if(isConcerned){ + this.concernedList.push(uid); + }else{ + var index = this.concernedList.indexOf(uid); + if (index > -1) { + this.concernedList.splice(index, 1); + } + } + let key = buildContestRankConcernedKey(this.contestID); + storage.set(key, this.concernedList); + this.getContestOutsideScoreboard(); + }, + toGroupContestList(gid){ + this.$router.push({ + name: 'GroupContestList', + params: { + groupID: gid, + }, + }) + }, + }, + computed: { + ...mapState({ + contest: (state) => state.contest.contest, + now: (state) => state.contest.now, + contestProblems: state => state.contest.contestProblems + }), + ...mapGetters([ + 'countdown', + 'BeginToNowDuration', + 'isContestAdmin', + 'userInfo' + ]), + forceUpdate: { + get () { + return this.$store.state.contest.forceUpdate + }, + set (value) { + this.$store.commit('changeRankForceUpdate', {value: value}) + } + }, + showStarUser:{ + get () { + return !this.$store.state.contest.removeStar + }, + set (value) { + this.$store.commit('changeRankRemoveStar', {value: !value}) + } + }, + concernedList:{ + get () { + return this.$store.state.contest.concernedList + }, + set (value) { + this.$store.commit('changeConcernedList', {value: value}) + } + }, + progressValue: { + get: function() { + return this.$store.getters.progressValue; + }, + set: function() {}, + }, + timeStep() { + // 时间段平分滑条长度 + return 100 / this.contest.duration; + }, + countdownColor() { + if (this.contest.status) { + return 'color:' + CONTEST_STATUS_REVERSE[this.contest.status].color; + } + }, + contestEnded() { + return this.contest.status == CONTEST_STATUS.ENDED; + }, + }, + beforeDestroy () { + clearInterval(this.refreshFunc) + clearInterval(this.timer); + this.$store.commit('clearContest'); + } +} diff --git a/src/hoj-vue/src/views/oj/discussion/discussion.vue b/src/hoj-vue/src/views/oj/discussion/discussion.vue new file mode 100644 index 0000000..c6ee3c7 --- /dev/null +++ b/src/hoj-vue/src/views/oj/discussion/discussion.vue @@ -0,0 +1,471 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/discussion/discussionList.vue b/src/hoj-vue/src/views/oj/discussion/discussionList.vue new file mode 100644 index 0000000..b65ec52 --- /dev/null +++ b/src/hoj-vue/src/views/oj/discussion/discussionList.vue @@ -0,0 +1,822 @@ + + + + diff --git a/src/hoj-vue/src/views/oj/group/GroupDetails.vue b/src/hoj-vue/src/views/oj/group/GroupDetails.vue new file mode 100644 index 0000000..7f12976 --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/GroupDetails.vue @@ -0,0 +1,628 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/group/GroupList.vue b/src/hoj-vue/src/views/oj/group/GroupList.vue new file mode 100644 index 0000000..3975e6a --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/GroupList.vue @@ -0,0 +1,683 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/group/children/GroupAnnouncementList.vue b/src/hoj-vue/src/views/oj/group/children/GroupAnnouncementList.vue new file mode 100644 index 0000000..4542c17 --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/children/GroupAnnouncementList.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/group/children/GroupContestList.vue b/src/hoj-vue/src/views/oj/group/children/GroupContestList.vue new file mode 100644 index 0000000..6e26338 --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/children/GroupContestList.vue @@ -0,0 +1,580 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/group/children/GroupDiscussionList.vue b/src/hoj-vue/src/views/oj/group/children/GroupDiscussionList.vue new file mode 100644 index 0000000..0bec37d --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/children/GroupDiscussionList.vue @@ -0,0 +1,605 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/group/children/GroupMemberList.vue b/src/hoj-vue/src/views/oj/group/children/GroupMemberList.vue new file mode 100644 index 0000000..d63fbb4 --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/children/GroupMemberList.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/group/children/GroupProblemList.vue b/src/hoj-vue/src/views/oj/group/children/GroupProblemList.vue new file mode 100644 index 0000000..510f342 --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/children/GroupProblemList.vue @@ -0,0 +1,359 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/group/children/GroupRank.vue b/src/hoj-vue/src/views/oj/group/children/GroupRank.vue new file mode 100644 index 0000000..6d2064f --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/children/GroupRank.vue @@ -0,0 +1,269 @@ + + + + + + diff --git a/src/hoj-vue/src/views/oj/group/children/GroupSetting.vue b/src/hoj-vue/src/views/oj/group/children/GroupSetting.vue new file mode 100644 index 0000000..387ae39 --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/children/GroupSetting.vue @@ -0,0 +1,551 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/group/children/GroupTrainingList.vue b/src/hoj-vue/src/views/oj/group/children/GroupTrainingList.vue new file mode 100644 index 0000000..3952059 --- /dev/null +++ b/src/hoj-vue/src/views/oj/group/children/GroupTrainingList.vue @@ -0,0 +1,367 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/message/SysMsg.vue b/src/hoj-vue/src/views/oj/message/SysMsg.vue new file mode 100644 index 0000000..92bfca9 --- /dev/null +++ b/src/hoj-vue/src/views/oj/message/SysMsg.vue @@ -0,0 +1,226 @@ + + + diff --git a/src/hoj-vue/src/views/oj/message/UserMsg.vue b/src/hoj-vue/src/views/oj/message/UserMsg.vue new file mode 100644 index 0000000..e667dc0 --- /dev/null +++ b/src/hoj-vue/src/views/oj/message/UserMsg.vue @@ -0,0 +1,343 @@ + + + diff --git a/src/hoj-vue/src/views/oj/message/message.vue b/src/hoj-vue/src/views/oj/message/message.vue new file mode 100644 index 0000000..3124081 --- /dev/null +++ b/src/hoj-vue/src/views/oj/message/message.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/problem/Problem.vue b/src/hoj-vue/src/views/oj/problem/Problem.vue new file mode 100644 index 0000000..dfa6ed3 --- /dev/null +++ b/src/hoj-vue/src/views/oj/problem/Problem.vue @@ -0,0 +1,1832 @@ + + + + + + diff --git a/src/hoj-vue/src/views/oj/problem/ProblemList.vue b/src/hoj-vue/src/views/oj/problem/ProblemList.vue new file mode 100644 index 0000000..1611977 --- /dev/null +++ b/src/hoj-vue/src/views/oj/problem/ProblemList.vue @@ -0,0 +1,852 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/problem/chartData.js b/src/hoj-vue/src/views/oj/problem/chartData.js new file mode 100644 index 0000000..dfbee79 --- /dev/null +++ b/src/hoj-vue/src/views/oj/problem/chartData.js @@ -0,0 +1,123 @@ +const pieColorMap = { + 'AC': {color: '#19be6b'}, + 'WA': {color: '#ed3f14'}, + 'TLE': {color: '#ff9300'}, + 'MLE': {color: '#f7de00'}, + 'RE': {color: '#ff6104'}, + 'CE': {color: '#f90'}, + 'PA': {color: '#2d8cf0'}, + 'PE':{color:'#f90'} +} + +function getItemColor (obj) { + return pieColorMap[obj.name].color +} + +const pie = { + tooltip: { + trigger: 'item', + formatter: '{a}
      {b}: {c} ({d}%)' + }, + legend: { + left: 'center', + top: '10', + orient: 'horizontal', + data: ['AC', 'WA'] + }, + series: [ + { + name: 'Summary', + type: 'pie', + radius: '60%', + center: ['53%', '55%'], + itemStyle: { + normal: {color: getItemColor} + }, + data: [ + {value: 0, name: 'WA'}, + {value: 0, name: 'AC'} + ], + label: { + normal: { + position: 'inner', + show: true, + formatter: '{b}: {c}\n {d}%', + textStyle: { + fontWeight: 'bold' + } + } + } + } + ] +} + +const largePie = { + tooltip: { + trigger: 'item', + formatter: '{a}
      {b}: {c} ({d}%)' + }, + legend: { + left: 'center', + top:0, + orient: + 'horizontal', + itemGap: + 10, + data: + ['AC','PA','PE','CE','RE', 'WA', 'TLE', 'MLE'] + }, + series: [ + { + name: 'Detail', + type: 'pie', + radius: ['50%', '65%'], + center: ['50%', '55%'], + itemStyle: { + normal: {color: getItemColor} + }, + data: [ + {value: 0, name: 'RE'}, + {value: 0, name: 'WA'}, + {value: 0, name: 'TLE'}, + {value: 0, name: 'AC'}, + {value: 0, name: 'PA'}, + {value: 0, name: 'MLE'}, + {value: 0, name: 'PE'}, + {value: 0, name: 'CE'} + ], + label: { + normal: { + formatter: '{b}: \n{d}%\n {c}', + textStyle:{ + fontSize:10, + fontWeight: 'bold' + } + } + }, + labelLine: { + normal: {} + } + }, + { + name: 'Summary', + type: 'pie', + radius: '35%', + center: ['52%', '55%'], + itemStyle: { + normal: {color: getItemColor} + }, + data: [ + {value: 0, name: 'WA'}, + {value: 0, name: 'AC', selected: true} + ], + label: { + normal: { + position: 'inner', + formatter: '{b}: {c}\n {d}%' + } + } + } + ] +} + +export { pie, largePie } diff --git a/src/hoj-vue/src/views/oj/rank/ACMRank.vue b/src/hoj-vue/src/views/oj/rank/ACMRank.vue new file mode 100644 index 0000000..32436d3 --- /dev/null +++ b/src/hoj-vue/src/views/oj/rank/ACMRank.vue @@ -0,0 +1,347 @@ + + + + + + diff --git a/src/hoj-vue/src/views/oj/rank/OIRank.vue b/src/hoj-vue/src/views/oj/rank/OIRank.vue new file mode 100644 index 0000000..d174e82 --- /dev/null +++ b/src/hoj-vue/src/views/oj/rank/OIRank.vue @@ -0,0 +1,326 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/status/SubmissionDetails.vue b/src/hoj-vue/src/views/oj/status/SubmissionDetails.vue new file mode 100644 index 0000000..22f8f08 --- /dev/null +++ b/src/hoj-vue/src/views/oj/status/SubmissionDetails.vue @@ -0,0 +1,540 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/status/SubmissionList.vue b/src/hoj-vue/src/views/oj/status/SubmissionList.vue new file mode 100644 index 0000000..e89d506 --- /dev/null +++ b/src/hoj-vue/src/views/oj/status/SubmissionList.vue @@ -0,0 +1,1130 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/training/TrainingDetails.vue b/src/hoj-vue/src/views/oj/training/TrainingDetails.vue new file mode 100644 index 0000000..b041be6 --- /dev/null +++ b/src/hoj-vue/src/views/oj/training/TrainingDetails.vue @@ -0,0 +1,363 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/training/TrainingList.vue b/src/hoj-vue/src/views/oj/training/TrainingList.vue new file mode 100644 index 0000000..9f59116 --- /dev/null +++ b/src/hoj-vue/src/views/oj/training/TrainingList.vue @@ -0,0 +1,347 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/training/TrainingProblemList.vue b/src/hoj-vue/src/views/oj/training/TrainingProblemList.vue new file mode 100644 index 0000000..6abee73 --- /dev/null +++ b/src/hoj-vue/src/views/oj/training/TrainingProblemList.vue @@ -0,0 +1,228 @@ + + + + + diff --git a/src/hoj-vue/src/views/oj/training/TrainingRank.vue b/src/hoj-vue/src/views/oj/training/TrainingRank.vue new file mode 100644 index 0000000..2bfec2b --- /dev/null +++ b/src/hoj-vue/src/views/oj/training/TrainingRank.vue @@ -0,0 +1,350 @@ + + + diff --git a/src/hoj-vue/src/views/oj/user/Logout.vue b/src/hoj-vue/src/views/oj/user/Logout.vue new file mode 100644 index 0000000..3b20655 --- /dev/null +++ b/src/hoj-vue/src/views/oj/user/Logout.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/hoj-vue/src/views/oj/user/SetNewPassword.vue b/src/hoj-vue/src/views/oj/user/SetNewPassword.vue new file mode 100644 index 0000000..9b54966 --- /dev/null +++ b/src/hoj-vue/src/views/oj/user/SetNewPassword.vue @@ -0,0 +1,180 @@ + + + diff --git a/src/hoj-vue/src/views/oj/user/Setting.vue b/src/hoj-vue/src/views/oj/user/Setting.vue new file mode 100644 index 0000000..bd1fa18 --- /dev/null +++ b/src/hoj-vue/src/views/oj/user/Setting.vue @@ -0,0 +1,48 @@ + + + diff --git a/src/hoj-vue/src/views/oj/user/UserHome.vue b/src/hoj-vue/src/views/oj/user/UserHome.vue new file mode 100644 index 0000000..2511b29 --- /dev/null +++ b/src/hoj-vue/src/views/oj/user/UserHome.vue @@ -0,0 +1,506 @@ + + + + diff --git a/src/hoj-vue/vue.config.js b/src/hoj-vue/vue.config.js new file mode 100644 index 0000000..cb8b19d --- /dev/null +++ b/src/hoj-vue/vue.config.js @@ -0,0 +1,119 @@ +const UglifyJsPlugin = require('uglifyjs-webpack-plugin') // 清除注释 +const CompressionWebpackPlugin = require('compression-webpack-plugin'); // 开启压缩 + +// 是否为生产环境 +const isProduction = process.env.NODE_ENV === 'production'; + +// 本地环境是否需要使用cdn +const devNeedCdn = true; + +// cdn链接 +const cdn = { + // cdn:模块名称和模块作用域命名(对应window里面挂载的变量名称) + externals: { + vue: 'Vue', + 'vue-router':'VueRouter', + axios:'axios', + vuex:'Vuex', + 'element-ui':'ELEMENT', + 'highlight.js': 'hljs', + 'vxe-table':'VXETable', + "moment": "moment", + 'vue-echarts': 'VueECharts', + "echarts":"echarts", + // "mavon-editor": "mavonEditor", + }, + // cdn的css链接 + css: [ + "https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/element-ui/2.14.0/theme-chalk/index.min.css", + "https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/github-markdown-css/4.0.0/github-markdown.min.css", + "https://unpkg.com/vxe-table@2.9.26/lib/style.min.css", + ], + // cdn的js链接 + js: [ + "https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.11/vue.min.js", + "https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue-router/3.2.0/vue-router.min.js", + "https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/axios/0.26.0/axios.min.js", + "https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/element-ui/2.15.3/index.min.js", + "https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/highlight.js/10.3.2/highlight.min.js", + "https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/moment.js/2.29.1/moment.min.js", + "https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/moment.js/2.29.1/locale/zh-cn.min.js", + "https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/moment.js/2.29.1/locale/en-gb.min.js", + "https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/echarts/4.9.0-rc.1/echarts.min.js", + "https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue-echarts/5.0.0-beta.0/vue-echarts.min.js", + "https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vuex/3.5.1/vuex.min.js", + "https://unpkg.com/xe-utils@3.4.3/dist/xe-utils.umd.min.js", + "https://unpkg.com/vxe-table@2.9.26/lib/index.umd.min.js", + // "https://unpkg.com/mavon-editor@2.9.1/dist/mavon-editor.js" + ] +} + +module.exports={ + publicPath: '/', + assetsDir: "assets", + devServer: { + open: true, // npm run serve后自动打开页面 + host: '0.0.0.0', // 匹配本机IP地址(默认是0.0.0.0) + port: 8088, // 开发服务器运行端口号 + proxy: { + '/api': { // 以'/api'开头的请求会被代理进行转发 + target: 'http://localhost:6688', // 要发向的后台服务器地址 如果后台服务跑在后台开发人员的机器上,就写成 `http://ip:port` 如 `http:192.168.12.213:8081` ip为后台服务器的ip + changeOrigin: true + } + }, + disableHostCheck: true, + }, + //去除生产环境的productionSourceMap + productionSourceMap: false, + + chainWebpack: config => { + // ============注入cdn start============ + config.plugin('html').tap(args => { + // 生产环境或本地需要cdn时,才注入cdn + if (isProduction || devNeedCdn) args[0].cdn = cdn + return args + }) + config.plugin('webpack-bundle-analyzer') // 查看打包文件体积大小 + .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin) + // ============注入cdn end============ + }, + configureWebpack: (config) => { + // 用cdn方式引入,则构建时要忽略相关资源 + const plugins = []; + if (isProduction || devNeedCdn){ + config.externals = cdn.externals + config.mode = 'production'; + config["performance"] = {//打包文件大小配置 + "maxEntrypointSize": 10000000, + "maxAssetSize": 30000000 + } + config.plugins.push( + new UglifyJsPlugin({ + uglifyOptions: { + output: { + comments: false, // 去掉注释 + }, + warnings: false, + compress: { + drop_console: false, + drop_debugger: false, + // pure_funcs: ['console.log']//移除console + } + } + }) + ) + // 服务器也要相应开启gzip + config.plugins.push( + new CompressionWebpackPlugin({ + filename: '[path].gz[query]', + algorithm: 'gzip', + test: /\.(js|css)$/,// 匹配文件名 + threshold: 10000, // 对超过10k的数据压缩 + deleteOriginalAssets: false, // 不删除源文件 + minRatio: 0.8 // 压缩比 + }) + ) + } + } + +} \ No newline at end of file diff --git a/src/judger/README.md b/src/judger/README.md new file mode 100644 index 0000000..0b873aa --- /dev/null +++ b/src/judger/README.md @@ -0,0 +1 @@ +> 这是安全沙盒可执行文件,具体使用请看[HOJ文档](https://docs.hdoi.cn/develop/sandbox.html) \ No newline at end of file diff --git a/src/judger/SandBox-v1.5.1 b/src/judger/SandBox-v1.5.1 new file mode 100644 index 0000000000000000000000000000000000000000..fbbcafb6e72fb13d0431d38a5a3ad86aceb5b466 GIT binary patch literal 14360576 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

      `t-2EL^QS|GsYH*-Mo{ALjIdw{`i)BPpbh< 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 z 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%0D^0*pw~q}+T`^Asijs~S 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%0D`eeN(Vh`pyPbU9|g4V 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

      xgMSc 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

      U4FgS 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

      @ci{pUtGWR@mwj9 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 z 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ð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

      N@_ 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

      3U2X9=zsBR4MWEam446}CBuNmee4w8YiAzE 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
      Ju`e4V&rl$Po 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

      J6xqY-E7@nrNi^Wf+|}> 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%0AHMwkXk598IR)= zPy>TcoTre2l@;!cShDCyuJzyNWWc!dBdJciT{q^%B+0z7-}y=p=iIu=^<~(j?J)3I z-7o>!iu`#O<2MZ21*kyPe@s3B$0(0%9LB{sqcwGTh2Aq|%nb zo&!eu6rrO1&brR#l}$Khn3NxfC+gPAn5T+`xgkpJ`aS)_QI3lLrTOd6qL-#);S4Q} zFcqk}zG7;?pp?v#%2Yr01*pm*$T_ViwZsQ@1h($aEYDu*a2=(&)5f`^D%q zcKpF&PK&jeAAfh0wwTqRMhtJjQ#nwyh^0+^dJK{l?1?dzOJvm0rg9A$MSBybLqvah zupa7Dn_U6X3QJohgFiVnYALkyJ zI*?wFA_SPzj6{kU)A7ZoQAz5z1QkXm2UNV343-AfFsc>fQf$9r$O-k_R0<7F=1Ex@ zz5~cs&%FvRzJZj5?E?dqz9Hxw3<9%XtY_+o6=E7k=Wb>n23c_eD<(5w#|LvWtN9RG z5zQ{Otat9gK$OK2DGoJe&A)IyQ>VNndUr*%M);b^F;A_1QC=`bNAT@*9 zkHAT;nC?K6{@CJ?iq&M9RqE?vJq6S+n}5`-@NYwyHHN3#mTbJ-*>@t}H$nEYNc{}T zUIxrLXpad+{B`*iYJf7c-j$?@i@S(#F$4cue0Gf-(3x z;@*I3Z0`{JV<|@6U*k_GMug6MBu<2Q_<{{kv#SwI#Yt6YX5Ff0Z}hF!AF^r?XP-yJ z2|^7_J4I`xfgm7q-QZe@g~q6LWttOlCT4zGTCt@j{ z3^v2}S3_A))fgt#27c)fMP$d#fMs6xD;%PLtuP{mNwOgoMbb17V1S&+QX`OT8!7r( zi*oQ!)f0@ElIqKwwQ`DiCYV)s&9RUg-rG!nw>iJR%B$72HNOvJo8yfz$3!b2;a(HO$dz*fLcHBM$Qsj{ig5n$rsG4}{r@FuXn~9p|(HWs40{e(Csk zA`JT8Qc$Aauu4bFa!v!?el4eyu4^#%nT!qC{sCZyW$&C7WSRI6^uBV{v*A_1{=)lT}OOuwJ$v0~UAqe`kX91Ep z1{w!|EL-owr?3O?8@2rgwQ2pc9M41QwHqij&DsW9p;+P!WHl%ltC`rZbXpD>;a-XL zsOZl&mL_Kw0O4Tiz{?dO z({J}0ar*7Ws-J~_+HXY>`|Sd{S1R_2-3I%Oh8pcRxk44`fZ^FXV3_Lc=8&`U8!9yB z@tn2AIqOToWTh2K-0Ta8ZgDHbBVNi$!LwB7QJPvHl+_XhOe{)R5ds1DwHO;N#6OFT z!?Xr}jd2LOd`e+{n2tqP=7}|UfcmH3*Ho4E3XNS837OC^yy9h&BhE0~SqQ_hx3Uex zLMjms0u9J$avtme@#h_;3*W+2#cCo@9I7=arwYHMa^V^<_)k9f37YuCwjG_73-K&! zKc>Ptg8xVd13QvN2OtYTssAW!KfsR4X;7D+;DEk7MWx81~ zHrW}N>hFRhYZp8SuNySE8LkdjNf@De&(qmf^`b3^d_suQ-AG%IjBvvPFjC063b$7X0@fi=3nyKW9fIVE*u3NwW_}GUV$)`xY#5d%Aeu)9(X0AEm7u%;h~@=g^Zcx5SsvkG*gu8h z>XsqkIgp~zwzV96(y+^A|0=To?93Vhja}6U{>KsuZ!j7bIkc}5Ki;!p~cj z%09TAXRk&p7_Zp_ZZimM$k(w|Md;w5byQ@<1W&qd-UZG?q!}ABXJnQ{Jfqh7baZ*G zht=%h+VF!wbxj8TP<;?auB^>qe{@aAYm%=`ZHv-sZV7u?Y4sM?wUvr>jT{%Yp84#p zqK0`j_3UAlJcjktsNngkh@nF}?%XZTN1g<~ho|8W#h>=QSt81K;_4F4&%)uGMO}+~ zOy+XprN&AJ2S})V8Asq;5c>72(E2HZOprxAna!@`2z}_9kg=p7{CiPXEffXiFD)W} zDR6hfekh?y5Llck?jYC?yn4|2YPn)+BkyNtR$0$Eno=H9Nd!|LUwkM7YcBwv|nz4!K2J>8MNQAISSe#4EG`aabX#IpqiGCOI*${;9vq?)AYn|d>=*QKeCRA(IlF2K-R!~*!BS_(!!NRNDgc3BzYOW0*WI-cq8 zFblMos_iO~=0n$}+u6fCCSR)Yj`SQ=SSrx590=o;j?5m**j7-IXXV+AJ-cQ%jdV(_2@WP5p4Lb>6;4s$z zMCr|yo~T(2RtUVyVD!MQaD(>oE-8gq@RB#FqzPky8OCH%%$ev@Qum1jgP@8793z$d zEJ<(3l!>W+r_N&SW=XoN5^C00Q>8^1rH8wC!fD2OuAe=`*g;%L$QWn9>R)>8dy*gu^Dl|?mg#dE)o=@41VKr`|qo2-T= zM5aMb%Dg(~akOi8>(mb<0Q<2p>&}w0x)$~DJSlTS4_!v;L75zuL45AqBB^!>zvQR;=BmM4!cEq#Mu65ts{T3+&VE!B zu>?d{VHlHsnCJIG;&96n$j?P_V1&gJSps!f6(A!^b%0(9H>+-SdZfC8IVgc$mvp-D zU)*nD7!2t>ZOPEO2J5e|a;@O)S8j}s)S{UyR+pfg$ZD_mYr0L$HZTYja1`Uj#Tt^A zX4cA$?MKn2>9_=m>iH^Ij^8ur!*T2@jmojM54uwPFvePDz3EubA~B+>tH9^#Tqzq- zH_%TJjYBjBg56ob)cgHE!5y)%t_aafLt^f?mngpdNc*M33n z2bIq)5)t|$yypnRdbozFi3j@v7$fOL3~dTU$7eS!sKe@C7wIl6Vi#yOz_4@Uu#!jm zLJfrvP|u*oC3ve&tK*F|NGDq5SA@~mYsR>RG$_kOvIFS~mWI8^cl8^Pn zNu7yb_^%$N*!Ef6jbb~ug=p()>8&~YF)7%wuP)e3z9)x@KqD(Q&g?e*7uG^$3o%zK zvmoE5V-lc<E9JR#H5gbjal<2mRTD3h2A~T$l5ZTxh^o>&LWBI| zYV1zX7scT|8;NHySb;$cOw1k7<|_3?8JrHM!iu%>*G{BRB=Qf^aSVgeM@X@vL+i&C zLdZ`l9za8mNauCUhzzvd?TMx1u*n1@l|jJq)SX4>-Byt&HSbKEqFLMUTh5w*AekWa zt^-%kpc<)HeIAiP=Nw^5@deX)V>+&3C7_>6R@&(~H1cZztToVhSB*f9}nrdJD{fHXUOt$*z&55Yl(vJd1S{H|8)Pvapm8K z;b}7X#pEAGxas~m{j1r1-A8z7W}qWXruj6Vg5L^>cF_zj-DPe@6gi#P1HF{6oWgXZ zp8>y_cfc2!>ad1Xu2*PtSk^;I@KQ4x#=H#maf&X664^%X!P0J)56A!m6iC(zu#Yw8 z1JCo5?w!Eqk(ExXphnqce~6&Wz|R&a+d8EM*KquAFMk~8kB#6ft->x$0ZJ~6wj@%vY)b1?CgceJau zN5haso-q@}=}Bau#&j#13pcb6jy{Hdt#xI9SWqagEDZCgwj|r1mnNSfr76sBq%-+1)cP-~Uq2>O!u6~co&H`EvLIX= zDIEABMh#~!)W!H#hAtSmdXS6+0w>!=(B*2vi|)#>02h7b2gHH@NcXY~_Zw5n?kv6a zj+@T$JrP+URyTBuJ{mRnvwZ)5k{kNzisD|_CuoeS{LEQ75><|@x-s)Qa(j{X&!BgE z2s#iI)A@gr3+bMRW@P6f-vQCgbFJxsd;^O`@mna>Vp6q8y{AjP)Ll;+_VaDTuCW#e z25ReH4bWvrST!aQUnolh&NiNC6x5&&>K9#lqE&O6RXW`&U5irc{VIWRNs4Yg!zzR+g_u2eDi{GOr8X17o#S^&IABl3*kcAqu zu|N{n2{j!RHiNq1g=Y2tsnV$LOpHp3Oy}Xa8{u_Uzk}W*V&oHa>d*R)lfwj$`!6(dA>BWoL3yw z%QNK8qF&=}Ws_W1Z3xS-EG|M?q=;MP0Hs05%I1sfdHMNAJ=QJ$WZ2Efeu`W;hFw!Jb1H?u@ zQBO-C!EB4B2FAlA`9?};0>|ff;4^gxzXFG33Ae^tj42g_-S3GKu4YM_}VQLo*-W~oUaN!9$R*up8?F2S7LkiMqhQwXC zBP-I$F02T=64yfC>Cd1T6qWFH#cHxVC^TfZQTK&|o)d!N>6kLugI>w+;K;#go@A(3 zzQ9c?Z$!-nO9!VL$xF3m(zMDc^Pk*Z4=f=@vIq|9<7dV|TM=pxvoUbCWdqTnf&MqL zFg?|={eKeiaAH3c&y?XNxrtlWutXvqg(sF$2K`r{#^?fje$oX}`2rxMNdXOlI$f7p zVU#yi}l%jDzZ{beX4RM@oZqF6rOeH#6`BC+wzU4C+%)eMkQWqbbc1 zGVLnDw97fCp7@0<<8jwo*xQJ|=4v`fFANd9x^tQ_@aoPO8isT>2I`qdrXhk|gNEeC zI{U{C`-c)3cBrp>f{h2Qe)0=qww70*-cax80ykL&SQ87>O94&|fd&o8$X;o*KcCPa z46#07i~L|u%MVg|sXKMyPF7(J6+B2RY&xqeWDp$DieIeV*vBm1y~~TcfjI5tdFh1fKx+y5Yt%s2>%8_?112<`->tF zz%1x>YIC!o8yjZb^l)jyM(TewT7O?uC-sNI2et2fVtmd2IRL*9&kKtf9DhGyj}DA2 zCNe$zJ zb0oyl_8DGM();d>>qGz7&;l%m1iUn&l@<)OZn|LUw~1SLIKG8n ztZWTSGJdMvJrj4NK>b!XbEHGUj+`Ff%8L8p}41&77F$FcdvA2ZsJz{c~2a= za(1H?dxjTJ@?Lf;<c0IMk$B>(zwrRhS2<_?Z1R>itpvQH zLnu{bSU0=v{8wvmDV5eXNHcw)qq<(Vb~LFisAh5!tS-<+>#d^A06RP_4zP!I#?UYh zVQRb$STRu@8Dk_rxY|-KSi0S6M2bYU&)oP%e%KMy2#ZF?nJ=9Q8D27lt2=Zf$0cs$ z-1tW3h0sXi!E9D5jZ_m|sk)IT#lCEzM>pIZhpx`Appk?cLi1O@R$5wwmc;&NO}w2_$WoQd05%{F@JHun9%8AOXV zeiPru_c$W96+Qc6*92%oyx7cjXysXNm`nH60w}-@1cp> zbH4uAW;Ew9`}Dt>CuZsX;P#GJo2=Nwk-kBkH@*cy_pBKEV3i z37lzTVwnXkqJH@_Cq;Vxt>K$w;IP%^^V_Cc+dr%0%d(M71513X%e`2x`#5|iZX?qs zvC@Mn8)VEPH!C%jEY~erNCoc?m0?uVy)Y$;KWo)&X}l?oZ+kBq2ksq-%8qunry@8+ z0#hiLJyo;f^AO+k2*cmPe`3aZJ0R{ONna0ubwJ#|4iMlv)%}5%D;H5Wp>kf;!q*n{ z5QY!zORxacd{v7P#X5d>xMB9j1oIO_rw=>N7&zku*;{rhrk(H|VA>h%J=hpHu{)j~ zX%U?J#eK}5h(Dp`_4n!W6;7cE)Z^GI_uh5{%A1iSMl) z(>m-o>NSl1YF0m{YZ*9<=(&AtWb@$fLouza(XHfuJA;0@OPqg#uW~;fm%4Urmq%|? zv3!^2F$2Xi%|3{PrZF?bcW2rjng9WJgIba{9gyPyrQEI4mNz)CAlUE>ItY)I*jKw} z01HugoBtC3D);Zgp~|ha@ULdeq*F(Ln0YfFg8viKMP?~~fBeKGbvB)cfI1uQ)|^la ze`}Y*7Cg|fpn0p&d+g@E=lqwFaDLN-7n6b~pNs@l19oERHQ48|UtsrX@Z{g)f|X?_ z{0S?;p261_A#!TK0Yq%i*ylf-ESsyGo(;wgbqSYIrGJ;U)<5`vaK7CPr}_;QkliWx zr}F&QpxcbmLbvCSL$`lLf<#Mz&@rxZ)#r+qy{=?0*}n6^RjfX4|1xoG5XS|}lHg#3 z+Szi5>T;ucVa2v4d4{dCn?I(SfY;lx)OtG`Z|Qo66Wjw@1i4ogey5iA(P5_h$14qz13i;3HK|=%6E*)e@ zFyP_!=jB~st%OPtX_~d&4L52VA~H}06f?4r|3b>ifgc4}Lrrh!&h<|=S)g8ENdN~I z4pD;T8`{|P=MYa|$19f<=`9w(58^Agazr9p{c>7Xox1g&I8qTy=}{#u5j5(iiLvBk zOK9C*%aP!j@Cb=kXfHk?e*e>4LfXpyCpmCCjr%Ze!CF4_oIWfdjjREWRa%Um+e^)h zRm#D&A-zWfLE86q1$tJeQHOp7hkXWHvUhA^K$dDS45za?djnBm2mJHX;;@19&0~As z?)e_zS|E=)8eE%Z1VKR_WQShBxu3F&nAhqXa-)97wxYT%D*x+R@V{_(%+|a@K7bg4 z?y@Tq)&PRYLl}qXk?r&LNiSMcnEfN2uXJ$EU0J!M>;&-lV!Tj&o!s)}!T01F`P9Hi zd)O*gg!#J?<@g)!Z$7}ULbj8P6ddJvm4saQrsLg--1w!koJ{U=*AVb>s0>*q99N)( zoZmibZjx(m#BcR+7R?yPk$yNI@ihrb>-M!!4MRM? z4j70y>B3f!ObAcPDMJlN5{ttrd8_T0>4=L^-#2Wf^AQ*kj0|A2 z?roOp?_k~*sZi=b~ahgwE^`O~ESHusk< z5ax*NFWor)XYFs)<5w5WzeSV;1b_1numE+=fWyPTBAa1dgc14;i042^`Yvi6moQ&V z(#PL95Wfa8j!)j+#PdIg+neg-P_M0S9u9@iBbCaJ_l*+B1ui)Op>h zv+ejTNOC$v7V&$_P8X(RHZY3X$tTq!xOvw8ZP?vK`+0XUK9g<4uY84}WcK-Sd)2VN z4ftf6AS75K%%i|!HGsz72W%qF#)=VrCK~CR6k_Au{(ZuW`m9)N%{>trb3#_ioVW2@ zWp{aBO9287yFD#XQ*WEy{))Fmc!pt$u7`QRI+J~QbMYprG-r(?$RCJe^PE8}IA-B? z@NUj;hn^(+Z~FpW6Jb?op|Y&IRRWpyLUw1{FI453dRwkofvZ%XaR@j}OJD@F&!0!S z#_hiy=>6IJc{k$=GRT`i2L4z}+SdH+?>fE!+0IsHtWuL%{e~!o1irSuKe{yT`$37m z&qw=UcA89RA3Dai?O;g$vj~PHvU+pmKFc)`mu>|kVNZTa`hgv7E6Y|YGF+>-J+WLx zc27@yK5#;#H`+ZNf6*3vsYrA5rbEN`$Z&zL=3>Biahvd+ajfvsKFEp0r_~`m2KIp= z@dt}DUA&ss6$W8}JV$(kT(LHes|U}^Ng5O=P{1T=VejE1CaRHI(eYxyD80HaV^&_*Ft+s>x#Faco^bC_XBLlWTzRg0nl z4E&PvGwCKPeu1N{%;ER5PP5Ml`3Cz{tR|!>xFwX_Tk#80){b9j zPV{rD3BnhM1w^3D@#05_PXr(4`8!4wMFSeDQAvV;29C}cjPGd3iv%=i`53xnn_kyT zLahRSn*Afg{*jFz^g!?pw@swuib;$7W+C})!-FnLc^IsOg)5#p{LaJ*I2puONpe~Vb77F3%mf^MxHQ)wRXm;zM^jf); z!ACVLYdUWKZ4sJTD6t0m8zJDU09KN z=eGjDv;R&Az?`CJ=hzLdP1wsNad4>58b3n7Huiu0QREz(Hi(`;?@Tg%5eIGzXk>r< zf;nc%9`GhKHM>o_1yy$uraJ$H&&L6KqC?OL3Z;5>6=x-uWLK=Fz#}|OW1T&%lGb$0 zfkr$?Q-57ilEO*x_;R8hcHjXpIKpMlbol@_htQ%Hck-j2k8fRYEVln^TY1=s&|;Z9azsU3xPu(0XK27GoW-ohzec!s?_co$jn z0nVqL#`XV0ByTJ{di@`hoak2B7VG~d)cKtCgx8>QYlrb8q|;La!r|FJ;`kA(Ur2b2>F zu*4kdtU3CL4^PxpztRp+7g^aRH65Tn)Bxt@{@QF<2AEaS|5;o1N%&0Ma-0M5v9FNT z+Wt>Ms?@bYvgEx9dHjWIilS6t+y$w??_veG_wOVA&+pJ(A%*sT7O>3_ins88vYWR5 zvjZWd!rRRxjw7+rdM*RS>{EU#-`L?3d)B0lA;2ZHLW{wK~+p^OTV}uje zomZ^q2KMy_omWPEY1|)Et%DY8iR+4edw2;f&fLK(25-4SNR&KZsE;tjgdVog1NE4| zMwsjD+im_fO!!_@@=IdQuCR9C(r;6@r?dL`3sbJd*Ek#P?amL8CXP=0RnF ze%kA{SiDK3Ux>AUe${eanCZjSLk%hS_U1(^*$a#=0kO%)*C7BW@MDm`F5@c2PfSPF zFz&zJ=#=@>^!Gu|Ao8aw7`OTdGy8}UbwedQcMTdA^v|PD!gD1 z%%CZY==rq14m`}F{=9cir~3dtikYl|K8iQ^Lyh_^&=A@1QzCT+UX>P^ZW>Ot8We-* zcA+Dxi$BjV6~U(iT_SIWbZJ1sx5L&JU_MhN*K?!H8cAlo!0PL;q1ZEmZ7@rBv6~!E zkXaMxC=M~Wu^OLw%_?4KuU6q2s!7G)hJGIN(qwNy(B}@U^sn<(rF3!EeTfvj^`tw3 zBYY^AWaRPUoXNj#%`I-tE$*P^7LBf{F9T1Hd<;B|{c9Ya2szHbgp6ZnHSko8d)ukV ziL`bvs@_H98^CRY&HT*~1Qv$9VEQ)O$JPvolkIPKE7RU>QFKY{N z^e-Qp`Wv*q?IX1Q$g>Gh7tUy>^(&jVZqW^l;SMZWgx&);A#jbwvVk0KbJFLmlK$&Z zLT%d`5!1c6j|f_@EiuLXhmwjA&~*)?$$uY^{?Ej9Vh?Kb=VeMKB613Mx5z2tr=Pf{ zJxL{eF_OCT6yif9wN~E5ODdnKH9$#oNqy`BEvcPFAw?y%C=?OZnlyY&-f}}UMKdFn zku92Gh~_$qrlDnW%6)CJ)EmG@6YNO!#?x{5(DK+@I?;waR$i@Hs>o)ks4yDgNp0~I zIqGUOJ`;@tze5u>Kkpaq@RXyC=3~%f%VG?^HrujDd|^*DH(6RTcyF5sTLzdnk%0nF zB|zAx%&m#s?(qr?<3m)1T{=ml%oUHa@HOpW3;uD(M7Hcq)bg#;GFi8p+!1Z>W2|;_ z(bm$E>}Z_GxlJFx;Ecg1SNOD*=Po|6M%{|l9E@X(l0*ijT6Q7(WqTOK7u3v_44=@d z5lQ>Q`QUoC-^@parAG!%`1s0Bs8USpwVX>t7{|!zdYm`RP_-0;?coW|r%K^z;4o?G z-GP70`7Lhd=MQ@VfE2C`b<=h1Cd?N}q)M2J2{R1-QXt{1iF|9dtq<_9PFKvC#L)Z z^pw;8T}YGxlePhcEIWcKYjdGB>f4Bn+Dk|a6tWa@<9W1~wyJ_n5gn|(gRrV_I<#0V zXvAd%o7+h;enj=J^L;S!*uPMG_^E9q{q-cuPDJ_Q#86Sb8bAHGULP6gg@uiHODQD% ziC9WkN^PQltK?0*{^c_@`pTC2waJvW`J^MC zKxPWm-|S~xjldEaR*==s$$U$m^{*~zN7?Av>zH33lgx1aE4({#UMqV(r1j4vK#10T zlpoNWe;_(VmQ=(}BbZI5bO7fgnz`Ul(g@{|C8AG7JB1{XPQwJlQ7y0G7_#tkSUq3J z{&IN=I4B|x3e|hJYaEnA3;I@h%`0*Eu;?*&;9LJD-^Eo!I=kz5{>6vf@MuKxIE0Lf zpL}S+IddWYVv4g!E}{;h2|1X1ai+O9_tU8_fSbB+XEfSYq@lu67S^#a{w{w)k7l|% z59{H-PhYZE_sD1l&B#C@TvSk2=B;jnnL$JV#CNbRp_knOoa}*&4;F&h#qc1EaBadi z4X{lCr^mvkPE7>a^b=Zz?0~GC|18L25KR;}^pAOfRX_iFV7{w`d1Pmxj;lEA15%wc z8A_0_Pi_vf$a=68efsmZm_Dh31qo37LZ6l$LNF0fZRtPhm1tK%c3XJ9s5Ly>Fk#EN zqjM}wp#L8e0M$o;ir5qu=|dAJb^;2Zum}wULvsNL&1MX3(i3kYe@7sH9E?(BNjhpk zsF~*_7UD3^2e8Fc@}Jae|G>rYSi?U+4yAvGoKF9MTqFJfYgakkn2H3#^ZmGvtXgO# zpMx`1p3jwBXq@ymvL4%CU>g#88t(~Kvv#KSsbVQ6l3GkvfzNi}K`8&9skk)cU?tey zwAK@-VR3KZn|%Mjd}FExb#>Q$(@C-z;xTq0Yao~{h}C%mKYFNd+!a6iaO<4;5B&86 zr4F=QEq9g(kB10voH`%myJQPl3J0f57(U!JgHxifOCKx4cf$j9q zM=^jN+8hr$`9lp&1pd69?SSw2uYvD1$3xeO-UP*l;Xnu~Oiw^4?+(19bpYn>`=EU# z+%1|ylJiSjAG{*ivh?r#YPqW>F}&ujAl|;Ii-3VS^~At#(Z72=fv-9Lc{~C6=JjZ= z|FWu2-&Fgw6G4^D_in0-Vs7yFO<`327a}ywGi8CRRkm60- zj+Xw%f<7??i@psh)oRR^R!n-_447;ts66G<6KoxJr~i-W58&VXuV(N+{`&;*@9%yr z@K2JJ`2Pm{Uh^8;DgwpNg{0zywy323;D6VbUp35<)V(ri#QdY8$%jrkXHq^bcQy>8 zYTQA`Qa(MFe7=f~fBlZd;S^4d|0fEz$wH)J{>5tvU ze+_;?tsWR70(dI~&{Cw|VWN^>H3UWv=oa{z6P1GK{Nx4ls69Uso3bcJci6E%w*)@A0HL zy)+wf^ytukIdPVbj7EcavvIOOu}RbM$tl|1Q^Q*f*|lu-m&+rVJSflYuPld8YnY7q ze8!+=wF+oFeRcvg-q$G(jS;uc_al!1i3BhPiGx{JNH0`KABe?%(IrJbgMHc$^l6UA zy}uAViv2g~&1Sf?kca3pw6<9-AA`~N^|>_HD(Hs<1I7hf@rc1@MAz32`|yc#=BxOdaKLbzWn9md0psh{ zw%%1wKOBdDw(HOP(UDN1qvQS^vS`nJ5rHG^>K|KBTNy1*Xl=A0#F75x9&-900dU}( z>?rh~2NFO(ygle&mc{x13iJ$;=13eJE*egb(No^Q+xb|y8da4d!v%t=={9q@D;j<1 zi*qK>43?;(g>FrS6O0xv$cZ&td{>pAzvEL9QY&8nF3-0{3=wLOtJW(*R3LaYQPsw2Ga*`ZB!AvBJ-l=T5{c`B>1Ge}H zoInM@6TS%>Uq>A{jIU*Mm3HBbMm!W;I0d547fbGBx^N7+uhhAcO-I#_)PD>lg!`si zIAOMa7eF+GBm6gHd`#i%wXRfr$+V4(D}sDp(}6ey>a4tok)wO{z1rkLXV$thP&g*p zBa>U5E?;7EfMF+le2QfO0MTxk$jKyEL`w+#~ska&e3Xg~eV`_&nC5%hs7m;+BOuT1HfYrJXaX*6;NmkqH~Iu6t+9m`I) z;)<~g4QqIUR;087ZdS#7h>E3cIsS`X!feDMAQpO&UX}V-Fp7@V;b? zy(ODOs*U`Jt-rzIKgwv4L=-_zi)mTFf2)n1h5?YDTbGOlS1lCi;s5oMS*JoxVB_Vx z%#wJWRNygF0`9s!DPzt49sGGIO@9OZ&KBzcPC)RgrebXSw_ELp?_;DQSRq98K(k;m zg-ffZimUB9wka$QPuC4`XWsZq+qLs5hC^%+Q!%AGnOA-01y<7c{*8Q(s% zKe39N@T1LhJJN})*LMz*bj|Wha{&gG6p*AP+7LOn9sz84maT3o*&)B69xX-5MfmZz zAs+l;#{W^E7UETwY! z0Igz&m+0eEUNiLev)NL$Y(Fz(`x!T4!eI4a-7Hxua$NNtwB>h`s1DH>`iYl0#@dP< z_)Ss8&pp;poc|^DVUVe)$1}#GE#nXM8rJaD{+m$=0C7R?WMi7?_^~&p2jxp6mHYFK z{J_pa>RC>j3REc8h5oY-W)1K7#--(dC~AHjHT(14l25U?K>!04`%x~0tb=lEF5|8G zCE+NR(vPyV*r&R9BOB>sm*$<+f0XOzfpzNJL2Om97}-OGzNC_XX{ygj7MJKH4{U?+#{6jmI zl^MayxCgX!GK$tDZCEfA$K1R9N1L$!{g3WLN3s9?(2l`d+<_4}`D;dGCmZG!Kca+j zXqQoUWVrtmTE`(8D?~}* zXV^3%Q!2(MEyn^$WJlq}3qJyzawU^1iYRg8tY#%njVr;Wh%B#pl}q+9Z-%DE;sQ=r zQg7TxKNR;~B^O}S2jhFp5%L7F7SJ>jnZSbx5Sn)*O#%Q0Pq`0BqQkwm)(o+U>6UxTCx7=y30;JKf2f`86QL zzC6zWS<(Z<-Q7*^cme>@edq&s-4Cehvs8ETfB2}#JL{{mUxR`vW!d9`gDymDJ4|cH z8bTle84qD#3{fE?+x1!U9uu#^e}e{do0t6bZnf39iOM8jJ@OY=>^T`)796E zJ{8SNJmrrsq2(*C6sP-8H;${DH#a1%n3xF><`CF1Kq@CRN{AXjOHFjKj#@m6_F=YO zfM0V$tT<67(+vzZ88iyBsKSLca!5a(53NNl;a}Q^ zbW&bJ$5-Lw?|Q*#jgtKxxp6fUfvzwWW@Ndp^afsZGSM6;m>NwdH zuRpSj`ijOSy+tbvMK8F3$HH*?irT$};%A??bQMrM76v%Fjc(z5Lk|vnP*+^PqiH$! z@NsV|V5#PZBVqv4r`ed@`p2}f_1ELE`msaZ8`r>Cj6%8sInxgLWiE*J4?8?KkOvDe z7U|)dTWZ4(OUnzb35tH<4o*qKDG}-3;Mfe<6*%7n0Ytx}nzijF$YEjpA!(d$aYVJz z$uN8jsE5`2J2ehM@^S*WQ#TSR2nH;)Z5+<3Sr9hTNU9FxANS+d3%vyHrE;=N4R3G) z*t9Um>wFmz5eVh6U%37EW+j!5mHjN#{oGPkgDd|bhtGOYnvrRIpR_*2L~lGJ`cH4qGuvoWC+hQ=t-RYI|mKXVSh30Bq1rDlg*mh8c0x%g3Rn$F2* zF`F4AB^ZLPs-^hD0&4J$CAd?c|BIpcaRt?ZEqrE4Q^jh6g0q1Zi>2-MzwNTI3FYk# z?Bk;Md{mY1OiRgh_R#0v<7OoGmE(?(%3TKU_SkpXyxWgE+aqTC)@Xe58=B_q9&x=# z%3;T$+%J~ze0rh_onOTaIJCJXkVu6;A}S>m9QxUl`-$_B^C6@*_~E5Q zHI>P^}FN#zZNZHT;Wo}i5{#LV6^q*gP%+XjISvwWgYBLly zcV^8z9QXj-ve3_E+nPM)#el~uA@ew*)yE0~T@SLU5Pq{i(m(81oH>9f!zY5W0c(r_ zb<8ev=tFFA>S)ycgmY!~+oEeEuL)l#>I+jdH4x4nB7Ih!Ri&V)Pb#YW87L}5NAh2e zLD3L&BRUNwilESKFHV~%LMe7a?Borxb~3QP4llgPJMHtj+~y^Shz5^s@&-1CgO~)k zs%B)4A%9?;k(s@9&>hn3@B~|^osWn%@*rmpmSP;?>g_lq z$)?RG7FTblXpt?995_%pae#;9_s)ym9dPQl=EP$b2o_iU-p zoqV8edg~Ds`_A;CkaFbh%23#Gl%rL>+Dd`^8KkE_qUpsL(jUC5Iq8k&q_>ret!y+4 zqIDziEnPbpWOfh%k><(O(8GLj|Ug> zd$adr$d3nq8S+M%cQ2u5PYY7SwL8|TfSy${8X!PkqQA2rV9Gtb!Y1r#vys5Zgp56r zdIhABj#jK@|5xFh;IiBKRV}{a2Q_k~3d@CwTXr|L=^@aJ3vl;VzuQzmhBzO6QU1?+8gGSWDifrDo-Q+u(CD@th()au6|(D+N|8a z1EWG63NV53NK5wImz=y|n^va=hdMipXx1>cfDNt}Mi)ajThM#VtFXvanCcGn--6aN zfPUm%lZfQNSaT;qpm7B;NAmw>7@*%dfMZ~rAuRWx^Py)* zCAc$P94`<9TW<_FGTuz_(N#(pj{DU5v1ad%=y3nBwHv4YaI|w? z_TL>S$PhsA19{i}6ec3Det}qdHf2g}#GOsasJ`I@3cfM|9b3K)8e*EVADkHlF zzd+S^1`(k?!1%&JT)*9e1V*Z4;CAFx;DqXC{AyjE^>I3%9M^^@i)PFQeZ!O5pWla2 zM2qly>43Ci-+oFmL|E|(5#}|LaASKaU>oH#2Rl-cFVojKeu_*1w_09+TvyvbJXR31K-4Y^K&mZOe z!M<#3h2(#UCQw&9%JO-DQsP<1*For2;K zDTc@!foux3KpCKm+OD}g-JkdN7v$^ie-0Bfu&sxa}%`p=?I29BA0t39xFi3G=a_F8sdn! zV-p33cj59{06?AP!!;}c1Z}}~4`4el3ftbB6Tp_=9&E3i63ZIL2wM!AiD212a1{_g zpSB-XcCg!cL{)Dfo}0HI!f-Q2vNa;Ytpu~#4P4w2w^Gzo`9S2#g9RkB~l5Sr^?(GB}x;zg8mvR{Tlh6Q0fR^zM zmxy6|2Zs@<3m{0sGPK2nWkBd7hg@ii+w)Wk4J&~_xsTz?tGxKZU8?q zBmrGs$Ku*xAz?g-NFAJXKJ9{MYHvz(L zS6ai(w5(jXC7gStavkOZAPNYC3BL|rt5r`DX;xVq5U_`Q1Cs5)w{+au45K?^GY%)9 z(o9+`Hqv$Y}4) z-8&6V>KW&y@>iEp2*)@tcT{Cl=@zf~o8*WN!~E1)IV_d*)+-AX5$OSXPKFD~;UM7$ z;6t?&4uAsLfIx7dc4x;xj_Gf2yIa)$WCtWypJby+dH+EiS-C;rwlnlR0X?UMZ)FE% zVgO8s;*36glY`3K=9O8I2I%)VNPZwbDB>*P33j2kxdcC*X&0wDv7S+`f2Z?z6@G^- z!<2|;IZIKp=Yn7aR`uXIDKd8~17?!KXVJHV!mNmPYX-02A)nl9KLM0J(FHaPd<&WV zOx$W|A?77&;B$0QPY5EB#De7(Tka`am`Sh03BK5W`Uk{@?7S{cJ?}wn{=8r9=3sF= zcKDJBqKSzXr(=wWgkwt+EyJ-F5uj*pqP@FVmxNVqy+b3mmt z`7-+_)ne*k@dxAt?>DRRe(Zk~ed*26SIu$}{Mhl?BTzf+t0zoRq{QRCxN<)SkC#6V zJU)7D0z5YCOpM1H`yK-x1@I^y{~~q4I9zHut%e|z(1~=+1rCvE*>4pDfttr-UvWSq z^4(BkL_#zKk>{SI5lJQ{AEsG|49Pu?WsO6SjmX3M!H*MXN6`3HT&ZJ4Blib5=K+ml zuStN$XLiJ)F=l^2KZY8#$B+Ve6p@!pZNiY!#byl2XX;`Qs5u^;=qVZUAsKvIGNh%n z)!uaC(c)5vphM56RX2%3vS!6vhcDrK>hN-Sdc)`8kJr2%hK#jq#@c?^KPGrR>VV|_ zwZlGC;GFq1{z7$A^t?gYl@hVfF;c=le;x=v2Yf0K(L2?rlj6`!D3JgEeWJOI3FzN? z(?qmZ)A^09EUi!N5(-PT56(VS4!IY4PRQ;f#eL3H{nP$R&62z;Qy#QY}_ob$G~ z1E=Hv0A~#Pv5l!e>jdL)4rW_RRTJ^_Fg;vJEIrrpvUi662Ms1B#=mSnJLAQV6efCxL-5j? z=-|Y-TdVIc@R}3S>}T~>89d9dpY6dj!yJaw0v^bArgh?{`|-&6I^0pX!i)(SxQ;yj zeOHx!l%R2{6EuE-Kdo=ti4tBLc;V&9Gvwh`iOuSnK2%@w z^N;w6P&lw~4Yh+i(1e|^7gr5~O8KUfT_-aiNffTVAC}>C@%qH8H&7yK4f!kHpSl=O zfB2{^sPg@GWnPhhTlQ{ghnufJutKzx_GAU2MDT6d)+-sik$8vYmIMq%bxbXu+9;7U zm~DaW^v`2)({Xxp(6?Nk0Q5nLLC4Uc9W<~Xoc}G@1+jWF2B|~66LHaa1KaZ9Di|fM z0_vSl7?D(bbI7f8lR0NDMz<`FU%X_q7H)W@d+eN$XddxFexdcx?%yQn_W7IJq1dzC zTlN~nf+Ldgoy9hhWH~0zUy}vWg}EQ5Em)oYN=>BuABlliWhVml;rez!J<{#}04gE{ zp^!vwhYnW_5!TdtjM%Bw-G45p~V$mIYt@TaD z7vJ6H`4>k%;gklEP6$9wTctMcd#|ZsJo#HEx{mZDMv2OVd{)XT;n8AHN z_**1@v1Z-_6C1o+Q<=$q>6pbo$}hMqXaxUA(Kdq1(r^*}8%niCsvuiaz zMK%+b`+v;63wV{q@jo6g2LqCxaEV3%jTki`)u5n>7(GG6H*f;sQiwonDvCi+BP19F zHQ@y0aPsQ0#fm~(ti7PciWV)mYC=$gcnRPoK&yD)V`xF7%B7nB=QF$Sxh35CZU4`Y z=OO34>^nO`H((gDLUXQ^s)kxk!lerMaUi$q@~81La4vql z0hbRy>aD&zK}<6d;LZ(6X2mJ8u3)KgYM2Rlm{l4r;IItvaaN7k>KHL|xq;hGKA4HH zR&*BTPcQ9kk&QGzhIpVdD&!nw0bWUBj#oS^w1U~X8D5kvg%Alx)LDq}H-%9p=c1&J z|C-m?ltsvpiLNo|ObG%Z#BRH5Lg<>xiuM)mc^^tBQ*5~?w6|atj@!raFvz05Bc1L`#QA?& zTw*S^WHov8H*0i!FDTt>;lD;CsHZC5hS)#>9rDXBamEZ*1&4pb)1O?;_p&D-tS#&u zYlpL#&{>rzRC#3=Ig3^ee6jnH@;lyd1SHzvF+jJzNf z5Ce1Ak2eAdMlgK3*??dKL&>SsNQPQjLMjUQLJ0VxdiCY!@3w@_2giz}pnN!}3gZoPqV4+Seb{rixIoKfVF*Vi?{7eh;olESWo||%G&Plh1A4{| z51ZbBswMJAkjUMU%=#sMTi%a?*CQ6SNM>5oiC|zYks+etfD_3Kw=KnS7vMr4J;bp` zWr#n*P^W4mi3YZV>Lm$MNCIpO;EsgYoeQ+8JnB?*f#~Tt4vgErAUj(^6EJGygnHC1 z`){}IzgbDrf6IUhgBwKLqW|OVSzo( z8z@fUB2s?Nftk01jveQV(S=!r*Z+lDH=Ld8#43@O(>Aepu$AJ}<_@rb6Sa9IXhJ}+ zI+m}MYEdN(_?5VctlddVF}5u(j(PpXNwP8)`l&(5B1%Pq671WYuid`0D8Fr2={zC^ ztUgrdx58@fYsAXL2z59PQl2QJ%(51d3Oz5f-}Fh<#$|YhWQ!Wfe1EG|Qi^J4ee^ke z8b?stA0+Buf%~fJXrfLT7EjdrSEJCs{*?cmrXeqg<*-D7zdjG!=*byeVJz@BkqbOw z?>y%ZW=H*8gMSqDHU3}A%;A79O#7$v0v>~b- zSCguQFID$eXx_B}Ld<6|}rUT24m^KaMcR(u_*nTY=IP)DL}- zG{Wv4S-(T*l6x)}M!bFAhZ7>d&;EQwF&3Qr&Pcm^XN*rQ3%cjl;eA0)y?ZXmz!7V? zM;?ag$?vl-zwRIkHx0K3zz6YO*+p_X1Y?PnuQT~320aHey;BSrp~JEJ(gUJ=Fk_gv z&j$tm9R+>r^_!|cR!VBdp0cV}2RZ=p^cs$5@&f%uiWK!C@}aiO7l1JVh*R#_+y zQr7FQ_4;?H%jFWBw_i0&fkvRH{Ubf(RfFn=Ux$f}7no8i$_rc^_5$Ao??4;UsTNGM z;(liwLpsraFmXscH?4k!+~ka}LEn*aBe@%c!b2>!_^dnW!;+uz@VVdLy?EOK^by~X6>(qNFnu=%`*o$IxSLHAn-%-w@sMWBBa%AHqh7NlJXgXpCIg7{mU(fM>AL)sqyH$0$mXw5}L7Uuny&NxEC^T0zg~yR{VQ1TJNBB$7<^i$$d7uThAk7(_hA+2KEk_}~ZQ zKoVds0G?+6?#hd4*&qQ3qy5z8j^aOACwsM+)K_~@pgu@`NG=gv&a@?t#ni@~t=KBm zh^b&a|NOsZABPR(t0{w98_106Q};%VVfBP3egJ>Fj-7HUXbAed)IEn{NAQ1cA>U|l zin7t7?c+khOYCD;E2M4`q>O$1`N3nO=)szp;)N74Vwf3ZQwHCT^jAAd2+sSNYqtK#W*@Gq>*q2KHi ztIjbk{@eEPRf6hPbzo3Dnxlwj*gk&efTqg-!9LzvE<-^1TUGV>OHuT{?Zj&OpWDan zWu6*ifMRCw|BQV+S*CF@=>7NX;|>D6E&F%{q?56a&xMpV_VMX*DfaOeDG;%bkH|gp z>)_X6;{StvTr<-dTE;#eloQXmi&sUDuO9pVZ}RDQ_VJOegips|tT$SGfycLxY2WPA z{=X0-5UciZ_C^1nm;vzr$uFD-%lUj>OBpu0JK4<;jVy)rc0l<0`Z8`&KB(GAILOaX zlTnF_d^;abP0Z}|CkPj%^Si`xN_Yc#@EpSP;|+AAs~7e-rVEaLB1H2YE;rcM>E1vI zd=E3>4E)zj+B*Nfi~WI&yE~ADS^en>-5J_vNoU|`e~ud35AV}`L5w)tEa60DC2qob z05S8{3qg_Pdw~Vo7BcR}>o1`I%w>w{m!tLw5$H2{^ zhvyi$c^urXUy#_7ZrFT#0OsL1DTp;;YWmG@pwnlalDxTr`f zLU0sL4`B)-c;9c%s2FZ1Cc-0*$&Z>Y)4j2n#DH{~%;Uj&$RK3-$AjKWo@bko@C)Jj zmj8?(k6po~8X%-6$>9OUw3<}c{<}u^!(7P;)!~oR3}h75J3dTUSu-bHg<)UjJ``<( z=JZ4Dxig9%IDcI-FrFn2t|W?K{rAsf&>b{6Cfy5z;$L&nHd#U02@HobSwXF^5A&V2 z@#egHKs4U!^8xWlUn@u(^LUf2)7NBFf{3m7__(|xXHCYX|o>Ay7hZz;zHk zN7D1_hbcOIdoZ4-bH$H;z-!F!g*ClSGPe$G!ywkPY|J(D%v`ex-MpY@r~Eq3H8D$$ zc&ulP)LtigeK4ce(P^)NQl0MLOmn;1a2aXDd_J;*)%&@q!Ss6sA;=Pr-f9b|&4D(+ z9R^Xf#0C%i(p4jAhT-;1o{o(ahez+Su!DGP9F5Wc zM2Fei#tJ&yRp(fArVBcTt@nKy*K0*+-~2e3PWw(V0N3@8Ay|+2_AO}z)M*O(PSPeG zyZaz@4so2#7}W-$$&dF=(}cb>7LlK=0HLwIXxi4DXh4`0hTRm+{x$%TBl{SDA7#a~ zERO&kaIc2q!A132=sL^=BLjQ^))Lh_oB4rbCb(b1Gp)Y{wXtX&HNf@w{!))`Nc8C# zZy4VgbUFlp8l0M5ul>QDR^YG8@6$k4Q|RdLz;@E9Tn+*&XkrURLOdb5()fwhn^hR_eEP7spd0Ee5|OU$Eny3_8qy$d!GE zCT3OP_O@3QMxd%CB_zjIHKtWPE1!;{`hXLt#+fq7LU6SA{4Mv~IW+P5V7oU~{4L-2 zktK!q^pXNHLts6j0BL@l^@O*L{5(>2sVpksxSFl%O_{tI){Jg7EgYD8j3>YqtQRb0 zaJf2=gh1K;1v!oGx&H(|74&J8RfNM)s|enl58ZQL!%J_@4)=r1!=9hh=yi`oD$Olc zpFFO zxVtaTo5u9{V1q^^Jx{Yoz-R6*o00p=l*fEbcH)Ia4B z=1GUuQ*wzU8+EElE*rS!@Fp&U5z#^4c$!-LYP9U26iW+zYU}{!KU@HDqo)w_b&4)V zDsu|KFk*&)$S(v2w-$1BD2X;R)=RVHw?=l9F>Fik&(oU#DM2dW|39*vvJ3_zU^!_3 zA1XmimW#vR9{BoCMC|BLiva6QyJw9yYhn;x?#4A)YA{$9KfrnRs zk=$|^@RH?v;C{f%TTS4)|9S}A*z)T?MtNp8ME%3U<<-8b)}TlII|BN#NYPi@C_4JH z2-E{ebf~dVPe{@ALM%B8>SACmfu8dFgc3Yl-Cp+Ksivixa)a!4q5XwWw9i-q^BOie z>bz6<65089LJl*pb~=7k>gy(V;Vt zGSCz-+hPwpWtYR)bdH6eE`VgG3%3;2Md`Hm{J(lonE64Lm~_U_ zNH7&mcmIGb_KSQx@>vU`M76q*3#uzLul+^&++Q{O6q2e&^Bxw3aDs&1d&x#~e=B$2 z_HRLsi)O5TXg*LKRxrG_|1M5<_mQeq8_DyS?qbI$F7m53qzkb%C=5N>oLk1_-8oGD z3cm^7d;K^}U2;U4<S5DW9AA+Sq@aN-GrkH?SEP-zJ2v6$q5*7^M~iZwM1c1?Yfv zXs)OtFB4Pqu}PI|HO8LI&VlAKDT|n;inPL3-Q! zF~4hXJ#KybeGvP1YlW&!gom(CgK&F|a0?LX6fZWpEJp$qKw8Owl8z8@KMab9US|ItbaN8JIUw-7T+(MAC^Yow5?h~V*7%j!!oCwj;KcaJ_IN` zylWWR@FTS!hC9$9>j{n^WHG5kM48~2iPqgVcU5pMSOi`;n2v3jYTbN{ed+ZIAXGOEZw@7TPZh=(R8AaNiNKytpp8?z`M{7oU~tI3z_!utbELU zJ!F(@+Q!*PZwupMnB?y)fJjM~^q9~yXHSHLr)uf{4djW?M;)mqSMw|1Mo+z}`76Tb zp9zCE`QP7WxA^vCvW|4tk&Z4YLj??oM&5v02@>OD-^R>(#2mDH0Dc$e-aWo{zvb>* zzu(;j=U}+UZ{}SC?z|Z(``tgO+wV^4HRtCyB5lmxdiVHUe7ghBSw1mCt^NDXmh0T( zTWoc?A9@U-PpY6ZX3&0aS|XGPxFD0``Um!0AWWFcZxfMxKLI zypeGk8XlRTP!!4jfzT0jW`rEAuJrumIZdB5(g)50`Qv(W)nMqaCEp>=c#|ioJB!%K zTM9;k!I9)E`8TU?#8vW<+n+&%{-?h(3eEL3?s0g8o%lJ~uI1KAAgoU`$+&|$$bs;3QKLwqXR<8!He;4uJ$IE|;UQe?8{W2`O zUq(S-N;>iZBNm#6Vlguip8GZ?)vIwYzugk#o{JROZ-EmIGBTQXkXUVfpT_Tz)5HUb z??C7t3jyaZ0>b<9eH2w43 z-4^xSUk#e+g63MOWL2v^jea2G3p0W}7W>x2zV#3bC;p20k>|~0e?V%Lh|$Q<>H`1k zoQUF}2mklfDo!}B@=E4vLh^02U@LP*3>6HU8VuK#lu(D)v|`M*1Vm^w=TJbekZp6% zn~qzyFEkk!(JhL-*8ICf^KUxan8r4yArC*==z;&FFui;x?y_)|RX)}IQek%XnC$Xm zT;yQqjwVUfEUDmguDkfCgb^1%~2cM7qk;TJW&mr3L^oFW5#sT9xZBF+Do#s7gZmw-9}k&AtKM_$M$JV5H(LcbWIipKsIz-fBOr~N)SDKK++IqJ9208$9VZ*J9XJ#-)WJG45g&=h>dS!R=s-H zW|xI;r=XFcJPN+!(`N!0oSz!{1XleA^x4&lK0zzs+V{$GsQg|peLf;#jh@}--o67$ z-yZm@-;YU9=MFjyUq`^TSr@?T>5XDtb+N6w*jX$#55=PBc{+#^>e7}X(fsj- zmOrKBj}r1n2|KZZ^Sw#}4_M&qCX7uy%?_?RT`F`6#n{hYaXRg zfi3E#NK8ViK&<@oMxF8wN3ewbj)Dl+6Vw*What>@+FxV4?%RQ#VrRx<##qy&Gzop^0`Q*yg|{L8Y<+1fUJlzywr9b{DgTYnSFc2n<#-vSEb|V{EUXuVe zvr~WbpcnSNmD5<}S_kk6Lqy!W!%fC!nhYNsO`G& zJ&daQ&U)MzIpcntAEWB_eR@Fwrg|k2zX!tKOWD%#Pij?QKMhRkexjG9|dT> z$R~^38pgBYDd0KNY75Uj!7!elXgob?^4rJ3Qww+3+CC7XvrZ#15i9*6$kGwjakyKu zesp9w>W#EFlcG-h;4pTuzjvDqvSL2go;DpJqv|(Nm?SUtQkaNIHiV+x^~Vn>Otc6g zeU3C}ks>f{6by@$b8pfj1s*P07I4O$h?K}wN3D4_dIXAaiA-=pv*BNIjO8|dqvD6A z&~bRQ_@VfaAus(=QQYYXYo%95gP`Yk(%cC>Mp=&a@dwfCZ~sI0dNH}vXr-l(hP9H1 zxR(%jelhpS>&3r2w5@(W@Q~?uMzTan{bCg`;SZ&d6}5|DIj|n};$4SYWC!yr9^QU_ z1UqQw)!yHM=XaF3R-cWB6l|GBDAdxfMfigU`4_NIQVknCnL`+SpgURf{W5%}`93l@ z7jDDgyr5%T^9N$jqiWovn_tA{bD{_SNWLR>aE6=jTXwySpV`;7*?v3B_YeS)@mZv% zy`lNOZ9EHu>kQv-xL~A)pA?7cLhOQ6=NnYTeh})|$=zNHqgoi#Q%%3d_}o6EEj+yu zJmc(#`YpiIb}jvz9u7oT?R`~`1=3Z0JibNt*VmTaDnqQIEKyt@=qAWfM+dvcoPvYR zdJ8dOjD!czkVzl5tT_P5LW2cf;P~Nr^I^K}VuRh-s7!0>4p9)A0kD4tE;BW5Vq2wS zNBo)~YqN9DT3VR!^2I<%>&GKJ@;1Jrunv{6tiFA^)d&tv*6aHJ{qcGJNQ}>U9pZX@ z5q34IOTKJ9KL7p5QO4)Tzm)O0Yj9irJ~nW)@!4zw88|-EG4}QNOuYl+)5C5*t$Ak) zR5JDMOzdx*x1THN$9t1jg7@PhsB>ro{V7Pw4qE3(K%l{0A85;Ie7u=MP!4BKJ`8n9b@$ga^9t(5>?8VG{gsAo)4&#tu?yS4`7+}C z)@K@LQBJ_w%==c&4zn<4@z(+N;kiXr!Gy7+^R*X(&e$G}txGt~IC!_3AV$$XANf zvlCLFC+r(QNa#2u%@Gx%^THv6TqC~6jA0*VO#9Ti)Ruz78N+S=CZ9^W6?1vm^vW`Y#_otI6veP@oxNL zjstgrUIUhEd?Y|oF18hz*YLXt9`$0Ou^ly1G&F(l0|+n=j4CEIi*bVrIbXG1M{q#SiL7}gQHQDQR4()jQ)`@1iJxo|s z{*!CLv^hzJzKZbh^*;G+Mc*p(J$qP+f;=qh(D$HoZKqzahHFOEIM>I_PeiR~veR zK+p#sZ9kX1BkRwR_bc#TW$=6o5Nf#;hFFvSX~3OaH1RP2deo6MGMX0UaUNA;@^K?f zL<*SiF}cH1p+GA&4RY8`{STErd=y>YYs$RCBX7lWAI_GJ4Sx;^Rpqm zzAWU(M_WXGph52HdI)$pB1-b%mdJ74fFI;OpI3`B0|BuTpR0cjlS7VRA}}S;JWSXd zr5&sBvJ59SRwOl_B9^F0%Z={jckK3B{@SjYiz5gEmGdse!L8bxsWUif?+ox%`GTOy zxfK|OZoSkB+>6nJK#-hmb}jIeoN39QtdD5>7}#delsR)_xeuttXhYUrqk8 z3$Sv2)cj*LhP}<`f_=YR=;P!iTO~aw4hR21Djn@`4C~90Ltr#LcjW6>rUG5pVLPH4 z_aS%#pDZKHh^|b3(CA7tn}}0A2|tJGIdVl?s;8_nta=0{R8NXgJ-k<+NmPPC9!#>E z4+}eijmS@*a;A+D0zrpp8oYun+A3wNA+D0=+|0btWvK2r3h4+|33kZU>qcHMNS zMP2?C1|hng)gawgVmUZ-m1K0Qy1L|+pO%()N4@vE)kC#71r(j8-$jA^?n=~-{(*f= zc%Sd1P{0_V{q3%Vf_DqX!V54em3Oa(_}t2Pncr?N|VqzacImB#}yOG=Tma zwliYCY}tS&+TM z^GoM`2+y256+r%hCeTUPR1`$n$4*CCx((EbgRKcO0oyXwzjo=qT|np%2Og|ILQxmo z7gp2&7je!PsZZCTS;+78u=ceV$mV6>6h?kUvR$>>_TXe0^^|-b(PYLFp18 z5PBF+jW`j^_}&uOKYD)hJ2=B2g40Bwuh99|F+WMcJyW|C;y1i7xgvZlL8cV1F((_Y zGRIdSqE(((%W(o;u+~bn2uqAt02ZQ^w@3NgW+@s8yRiFVUhM;ylXf(6NISxCW@eK= z#LO%kK-6nW6NQMOQ;4susi5O}eS8rY2VC`~9ssBbpJhNK)rh{0EtT0grmd6{G4P>f z9C~%Elh%-$hWKGR4br59ehBgV?}3g0T=-)Mz|ZJ~ko6C)zrRS$W#q5wOBymm`jd5Bp7Fqb->*gbG6A9e3lCy5qw4*h7U@C0fVxiO zubn(;ywP<|WUJAf5tcz3KEq5DrC-j;4Rcrd( zdI#v!{@qxWm#tOagjr#g2apk!SE9Z`5CFhGvw$kE4eF`j58EPJM*%3FnFVY@l&Q&k zb*~0H=2flp*!Sx9B!|{{?0>4e3iZhN@8dbXQ;_jKtyw;Lr0DTy=RR}&$b^@15GBq> z`Xp}XcmwV87z=b_fI3bFAetUR-(5&Q9WxG34%qse3^4UG$zy#S6oRCNo%=)~G)*6% zfcVgp`0Sc$<2qF5pTt)?Kf+g6l5l%JYOU6S>W14GdlQHF(JX+t@MrixA326a5Fh{i z&sNE{xITTH{NOJ$03jUT^T*(S5Z`kIt;hOzF}*-Vmd!tCU=~Kh(qFhBI#B}cI~6pe68;@2Sn!!vtsah6i?X+n<#5Y|0r%S7*UU_{w(hp-)H&AL z$_Ji*KbbY#Jt1f&!AipZ@&(kJ80o6_2ntq4jZNLAS9}m-Sp}_tS@Ps>a6Grs|GUaM z>sU%ev2HA`w_Z+2I4igLloy^v5z8N}MFrSmvY8|@B_voi<{S2=>H^9U*`&}Hk#INK zXSHGf@gi-X)sjp7E40H6_StH=ua>PT6mLy(zf`tHQKvStk%3VNS|6Nk`R?^3BY*R@ z=8KVB1D4I*b+Bwm2DR@3kQwShK8FNq1Q;A<3>iuQ2=uRB9|7b+$VE2tclr(z+BeN0 zwss4W198&`&^^PTAB_QR{D-Cr*$RUFKc*g};4Zr;9N$RzID8PsQNFMCYq&S^zinbt zzdYaWWN*6-!RAx&j6wJrT%7m6B?;WHP~WJ2vsVu$Ax_ms(hNp^I8aJk6Jh_rCCoVg zaI==>qC&tBT#x7eNOk$!WI!`HiueZ-?hgA0mJ4N!W`VBbr@QAu*X_EnEulTOG_31t z`DK*Q=Dm9LPg>WRo)epe-Jv!0G874G>YP=Wk-qz7Ys^2omHWG9zok)Mjc=mV^zX)n z)ij~8+ojb8_49$c@VDyGCjN`=4C60=!}#M+J%Cd##2o1FCmzNy0_j$=7Sa?}lP zYR=HpCEJ2YOIrI6i-$xPb>hE~E8P9iuY{i^NJ4BJ?z3{@U;^D6xV;GuA!<8BcqYlV z9B_cHf6#Zj{z|+R`=AoQM#4Z!!p1zO58ui@1|{q>$@k?adf_e{V;_4Wr(cTpP1sc6H}Zs2H8ZOF=*M{Q!IOQ z8qawM! zX#gh|na)KvF1)tusoO^YHGM!B7X{Msm|+)qHKts@;wOBS6?rw`68(xm_{xJ{SlPfw zLqcMPUTk<1o|B)Mg2=Oo zGYRH>k-29<%)2J{5Qf)bX451sIIFCM-3Ki?bG`)l^a z^*$jSyU81{Q z>P6Q>tI8%auKeH_G2h`++%=`bM3P)}{!?#jmN*DJg|10}f}p%){(u;K&PkDOhqKTj z<9d~uZ4o|(S&DptwYVDn5zZeRepP}RQrARd`M$NJ%ji{BDb0a^&FxJR&X%iS1 zss4P7aDf4Wkir*E#E6;mLWb-kUf?gjU5D~Oc85B6*2jQr)U44YtCR5(9j#_V(gkT= zV93+g4Gv3FLl?9%x>Hik{>K52OnY4Yii(*tdX8ML&PhDJI}5$qH5H(~y=0-^n<<4+Wl zs>6fP_=WC>n*Ju_8H8smuXUGt- zU5!77E!WJrH*m1XSi4unxKRmfz634R=$aj%a*YN8g$_SnwLn6u`Bctjace%>o`a8W z#Ydc<$!CkqXWPn<%-DRkne+<<*@=-)&nQMfHjWuY{7``PISJ!iEt6c&cY17(PCLdj z3EQZbNto4l3;9IIQMHj&3f8L$e;9(L-|TZ=4Y}aFtVb zyUH_VG0b4^%Ag>zDU^E-(tt1<3^MaGF) z=<(&QoI+WOJRnwfb4Sar$X1v94qb`LN?}NqP=SFakKalgun>g8j%5M{%~>%*uB}w| zOQUM~M0ZLF32g~|SK?#2sC6zH2@ZW~@mqX!-Y*w-m+{MZdYk< zJ+&}JWrKhi0+EbPv(!&Dge!Y%2vPwcGzkRc-;L>xJvHbKoUsJp+LxWT`V`!8J@L?G zt-B*^pUcUSx3ga+As~&!K{q&ZFv>AKz!xoX*neqMA?eyN{foG)Q;zg;_FugZTp%OS z-Q1xA8JVR%5xbVNItkRcxDbIFm?f}d8zy)X)a0IxEwABpC)>3Kx11$d96fD_bt;rI7My(U z>hmY1#lMaMbSc(ibpbG?0r!XLQR}Bcqhq7%6xP^XLqCt&~0=28jbRzx3gAB9> z1lszW97^@b9TiQf&bU=0HLRp4SRKzblv4Z8)a~mhfM$jPH5A3PZw+o$2My?z`y+%J zcAG<}rwyPd1yJ8Gplw4mMy7rBxJCQcEfZ3eMS*fZ2T)`(wr`?=c7;Iu+fSYLUA#61 zt#fdz?$od{qhP&zp3}ar2GCyx(9Z=>8hB;t^+XGk9_%W!{H}>z!N0gb7r3hMN*(?c z5zM_7&!vnC@d1n!v(@gb2e1H}s-syW+8|g~5+~+{)Ie3Y(PM5>zU9KM|t@!!Ur|?#L*ykGSJy#1Q<+<@0vuSAG5cl&PJnluW!MRg@ z5p86&c6~-A$!5FKP)_|khuZ}C0>m$M3?}GEPQUGe-KhbXZv)rrCtxL9Tb9iSxGH4D z?W8c&!@vtghnA6=a}Xqkg~e0**M>HrHe`8$U0Fs0`Lz_RK_SNsX`e=vK)e1{;GQHT zKqi(4XcV4kCSe}ka>KAX^h~!YOm1kIiE0DJ%Z$@ux(`zt_5r5u%2HtPN`{q+| z@iH#VE4Bso@3U;|(WV!j+|+_~Mz#)4jfczez0gaWI(l^};v?inO#u=4J_Qy}J8Zbh zo3p$5RW*35-jeA!6!W@i#vd~>0CvwZ z06}=B4X3X91H&j_NAVc~jo4vX=oNSMQ+xpIF&nz38ex;zM&5}1Th~~1Uk{~*M*qig;WL~ zpDB{)^_K0N6auSQGdJ(-_zLePFWv?0blO7;8BK3f@4G zACav)S!(6tcj;9Tf!J#@I5$fFVYJA^YTjm%b$T|TCzx>ci_FWmY^VYp+8#I_DE2&B>}87BGZQ~bzB>Uz_cgkx*sQCQCwyjWEF>|ZL_nlROFj^6N-E|w zcCQ;J-bwBmNj2{QxfBe8dU@l2G^JZ8~*+uO7?mL9Oh}*!l z2AG1in^eIhh=D-z<>Q}CKu_ZMSJy?jL{o1r!LIS=E(crV$kOrro{eis#Ict&Ieg6G z5xMd=iHM>7*W-zITeOJjf-6))5!0dEkRllBfzD_pRU!|LFJJB*5F=mySawqKh5Bc? z4nBIEgT87{6KM_SlCZFCelc&|Ezg&V(<3Z3R>-8+5gcWiRTY|r&%p$s|Eo7bUgR{E zccmfbJDfM8tF>u^@NY+R!Tm$q+%Z5lC5x=@T)YFCy? zx&Uh=^#>xi7~*TE4#r#Uo&XBqOwm5_!H?50>WN^<-X_RQ^g=c+p& z!_S7pTAlF@We`x~0Y-)*RU1jDARMEZ@T+nLV_?t#c~O@oG-3+HKW|he{21>=^kXMT zk3i?g+)sTq^JOz+y>#O^QREz#_N0s==;wT~L>D*zqInT~O*O)Mx%c5m^dIYi*n@(G zX?3v~)w-z|*mAyYEXK%QwF$2JZOrT+xIQVb8cuk( z`-#wL5JtIg;R28MPKGe*ErA92#>Wg*V+rtuh}>|l1U~ccK=U~EgSxPY6m-l5Et0wc zfK0xcoloVr&F^n*vkYiE)EV$Kw;08<%H@N4|#7Y;|N4Kl|s)LL^m@$-{7|C1U ze=q-A#nc5{632SDx6cOeREbk4=(E*pk8Z)5c)r`at-yYSpX08;?R~xZG(z#e*MA#V z%_rA+1IZI-FNgoSUH#}-+lQiQQSUK7lJ~zb?+@aAx>eVFjb$fZhJ$p!v$h^Y zTtYTmJa;Mzkrj$8e_oc?&i8P!ElBcL-BXwVd37HThkfIW0)$hn;l1YXb??M}&F&g%N zdUKlG5B>^Ic$z{fsoSR!C$&myY&Nuyg9qwb{Se%5a`GANAs(`lkU%l;TzZe|IppPH^1&XbpMwOs@2IW3i`Z_!{5LG zE#QEy1@^<516sfVhsXi1vHSP3d>|iZ;7&!Z{tvx@8$4)bp*L`T{yobh?JLOn((QYc zG=+>WranU^QY@*-xe@4(t4=RK({Y;9X32E%`E0C2_ci#{kE@-)* z+X5d+J9qVL6a!z2mt||d?@&wGsn+B9-yUjqS>HDG-)7}B%^U-&7K80D4tj1v*6kTj zHxJai%IasG3s)9;V>B?D^x;8(pVbL=^8SON8PMTs2;`_N`0r3T&gE8hu}Ie)>H_?# zyg}Pg1p6Q5{SLL&{Q9L(ovM=i&FT;&0QgsZMM;1)v=Dx^olN_A_HArCjONhut&)R6 zL&a)dpbW1Kd?Z-4?P~=FY=Hf_WoCCP(0L~ke7k>LORbjzjhO~1+$8d6HfmF|SY?df zb8e{r-1C1&!pG|PYkM-n22YQq&ndO+;rnZA4az$e-rVaWa|(_BAhKPUNc^&)+Bio1Ft zuB1e!5D@#X;LgRI=$-GbLSw|Q$oaMHdTCKOrWa40fL`@R^9Onk-A0`>gfYgAAOcUq z_GV(?gZX~sg5M>Kd_-gwv-J3wbVV{8R$%^h

      H>Dnv%v;`C-$|83Xx{}e|VC3$gx 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

      _(q@lTwd0|9_|k%dYlsTJ>fh_vm3B zV<_XYy=y$i`srNq0$j!EbsM|)x+ZS!;?f>C@otuEp_qC6{LbU2n|zr`DESg%@>pj& zVF10b4qOxIrc)582M;!Z`aPHI2txp~kAo)q)Ekxh1>ryH2CnumTJ@sLJz8aw_Bl3< zq#M|dq#0=Lnpl2oGlzEBb9wsz+)vj35}juGF0qyt_*ep4sO$d4&TNqk`VPSR55f-M zWn&oA{Y<;5l(t+j0uL?H;MOJVEEvp@hL;|^Ce*LWc}>4Son1Y_2<9Mr;5go;%XTwe zHX0b=sx!H;Yh9@S2bKHOy}5K`hvqQ6t54odnfG-U9cma}aJyx` z>uXdSkb+kC)%Uw-IA zDXd%hO1^#^wD3S9#v(4+(~TJFSJFOphEls|G1aF|Q|i9%g@cV2LypU%1*%c=I3X>@ z!yQ_k6Hy_0_V|BcNKgE`3kUYVdgeDhaP9HCQcdsH|AgG!BsdH|I-#=%ky*52L{`T# zgbYRQW*l=p&}E!E7Np2RtOG5#9bm}1olEvKLl#jogUVA2l^<2^3h;CkEYg7NVU zNPI8oKnSW$|D!c85FaywGUQ-Bmt9*Sdc95i56bMB8*qVH7brasm|8Nq#g=#p$R++oy zU($(m?`9cv;GdVz`jm44p7`Bi$8+N@J4_XmIk}{S^=EhNf=6Lq&ysyg=G!-Rk%IKqw!5St**#pU3X_mJ{hvN zc0+{c&-VpofqzblxJiIC`oq<3vkq)c>uF{y57CN(b4^0#TT$QUvLHlZjNmMVOxr+`k z2|oE3csXEyz>qH`C?4M*F!t*K#@w5?1%~f)+|~W_@s#;T$d(>I*J`q$n|?F@nbyWiRUG z;FA7H6(TN#OjUdR^Gqw-to3bg!@oViz1bkwrohrp6xXmnHjZsON|u?uM|SB~RP=C6 zh&p(ExPP}AGOF5Q;yRD=tdv|Y&dvJO$4dHw_SgKlF=T?4} z41jZ8FW^)OoLb@an;|%w2ozpPWIAY@c>Vd3-tg)U?hTkOSR^QhXyAjdJ&OtibOVNu zd#qnRvkDB<4=*we(Y!|_<_Oh90?-DH(Wtei_)A=F+SN}n@4-a*d3`8*1tFb7*W@Xs z=wq(p|7$pPWqosA-$j}G)1egkGW)2^n95{1yx*TB%i#;p;C3O31eqNC@{8veS%|6T z&pFvEwW^-I>eu~T0S#U=xYl1X&0uRl)j4`og@!Y~wo};D%#~eMc^80QKF#UUb9^S; zH7S05wrY~A60L^XDZ6F{^Q@X}*0lUr|8)uv&$@SJs_!dhMt-!B6CTzlBCq?`ex_}n zy2opqYL&)lwD_ne^LVW~C(fr$6VHxE=xl%mebA-5`gq1%YHx&nv+p(tyGL)059t$| zHcQ-I=%Y=SUB=)!kuDpnp)`RTbd(r`^dWl-GP)cbt_d0!uP3anK_PrA)GCf>A?l(& zePVt3D#8N>AGA88ou?YuJnUY%lgo}y=i#vIeUHN@?-ULt|0z!IWUiko>ua8w^n>ip zZdcltNpx$6r{B>U))e{=0VOVSHNwHMDa&bKy0LWfhX)++@%0l3YbpEL$LDK)O6Ol< z`R%0cD4M3Krfp1j@E!9vxANuW4+s77-z(X$A}Bk8&-4v8WbPZc*REdj_mDZvG}&r@ zI89g%5zpGIn)utjFo?iiuKetA9g{yC-*okR6Aq*3cRun(BZ~Wy`$BT}fGE2YU>SE+ zNptBicQXpSoBCe^^SaQk{jN48rMbkd5eG$(MXJI5p(vkkGQY?fRfX$UF2M=$3F}uB zPw&sqnPFS2YaqKpM68{^f zD_RMx%plz@4bwV&+RX2AoWSqHwAo5q%8!q~cWXweTrmUZGM-0}?ag7vc5>k9m8Q4A z;&tmZ#l*5QAG;JMu-Nx|DK>G~--p=xSMGFz7)ZcwqhEA2_EdcIe^L06Dm)l;+FoIy zGptaot|+WYg+_Zn#!K-p9~70W#<(~4k4pBL&|gXc{x$_sIUz88#|nX-esGyCbU1`6 zGEp*gYsQWUq`Nmf^MYvCxrTh+l`)EhaTZw6rQIm7({41nwVNR-K3L%6pnL4E`8ZK? z{^->yKGGR#sSMXN=h>~?`-MP$Lw%NXVrMmKeXNC2GTPuQil+r|a^40mMXlFEke`Sk zo4;r{yUIsB3q9T@(pta7S`o$Yw^qPG3uQ1oq~hfv{wz)J-LF4q_(OzzCf3I(g=snb z-Lt6HWgo%B3LlVfcdk8$B+-t%S3;rdO66frJ%-Mb5=W7kKVq3c2$$=`lZ(iNL*l9u zmI(c8^Z6Wh*SEF!zty(b)RX~hX2=-%Q5p8P-^4Z}{Y}MZ+3<##(3{YY#phr(6&Gon^L2WD9Ik+IaIEW(Zoi0 z#^3&)$xw34b6*5_%~R-u?JDFq#EqBS$^ASscG4}pFhr{v!o{Vw+v zSSEdd{peHJg)y{|zoCRYg6=cl6V%IwAxtP2)Kn^3BX*5i1&TjQv;%nb?_WH)8g`gdWQIk9L3PotgZVMXl9jzSyoq@Ot-t1PYJC*%$D#=4^R*~K(TJb1;0fGzG_#yN6)O*|o!(NB9Cm8-jXCUL zOMO$S<}|v!?3)}9Rwak+VYwMXt9?Q|$DzxVkcZl~KYG*-G1SVqsR5~46)NS@CZ3ut0t1L@ z$kgb_9>@zadwMgwwlMYbw`J3FRt)GxU??-^%`xGgwn%bH;aDE)eAUD#^Ni_m>Zz+nW7luK2&m z|2^IBuXTqM{N(kUjF%tq;uQF+^*(EPK@7v;7@aIXQ&9<$CezNe4ty{%^ zX>I;>wx4ywtBuWx67xNn1jq{OjBZwNlL!vJjmi_Ldre3MQ=1-?Ny`}|Y6*HU<&6hs zeG-aq58=W)GO5`Dj|G)yRn@1<>(lWPg4?%3F(Tpt48im&iat3u^;}b|IEf9M=~mdF z-&kVQ!G(KBBfs{Vuh)ik?Bqs_l+9+kctK@5$#kT#sgKf$tExt^2f`hPYAlVpzo@9{ z*4WgC&yf0ofC#wmARH|{@4^_ z1(S(fQYbEwKO^L!$xAko!v?x7VH?gWwZRJd=Wh$J7k_xXHKueR_O~|c+W10F|BOSe z=INhtE^YA+W9a)h^ex5K0>R*UJL@~NA}$;E&5d{{x=|Yss?b^j7#)J3MOF_p8n*vG z%NGh-XT&LJoF|u81>0yFRE6)+XA09!?;lT}iG%`92M1N50%3(~s+G{_pNU>St@OsP z8&oJ=2vB@=sTv`a2gPqZPNxXJxAW?M3>*AC(Sl+RhjTmu|Bsp|3?ih)hP0=?%C~1F zFdtzu)El#6uj$;i74Eh{M&irA*OOmC%Mk}lLfp3oS|<0W;WR&D*W3>5fBjQ#EZ&V> z|9H*z*wt2-bR*~hsY}!Cy%Y3*jP-8y*%oTssm~qzgb#m3aC?Wy?e^|-TQd#aH@LR` z;q&wlNYr?GB>IPvXnhSk$evo_KHLT5&;f)|uTQ)~2e91M)~Nrq%{o6}eNAjyc)mu9 z>cB4352{~VGhkm=_$53isy5AmPLlWyk#a=)waP#~vwZ7HW5ZhejoWXNBoQV$3rWFu zAy1n;6H4V1OKFrqG^sdLrb*Ek)nnGOl?7)f*UP8zY`u=7e!4#OK8~kE>XkZH`_R~N z^mZ+FzQ&pjpzV{+*T{;mlk4-_2P}YbMztV=-LIlSGJ0quYi4);lf3cr)TdD+*2dF7 z#rdG(rYfy8Pi?kybgU_LrEbqtpuyDT8okCT(N;_H&g{3k@`;~~#{C}b-cU7B`sJ(G z-E|e}dchT*9qEro(;vWsS;Ts1URk8?(2W8B`%XGF7<~IkTRCpQ=kcLT2M z1m#pis&wUf7FXE~v+e3vGAV>>9?!MY!`0*15zrLlLYV^A`Gp_N6E6h5E0uqI;mWOA z9xxN#Cz8XUXG8YrB!s&{gkWCh85?)`=FoNQG9^ zZDm)hlwi=up}k{|ysx$78Q#GF2dHaWv3by<4!$UN_R%s(gk5lF@g@V zLg_7pa%ashw1bY6mE^^|9vSmz0-=zNuQ9gev|w4|T0X@;@l0&mzf}keiEepMH)0Y9 z?;A3Xyw;+&=w`ZoJtd?IwwNpLZ{5l}Y2Wwg6CtC;G9obU+MT`qk@OiF(fE83Pke{ zt!MKKw|4@hQQEBoMCy1 z--s5EoU_|YTiq>-cc2MCCM{>?ps!N$>(P&z*!p}3bHsXVBqASWqwigm3 z+sjK$$JQ?Us~g2N3JJ;X_Uva2{`T~q6sN~H!fotp@4q$I8(yByQzAM)ya>Z~V zo5+}AR2vyn-i&I5nA%NwBZu>2_=KfiOW@LtfqycL1tu!W^9r&P9Eqq=YW7oAf-w{jNm zu^vFg88{edLC4U}Iy=gI!^qh0N;wyP(a0&!OxVX;7pYG1-@f;gkAb z>t5TA=P5HBqYpv& zSr}5u&%C;e{^Y6TAJw`%D!GyW=s}yzN>7n|?X)BGng6o_`ea}IRP>RrZH_no&y;(L z&F@636nli|it%q(gm;ytGdXBin{?5bEht{S7tkp& z!2Q0sD=Wg$Qe|0z4#?chFl(F_>@zUavf`P+_inUotIiam)4dnn&zHCi zO>X7ga)>9OLo^LnUup|VSJ(zY?{ScZ1}4TYOu|ug_uv-y*1Dc-e|`6mmI49Lu&xc@ zJd2iN1i_*uhD**X)fE=i)r=}frFJ6&4A~TwHEdOUhB{gZ6}R4&{$VBMzX+;suuu`ohxsTcwP0-$wTC{))2wV)7;QsZDwicg$ufz z*Rt*fZy)!>OPXBh=2)H*@ZM^kt@(z#+O~^KQ*-85 zFm|*_6im54*P)WPF@w>1iM5psY)=B#HZJVjIykxRBVmyLfENuz=$FDAf^FT$(OdCc z@2>59LK{h^8=A^~YuFDreS*z8EIE4iQ!s{xEx!>{e(>^l`?DJ8S z`YGirHqBNFC)dNw>xh3- ze1q-Z&Rh4SMLQTkajeoKRfY`M1XZTuIjfXM_fxW}{;Ra#r$ADCL=;dt1b;)dg)K`p z`6mHRR~wCV-90b#pif4TFa`Fb_fN=tLVtj!@fd*M4=eDhifE#u7L$;MDa;7xgUxCM zgOYFh{%OmpI)6f5;&*e}2dM?`y*+xP?Xj3WEG z-9Pqf)`twc5zjy8?dx;%y(tBt+k=PSLif6@-(c!T`&*@6#B;8IhQApFHM})zA~=Jc zBD9zFi|fxXa(_@z6|T&h4!zZ)0>5jzHM>giUHy^Z6NPC_l>%j>15Ik7g3AEZ`pTSEKTe* zhM~%@^%`$Ev#I9H4 zUV5NR<7B`0vibk-oGW{uN|cEiv=zE4mZZvR4TEsOy8;7l*^}L;@o#q8yVb(q4JRu0 z-AA`+7a%qeDZbA^o(p+l)i;ybZd#(7_UNWV z^G997BjpeXYq^4^`ByLkD6@MXHJBS7UGin`)b>QV%M)dXiLQp&myEETiicw25Jj>X zd2@4Io{ffXtWRyw(0MkQh+h?ZGQg4pKcxXH5O;WpM;}cOd)e-$u`e7*W;qm=&6NZ) z*&mHPeGKz-eWKWC9l3!D@^9VY?@0zFZ$7Na?L&gQeZ1dw*;9IkA6e@YK?IQmzOJRZ zl5X(u?3*X6iH8l=R#X0d(l^KbUTSE*h;8v0T{wznQVVfqk zxe%8z3m!b9HP~*FeuUhR?qe=>o7|3Y33hP^`^d}$y+UImburt`O`ljfas;7~r;SX< zZU5%F$(yw#A@-ePnAPOrR|5_|CN}jkn2+)Q-A|rR0L8M{)V-L5kJqe@O*@gTTM|LP z7n8$|{ykJ-{URqv9s6Py*p|9dA~@uA5oJbB+1fftNSMPzW|-#PgW{)Ov|f64pkCU0 ziH)Hnq?w*SNO^fXiw_OK)x5Tw+UTayJ_xt2MXr@YpD2Sc)Xt|3G*AeLlh%+XW~7nr zH)q%+V6=U_x&wMkzk_6>Hr&JwdY92YdlKN*{^K;`Z83v;_IUJ=0(qhGOcJ7c)Cu8K zrPf)b`XU*G&(;InJx={@b0Qd+8XfGxK?GZVCuU|tUq1;|wF~5+Xu=t3t;H*5<2hYv2 zeRhzbX;vwYhX`eUAMZ|sQK#30-iuTdy<;?e(NrNGZMQu5+rH$b%$ML^Bf!E-*=?ry z+;cv`zMsW6?p2>aA-+KOj8C95_NBUYBoMzj&P!$|tq_1Fp_ocd>OtEgc8WMj3vyaU z#2$i!6Y22^%Dh+;2;TWoXZkI(f-yD0=~IBhSlak|>KNDxmOkQ%kflfPO#d=+3Z_K> z?;Crc!}PLe?{nsePM*18oTcsD-Oq;i zIE-5HfO5{NRuK4-6cQF{ydA@HopF}%j4u)Gq2@~#z&~mvGY%!ufy$`9?BqvdQ^l6x zcm47ZzyAQI;MdUlzWj)$HU9mZF0}3nTCuO++?LX?RXhb4Kl5jX@hV|_xDU9y%d`bN z{!=Tt2gVIQsV3ub-(xg&$N1iYzr_9g!VMlD33XVjSb|IC5l z4J2xTSL@ff(Q>TV)L+2EVDtQCAvS-YXKPeEK@ovbA_(5!1smVT`a`h zqtSO|Y+64-0(7c@;~iHJ|L!5GPxV{Dyy6f42{>B9^2riih$zo#oJNxfhWBZxSrohV zeZt5yDIm|8L^6N0l>4sS!icp3I4GX-Jm$|}yYFWHT-t#7v%}_&dKQlhZzvUX_TH7; z)!RqCeAMf+{z(wPN%Z3DO=@mF#t7}mFYzt)C)9wq&Wb)x28TB7)b~nQ;B319L zRU>2#c9AL~X`x|etu7~{-BfW?ul?w-N|czBFPmP1NM||dK8z}Lj}d=9=w0!cCmNC z8uZ+7oX!=6ateH=14HrCM3Z#2iD2+ee5W-hwLWw>u-P@HhV=!}9ewMiwu3=`TyuWz zP*FGFm{pp#*VG_6IWehD2PQ|9@wkD;>t5Ec!eyJ1LMLm$=03c;UP z_5+nqt|5xLVIrP8JzDuYA+ON=Duqbg!a{%Wc_|n7%29^Lqph6ip!t z-lR@VJ?Acu*YI(~;?V!K?>14J^M7rBeqrpL1^CS_`qcQ{e)%8XEVo~7ekA?r%a2Xl zG5&^n3aAe!p?8442XJUE{9XLPsyzPw{E+SP_Y-#%^7kVP|A+kj;*SdO|4qvK)cifw z^LJeQT`T^sMYVtm*0^!Z8NS*o&Dv|i-e$U!Cl-Rp6#sJ<%VOGEIzW6?d(2|6zA;z{`rm*G71{=?+1d^dUh zJQ;ea2P)_28u)8YVbT4Oj3jtJp?Wp_<+?u^R9fzd&a&?o`0sIHM(vk=;fc3)GcUSX7Uo}N*GVfx z^$nu>2KV;s>XR-9j0NF&nF}mx-`#eltzn<5PXNgflD?`DwutM9r_YNU+GLXmMe33b zXs&9${D#Zfu_SXgpR?A2ja|Gaj`KYN-n-{B>YT$EX)NU`RRjLb{Gdf8_B_`cJmf3q zS>6&+tZP+6k)<954Tp5k!4(Dz zLm>~BU*<1(RbGyjJPXoN(ZeSCWg!S;c@6B-ZlK9>@D^Uf)IoG1J= zq?XZ|+o@W<8|)Eb2*76Yj`3rr(!(}4g6(p4-3(!?=NJ>W=2e^7iB0`D4>svGMxTtI zDsVq#-lNYdCxqS5JNVGxg~k)I*isi@g=#_Jgo)+*xwYX(OKT5i$*6gLMw=D}>ek zID~Z%!J5v)WiPNMdWZETM&P1=n6Ul&at=W(F`-Z=<3k$V_x>S7LgeoWkqG&0@$)WAg`U;qV}j5kHX-W=Vua1;4;^)?z!DTC@%>!bJM>^**8 z4Y+35)J}p%w^>%AJMA=Ti-Y!lU+>s7zi<4h(?ASob5b1PS8i2>cm0N8*inbU@?8AB z7R%+;@|i)u_A`S0Xi=H9=xE7|;2cfMMhE>CHH4AUg10UVl~$X$uPx0S#htpPc~mQP z-y+xXIPgF3N#McrtD@XDFA#I()hZI&CrDk3CO5}L*tPgZZT)M+fghkpJ@{bq344PH zl`~5IT*qsRz^V(USp-qXeBCV%eEvpruNc&CVHe4$ShsV=_I zv)i4}kOF4#`p;zImJ-3}^$RS4etGVWkR?pNys-MYtqrNi)i`=Yi*bxR*^3)eD-g@$ z{%}6}@56fSnzBM*`wlcu&NFgmBF)|#+}|9%M}CgaOqxGHChFR6C`E9Jh2^im^>?PP zrC&5vxlf3b4jK{#6sj%aH(THd)#li}E$eKCW|g~-K)uy+{>UbCevF}sHkd2e6JBO-XDL4s)bn ztj68}B`XZ&>&AG0lVyRUiy$nNx#;{nf0N$jWxjQX<*s`OQFCar|TkxLA* zfonH&gcaCAiRH+dBawv^T3QfLUy3y4s)qcsoYXxEhVGVAuEBD7vcdzk=G(R)YTK>X z(YA5{g}NwcTWj@ytZiLxB;U9Q*iUP771~+_jr0Co-?(tHHYk3uZCj1|;R*k1jf)x; zHF8HO_-Pw=SrP8u1A3#}{Nw-s)VN;Ra?>^2pd9g0YmWP0YhFaNh=zsZlx+_NJ}vEr zZmW6Nw{FX^|7-1w+7-34_x43vrAy27(!OfcjY(jfn|eAQ^I$7gLz~+CMCDLoBUjYv z00o&uVdnZEa$UPV|6gx;g5y1zT1qX;jC*IRIw*I`bM&Ms{Y>G<`ycdljef4=N0~0; zDi8P9xN<)EbnnUb3OiB{ks^;s6e;|0XdQM85es%#^xY!?fB0Kj1cjdL;cs=VZ#x>_ za)rDMEXv_0+8^UU?{Cva7WlD`p5vX?<@hTr7Q3JQhCY6w_Q|NSJu=v6qOvmkWX^FN z-kAUQn8NZ4eOIi^kiV+fU3t8^ECFE^oJs|(|NHOmB^Ex*|Fj_&zqXUCq{-_$#9FBb zyn_b+({!Hm{7>!n+DBTc_nqx~Uk-+(pI*g-{*0T~a-+mfuKKgYWzmhyDR-`_WGt@- zjeX|nszYtoS%NJg(Qu#ja}_6%W3|id?mbeol))kuEGX@nT2_TU8NQpzJF86ny4{FB z?8bWdplrA~62e&`oKn7iKT9Ml$x6qrH2Z@=GY*H4sklnc;=x>RH2}0Qg8gwO_D|@x zN`Fy}>Hv&H`ZPvB?A0T4M5xj@yp7!u@8N#OF{ZB#MvR$GeHo4`#lwcPkf&w5hz7Z! zFAlu&9GQ6c_jfr5tvlHoiD`x@3sML9XD;bqa{H^rN;E2B^s6vEEq%u6d zoE&z=EjG%)i}5$slj&HWr(O05N%za6QmrqSoS7Q&GHYZ{kFuToa+ZKp;CtIGA)CgP zLWw+NLP3L8(CMJ|9mlGO1}a0}q!z;V#4`>_3h$0@sq+<<9vPXDPcW355ao&VB^8PE z73FxZS_di!j6lQ8AM_zmi%{aLwc*v-)ys?0tzxdK$e35n{l5Y80vlV^CzsYnOwy40 zD3N+quD5XssRjV4i7i5)>X-CTp@-)1VTc}Dco2Km+VwUI4O8!^FT{RL zcAe`ZH_11SXK|9gBNE{@a~?FLo@hv|6UQBZ1QUOWs@R_~molm#h08QG)Vvm(rjgj0 zK_%y0vc(JFCQ|=AGkwGxXQnTH1A+Wl$*QrT=8ahLyW|}eO#FxixvSG+%3VgKMtnqk z9S)JNE|>NX!6pV`+IgxjsH`2GKH~M!>5E^-$uh+nQ(v4yS0C1_8rsQ>_Iz)FBG^85=@{A*Ic*jLtDyQ+ zVg*9>%FQN=7BLbNHS`_!;knDydcStQA@!&NfE97aAYZd^!PojUq%MAxEl?{7usiwH z0n-WmPx zi<`FSxy|(1Iyb}A-%2;do>6t{+;w)l7Om;7u(zw+C0ska|L5FE-u_tyULzePp)yqh z5jrj1>##^?MLMpl?Gh31XzKN+q+UxHv_+^i5n&|s!pF>bt$jg&XB%}h~O zX>~$SeD{eb7rE;{BY_EZwYK299>xP~j>_$yNDW-3O+9Ni-?&>MJ@6?!dyRNxu6iRg zN;-nMMZyYD{p^uQb_5>D36IbWD-IVj*C!X%CQ_@>n|-AzL+yI1DO3q5FHSXuIy-zY zg*uN1x&>B;*l#?6O`uPu3p;d0TUV>ksnr{mqc^j{H*vjbj0fZyx-q+Vg0nvxnBlm! z1!QK4P-=GD8c666w$9!aK1KE-Z=N@=uC9Gd=z_Je)TYTYq`H zq2}eA2Frd&AM!~<>gD={ul74LecoVt={2ppWRE9F?;B8=NvVN`;DSCV)U^#Yf4{Nc z=+u5|6T$iHpID#V(l<8aDuJYxED89-@3^3SHCZ-^&U5A3EiD-IPPP0^T1hW!OFYZ| z!fwj~d-+`WvQ2KIcEE+aZ@kLTslx90DmQLge#lFlSZpiLb(ArjfSxff35jJjH&L_3 zmv{Q|Tf_1(6Sc%PC_Zp1h5JoyFtu_%uJNB#IK|56J!Prvn^lR_W_KO8oWrElE4b}2 z>2y2&ER@U4-rHN?o))%&*#YZfI%w zAVXPRourSL?w3QbYf5a&9+Z#IGQov8wytbA=PE1$vV zL{umEtP(y6av%bSR_hZ6Pw~u)+hZTwza_UmuvR*rPzQe8;^*a|_x|}OL8Q16HBO|L zn{BVAkSJnf?*!rdA$pH)RV){RTwzR5E*3aIOT-$NitxZFxKaOO1iU^_3pxaNsZ{A9 z^_;a{xxKuW6>`+;%s4xxgGma>v7k@dQPz3ysL|>v?fza|#|%^Sk?Xjdt|nW!0L;gi z?WL|Ixt{hhoELtej#tG(OI*!vRI||z+Di%Yjq^i7(%K|M?ZQw{{8^oDka^iO)=!!6 zv>A)|WLai_m;ib^l^|LX-^lqm;rRi)b94R-@hyY(JXlzl*8xOQ`4b*Jb`I~w6h5jfQdea{1=RMU_wyrp>+a=KUl+ZtoJs@=c* z6IuDjz2TqW6FzjCd2+{AGyM`24|@3A_atI&47w3F$3@I5}*=B(sv$j_fW1)}3V8MfT*9A&cDuCp@zi zF^6d^!OJhzTMH8;ssj@PREq(STBhSAzl1R0<#0#-Se1tiN!#@W+)qpO1uqa9bjw!goL=g$*G`0nf5fyxx;Sm2=`tTre{H5TIsn3xlOqs>M$<7PwyWjlI;v2uiC4#}dSQ4)1t(78#P5Zjj7fBHocmD3aB31$~)Fl{nw!VcIaw~zo zeBK#-Zi{a1^Ah`fJS|RgJgch_^kXodx|zoI=;0sW`2*5P*-5{LdP~X};2YCrzq;mu zB901Uv8^f8pmbDUIB$Vsg4o$o~xn50>b>dM+^5~=NrOno%Ed&z40 zZ{K4zFDrYUGrGEzxw_(L0dm+Uy1N%q&MhV-s=?bmZ&pY>swIxF09J60l$ z?u$w9+CaR$%3fq;r#iK|52;!oKS9*n|HuGg|9wHpFh#e$tu8(ZV7p*aStr zVQyR0a6_+<&}{2g$=wQ~j`CSHK;I6FIPwbc&qYNg zoKN!xLDrHY3pobAevl2P4Z6eZ(1Z+FMLi)!+|97550y&TzGQ>bqSSe8Q0KA1-TjD= zcR9cz0d7<5c?xHb>s=8@n5``~|CLxQc^Pma*0!UBpW~EK87Gx}sY-lQ6!FuqhmdUo zaFdr>l;_V)w6RD86g|7$-Dd3gyS?lifJWDS*mB7W}C9E$^ z*6i6jCJG@@yHt&D7bD72fH5IA{7LM~qZDZk;Zi;~eIwyFdQ4s-@+>xbD8qlEu-*Wq z#!m}QkpVv?bim(bxOQV7unzc`p*~v2@}QsPlL1wO&&mrO(7T)`t6k-y7-rg4r+w&D zBK8-$u%7x>yBGh3fkzQ7U72=OPe^y{Gsp36HrNRWsns0iz&Q>*J8EL4eNFC(23Z6N zIz!u-prBkUR3i!E;DY~>fG}R7*Btn+z()xdUp|!MuBv?e+dY<{MBOVmX~ed@=}OtQ zIJf792x=)+_r}nrw%m>wER9~d5p!TStXX^SzRZ*E=x}v_8lARIPhskcdKAJ>K~h@h>h0c?hpanF)wp9nbS9YijbRZdwrJK9>3!zNh`ILh%x zkkTypGVOHeiJ-07;^nc>+|3k}`G&grh$Qnyd6JZSpRBr!mR^jhZer`!1wAA-b7c1( zT=5T^sLc1T4|o=zZj{4T)s_C$uG-BrePMGV{f$~8ccH@daVA7b0`sqPp^nv>@WUOG*Mbna&z+{$>cM{Rxj62G9q{plv+IY;0Qk$&%G9tJ~ zr5019-fBp##kon`O#|NLH7W<@K(4}Iha7~hm5kK8I`vV14B?~SQET+U3f0O7tL!@0 znwInZc5B~fa^FXh41Pn=cnwR~wT@8W&$DKPGvMER2EE{$rl~7yS}>52-*H!nR~cLT zsqy;Mz*6FtOR+*q;=x>lCboY&Mdjl+{g8)0djf)5d47G7T!Miw!QD1g(~M!gG|+Jtv+Xh;1(E#xGr8s&m&UkVd|T$j3aI=%I?IjO49tu3DZtu*;#otcN(p5Z5&K)*>Ap+&1mPmph|UH!bSkhg(nO`+?1&7imGK@t)R=MVL)kM%q= z%e#Ub-qk5WYMm;7*N z3essq+1+^P&qIkGiswt*avZ4r@liMt2j=l#9TH*s6YP{)GeW;Q&z2pro=#Dk_3q#* z)l#A6ajgpT3sFiR5KUrU?Ru9FVS!tlc$UyKD;=+UTc6m}H}uWa zjj<^&=_a|rD&wqHorcT&7cXXUH~FU0SFgVE-PqLcD_1aR@lV6^sh^5XZ6~RowLHnq zJ5BlmzkMc@%%g&$Y;y-seJAvvXDB~g877=Q&yYPb!vE&tN&E1kAGw6`>=E+};Rom5 zgZ6n5+Bbvtc^>WaOv}+m;W9f=0Tj9;=mypqO}E~O?&GykD81oPI3tI;Hqy}#HD`>w zG54{+6t@X|Vf{5{v|OEgFUb8_RiR#*yrhV%^i>lX>g7RDpKid>huzp43^K)_L8AbZ zt)vGLMh{4FNFB2x5ZvkZhIJTR-H|l9HvlB|<79cZNEKktp&!*21k_jxJcy-CU)mK_ zVps31a$lM%-c%U~T#Eo{i(+hK@_Dul%K$%OL$RrqA$7!aW@xvqcTLC3J`eSKk#`OV zVR8;^;u{$+b_Ko?OTWvAnCFj^9+3oyBm%$Mu2Vc2X`Ydl=2qC}xpDvLek{&jP`Dl1 zDZ_4r1G|~UP0Z$x_Pyc-GtUisjlv!})W`QQGCrM%$*^qDpt_`$huAfQ1vCgYu}wKw zce5-b%_`na9jwDBkEb?;$G>e4nmD^Xw}`XFv+Z{EGjxK2a=b>hElRwB38A3T44)Su zMI+J5=nRmaM$s&DXv)x&8@@xn701AF)@6jKO#h(M3OYJ;q(@9)CpTiobF7a)!?Bq& z9V-M%oM&L3qt9{{lApa6A1<@>xz=H*qgchW2)Wj-;ilR21^QkcMT_{{VvUuaEU!IfUXrP@ZsIBCMB+(_jsT?&`Ozx@OC5w+gpp zvKL5(XUdE~qED2$aH3qprrOL8w>`wy_(3Q6h9;I5!4=|HL~xm|h@h?_O%be{CwiTh zZLUAA9m=k?XDDb_x_Y}3N5}QCDV0m1g_kZD-H6sEZ(=&TDbY7U*}(z?saCqxOtP3l zuO;oJmMz>ro@ap)R)IwRpq* zdv&xTOhT$2y27rL*5>ul$@{_{8fn|4*FI3JLKBTrrS@s4YXo(b&ohJ>Nyc8M)+ zgV?^BtMb&^bMHMd#|Jj+Jic+h98}QUoShblO`E-&FUF6oUa2HCj=6xkd0dMUvD260 zg68s=s+?}0JZK7m5 zypgps*E2x+8rXP`%6KqQoQ;EZuA#Q)_~z^PN7!Y7zmyr1)mBd+f{J%O*zc%GCYi!jE=X zba%OF$3?dzbMCffR~@MN&$hjOBiyc;!${q37%%bkc=SY4>o;DVxI^nVm>Gn8Y(yZ( zcqt>uiG)9v9rDxra`sR00X$5qjHd^cbHmGBbeX#Rn#1ut+w3uw`kjvA3)iypa3HDY z^@SIf2^{}sXs0{-9tMQDabI+!_Qj^n5*-T9M@pC7f6smNwqY`9*fL2FGR8rxf|2Rr+;Y zZvJDPICAp(a$V4`rMd>;6~=C}biz>VdY27hO)FMdMsIm*ssh_{3Mi5N-8FvgV-a;d&-9VzB2Lx$gFAiw?JjK0Cm@g?aAX(d@4rn@k{g+&__@)PyD5$C@ckF? zAO#*t=iFFUS7LsJ-I*itg74HyHL4Zro)*#JzT}WqMMXEX#~2OHx@* zBTF3d1%oAvUE8&E1wY8EH1F2%a~}0qNILNg>PHG@6m4xOVSK#1VrpzIL^JTFaNO$$ zJhhc`dg&?%0E<0TPyR8LL#odxjor2|%Pyf__4}Tvi-7L!Yw~HAO#+A2-_X5&!rjsY z#tqT;DU2{X}guP-9wUyUa-%vh*bLcimV{aMs)K;qO6iK>QXz_D}b>5oS zcHLV2!vA*KPpiAPzrxzjOo;`+h3&_e@CgWbYeE46z8%(oVfXqQYvVQN)K2(f?4ibZ z^*Qkg$8|yQa5b{(ifJ_j7;Jc_6Ry@x6$>x9IiuFSK5*MeahDYUk-2``%o*Wlcz5`^ z(MMD%g({^vs(gKW0JzoyEZo(NBn6M64_nzvKNakcs5Pw8e~S8_n$~MH9^2_)!aOta zK+J~WKe|uxd-0mGI__?Y#TUNPuOWTjZp=CCv0Jv7z4V7Z6Av`G9}M1qRA?iZ=Au)R zrQi~?mo|M_3_W+QIJWtMs$;}c`6Ea-!p2F*#}xQ%h`GDK*jojBPwH4 zF963{KihL7MOu}U{AgV+J9>4t4vVKt1pn0K6ZgkjX`P7`R5NG-7qw*_c2?^Eq-5ZL zY`>u!6$!iyOQ1{U|1kmJ1W2i^-u<<$-o38?wf12Af6XV*_l%tU)pA#XBvwo~zKbP8 zNxX7EAy1-5JWq0SMuj_@*V__Q_t&fPSt4^ujwcPi>$<~-GT42>SK``8wdS0X2@Twl zbWZ7n;oPzQ=A7~gHB5jY5a*z`TYz{})r3QVeF(4*nJ^fBt@iyFTw9&v+TZT79T1N$ z1o0vdB9P_T&k+SL6$Q_O8?}C5BHHn|=YAmimHm~=Bn}H1^cOv+%l@Pbw)A1Ph0fU} z*;4T-BmF%^+dbn<$ceDnAW#yvD;F=8{D2N%r`C|b6-MA&jKI@-5ZLhd)$aHsxVh$> z3Szc%itXWYnAQEJL?oQh4=bAhCsaDBr5hR3Wa&-Uy4|kKCt-G)2SxtBS>E}OE01LKzIoj#-Gl>!f5)PK=M92 zg=8j&{o!o&i-TlCIjgP|#44!TKfBWimaxssCEu8L2Fv6n0*x_+w??#X7!+Vrd7qlu zR`HrAVz+!B=Y`CjMp;yZ^F1`MgpIk|`S`}26Tw-1vPZku1_>GFE(^boY^lb&)WUj3 zE7;HmS~x@Xs6u+J9p@@BYC??+93lzAaiZa^Umh+cADkhcHB{vV5IDp@p zy4X(^XU|4~Tiw6E!Pou$BR@3;ih9=FKRS$2o_-mEO>qp|sjuoO_{!FJ%?q(a{W;;wB(IJvHzy z<{qElz^ugco07w3pDAG&z_jM`F7r7CCTNvJ>IGIQ%RYMK7C1HaLZ(68DJ|op{k)(AqBOK8V7Ud#^o z?j94jetqhaYZ13iV)f4KaWML0h?_g?aB*7K=uB<)Bnk%onosLeofTPvU;i!FQ~&*+-*){+=GCtm zZ5tRYqy$?7HxHLvSwBa^X~R z^5Z_&_P1cY?6J|bfmWL!Hj7OSiReM`$wlzvwJS9qj)EO5&(mVQIcf?+-nROM>-xrn z#(uWf!wPpPG2;0Y@=*BwBk;DrP$4fm6}7%l#rmIw#3LqQ^X0X^P)_g1(kvR^sT#sJ zt}!iEq!(#@L2*$pl+*`tRKioSZ(pwQeJb$+NHfm*IO2yN-~F?q%%u{osasoP+Im%1 z=irU;2bk#8Bfjtq4;Jf+FKR`%-iYyK@-fY2+AbaG&nD7eW{nvnwYgf*)uKLVoDewM zkP)4i#SA&mLp#m;y%2GC-`h=YF9myt;@sl>2X?BBpB~B%7glFlL3dTQ>&hun{RzAT z`6}PN`E)4SB-s0$h}&0Iyo^&~OjvW@Z$NU`=SK;>9F)>;fcDTps+YR^rsrf@5=g3< zIA}SR!wcQBNR`lB!us8%v0D`YWp)q~x-VvQoEiDtWa6jHL$lItL`i@oh1+Gh#YXx^ zl(N~a_9@SBvEl1xx0KrsDFFn6*%kMdapD&}qEbsU@w_$UW#D}R&Z4% znW}Kvi#&?K2`3~P5#0|j2@#vQJU4KN;Fm8j%~?gMWxX~b&Ju!-W4wp)!8V?(urjAuc1|ySSY35Gjx5*zC>29jLnv4e4w0^6jeb|?d zxWA~VmBtSq!(DP%F)G0PID-;AXJfc}hI1qRe8V)ctr!kz2S@Tvcj?k=@nCw?mhAWc!DA3Am+$O){0A>ncpi{VBhp=84wJ zrFVTmJuCNEwcf2KO4m!1=4L0ay~Uag2QOh0ML*4*$OW-H3l*J6ZfI-+=VS z5cgN9_(H*VeIh8bcWhh0to|D6M`{Rl6>q`lT~(*&8JDH!ctyFwJuy%mrd&zZbB6qX zQP|$>obEMQ`L&df1js=~`Q>7#A?`xxbV-M-eiawG&Vu46`k?NE!MB~N@Sa-s52#<6 zuPZ%*4~Z%?g=v~Bdwch)?OF39UHfedfgYb$V&9-zxwRJ^`Ixy{$ zuPF3t&(@=IeDjX`&O7J;da7AswOrR1Mr{VsI;<`vMoRLilOW>bd+4LCZqCfN&@OU= zCav+C3u`VR9z>H71+&DhDPddlFpa2zRq7i(z`g-GO@rxBtjoeOS}RL((=NFiT9{ju za-%vZD>wXxx0KJXc6)fTb_Vc{1dZ?JW zcZ?v_t8d}Z#rN-#Q~JM#OHb9xUNp$GTspuZ#GJ1n%t4mB$#36}Wj@iqEP5|AQ-UVG z56cRQ8xJHn{Z~8tKv&~;>S?E3znpUIsj8gWzcAKbqm$?)#&}6qQ&iDAH&Wpf0d7i- z9K2EM&LYhZ`qLrHgH(Ww7yr-EGhM^MLQJQD!2Y+HRMM#V`1S=JD##K$wQX=kZv?_Cq_lVw5mRR-4Lu9mJO;; z`1#E*qIH5nwR@lMSM;!5oL}bW2E4OsYaV|kxAcj9dn!?X!VjE@OK>U@CiUJ7PoZ}#t?z@q?0a?QA1J?-vGX!kT23W| zWN0V;v0ap!`H7lGxzMZ6R@A2V9#;-)_5DT@Lh10zZH(mK5 zqUC20GK+%Udt+b3BNm(bQ>johmxyfj<^V=34X2^GR`RjrCj$I1JQf1H_4w{}bwS~F zvsz_`QLt7@oBq!n4Sn>Lu_dkatqsGwu*lk6jUAt1Yh?T=VS8tt@+A8$nXpxP>clD=Q7E4*aS7(@7TuiC3FwITWX z{@UR?HvcV5q0Wj#Y{XL?*;3BFz-hQfmXO_az@xH)On&Q=oA;c6npokUIS|M?NGBMz zOj`wnsK6RaZr*zWOdcjk=!zK2tZmgZMal&C!mbZRR$d64K8xlE}AMP8YjLS2fRz)vd=dI<$vEnr|OxPbP zK?lCib=Yx!as+LiTD5hh>(AtXsTwQGtD2lHg{E<|e)7wwnEkoteKP~+Zr0|OTK_&w zG_w844HRvGklUYJDK2w^RAuPOQVa#gVSUYt*sT|BVS(&uerV`u2EG+k5$DC!^TcE5 zAt!i(No#ZBjr?`>Z~wNCIQm^iTyz@BjDCD%K0fKf|s4=cwO@Lb1 zsVsQ-(aCB6hhK&vku)H~nku>r7AA*@?qJ$r{E<1@UU~PLdrF%rk;m$`_b8j#l-mV& zdVnqX;J>E7Bui?I4J7N5{n?JBC>WoQFl(v@ysUu~Tg7JJA9 z$p(v&v>{dU)JzA#VzqG*AoW`%UxdX?yd`rd?!j#o@ZXZ=%tSKyBa~N$paIx`31@Y~ zhXA|q3J=(~-+mJOf)PLq&6zx;^rn)99?cIBP&Dy-^{Iuj-!c~yH60?dw{O%eQ#hGn zWGn~XKW z_e6QaIDH386Fx3mXBJ4*ch+A}j;tfH*!X7OtCekp+<~5>qA8~A!DgnA6*nI}t+IqF zo+UDJRIx`VCTGsP3MX8sPeilmNv?@>d#63F;(Rz2(5|PNRk2$>Yf9eCqO%%B9_a{; z9tL8{hI_8&lp>>tJXLshyRfMth+p)ea?6Djgs{b~3k*53A15K@%rtE{aIh79kA1xV@9Z4l&S(mYbyCG z$;sc>#gdcPw~2*P4|rB$d}1sGDP^;Z%pG- zaj9MNy7r#&!TVVpUBS58SKuq`8dn#VStuFRG8Mx?wB?J$9~fqfFu`1dC7R#N6RM9; zS^8At=eV^D8^*5DF?<^7(9>8N($1Crfe!GZ;2AL-X-7ICD86eFqVUJ>Y4BWeY$yU= zh_oY6BmxFmmk3-PLeg`jJj_&~2oA zsD(N(Y_yi1RmCcnA@S67Rg@g|RVy53?ofp?(#=KX-evwjH@r5EnY=`dlv^&EpVrkg zsOu_se{Jl+x0$bLWNrSd>TdokV>w(0={Rh^!ZlqE3DO-Vci6XR(40R@9gu5_3eWzo z$4FiL-#^fYRZ@cGsz~ItyUf->g>Al3vKV^*ORHJ5<3v{fnS6c=ak0@pL1OO8t?%F>@ zIu>tEs93+b5=Z=g=>6qG#O!D4MJJi#thJ7_2s<9squvRhVQ%IG}AHraJEqBRb-#rSvS$yf> z7f7(t_EX%r`YWiP&lxN-HzV8Bw!qv^gY47?HpbpyW9-_EOEt!RtRq{=VAjUi`$jjr zA(&=g-LU%_Lf@7V3&6O0Av5ax*C#ja*}9hBy%l)1Led&KvxDM>EW^xT@bjPNfZYR* zDeyeI-zD;OM5Zr{8O_g3_3a-gZQd*&ce7x}q+=bJTMapFTBFK-{X|Et-8ZUrEph_E z$F>cIVxGEChi;0;)5H2V-v=`uSE7rJ>*#Bn)Xi3RxRd@RmR5~Pj`{7k&&rQAd3}ZC8~tM@9s0+vm|0#g`E`dfS53g_YdY0@^pn?96E!=vD%?GZ zl8W33mFOtgpcOWFao5P_vYI>A{~sywL7fj?$+L06GH%@P@#2EWR*vkya7Tqt^1195 zx>|@2>h5*va=3hLR~#;(za{paRcdo`^RBTey2}ZwoH4Pfbs86-maM@Dmo-?UE$rJ% zz5cEB6!$~0!kq2|gO)qF@>mHRxs{U04bs*!Wj2>a{(t;V@xK`xOVp_l!6N{k0}E)7!;E`KXNwa5YEr zjkZtxNL27%=u9~QQc;eA&%7JzQLLhv?Ay$mzGO^p-YYis8d116BDx^#0+$F3#tI96NNYI(FNlC@?tu$<;(y&z1dUizi+34$q#$IJMY!|syTrLikWF)or`MfQls#yBBzXOE zLIq3CY;lmO=gCW?wW;FE1U@n8!i;*a2zQTb?97;Kh{;F1X46gh6?)^A$@{1hA6mjB zk5}*R33JCJR@x4YnquRRoJlXP4N(CWaPG+Ne;XJP$~EU9P&}>U4?EO;Sw43 zM=DewNNZs%tai6tAY{>q;>v%Yi1~tlO6SwZF|xmZ8T~;}JigX@S=;%{-fuCJE*e~& zj?rL^ZxTIcTiHza!!5oZY-c)Kx?Lz08CDzQtvUAmeC9e&-L82U{p^Pv5-LCrK0YqQ zmfIwZ_CVB6aYqS=nF0a;It-Z5NeTYt+<*et)C%l`C-W}Kg~TV?2a{in&lE~~&sJ2qZ-uME#OXVhE(Kb-pqGu)*9;7 zP5YOb5cEHoJ+Y~efg8lx+{RkT1tIlBpDxGI^hy&Dr62^Q%w}jJnFq694L?h3%PE4> zuxeX$O%59qezUZ;O$i+P6tuMsea5|MI3O+nwQ^j1DSe-E9}?w0wZw80-*bJ*&}Xdt zN1`v5p6ctMDX=(kyv9FnUo(AjCUTdt3|bH@Z4RIjbe<0=Ro6RXc^^<3evFXMRq^@Z z`6IVWpMJvmBZ_ij?j+e(D-#X;#-{W)HLR`3ap|Q~n`j~Wf_+Z{WUM34zjBO4+2P*_ z2Hp07I7{SW*Na9w9gyMMDt($}X68y7X45sTnAJhqldmYZ!W^|n#-5f-PKhf~B4)JD zt!!6fP`3W21UbWwg%zO^Qoy6sv(T6IwR$&G&vY)cbPWc*^hFgO?g+>yb4cFBvV^)3 z)zQf_E6f7a(!-)4%Em2ziB6lD_+@$y58kkdyaF`X{*qD4SdwyO$-`=G0_lCb0Y$yM zKDDSmwMK;xp0u$6|K=;b6f07@2Tuvfnu+I;(96$S0a38WbDZsXm}#PaV<(bd={1GK zp^tAq^zrn=uH3V=Ui`*OP+!MqH;aZ_S3Yc!T=HrigD00Jex9G&W-DL0renVD4hgMh&pJJ zOjm4YrkQXy&JIdF<;OnDvHATylg$4Z&Kf7{B32LB9sa zZ5ecSksHm|nyaf42(^;FA?Ut4``SRl++tc^3Xrwx2CLjpiMC+=mtpHZ;e@tELhf)=Hxby%-v-yVu$d;;T(Wqj zOF6o0P7b-ID_$+L$Q&!yHE%2U6a8rZ$HTh$ABBO3YiR)e=SerMHvSI-=yDaiz6Et= zAIej@dAC;n5tI)~yW)!pDSTMFVEtK@xbn2Gq5?|gM-^NDapy_-P0Ri^uWa3V{h;Ly z)B!hi#poK7X|rU7v1u0jab*f)aHnpBf0Eaiqu+n8WDWm*$<5>&O8;K5&!X7WA1gH| z`{+2BsOH(&)IiTP9;UDjn6<(>eak#cW&0!1sWG1V>X78Hy$6ds2?(#N(h(KcRk@jC z)dcIE&mLEBcxW(epX(AuHbv_me9kZMp_s9?$zjjzM=`9Arl3=+RnYa-?o1Vg{Ye)J zI#<~qoN90~iWJUciHlCm$D80Q&pe%{SVKH|{N1Z|6zW&niUrw1J!gtZr?SqA-557`oUsYT zLVa1GFWJ}i+S(g`A5WcG9#5T4Qlxd6sCV!ES2W@3rq_f`lmBst?5~NweH1J64gFc_ z)r-yRXt8f~yyl&o4!(xPUIt_$sAbvrekV||hqD55a{gIexn}L+AZ3|5@NICWrrIm! z`(+@f&MFt!rI4hYA@By|rwi^C)gj#7)_=yPE%)$&+b;eMy(l>%fR92VREY?{gW9MS z&Z!x_qQxqJ#HJa~LjyvApumlFSAXr3X#n~+wEoUBYU)(V(18g#_JU5D&`E7@hrQ(+ zUh5kkJm3T=x8Tv6Nn646hoiIALbqf}2={vN<;GIC8}v znz-lI+V-tA*B)y28MgEV;On1C*CnfuZQzRkR;12gb8`+a0f=mRRG$Kt_g zM#Z29d_{_KgST%_I+ylueN3hQ`0C?h51qUxRes^x7{7t zO}kw4EGZ*fpXB%JtxFkSeBH*U8;FmK%83O!9PaARsVseeVC!f2J@5aa?OWigs#XDQk0Va_q+Bv_r)cf`OV+YNA5ZM?C08Ruh(9C?V^2X#`gvO zc>C!xTK*QAQK#O;Z-sCJ<-FXQ60V=AjcGzKiPiIyr{^c1_?Z`Mf3{sOX@4lksaqHw z3m>Mzu_%ovg5u%7B>tV1g$7}hhjo#^R?VuXZjLhCzsH`fcQauKPZ^_ZKc7%CK{bP| zSo6o=qAt6r>VblQ4@F>-BquR$v{2^?tQ24>I4$a505-_g;pEi`*^O1&}^q(i@xKh2Y)bBuZF{`JXC%$r4HC&V3yuRH|FkBM{lKUu}{5$Ux+8y?vR~;)p6Jf=-4G>CqPqL zj47G@ztozn0Bh$uPxjs=6Q}1#VpfLg&)7TU{KGUBjV&-lsVu}AIN1`X%7Ng?s)e}a z@M$-meBIQs;d&SsPcM#JKCWRemWdhr=k4fZdUYYzpyS5dVM{QRx}1a4TmY6u;sQ^m zqky^1B(H%XWp%cPq;~bUM&KPDw)lZ))X%K@OSVu_ihO@bu$^NOCOmVty`?B@*A|5# zKLN%4ZZZy@55YP9Z7Ly`HmRT;RPg&}5S2^BGF{qOp{pc&g#`yD=Ki=QA!gFWEPuR; zhjI!Lo@T4oQ9sZo|ufkB5R*R zS$lU5ZVQUVDH?5-M0f7=zu>ySq8QP2DtyCOH%PgJ*36<}u}!^Jx4XgeHG;_(%Zcd_ zIuPH{s!l@*>&thRKds+J0IgNO<6Z~J56X;|@e`a*md=y02Y~}6F>o?0C|9QvjIsxz z=46&O6yiYO_CflHQMNu`R1_orp-5-{TA_d3Spoe5PIoBmz&6kt)oHAa0obJTp-Jh1 zv`fuk`-$BR>SO%TnbT`{r5j76ALAuuC zr}<(wS_#|-WKYxjpMVCQO}^$pD3;J`76HJ>+HnthctO)K@+{oC_Q^xq7OAfljlH1V z4Op2J0^-mL9;tTvCcz8!x_F!V1tjv!*`V5LOP@yM93l`?5Y>&Skiy$q-l+drzJ68754&$f;>aXWk z0#Ee%*aculCXL-vH|*RM(l2IJ6NeJNEGJIex?wsNT!y=LOJ*U`~&8>@U?3R6_t4TQbrGsn=E9z;%Y|FIwn!CuUy_PuCN zhLl^QUOPepW;@pnE^udLN#)SR#uSS#R;-${GUQ!#lqd6fy3d*loKit!vY}DQR{zLV z5`R6SnUrK?99se(1>EEizxeAb(OUdvNN{I-dp5g{J!;3rct-$0Gb05LLO;f0o88w6 zB_>LVc`1ufX<+lgdWY%e3@0Y7bCQ)@dIEKs3La8ikJFOebKsn)w|d)$6&nwS8G?)F zkv^?*Mx3^9`d_d6zhFYh)U~OOFm>O?o@wfe#Mz*!sTOoU%1A|a=5ns_Uj$7rW{o!%e8 zWfBtyQC3XLfwtyMJsK)hI=k07Q;#^K*NPr2?Duo=qYZ_=`ulK%#3{fZ;SJaV5c`td zF||Sv*6NS@56Lk`=|u2S@|8TWR%}ksqy%qGa_}5xsxjYdmI(HTGYq^$IC8#Am`?4;Ct*mncYZP)zg>Q`67OvC)J1$Quip%(nRQ%%Ke2i5VT=h$rU>W z1PBDSu$%8L7GoN(TIB6~#P5OnbJ5NAM{I5+w=U`+2t@iX3&uupj)VJrB#ftH3NOR? zu+y!K(wR`AymCmq5tR!?R1FD{Y$Fa~X)8j(8fJlwpY4jWB92((pDdQJBr272Gv2}{ z7oGNQ!LTFNp*o9zg(c&A2#RIVEq0?Fi-tum;Jp?ka3cUM^mpKmY|$^jMVgmlxIIKB zAsZ@u<&hgHt>>x>#j`ZJPY5c}lEkTq2*dkYG8%IjbTW2300p#+Bj86IUL9y+~gQ0Sne@U?*}bnLdbnte7M-(G~Nc^g#GTJSmk2bN(Ax8HBc$m^6FE22X>te749&JVl6S5qRX;be;wP+Dsme z{lvt=8~uYQe@gNLknAiy?_wYS30+FBHp;eOClpqC_5Ph)>PbgeF|tGKG5o0O?%B;V zzM#)^#!ukLEl5(6$9)_YJb^!xM5~8Rr6G)4L9yXvy<~e1BUnxmSgt*hdIE9bV%Bh? zOAy%#K?4hIM1I4uP`h!vUV^5d_IgSLc8ar8vi*?8MU4uG@UHSf`3%K-K0@&lg_(Ph z5tkWb;L;nG;7cN3q!gFFU@J(2%=T(I0_DO%ZX*67q(NetEy);s zfTBN+*TlE(3PYMF{z@dcGkne1Yl{At;GOqpXQbjm-IHmF{d>AFw-v7+K#C$*fGl+Y z7Uqwew*P_TUn!_&6OAC@pXj09hMQc(v0&orWa8k>0HR}2b`gj5K`ymiK&G(*-UwhT zA`!!XYtzKB#H+n552=^}F~anrqTe78ms-u*GI8))RWD&N!+tDFdK*tgmY@j+0PKaa zxIoL&_=~RVUn?D0%6w4tMFPV8rkrd4h#>czbQq(n()b0|#A_JNsA&J(+wIHm9G zUhRwqdn~nXSHO{@ZR+S%Q8bPjrB|aCejC8KL|IL-0w)qk%0XO8@x%U~f`2ie12k&{ zY-5^W;eJq@Cb1v_`}h!ba99}KATTLr6Nq+JHIqucT@G~xXY#dCuelH(;I40WHy{`o z0%bF_daajMB!4{me|H2{qgE#p)qr=gy33;ws--V0C5Z_1pO^7n-yTKH4wbeOAc==7 zdX29Kj19-mBA_u5NCV}tD}X}+Y&+aP*j{)G*UxBthb?OEbkv?Tdt}ORSNRyk0fK3S zm6hXSLC<2#Lr1e-7erky7gkOlE1|f2PR|M4qvo9l{IId6WF_mwPV#bAO;^zvS)Fa!Dd!F2RqJv?gFO`M)^ z%$WZI<4*-)Mq#_)j(AV8kRMexeHo4_zxx@eQiM(XG0=Jg129Pcy#J6EA;Pv7M~uK{ z?<;~TNgoV+4a16EB|jOf<;Nzc5unH|v)AHCT}x12gYKgkJOs6D4+io2tXU-7H2mgR z@Iw?YZ66~l5&nyssKhAi!BZ!|vSl&>Arc$upBekP&l1_Xat=WgmM|x#phA9Y)$vgx z!u5SeM7T8kC^zDjfd6uH;9t~QxV&}!A~mAltc3MLV$_$-aWF!(F_;jNaN-iN4tD!$ z2}FdxK+W}Du?}`bf;*%76sLzGf`NCqV3`>$@t_95odD-gko{T74nK3N+lTSX#m#q$ zXWbCo*4cD0wHSz7Jl9kS3pS#*%AqyZgc;!&xUv6tG0uv{AUHj(=^+!M&eH+@bFzgo zbF83n?n!VXhcW9F%m*3+6f`un2b+3oHP>FLbs7l!HbE{zpXI?t2rh2cO^5f<22enF zYMAR8Q+@zUEGIM5Xh@ZuBJ6*=ai&E@Y7c+U|Gkb#||D z?oj-TSfJP+^wd_A!g1&u;;HFq*A0^BmQkSI=;Uky$V~dC!4>sBhJ)IzI}y311VWOs zl5T?-8S{B=MPQNWlbl9}(-RH90XSIBz%IP2e6ftc<+&5e&{uWLVK7m{{Z7PBgkt)K zM2?h6D#t3c7fqs2vVVQJi($s@j~)$c2j&0U-QjE8Ep-PogTZvn@YKLk1oH2F6Dpn> z-dFJO*)NEP6ji@m0fT}k{z)XbGcu(L;^8d3i>Uf29@P7nS)%GP$&DlEGG-jD!Y|Q~ z@BbS#>?6izKN@2F>G(2@ktvJE)-g}X(ifO=gOF*-Jt4^Sdu>n(N2dL-GRW~Qa|Cq1 zQ!R{H_qE_WH^!np&Q8ZIM1s+AgCJ6^^TbYP>!T3doIC0${1Kh%h)r-CA~vn1XT?nl<%BieB%BLcITNP zB1S=eAWoe)8#pz$HXNt=O7+1wb%@RiHcn~&aU&)`9q%oOb@gr{7HW(ydtDIgawNDj z4*X;jxITD?H<_7nJ|3jJ8jJo3k-JffASjZ|C?sqA61({Rzrn5=kPpUmMx`Wjy8m-I zUE#Q~-ZI9NNM9COfjX?cH&B8_EF^vaaC)`m2CG(*y-XIvT#{3$=gD)(z&?@GQtMQ@ zRVi}SFjt3NwEg<~MyFX}jw_`HP~^D1OaUnd2~>jO4F0*YV!X+bAvUW>npD_D(Z@1TYqB5?{Jbug}+=uI@(OoD@hcP<-+ju5Pq{>Sg8W8m9jvt54h zHk?m6Q3DsDO==b>DmA;q=mZTE(6W9XnBx$jm{!O=jv8G8b#6{5i&-dSq z{pa<^Yl16ymKC(ODzG-M|9rHG3NB;?Wvl?_hyE&^yPln!C`n11?-_6F%Cxb(qr$#}?D)KYu`W03iQQx%?TIS!!Jd_hgEpK&sX(3}L$ znfMM2&xSK22owv*fr5WwWpPEyxGglWkvu2;fMK3y70^JWIe@VeC5M-{sIRbH)FG@R zi6$q|BebToz*l`A+}8glpL9?VCbgPmWaIv9TtsbmPwteSfowURj|WZPmxt!Er=N_% zk5RT5$<*)j@djr}_Nzd;<5f>xM5Wo@$#7?cDcVxP%Fd-#iJCy4yBI8`E3|t`)s(gR zV(ce0rNOOypY8@d*CPYCgbMx3`v6S%c4==OUc&nJ(}h8O^Xsr;Uus$-dFl>mB(QD) zAHsCimQRIgBt@456p-xgL4?Iai}|-d2yF<`R9_W0iSRkLvBV~5q1YmJ!;N(Qz}4hX zuUwwDEM-)yA(qy^P>6fBdul%UuXVYO={R-|*2p0^v$!)xNq5APfP4TB*!hrlNY(*! zwW&82Cy5F_HA2JiF6yRj%&`%h4vD;2L(CAmL!8Mt)Spv+H?AX_mXeqQximQk7m?*) zO9=jo2uyZkOb*DM`vt)c@*XDl6z3(2Z;)&}$23o=@3JHYdk=z6uQAUe9`Fa?I+0(G0Zda%9vqhhbs~P@Ox=?xTp7(zII|=z%314m3T2dBR6E1-z2PKnGC0yJL40{ z4)H~wly!NA#`uz)?lm#IgPa#UY_dP8&oC(n0*|=PHi#{Af-u0<0$FcYY;~$P`(mJ` zV;!XlGb!T$=+*oqq?RXDZW_t%NfpCioFCU&Ix|ZVvzSR+?-1hG>H{3m8;m=`DkwTa zn&&#!88#8v#-rM9EHa{j!Z8BV(WgCB z9Pdy{q*>U0G?Q8!^NXX?&?fi9A&XxBCJ~CexSl(p*<5gt(+bU|mCvExOy%GiaKbYR zI?Y+~4LcSRcw$tducOl(1vu4Neza+7_l1PIoJh|-sUmzPg~D}Wo9 zVUBkik5;NTd$4yn;SYP2>G-8HM(WR@VWMKr3(m6p?#z%ZArl7w{ML;o%lkVJ$e{ht zIIw%Y|5?}#^DzA&X)pIbg=Cx7FFmG^POd^aK@(Vo{FYkc;X*Chfg#OCx~-qmOLljFYHKucpp9VS&svJ=_lVKnn&RY?6HK_&7IqXK@_8w8LU@7|^Di!4OhC|B~# z(`U|M6ou$8I0pMm%^~pdyRI{EBe6wH_Emt!UvJTP*5!|S-lJU8_+nNp_Q)U_fA1De zFWsCwOO+v=HY=7TnSqSWNm(}@Ln?T!AxTwwzdE; zh!<`qTjXs>jL7h zJ#XCJo-d_@eeGqhLiSXdqArj!JX+d-_QgVz(fZkP4A$V}QItcCuFGy6EhjFiW2 zUO)>6JOv!@;|cB>mA?M!!KD(+lrKGcB{xLp>Z#{6Kux zbZtuw7CRSgdiZ|6jdnGCS{NqB`r1Nz6{D61)y?e+cLCQe> zp8J~1@7Ks*uO3=NiAes8vMBm(m`Tlkrr;$0z|VdZzQ!+=MqmpaQ|zt5cAYr+9PW;| zBWw5uoXiUcJ7Ww#!I-VK3g`@tt`lRFb&@HFSF>Ri`+yK`sNmhOBO!U2m)?l2N9VS0 zomHo=aaJA5K+2io#+8hZqjs7K zL>$yxU6uI4EqRFF>^Sxl?`?h1@?V9~eFzZW5@Kj(Hp;$?$HJYlE*vP`_7n0ND65b~ zfU+kUKv~K+bTgAarn6!RB0tY0oZoi5@l{nWA{8@9-k3XZxHx?hmk`P{>(}$qHZbx4Z(X&@NGoth?4hCK2oX-i5@0_-#mVXUwo$bZo@C zSnn(Gpz4z>`|3NAd!DuZVp+~17$g!Y|1&QWEer_(3UV=_45wVDcQ<(dOb>?eF>*T9 z0}>PH%+gYsgVuB6$H1#Yru3c9B24Mbug)~3@#p^PlzuM`2uVMj@K0%JRrr*4mqs-9 z|3mWs5&U260ernn@gB^(f8zIu0GQB8qjMCY{+|o~OA~}z&;0m*z_`CHZGv&D3m$7s z+aW{4e-pj7$7%VuK~m|#u>g}qw!uzHQQY)_4;D?BK>lTv@-|M9<;Bf$LgN2z{PBAH zTmBd0cQ-lyN5f=7qik~=M`62TjQ=nkJDUG1u;5>0UU-Fye7C9#@WVt(1+*D4P?{qS zRs{TC+^3owvmTJzsUWIh9pPJZT`xi@$h+?_)>a5fRbQWy{b}zdC<}pK+vHz)$gzZH^+Skz&iY5_- zLE^`ewrn8j*bzVNpS>!4jOR;3n)X*oevENnNBC!W-@z-7{#|2Dw(o$&$N!1;X{5Zy zSg{?KvOeuvjE$`h+u$nN@gKs$k$CQjD`5tSHIU%WsI0XB8Q%);!og3k1_!?t?f6{T8d(Dd#(3s8xaPrcFpx6R_3U#=tkr(Pa1k9WHw%;Wmc8_%QP zVW0D;Zcg}>Sv1NnW^c`;zK8vDxbFS%IlNOE(R269QYUe)L z%9wEt(gVI2@ISapJ7XY%tUhz#8(=^2${F$4c^Do$U*aSZJa)v<0-TS|I)}ws=P;o#zJk57U5P;&-_ zPseplPe)Ft%A8Ic>G~ow;_62$Q2`oc-G-=J}JDn494t z7c?;s>~3OWmd*{In8$a7PRv>D!Y3wQa{SuFoRBg$k7zV8pU_fdCT-*1_k_QPPfTm6 zUQf)cl9T)oH41#ZbH&UQHZ|8F%!9WWUvU2J1tYqxzgi&hv ziC-8CxR%G>@3HMmx8h0cOAdARf{%sS74YcSXx{0ig8;&5wyYYH6l@IqgzOMXr0`?pCCk7QaMZ#uGY)rx;!RypnzYP!Dp8y_y3=g>=1JrkGBXFz4 zZN#`Bd9?;ka@&*m0J*5)-6gPW!2BM68c*(ww?82a+Hn(@ zwL?%kgmmAz@E`j(9_)0r68)j8gw7^T_rP^ZN^vAiAipAvTQ-gxo0gCe_Wc_kPTDB4 zk~}rSD9s146TKC(66A-mI2Y|*%2gY_R+$s>kA&t3z-g}q1R?xE`$JFv2=u$*;t=$^ zzbXRyJ-78t=+`UuSJ5wuorV1q``)(wb6NPjUn-4gqEY#blV35`w~gD%L2w36)kDqc)B=`czLo`=}8Y>#Dj9 z64(#bzUD?;H4@^_lY~B-jF~-=nJJxg$~I$$eW<;WmW=tS=ZWOsV1GX67~sG4q7XLp z?T#kcP|rExY^eFioRxrlP%1tG!ScbrEn)N4NIobyD|p_**bt(&m`OMM8!X8C*YMez zDOGDn>idhM+1qT87V$tjCSGeK_)79s=O%9g`AHvLy`Ccw2$@##=KmL*F(VCP>_O z@e%sfuSR^zhU%oXNTPhwg{ht@^)wbK3iQ@rUzM*}pq2HX)I@f(kidkDYL~_>paJym z$y5(`cYwh)cDA80}oF2U7$K~y&(q#LFO2$bA0{v z)siC-J{6-#ui@q3zec3xECK6d>j2i>TWtWThm825pFRV+DuGgSNug# zgl{n>#1|xLWikV#F^1c)V?lAFvIJv?TLVGP*g(U}WZJ6NVA{_6*gtJ6zqP0BhJfRV zg@79W&KIfgAS$1L&Y1iIXytSLOclu(@hk|Hd_9QQmJ-@{MTom(AS4bn%H za3FA(_Kyp+jSb4v>yK~8QLT|F2;hkQOR#t0!axD=1bQ6-O%St}2gbVkPicPkmL8Gy z6}W)4@Q38)kWW4&jO}A!ORaqQ>RJgGmBrolahw{gdQK8T{W@mv)k_Nm0Q*Z;Xkp|7 z`i$E^^uhUSaqn=(R0LuRJ5`N?^p{|j5E_OC_LX*%Hn0n00dn{<-!J%KummQDbLL)` zM>Jq$HxR|D%G(g%zRPBzikIrNrASjTI;p!(dY(x?Z6cLCsg}}P3BUL9*L0koAvH~5 zmhH#_z=QUw-+f~t6yhVUk}$wFIcxN*@#`Q-LxlLR7M3Kdn`Mv^O2sUyFGV_AI86E{_-aIm!o=Qx|=A_`;XZ72jf+@krQlDhFzM&mC6S@OAX zoc9sTDaKM`MO8b2ti+*iejK`Yw#K1u#2?yC)j7XFwUG#1-su1e;EkYih}ex9A2do= zqe46t7WL#`Tp?qu*a)lPx#^2B6J0j}l87S|xOW@}^C<0udN2kyhb zF0PsdlB6xhm|LeBz>^WMukmO!eRsqe>RL`k8j%lZje%_DwB7I;(OCR@==XYP9kDI= z0L9Yg8pYB`?s^6KqxrEtCUmz22Wcif@=wfsZMC4#krGMzJ(E5{68n2Zt!k+;W>PEt zdl7yCTA+!huLJkn#OFvPOp%ST*YE;Uw+i)m&~LV%@AL}fkQdh!?Mq!;nvnBp)ez3$s;PWsS(+vuy*wRmbG z2dO6ivf@Mbiy<*RNM1w!C49`Ze!;)yGu>U^Y}(}|19}wo1BGdh_-63>C_0}TX^W(o zl@0Rg626-^ohBE^L#&KW0%FfD9)q{H%HoT1~}*6gmpj9Z&Ae(;OnTo(UF_PdO-m)J6M-jAH?TcpKU zIl*5hAulpLIAt*YjxXvY+0u2kwswV-YnaI>8)esYmd*mvO}BZG&N9)eVIT6Lp;-HK zTm8Av`uv{$+}i&9J!lsiC^E{9Q&fWTxCp>=roz1u$VwGO@E{d?7?kA9Q4Kks9oZ*# zXM-taci%M3Y=QlR%xI@M26rCsQY{f>SljpEaWUs{sZv(pL@bNK6la!M64i?^iW)S% zE-Hppp(U7*HS1fASqA!-g?UWD|70RnE+RdgM3|nSwU188LN!~Yvuz4kqqBj#4E9il zsEjC;T!HYX5TGCFW>!R{G&JB1V4Ktqn3GcVZJX9R%|Atf`}rInkX%eZ#lM9`L^|Lb zmM`KT;K0DFX&eAJP%1)_f9X82$5~YmR=k$3@+AOMj@dR5oR;qMSaQ2m{;{3FVvN^i zj)5pN5|x>kHX~tSZuT>Dt$H7#tc5-~SF!`T1e*tZ5dXuN^#ftU_Q5^_?c;P+X!{$i z_7&*gZ)ny97U}dJ!&G7BL3;b36+D6Trs$`VNu4VM9T{HS!tZF}_lFWhI)EcV=+W>= zwm;&tv->C6*5qi!*rpyhXo1EFX25PnG%xY8Nj~*I`~av;=>n8!iu!`qxjbt`zuj{h@&ls6pVJ_}D50E^WXD&; zi#l#)I;4M@>Ab*WV&E}0@YpQyc;Xj--3Rf=Qyy3&`y>@%KDMcycvK@$0RBaim20R9 ziCWU36c$ICpQv2B@EsT&Ljfy}vzO?dA0h6UEhuaG_-rC@CF8jkkM)?EevDtD`U49LDGe6-S9Y8)_-$21dT}c5D z=bK)J+n<> z-c6v?HuUWKIUE{(;E@x+L7~6qvxCKy%St$Mh#j->>jKkTB=0&xtem01yPAwT5xmbR zdlhdu0x>NmQ~o;T?`SJxhg5-;MhP*%SM7+YV(vCEO{&^0Q^KHwqS0VZNYrwP7o$Ni zr`(jCT8Y`n@l<7>sLjSiU}wu2T>~&+1J?!;w7_)*6*!0z1|>JZ4gZ{_i z3=f42LemqX^MPLB*4Py-ATQKiRTziAR~NRy-=6U6AgE_&L2*yt`AA=5R(H0MdV*UE zsgUwcT4C{>-A_BCzZCC)W9sbPpUdikteTY68^%#^E8Oq0hpDlD@csp;7yo?C05G6y%q`gEc3C%p1LG@2)wXVTvZnO&VBAZLQ1oGiiK z7&EY&&Gg5tbD9lu??sRcO8rZWvL*O#f$1}h_)K6rP#XZ#^92BtgJ3$ci>cD-!jxQe zH=!8^TppXL2)K-X{7J8x{4n4&K*lNj?i z5R=3Ffm?m9Mo6zFfQYzx)0OA2(D#8SK~*Q$`KjtfcxObAyO9Kbt;XV4-NHX30-0JO zQw4D@CO~=x*VUFCkulucKa%!o-A^ebUA?C|q5(nkZ&{R~cTky*eK>c4`$^`34I)Mk1oZgf zFM&D2L%oc;yK}>}G5Fyx@hfWmwaFOeumW0o5dXh5?aY;o$5VP%h~qvFZHf zE!cF9te_2W2cY`9$1$tegFJ^l z(BHmN*HQfvF+s+{I`drRZ3Z!_r&xnUTJy8!XI}$k!8kIlul5JQxBvx{2>zL~3sbr) z$0rsRvIGzib17l`$=JGkXAv{?KcO%80rts+Jy3yvAOLc#aZZRMz0|F%(K;{?aZzHI z?jHmUtS;*3EWZ|uUe3+NIX!LM8EckVwn7|eV@%l?HRzB=mPDXi@>;chIqbh`%f~w! ze2)jvK+k_mEgyie5Vz0=^oD#AP#;iX1&^hp$t+y$1VlO6ateeNTpW`_|C46Mj2VJI zC!0@c&v$HNmY;=-8;pORRe?=J*!*C_G(J2Fn2fy!e7*ZDh#BZSj$+QM48ms!<*wUs zwa8(xX+M&?Pqv+sje@PAalk`NR}QLuGN#C3tT@Y;WW0A4u2Mnt)uI+?mTjD+GevB} zeKNMF?J*;+`7vWmCC=Zqz*cZ`y>(ngyYGU^?p088gWK;gr4uT}&Fqj1Irq9NiD6)=fFcQf zFYKUp!f98HkU?<$a=ihnvlooOsQd{i6%&B0+P|q$$9zu(7G@BAFlPR&=`%n%0RRGw z0Z(h|3UFs{Kp$|J6&Ex&XA~gx4dmBx$1^<21;u8EDtzG623)^`Q-kr@KVBUiKNIY1 zwh(XOO_}JtlbydiKa2K5RZn*;G?9ih10~gWR>FW)D24IiliImRbVwrwm!NDC|E*ZJ z)QK&#)VD~Ox@x+OW6Rn;)?;wZXcIzD?EJ*#+-r6g`UtYw@;fwi#g7o>p%+qk3N ztPVz-3h$o4T5Nj)0W_LqrW#I&7fJg$eg_zm}=otYC4(cc! zIS3P&iTh7lVf~o#KdwP-9&q&d3!ep5kmLKt>wZZunY36WJrF@xO0p_FKuFl?iS!g* z`12jog%{;V5NTqu^s!+l15G|pHcps3%b$|*vitUkxd-JR@xs7}<4?}#h_Om0NO6w1 zr$a_OTsN1CAN6i48S(hw5tBafen1WyqKo6nn{XHJrj|0`=KcW>`jb82bC>uBoESRb zMD?^dIoJcnShwFUW8EP?jmP=|=}W}1wlij}#PGCz9<$wc${75OE(GC}DD5pKpYPw^ zfcyeijTt`^9H!$0d+G-|5>`ADmQWUwfbpYzY~eusJ-ZNGzOJ27rWGz5E!5a6*w4VY z9FOO4TvkE_2!*2{IAtwrNtiMUe>)Urg1@-y;tL@n)Fl*+34mU`dR1tx{^ky*hI}v` z_47i8;I8Xf=t6agg_l|KNnIy|gEbw^L&xsNYqk5_uo|mEU=Y-)n*L!qUkuG@Ivx$} zjG6R8q6Ey@IS~PK+U*AQGm{?INo$cL{AX7P{lmIWRIjZKCKC+nn<#ev2n0~%lZ!(6 zcPZvNX@6JS{PbKkEhJ5_>2M0wJEZA|6v|f~)DKOc4ij13>q{Mn*}6dwr5FP)fkMn> z1LB>h1p-Ul+9n&Os>cGXaqXpGI*OKF6QvG+g$aNlF$798)+g>bpnTI%)RX&Vv#~@< zo57MQQkhi{{9x+uFf{E;jI4bLNUL>NTBQ)7UD(Bj_C;Y`EF|9n=O7-9CMC_2Rju6g z`UPFd)%?kHwEq&q#RJViT);w+iX#(SUjaRVKeP}tA^5x$R`z*$dBofNTyzst&<2LI zA+y(6veIKO`4{aD&SX&nVR4TAaTUE;UE1(mfc0?gXVA1v2(s$dTHAA^FVfWGR0idY z7^=nj-F;A~Ueyu|x}Y}W-8;qN1VQp%I3j&r8H~db5sCAECjXou|A#3g-%a^H*bWYs zTL8=}#5%z?_6+cm^Eo28*J`QUl0Sy~ZSibmA;M; zq@d#9z~g$~`P6Z6X*RwKDtER~xj#|)OQ15dA?i-i!%%KCe$JRr1Q6Mz3iGk!4Mc>; zR{Wb^U^dF(X$pLCN_=`7Lph*G7`p48U<@7TEDv+v0G>)w;^~$|8&BQqxRk=OV#5TO zXJKnTv9&<3OMSLSV{4vXX^5||=UR*ZH?Y63F9^nVeMvBOx`nZ$frG&q`^zF?EUqA; zd=-kZB{j4ifZ0RW^YwrivlxK zRvq!~Eh5gEj`HUb=dL9?y&*HkQW~dT>sJ~Fpbv3cY3$zoYUr0!QF8?s>aXDXiGQ3C z*MH5vYs}pH|CN4zo?uV<6Kf*SPm&~HKIW=c7KVkN`=1G-pMQS^^m7>*817p+pIhO6 z()R~{?P;O4+eDTm7T%8`gw?8m_Ty`Sy#b;M49xUnAV?(@JxW39CJ6u=L@)Q(UJL&s zHIRO9eu}y9&qT1tSOhYE2<}anPa_4N!*I{24Z=NA%k?Y5sAYVOO)W3lVIy8N(r~`v zriX18{wh8EenFG;aH<6IusAsB z;U&u()5AwUw&~%#8XGNtk2Lksivg_6RULPS(!*AGx9Q>3XFv~+pG4^ZJ-q+wNc6DX zX{hiMQ1O|_Ap_EpeSz}Z#^FXi8{seGf$d4eyvUMwD35<{mdpGdU z!V5*tAiYXsmR_Y%t9o$meiYinRJ7SknzQNIN%i^lqT6*Bo+=_`+Br62P5sB`;*AYY zT9_)ybS1+rw;+RqHIE5o;1#}-LE6;#HPs?|5FBLJ@K+hd*7wc~nePI|bH9D#a#>iB zZIEJbERCvwK&>SmcSCcUk{iTM-OhIz9&ua9YJ%AKXFJL&4K0dV!C>9a*9rPpgIKKF zA&!!}0TehXbB21 z%CjJZ^S4!8xco*k&e=g$e^fL2kL>zD&p=<)CEnt?u<9-){bo?pQ8O2)I_!i-)pqQs z89O!EkE*~Pn{|(`2dY*rJR_=-f2=t3luQYkk|6EJwm)V3XYTl<}6pyWqvXvN`@g8PM^zVi?u=}^;4nTw0{q;<>HOlC<`s*`A{c?{zS%5C?au@J7 zo+-6l=>3DKO6WU1N8R6A`swM|qBhu1F|ePq zk-IOa&o;{TgVkbR#nAhJAV$SpdIdan_lk!H^KcGt))znurtH%x@DtvI6nw*B<4QaU z{V*Pn$qSK4Dq_jX?$?>8azF?-59k8*>@K;n|d=$8kt31QC-qqv!sFDQ~L8Q zMOVIK5|(vca#7Et#+dEsZPKSRalEY0?usd~eA_8+J0`Yz|6YvF*Y^GK{Bg(+HFfM* zM#1uMwbQ(*ml0Qm^|@g^#N~!;PbF-kLIC>hQ8fvA-CtdD>fWMzZTnMwi)pu_+|N#U z<<9&UDx&B4&&)Cy$-hYQDl7RHgo`M;2+4u_QCNyo!BVG7PNfyK_dX;Vej)m7 zI!2oq#Ev6+L0c+QkIVfF8pE>b?xCNsptI3hMI?<$9KDF@X<0zFewu%-S{8X}i_4c- z+SBkC*}eVXWg9|!`NH*Wo$o8w@~^-H>$^nYV*Off7KGa(rd#e8emQu6r2#?ckiCI` z?67AGq`dOjuGz3^raNNsQ*@46Kj!1W{gq{3p++KVAKKcv)u(2Dsg1^hi&}vp56o2; zZxp49d*yvOL1c_-ejoHmvq)kAEab)bKRQwDW9hqalmaBenfjG8br*w%pZLmI)d2tH zdS^8Dh%9$M&xU@-)!UZ{D#ZK|eZ~3t$F!@XQ=NDir(JtX54boijq0W9u)gT3RBP#u z1vvZg9(x~D_Fk4P+oNv;GqQGT#$sNU^F8dHM%H>xf2QmY3`F0tlW?a6pu!Gzmu<=I zO7N9HnqIs>%rv#{UAA3b^xMHpwvA{&CKVavL{r<%(KP_j$JdOyeprgwgEn?@XejnM3suj}IUGuQ0aJ^|~ zI8{YNcOsItNxO4tWF!yX_qn98atHi|RGdhu7&|Nc1F*tNX^&A_hW?ifxVQqwOYqBiTu4!aK*vT&IWkn9%HN;1nG2ti^`5_>sMi{Zg8RlwN9=D6KyuF zPsx>iaKFw4#)>h~=*z@&*{FjPNh$#YrpTGINmuF4oOV{!YI8IgcYN(&kteb#*Ad75ir%_ z$b`<}C{1%zQ(?=OT}c3%(2scy4X;({0MWV%N%})k=Q2ph7{SMFu_YH zU;2;tgvkl`E9T5}nlm@RwZ+}gxrjIKww~xWWv0`V`3dxAX2C_AMVH$|a+{j`FiDA6 zc&yz~%YZKQZ6&E8Ogvge67?#pg{^lX$pp*V05h<$glR_}YU20A0W{0~idda0F_HsN^!Y0CSgaB~qH z64gMsS@_;(A#iZp&0mz{AOPI*`k4XH9!S`Ty$XM|{5OYc`I)jJ<>y8Gh5RhP;HO${ zUM;bsTzKD$?>tYZm`{i)f>YN@qF9TynTI(@*I9y`yWhqSrsBuf3CAjVYDBm>?&Dy= z9M4G}PD$TvJW<940ir%&_DJmEn_V|%SAC5ukHFh*D8DBW=lB+r z%Q131pYXuIv=k>^ymbGj(|N&Q1pP^5W}4@DYq$$Ku8XejIKYklZMg;tEs=p?`-fbC z{?zo~D4^p;F^{gnfgWwUaFB+BfwP8X#j@@Xr!a*S4x%&)-YVCjm&BIW@H?u@tAm4nyJ? z;vE+CKBTZHbv`?6NcyTrm@x8hT;>+GSPrdzIMZeEoQJS@00t-h^Kr5$*FH1E%YO(s z3+e!Kj%S?<6azVQhp2@)vpt)#J&=zoIY14@kV$hPQzktkMgie4NBddSR30|FwmHz!<1*7mhO6MpW411L#=w(t*H$z=0Rb?bFpOBUHe zmxMC00n>5rWuP~^;Ajg1b;&EtCR7KRAn~JBlCVT~M$cI!YA}w;K(r=<-IZ@U9u^a%Uqno(+OI|&yGPK zrypD?)Zs0C;i+l;g3#1RI$~|(*YEKAmR#r~ezFx>@8>k+LEh*vCEjJ;0>*hNdNSgg zobFKA(fcPJc5}p>@{&_mE6UZ3mD8sLIdg|$6xnK6j=~w~K7r=4n;VcTuR!ANb zH{Ccvu%lQ8E0EFAoaMJ8-yD4>IqnB4(zoUJ)}A-H@d59 zvTnyLAA_14cc2ElLiG-8(2xzVdUab)P$${nADNOb`Y(f2$%Bl;jK7mp!5gGySXMAA z=*QP`7;|*oZb5j;fJaVqc(k6}gZ43&DjG-_|~F2MQl4`KEHtQGwAF~~*X1?*bXu_sutG^GSN-~|icGOSm*{v7Qv zkqghM=FFj~+9<7OiuFZZF6DR{ppC7H~!1_|zr+udBpZL>Ws`el2@^+Ny| z?EhmQAN*3CvxciucU7(T=njo0YAixobUvY%J0nRdhy_L^fHaItNTz?ZMWxkK;t`+) z1huY8SI1tej!CEiCyh%FU?qDuaIVmj)JqZyIIB-T_?X(+Y6<2l4+EIZj9-O?LoDbe zrRM2Ucu$jekVs;&`j6c8T7{tD*}#xc8mL;)8gAn`xxsW(_rDcfkvp3{6i;W+oOOXbqhSCAp1#qY-CQI+(F35x z;bPTCe4VTz@#Z?LUnyi=uv2~s%a=&GIXYfBXD_H8vB+GU?Kwi#75bZq3*f94*OoXD zPg0chR$(qlnM8sEiOD4_8!xD-tB6V!b?6M1A2#R!j%s-kLj_%7c&Z0wS&{x;X?-si zL~x>e@-W)&CqDym5TpV7m+z4p#eaI0CT`5kCUUL3QWf$RtL-}Dn^s1t3>ov75%;Ba zx*=*+3M&TguoC}0P@TIY<3_N~f%-&8Fk)ziE3MlhyI%wgkTg$?Aeqnhp*F2@wCr zT33xBbLR)UHOed248JA+&FGQ<&>oilI5PeSg9dKHk-qVpZPSqP-=Mo!&F>VDF_;a< z(1~Vr#sv||(^kp59>dzVZUY4FNO#EXZNs?c>Z8fk-5HlLbJ1{F3sSFTq7)dIv90E7 z6Q#TYG<%r``!~yiK=SpwHb~w_vg+WrO_W$($gb{&PlfLdu~O>Zs1fwCunm>^CRFU- zj76&VP6||}sqScD&f#uR3C+wxM#!KHL9z!3^k+>X||`AGTftB8gun zN)9t&qW$^>!P1JeoI(*@dP%Ca|GjO$91-c5wfOJxd<^8J2`B~G3`Hjb@I&LY{jYjb zma}SaOH5TuihC^)WMuQCRA<%KNOJWDOPJOlEWC!X@gM4op@WVttfXL-48f`wm{hHL z??W6z-I^Zw7nqLx`?U+JJz=&aEcVj{&xK6WK~PmcaPSah|4ySw z&{TXoeaw(@!6E^Ww)FxZY-3R_EkoEhHm4kd3>!W95?j87y{Mh{1=`kWD&od+M~uuZ zrlR!~vYiZxmmxMpQ99R_cl}ql3Ivnh2`@^G@+MUjaYg? zA73F;i~lqkXX*5vKt-2R>v86I)?`=hZH{O+4(G}@-_ZX+QnOF^ZZK1}Q?zkpSN+^9 z8^JzuQor!^*QLzdW?|XCgCrEk?9H;b{mg(UIjNs!SAEkA4Y)k_;7pGD=gh}O8MAom znhajh#~gzND-rn+fMMTy#%M46$f{WK;(heBR)#Ly_?n z+0%b!NR!9z1Rg9Kz>7=2rnpn~%QgW{0fxS-8xWLx1=Pm5NrPr&EYc7lrLG8T3#D{k z(5IO$n;2(cDZVfJ2qP1<)*56S?rw< zAt1hv=v}gX5QbaiS~nfL2jomG9&Mkh`%)EbX!wxbycs zZEP)2o8J^tzL*IZm(&9hMz^7_l?S_{_WBa)cA7ei`Vm%Mt-b1AXzkS+239OqZlN9v z@DK}F1lAgiLLTC;eF|sb zM<7djDs4SXOYpL%+DD8=vWYi)WJ+&Wd197l{SZ$zPa|4%8Ufi576~U35v@q8*x68g zq;zlcr$JPI5^!(NY2t$@KB#Qk=HD$bcgad_r^S{$xJZT9R1M8_t@VRfh?GO=td41a?FU!;=% zoqXBzF28)a;2>wtFJEqX^1qQU6G$0CWL%CGYnCWd?gWs+g-gW2E&3e^7|7KK5e#_{ z&5WIM*X{5Vs5Z*pCg>o0uiC0zLXvUh>%(3YHDfFBqpsZsXBzm=RTlBfNBYZp`GF}` zrO0QIKSzn!NrsxKzGp|#HARsfhu)WioZ_5r&LJY)PH zDG~AeC3oXHmT;~URt(Q4LgwIOAz_b@yV$l_SQd)`+V(~*BE9<26yo#%+EiX;)y1o5 zP|@=De0BvNedYSgZR}u~q;j0@b@|Y-Y>~a`rLn^dh8}Cwazx{$@p`a`FYDt0;AS#m zi)rT{G}nu`2~KL^rdqzn-co=*(HZ39ysd&4(?AdeFJ?UC$BQ_u`5=`fPMr|<1lH{4 z$!`B>ME(isw|7FAnn?L(rIv5nQu>&FP&g&zn@YgRX($n- zgKLCdrFlWC6dM?Nm1-lJwNNjXg=%%WVJM8P5K)e=p|N%UX^1N#Ypj$`TCzqZU#73C z#*bgt*z>imLd<xT4Wvx|(x|t3!Vg5n~!8wSasfGU&pT5>yM&){OTH7uZYm zOBVA6QnDaXl68sr0(*HtI!Z0rME)d5!`pf5@8>d{#O6Q*K}toO)5f(lElSi%mP~#^ zZ6ZfZqwpKMtdv58>}bf2jpMNwwA7lfo>_!eM0U6zX=?pLw(LN`DG}}ubP*7TztO5S zy&-Hn8tA2b_fFN~!i0MvE*#j1+5+OjxU>D@0$8FgE;QSk0sU2tMN<{(<~y~(5CU93 z9chv(qWr4azm+aNh2W0?#maj6@8pMXZ}rO$W5412*gR3qnf0H`50ifbeeUp&0DZ1b zz!bT)ciO^oU=>Y9`|oR-K95>L7)7SfQ_*3fvBj0c>9fG+{w8G`@M35a&_|#T?v0t0 z1QkHEwGBh)@(RZ&tlJ}5o~@AoeO+7#*GcixFeSlQfv^{sJ-F&+R-JHsO`h@08aTO>J8qiy7uXN8 zK5t+FWEqAmo;C0!Ez84*D|GqC+PUk~rp37H(~Uo)81AHqN74CnQFJPbqF4uiu~ZZb z9^y(c4iIu1!vpi9`OCnv;A!x_6)b!J#@t^oMva=q^J*Ee_!$0x#fvEeEMA*5O0@zG zW|}D9^k{0>kumgieqU6}Al2CU-Ev!|>ia zCk*~tzRn|W4)gyL0oWN=;SXPxSacn{hCv6?AdX1*Lg=q*)k4j1!AiyqaA!=tmt+Rp z#)H!&j8>XD_3{qux|<1D3UY`EHLxN}s6kcgv$2$GgiD)_CHGx}_=4a#vc9lwt52ek zU6qeuhjzk^1{W74@MQgn7~_L)TTkqYzpW-Ucb2zDD4C+OB~~wR(r(Z?k5AnIy~oap zZVc{}Q!ij7JYj{mqW`PzvHCwq`u_*ScSZlXjM3+DC>KKHeQ^Elu1f2m{q(kEP$(`T-rG!M#* zI9OLT!!;8nhPxa~$A$gLhhApj_qK@NJ*0GFQ35^l5^=$6-vUYRkd7OKLDkLT=nCJP zNbiVr_N9w6eeENu#;g%ia~1sM8ArmtZD2F~r1tldzZ@ZS{N(f`W8Fl>AxUr{9ycG|B6vpWpiakR|HjJ zeXXUhSt(s~bkrU?`#Jn!=Aob!b|hIR{5L%G#M9%Lh&I(GByeKVoaPwNOG{!$yj4sS zU_b1^moY0}d2>OCIIGFr4NC<*vwgA=INfPp)tQdoo;vK$%!Tg+^7WD%8;mkH2TJ$z zN7!aE8=!{$NN;1-8<<@Q@*J3xYTD9soo3fo8aQx#{?2X93?MaU7~F($xk8lsR8rY% zXd!S->nh%6K^TUvS3ID*{tPfTqgOJbF!rm+Nab&;HQ=kxX*}RDECte$?7a=;fR7T& zOLv^`-^8vT;HXkTRRfn-Y@&>ko6Y#toEC<8>l@VdHJ$7Oq@9q899{KvO?paZ_a6Mn z`sb9DqIUn3snpqe`CzCcWvCLcD|D!@PLQGE{(&WoJ)geo(H;}iBjLO5+7UHxhK=t% z(3tvY7GM4J7j~+fKt|OQpcLFtx{fb{@CW-xNK%s}okn4G5kHN`JLr6f)kC5~s)N%S zaW@GJ>3uhn^ltmNkJI!8K%4-b7Ti9QmCI3_0@9Z}Vi<@F^dOtaG?x+Z6QDGj*ju29 z47^H($jrhD!~NAWPYE%AmNjU~xWA=)iE^_>c~yWTHr} z`r$D>3AsXaEct7urab47@?7qxJR_vUDxo}y$l~2d3}h{vt145_w|CoX`_1p$O^#T7=Q%f}cInPgjwml&jx&}WM{rQU~DMEj8l?OF4 zuHbnZp#DG2Q7WOld)MX@JXYA#^FU&>9pHk;Z$Wrc2`gZI58nBk3|eW7csQo8aH)AW^}Q z$xm^Ahr`h5fFR{+!XtrUbc?r1)MN|}15MF0S~Euwpb9^l|2#oxTEWRN|3c*mN6kgL z3VjOgyhD!|^yvYMK3zERTK_5`Up^gnj*ZCaIia>pvzG|z6yV!MS|depGjJm)(CaUN z0)4YkC>7#s@a<3hvkggVi=+#snvO)+7myH6s>Dr2jz?hriW?Cu_A{9jr5E}?HZt9^ z4G|U*tc@6aS@frSQmVD`bRO{y&dHoFC{NmoX8po2SjqJCdSm7fd@wsSIB~5M&vId# z6HNFB#A?4{TccUQ#C!$Jw1RSV|)F%QWce(9&%G=Ro;Mc6po{bF^T2a8=}m zUakJlSkUFxVBy$|-eE4QA?4%zH)pbrj|Lti&XuSHs$z2FsS=UEJ2y;o(lZ39HIXoi zBUg#zY$Xej7X|~ld|DjQx7lcz2XH??l{5Y1BiFggTWlizJ2pArWwt$@jjI-KC?6Sv z117GRyzKOik0#`lx80PJURC(9@nR*JX&g{A5jP(Mo^^SI>TG*lu4-gaR34IF907N! zbLfsmpTJ!zMji@cUymK}d8j*AI~h7}-m*FHA|puULvRLE7aZ*M6X4Dk)B@%3S$<440o!s9`t! z_}Rv;+MJUj*`fQhA~nC~_69WP!m|@G(xdRpe^PIZ-9V!KkZeDs;XxZWP$7pR8`=H# z5Ic+e$$6QD;;Km} zqLz-wY?eFt?1n47(lD=p*n;*AcM;@k4s@>!be?v2#elV;L|gemNh(Q6T*ybj;Tfze%}(8Zo01glEn4^h}huJ$TiH=u7*KmYBs^UoVOJ1`o`?6C3R@gF1E1mby{Ltf$%sa zq0x#oXS{DyjPX=^Uz1;ZS>iwmri&=RWe3ekTt|?jI(kVC8x1~+{j`5ta{)ATso z{F|mFc7@R1ZFeb)A7CX_6Vn5j`?j@)*ra^I?9@mW`sMUR=fO7AYm9k}95om$PW9sK zgH55bF*{HGQHHFW^uijYw2?BAO_W%99;X0hLI|MQ zwI$E*=$Tk-QFU0J0mhv4FL0?5+-i)O&!Vc~X38FTv9`#GK1hne6%AtP@_g%;9SyO6 z2FCvGvo_&goRW#`JYLCSIq9DoWq(4&E{`U=F5(K#$L=Hl8ruT9%ZSaKgmHTNBUisl zm&dEJp5n0~#80W$5AY#V%jB^Z1=acTSVj4sPZ(|`hMPTojZ7KX99aq+&xA!=c+2Ty zE^_N-0(om+8eF-U=@@3QFte@xF$U9z9pcFe(FXhDPVWB!jzm9_X%tg`!@0GR0a1l= z$*44d*;yj9GEW-t-Gri>ua8jl_?nL!)<;EC^a~WxRV>s+Zy^JSR4Fls)0y2+NzAQ7 zdypxOCl&Ys;Oo5trv|t}6g$FmeSpnj+M#IU$A#pj)&XmMAc8QGE(1ma6P6@QNM+=A zMI|fp)HUoRa!IY=EKl4fIIAJSuIkL$xq)q(0)Z7kEWg;M3CEuop3(SIf+d4IQAPPg zV=0CithI{omEYx34aOI=_HMJvJKg9jD-ioi>0$O4kkP=i4=R<)@IYVok{9E11?$D= zXG?bY56XLK%4lMS4i^pwE$;0=84m32@UsuLM7yBg*kLM19_W6iaNN}?PWiRFpBdc$ z7v|~lv;U)!EeZ^EqYs*W(3u2xT_@w2DjfMvYHCPcLk5K7ZyW%oXbFGK*ellzi~10& zF-qO{4D9{1u=YRzkfNq5S`Ri@fs$XGcboQrRKqXB<|HsCmoNc_l%P7oEMMOB4xD;p ze*;6m3zQ@SV8a5q?+0Qfi&t93Dp(9KswHC4n1d?+A9HU49#xUO4~HetETN-<1d$;~ z)PP%XO@K&;^>*k$1V_W7#towb8X;rnT zW5q5yGP0D2Ik-{j1Iy{zz=m#SHaR=XI$^5ROnIfZ+UZ^oJK#!T*a3<2(^xtT`3_lXCcv*0{;G&rtnqEfsxT(ONUS58!{osUlAP04Z}u(WXYhQf{Lam&z%OqG$5!hU zG9v0}7q*{;083pMG(U#1zkVPF6Yxf<1VJqPs=sspbp5YMzGpy!!g~q2BBc`^%w;a%M#Zpn;!XAo;m;T9)+i2K}MWdwTvL zJ7dh?7ihm;6ke>&cyoP&shq+S^oYy{4{*N1>c{clYfxBa{t!3}c+kj~Nfqk$@{8FH ze*?)qSOF*v%mnlAR(kdzk5DG8Yc*#J8bkE%0|_`9?8jV1JG1o#$Pa6gmxSp1Alb`M?DTbl_R23~gknB_7&b z2v=TIx)MxSLo-S`SdjntoMoQZRAprI(F#;$q>)7fU7Gd2DoNiFb9)I*ua9I1TeJU@ ztw9H}wVgoCor~r~QkOr4#RTT4E|AplzF@X!zhn=N&y=vP0@nv-_2&y{?mhNfJ&y2} zSF77vD{yLWbgX;LF8T#5k=$i!P$a*voBoGN56dx?#;V_eCx<5G={gK=t~=%&lfFjM zndy;SjtK*e)CZeI@Jsz8=g_3n0N>?*fXDL>>o`_v+YGUkxW?-Nz9kSMGG7U^SKpJo zxjhGxz0M(5v6^A=7H?l2Y5GqHw`V1P-Gy^tnS?T#nlIO=B&WD^kA7BI%_yd6uj(G{ zocA?pM<$a-m{};UvzLVzezdI_Zp{3xz+$W8S3G!_*-}<6?zW>yAuoJg)6y&TdzmuDnGI^LwI!)L(+hv97 zd1xc`D>;ZfQ!k~-8BqSBh_qT1A@4us+LwOEvjM^e>Qq|W&@0x)@zwH{g zA8pLpP!@7Nwj$I5r8^%nH?*0!Sb!;k2a~!Uf1*Jjd36lvPeF?%=-PkePa5B1@?a4y z@mR|ph*dqT>Xz~e7alge->Vdz@Qw_mt*M&1hBa1Q^+L^Kvx7yeeo*tNEUgdRK1}n@+JP* znD~GZm0Qotukz&bG1!f{ju;pV{Bgb~%2#RSG-kjB!a{7+J9h|cB{z2cms>p!J3iDW z3x?~Raynu-MgPHNhp5AEtT>iF11Z3^y3yxyAsglQUjYNF9NJ2lwk$F|w2x4{J$;*N#<>qB? zDeLO}5(C_bcWUw~k9N}T6WAlR2cMkPAAnTuKp_s7-5h;r;ZYo#7g|VCWzD%fqbuD- zGudgw`PYVU;YSbjzf!LRb@$SKasqeIJ1##34M;N!@=^5~z+v3b4{k4d>b zyTSkC#86q~(Mj4lCHF4Ww!DX!it;LR~d!nd~t(ae4*2oy}c|nFwp-o zxKDJN+!{~s@M%grklFj~9)8}4WcW{N9JLsF-2CAc+ungJoG8L%^G$<1G=EleAouR8 zAb+BR;ZJx6$@q*C*Btv08g0@SHHg4Lg_tA1&}i|CJql-XRSBY_23G<&tg~<}00p!< z*~!>A5lg;8LZ#fm5`itK%^e~Ed4lUb^MH10JWiqK)Ch$z^^@P%r9kImJ(nKTt9B52 zPA^X&PaFwczc!&KXQgxAHyGqe&+Nf~sl`BaiZgKRqOxh7$vt zhQE7qJ_geAwix%Hf9bsYW55pQ!yB^9{pbIwbXKoM1jf9Zn`A(au`O`_`B(b>^E%vr zP61+&ucT`BtC0U zY2AaY9tk{UwCPMc%jojyFVjp~XGj`6%4HL&5XELNBtcY*Y6`R>{83xm0yxyeS^YQ= z5K%?_3b%lDMQ_y^b5jaFVou{qv8}L3q(6$}48|N&U^7@8DR}c=fFm$`JjG6#BFOq`zmza&rbnt`hFQhCk zh4N4V<-rIW0WD|6oxLYs%Zi8`5SVD5J!H;m#&DtOh?x#l3DX+i4vgQUc4+0miYrvg zlalR1)r-@hdX?Z0bdM%K!NwNoGP)mDm_F*Wxn9-q<9kzScxML}`l;!7i8Wv@Tf8iv zKIh}pc+}q);z>OiPNaq+evPU=hx>UFv|0}rP^%*Yk2un(gO?{BbHtA(co7x`Y?UMC zm-2mbPsny;I36PrWV^#YUj~Nw{tnd}4%dVoUfZivSEhnyd? zB_?AN(Bp@XJQ1_Mmx8s}5L`4qI)*^ofV_vAC{Er6ACZ6j3i`Xq!#1z zS2GDGrf5+UgnN9{!4ACjwWd!nQ{l3D&09wl8Dor*`#89@oh8tOM*e6yt zxUB}O@^T;yoV4}Y4&>Vh&Uu%KOqHE-V>2uagctGqB4h=r*KW?(jEk*$7o;E1>Ma{M zTJaWvfs6)nh5jmHrHYq;b9lH2hLo{*m0Wg(*jF88!({9ytt=0SMmnIo>o(IOBGLl= zy%r_1j}s%-fEcQWx!R0syXXMI;&9fZOgHdHs>*}yZpH{i|8h8Zj&aUjh;)^8XO~&y zYAWk`m$l=|Dk>7eZir`>tog6Aj0Cza%hFk3E4+!cF1Q?;oSj5{FH-l{)tri;rFKIU zN9A@aa;vPns_e|ly6L>sSZAdkK)yy9MYDpI#F|lFUIQ%YHZTY(4#doF!Rj>HIlAZY8aqMy`_j`{wN=l!I#+!-LEHl;=VGC5IJ=Q?}U=l2yiWaj< z$w>CHQZ}LYmvC*H`CwNo*<+RTuHxU2qGpxqT_&T&w(n)MI2)ET^~^=wv-$X$TE-_X zigm-pAV$(hq!fqjY&lX_9Ub;d@`{6ewm$i`prJSAuaN%~BvJCe;CIOXH;AEkpB0(k zh9%;7&Mi5$({o)ol*>4bKWETBsOlg!1a{2%Q~tqx&~!{psVYIJ;R%gn63BW^4$)T7 zRXcn${ca|K2$+uyC1;8m@DS)sw#E)Adv>Q%&)6)i9`&vP6;uGNZ!kCnJ4Hr=_!01z z@uj{Sg|FZ9JMe8su@!$tK~>8dZ*HseXdrD1^cHlXiP{-T#q(S|OaGld0WDfPBn>b@ zts9cbUvKV*=Q2@iyvX8rxnSu*s!>@4B@IePI#%2d zs|yGdBOyt`NZfr8og}{ds7*uTs3-IC;9@fykEfsIcj&!%>!K#rQPG6H7XbS-@-~_+ zf074XK3LnAROh+04{;UYmFxQpp|zW;>W|7`ec|n>%o03m{Ym6wEPZkQ(PQurSJT_! zzVtxK<;)zmtO?fI0of!ODDOPSru?IwN%=O|2LPA6K+3%cs#$*`;RhJP4={w^eKymy z!3QCH4Hg~))3e|)G!oI*3~(TuozW=M5LR@gFYc$g28J&+As;8-SWz89@VTY|Z_cbp zOM+Cn^GtN?3V212lS095u2kVRrxmD3?X^{pFSnqYxZw9Xv=0uISbusHyKbLu%Uj|j z`~hOCAKiw!p?e}gYW#K~+Xgi9R%BAXIIAgBDk~g#dVsOO)9HGKCZj#Q5MZdPoa#s_ z$1#ypGkM`}Ao<3}jQvpcp{p6jDegZ87Jn=#Kpx;3G5=l$*;WXq=+I#xj}EvDNAylR zivVK-Xm|tVk&15>(>#6`rfOC?wrDnS=lnQn0@S(T)D&ghqcV=>KKN;GD6Qy+@CVwYte3DF0ZVxW zMpYa}`fN|rq9LhtT_2vR<%H^nc2P<|ag)4|0#g2CIU*i~Qym-5QY~L;n%f5l0f&1#31PHZS$SJL^3xfsNm*+g4=xuED7Q8+)*A z$(FBWC|MQWM2O`CdlL3a61H!Do3M{dR1kJ*7Aopp0daX4i=yfjqzaR_1oEtu@{Gi_ z17Kc&4%j%=0OINDj3I`Y1Sx6`5(Zy3S=L_kZ*ItHjr~<+*wNX#{DdXq+7K>|`ukPo zPIWO<$*4+ziK2p18v?904T^>}SdKy|Ju_|r33?G*6!4U#;y#`L)kmoxosNG~hB z;#_0q=g=q#z1@skiNZLI!aT{2d^RJtHn%djCULbvWo~s=zYOZJErsFK_r|8KWa?En zBtW4|mwR$J<%HOjS2LwAQOfD%eOcxwryII;7}=iqrP}Quh@iR+DSNG#lc&{_u&6}Z z9T>W)@`z)K(0+lPM@mb{BP_QLpM*Tx#FtJ6EoJFfOG<34PB~qtgnnRTUVE0m>3YgM z<>&!!72yVvXF=rcSOAgts#l9V$iObs-i#7?MHG3MSSM$l5+(BPy{;fBZyC-bhv&1J z{Ee1+kk6EQ+cSs)L|Mxkh`mwQvDeUk;17$vLAkcrd(MvAK6rT(eMQTERnhqJv%#5&A_cs!;)vk_FY;~Js7}%<(u$7Dt zoxh4xNhHM}CbYPh?b{M(9n>#6- z;rX!{c4vm)vU&DU7wJ6cfn^&GbIG^*TyT`mzjt}xFgts5JBRaq&KXnDg$Sy7%$KgQ zkxF`VRl41_mtvDFVv;dP0{(!nORUVfe!k|9K6gd`mD{i`QvPf9?u_7BUMBGz^U5KY7cOO>Ca$>YC!CM*VP7K zT)P;|u0&9chGWGN%vPc>gHUl+?US_6htp0pX;0Kj>h%cH{?Hl8f#2ob8{pUd&l(ey^;vOsqLfi`|)&&?anCM;J0i~41S%ZK2i8B92?)iW?y3Cx9<;ZdOUtNB2@$Y z)P4W1uU`TNj{<`B+ha|g)t4Al!PpN=jvVuQq{M)E3W6$ybb+lpDi3II&Z;j2%&R4> zjDI?9)cD8Ln@}r`f2TFTa>sof|L%wYIql^{KxUm34J1_lyk)#imE+%MF(7X5Vo=fJ zpRDG`a^RqgZ3LgQ<2D@skg6eq!{I%}jgpbp*R1m9mPign?7X%yh@~T_b|W9OxqY_= zZT_l8^Ut#Bk!E{eO4RI}6YXXX>a}%Huia?x-Jiy^_uEt1UNg(NWpq5lTyc@z++`9q zo?$LTss_!C4EI;|juFUnq86jH{Ot+;i60-&=KQ>h=XXJTI;*(RUQSy09uKw`GiC+O zD$Wx^01TNXTp3TMQRmxadRwB#Gyf$>)qweiDj+L{JO0Ce3J9aG@B2aIAVIuftH}gAJM|-CRNsz z>#5fB;bcn@k473Z{ymQ%`LlC_l%}70b8lx#%|Dlzq=tVoS>jh$82ZDo7E6CW=|4G& z{?8?(e@Ybn&)yoEAJ${(nqB|Ew_mC29itBUJTR(T|OvLi6`9sEv_etSOa0{Oz8dr6BJie)0GoQ8bN%(_*!ZuLsPXvcAyuRJ-*Eo_WBku&tqlL4*(?VC zGz8U?s9i$*kDO%VU)wY$*((UD@kmDg@7MtUvf1Q+@%1(Q|F=Z=zwd~`|AqUa@IUFp z82l$mEo}ZTjK}}0vuyk=i5idp3Z!Zj|F5(DALIY(i4puaHHiVT7D3hhvPSTq%7mK# zW0Un_vVCY2`Tyhw`2SQ*{x6N<|ECh+U(hlN|FdhN@c;AH82k^Oz*^Y+KRh1)>wDVx zual_p_~#*2qxj!&-fzMG`Z)Q|+u=pd=S%67@~_kv$^dKhvnLRQezpv?h~{%+iIg$D zT{!Iwlh%x|w<4%!Hb@yBA$FwN6nZo^*}Y7bk7S^bmq*=1>t!RVK%sMPi%{s_Pb8wy z^T|;Z8iy!)-Q}mvG32>is$j^oQx@H0hlkafHhFqT)OhkdfmDr>=iPH+$TPXI;X$uY zjEP;Jz}SpoSsQzwciLE;a!ixQ=s#@`6#WP88Ja$3-Iunpu!Rx#j{!qb=2fqlI)$ob zkka}A4-|;4LuK8$nm>AmE3p2*G5oOo*6TYd zFCZxPnK2F0s}1|K;ai#$UH{w9j={9Q7)Evdxxqemeix%$*;@Bfiqd0c( z+mtCVmfH50KHOg&(Q6i_5YQ<5OJ^+eH?*F&Ji}(*@e)0rdB4FrdZWziI4cI|hZ<#G za1imITpr6intvycBz?o|AalA;+p_jp|4DhFPKXd*e|Q98H5_e;<|X30j3<_a4d&5b zBblxeOdc5b_U5MVG1??O$7Z zMAsswfBg#nT-nC%DL0#H82%iMpt>kri^vpRmUR5#WFt&6!=D2XBz|@9S^$4uXm&t^ zr@77U()_vm<_Ld2`PW4JIVvfNKMRMDKlQSX^xuWtpBv%Ny4DT&bGrBq#0uA&aAJYB zzi*W2@%%XmsT$?alFVqJgTKt5xZFG1f5ymHvlGXN&5_(87Ur`EZ`GX{U0CR)h-x1t zKWQzGl|PsP8~aBqo31%WV&rE}1Zn?3OA|_-SC~-Gzos0Hkys@Ns_sZf`^A`)27;&O z42+Y>B@wE=zc3M1y~oBz{1ejtNUFkQ#hKLl^)VFfAq_A?<%_cB9!t%Ky4ln`=3ran zsW}Cy8l~pLXG8-Wd_Gp%X!)K9-*S!bJyIsS@0LR`_^w0{_|~E9g!o>@gc{$DCZ*|d z4g}RIq!a&-HVyFIFdg_lJuZUpgohL1+x@>$`0f}Ph40PWg&gTI>st~ugKxngf)R^v zPP&cnqY^b9-;PMtD89W<|9$x0XvTjjllTVz9fR-32y*;K*$MIeu|*i)H%&@|@3RQ1 z>yeK5E`;qdX5hSK8t@%-V+7xnhZ5ntsxAuOoDos@w&G^y2);M79yY$;4~WNi*B@+r zFO{hA_`Zo$jpF-p_uq%_wHn_I$*i8}-#^9R`vii(x6i;v@V$=-HUC~|QW|_M1XVMn zBffpG%ol@i>#4x^o9iR^zWA3!_+EcB3g5pL6W??#AO8Ms48EqGN~CHO-)X1)K77Y(d~cC5iLd)$48FY)1irgbc0&H`#e^E)LkDz9gReqR zJ&AP0celMW!nPkjHwE}sUl+l*;K4-rHail9?~H4r@O7__!T0aY2%5q79Pti_#kbR` zHokXC)OdUkxsHSHDcyb_zLPY*t))!j`^Aqj_-;iI_)bTS6XLt2X&B$Xn3M+JIS8r& zNJo69)AcHP9+*EF_?~`k1mExHC&Ks1Ls9tVULA#RaAgd>Zq~!b_kCH~kHz;bxV30) zM*p_;v}_zw6v3g5qujl$QrA_m`JQWU-uE+rVT_>Ssi z4@(b`t3*K+jAoDO};9E@B1~0@bw;y!grZF3g7i_$KcyT8er?ced6(b=wut;WB+Aa zRE_fQ!=3*peD9GmiLZNK4FC2<5ct-i?1cDU#)KN*jwYp%4-N#?Dx@R6+)*8a z?}k#~`}CLyz7y_Egm3o)QTUFrqVT=>pE3BZ{|`a4^$r(^<705cNIHS+xYe&c!>ez`%^Y zY86Lu@MS6W0#}U{XgdZsIaw=${j4TitSvaKikk=n$qSeEPU^K=mEEDm0Y}n1XIC<&Z*Z2U2ToSJBHJ8e;_kL(XaFZ|SSHu&fbg5Q5kHO&; zyX4T^R|TNJojB31zR8pmt+liGf=n2)@9#R+lG}ykz3tkR4(IqxShjas+)+$wN!UM! zJNJAUS}0tdeqO+KxHXQ+;4Z)_9_)%u{@gDvEs#wne1&?vN&r3n zSp?eSn?>>9&292CsRhgYtCSNVjL1v*pgz8kyznsNTK;>OQV++{M67QR9;<#1>n(@| z{{`Xc@uxhz{29nUD<{Q=2fd992fN@XC=Z19>2LFpvGVphHEJb&D?K`CIkhv+!(l6JvvB59`jqx% zA^f%~`v!kg%J$%I>#|)qHRe)O&GKK=4?mDMnm*iR%^q{W^3Bo6eD{+Ywkt!)o%f zNC$D%FGbT`khH?lB3Q>G2e)s7r^kAC&IXTj_?80Sdj+^OXvL9!1>JV#2TpBQ0FFI{ zTcRQG_v7ShwL<2Kf}F^*!gNp0R_Cl!kdwz(n1)Wr!ubz7Jh?w0ooB4}_&9tv4clkU zJjzoDodGZ7VI)b1rf{(p@aeM&xdAzlJmuBiNovFtj@QC}6Q$dwZ5hhDYDg>red<*b>A1K#lvmdv^z ziy%0lY9ML|+#LB`XXGaWT7IgURGZXi#Oe>%gSKb^hkK08$iAWeaPrQ=i=Mbc}fNQb}z7iiPyAWJ@)sC z%CVX3k3P)H(^?~zTGMFtiKqgP=JOKA64u2ol2-WQ; zW3>yPci`)v8G^turym5SWvW}wC6#$Z7Fqt-6*sq?)4q6EiLUFq{z7!s8!?whu8I7B`%awaI;G7dyDS+lrxqQyp&Khs49T0V)kDQVO=Hs9ELqUzowtf#PIv z9!tY+ax@%8^C$q^KaBnSrcmE#97uck2SVVmeEDhcFUKLS)6!Hq8y!dK32#B?4-*iUvBU|rkhjvDY)KfO2%Apf#e%rVja~_l~GAnpRqg`-LQTlOa zZ)SaZ7}|#>aT6)}W-5DEI=H2*U9WoH<-=EA-0TDbO=!_4Nv-p|U%xi#*7EV=^~A@w zt3f=Z2V6v!N~YS`Ca&(G*=D5D^5JW69qIs7cpL@lkj>=0zmNU5>d*X)OfBYDWce$= zuaM_QCijqNs8{(5JZ~M>b$x)X@|hDk5=j5UnL3-uNk#0Gpo~y$vpPejN4Oh~7$Vmz z!3a19k9&%}xkcZTKV`T^3a1{paXuGT{p~XjvVn(-c>J@e3-{X$)!OqptY#qP^#ghf zx*R&NyoFYpO^R4#gud#n)^YF%X@!4-yThVBZfxfZjo;;zSPkZ9F%zt2&Z>t6<0CDc z)o~h?)7FQVz2~Z66 z5feIzjuclbjDg96S*vcQR;TG&^}Z=wEAYBqtN%1RUaiP<4wcr*5GXh=ju;yMr&&aN zACieds;a>KWD#8-T~@TNP&?6Ypf!CK%ID1%{t7t^z{)u`BRDBP4~J#rd`%pNP4#jQ zep{98!rzp#ZTQ=|?0w94NC@9ydrqJ`X|%3rx-IX^IHF!X+ZKdsh{H4p^Z!1LiVop7 z-M$xe`_L=LgGtao(J^>%9J*s6C45_QGWr;Tp;NT_o&~aIL!e>6SVu|~QWhdA#>15S zm1Fgd43K}zw&~--imaS%<(rMflXGRDK%)<^weT=Wvw7MG!$+{+T?{sA(< z{=e^REY={5@iCD5Psx2CvmFE>hzhB^e#z1E}Z^-B$M>3?ex1d$Tg(6cXiP!)ixOitb7+y z6*PbFNMH2-bn*w}5C8Zrj47BSXIVKz9nR`SjDbFbF@`2RcFAqJevgp7omF=+f(%0b z{utgyBL`@6P|={54Nfh;UX6H3&dnZeB29!GxdRb$rleD=%SY5}&^`KRS~Omvl>q25?1iE$-@OvOfnmpI<}`{N z?VpU( z@)9*^e9V+17kLqJ54F2#bnVD=Kn{wLoV$n_I^u|Ff+r?gJT1{#eLGsf6BCI~@P?S? z#Er3t4&I5<3=DCJK;`GxEoFzAyC4f*3f z!ym;IrzPYMkN-NDAZ|f5Mx?vuT$n*xl0h#`p53i8Dd{ zA95uAB#p%PoL0yAZs*^=5hjVj|A!WFIsMQ5Yx+&Up?}T$&;ND*`k(8+aKdk>{|9yd zzpMZ5TYp3S+x?%{AClQ&`Cwjw<;IrFFf!JbrC@}^@Qp8C7+%!;|8A_Wp~z2_6O})e z6P0&t+=%pP9J!!V@*74j(P-Yrh^5DG+9#mCCdpt*ZEu^?doRO*Q(+MPsyURAKNLfA zx}XRv3C*x{VC5X1af!#@e3cphw@fPX1lr;bUb$bp9d9OWhx@fx+}RHIYp>+}+8cNm z$*FR*W6qXIT`l|m9slJg7h5?;@s(37)={i9Tm;#oR?+Q8KQ58SoqYQu9@Vq|F>OsB zXU4Z)_V|$5aD3qT%C-7@_ec< ze$r;YIw+2&6XdYWzqihdkP|C*hi_qPu;>7mVI z+Nu8iC~fDa(KA=qqHfSL1nALS2(+L(9FHo$4(N*EAR^n;M~CA&X7F(s6FdNL9Wv9y z^h&%DHRG+Yok8Ts0B|81LfsrKg;HeCEx7(Q)WIV;VG_%ko{H6KnOUfJ?>&yHXvI_} z^hjj1ihuf_<=6B9zoq{lii0Umng4D24eRf`dnb9R0fy1~yR%xlaMb*aI=sx!c0aD? zXFg_OCQV4%aDFyHy($sQZjeaM#b$oy%EtT*>L0A_Ia4xark0JFS{C&CEImIPp3Mtz zrdU?aL<=*uHuGX%y!QPh7l7#9y|Y%oY1!ZP_1W z(W?k@bn{y-z@W~|hN}$(j-D#2qQf@FtMC79Y7qJxg=wb9m-077n!b{#0#ZKo_GsS{ zyZrv9d~{hLuFG$Y^52n4d^u28A{|l>_QP$sR!Vm}RT8em@Q{hlNB;dSI2r?UTIa zulWzXF~GoPG3FxM*q$e+AmzQ)91zGI?wfHWC>Fb8jqhs1&o&S`{ZED>K~8&F_jJL- zOFUrzt7s_k?V9UfssFjCe=6mVgYqYQKS8EI#8K3p#&cTjI|@YjsV@)Otgwuwrb(&q z3l-Kz%8>joOq_oM!x%WRxExUm;9S zD!)8DKh6)&kI@OSa-B0Wt^8s55t;^^G}!*{#_nl|6{9)vuR;)_sQW3~)f;aH*WPbjXpWX*VoF<~K znSS83s+Yzoi%3u^0jGDH+c;HkWcL;OCF4b+JYk}Uohk|}WYZ9=&08a2p>0!B)o?Dn z2a@L?b2WhZHjWkYYlu~)ogc8m7Sm~>|EN0W@$iEE7Jyv?u)Vo1NpIt|y8?K15WKR5 zgt_bSMr{<|fRuMPYPg^_Cm-by;iGE2nBIGZ)PV?l~*IY)(h0EVplLs>2=Vi}ljX&4Rw$*E}`!l6oFX z>!D|9-wNdBo;@^4u69))&E_gkBPLz-=J(OkPt01u?&!K<`E>yp5bZ--!s{<+K{3bA zoI2;-^p>(#e22N#*ldhO?QxC8?lO!Q=45<;A)XLOfi`yn7Awz%(=Ma{+GShzabb{^ zv&$Ly8{XnRHk{5>iKnEQ$M`d&1@8A~66yvGNbS9cm1TyQNVvo#NxX`QVfMhluy^vj zM>Rfz5boHTfa$v1`iadykz{cCY2{aBn%>9sInv%7c0%?_r)D^~Mc( zt>ya+XU5*JYApP&u*!q6Ufnj23)^;$Eq`02WQ(bygx}(9Yu_%l8vRhKLo!5a(FH)# zRsOy>utmoX-j_&I^aP&DNUy7}*HgeeZZ?{^uQ(Y$m;%bZv;q4!rF1OUfXr#*xOKON z0OB8Aa^~>YtOb?4ooJ(;8ERA4~RgDf2dw)s^Go8 zmB^L<$TAgn_N@|T-%PTwfqDRYB)Uw0?8J08enodU+1*8`7o1HzRqct!wSPBmW@G(#gCTL3{s;?+bMT;EkYZA9v~<=Mvo5r=wroZ`16jwfEPp^Cmo~5jto86Zrxglqsy>+c`sG>Q&&4OB3b1SaR+c&iNm9&QCMv!vcr7 z`YmwR=TQ!vC@O59IaS8J2_R92o1P$R%-5I2p&u_oJs`vRsh|1uEQ9z&9|!a49P??3 z`BWSE)Y5#SErqEzn@^CSOWz&~e^Xp+Z$5o)KCygd-tD*F1(Khyj&NKHyjC9<2* z&N`jLjAk|tlHfQ-Ajd7>uW;OWBv-TN3CGpW0>>>pQ+ijXM2&FV!F6#QH}$qyj=Prr z3W40~@LK(`1)lxM!wx(R3co37A;gmZ_4eO1g}=dr%F>bCNZ`%ApON6-$!L4*XxkaB zm5z3bMEg@XudQ~Z^^Ej2*11t&vP2pjj`S`gL8;4Kjt7}vE|Z9644Ao^Ljx>h8w48a zFUu%t5FSh{|A9b_TK5f9nkSEh$M?zoW9K*a{J$^9cTB}$?9=mq&W|xlIu2=*k}*H* z`p%y4s#}q>tdE7B;T$ki+c%GAf1rKySv|OUC{SkZ6F$MOfcL(0p74PGWlm7wI89@z$6v!~iYI4#`JK3evCQq9^$8tGd_Q`6tigtq z+JYXNsZhCb3B0@8=AnVU*pQUG_cjas`kv~~i)(NXn3RhVl;zRQRe09q?5~vK&XQX2 z($ra#P=LoLui;?L%JE+nG8Sd%gQ&h)$uCj;^EK+Ye)La&jc!DxSbY6U*a(Xkh2XCE zYfwW=Y6vQCq5n=kb&~l8o_iSAo7-WHk#4h?1!d4uKB#%kScGYdxr)SYp>CNckPn4) z4l4lT?^c0Fw9J+7GE107u4FoB7BrdVL{+ z&o*%(1wI{7W);dLK86^oJuhtW8*ZPunwy=8p#l6y)kz*# zs4eofmakgi6-X1amaVpY5vO=^|5>9`o2dECazYnlBcxUf?YGACx;c#CUs8!5^hrW* z%UAovDEq|Akd#J&uw8M|~o-tqOlKi8{$2!QzhEQmKv=yJn;h`0A zho1U`+duiNgl#V@g^{TOo&{;#XAs$q6@$7i>WW5+f`0v|6w~M*J-^&QKx6h_5&t6M zR!BQo6;SVw>EMN!i-?QMGzjby*?!85i>am+OA2mE;*O1XE5%KI7gc?T^O^d>KX?&j6_<()vmBPv;shnTdlzFh5hmYReB&lC_D{$BTumA&Rg!QA( zWh6!a#6~dM|Ec#6t*&HkD`;P+urMOB)0uXbXU};==6hCP0b8q9|Ca*D1^*|k zNnsRYTy-A4*a7Eaoxr)ch6yTW>!^V&5tCz0% z#N3rk4zbvyXxYi`;zB#&YNX~J+=z(uw$8viNxy96CL@35z>`LKJ~5=1o2@|q&c|hM zy*||7d^qRgIYhf^eL1cZ6i(GN-;BNRpf`FTUaI~?9}_Bg;>{G|gqcvAD`d6WoL{Kk z*lns6niuX`@<9FUbFH7vB_(F=Tf}^!pNU8gm|s7(T~x1kR*htwz-3J=Z+0`wIdB8) zm+PI?KOhNxvEi`?xm4kxQL}2jK%tzAn&r_!|-WKAQ=v7#DGbK6TR}{=lRaHj}FLR~ago z5MBHk%RN)cBRac;$|dUAA8jgMig#*P?WX#-GgzfS?q5e2Bn8jF_`zyE%XhwYddt%V z6+7$YZgolyF)ihE8j2InKu8WUJ5*1usj)Nm@QmBw6C^la))>vH0>+mf?Gns)3z}uv*w^i}!N>yqXSQ z+rG(nx%xIO%j(;#EUj;H`5h8TJ&ri+O2$o;3Dr3)DEv+j$@+WW7D(R`>09CM5s7;( zPbLb-)$anBzBGJyg!6)^crg7r7vE2o27gp-olz>hlZmP3ZB>1t$e~B$dDXd3CbI9?w|DJB=grfZwiR+Uh#SJq5iQ=97Fxhn}q(Z2{d}AO`y^Q z1k&`$)AT8#FoQ(lA2g#F)&3+6ClBmMgABt9m$f!YDvoYlZ29j?Ck1?PBK6;wsUK5S zs5^Zv+ApO%HCKiD@(`KX`R3Fj8qBCj@4|{kG50^2C4UsQgkRMy@J^6p7WDebbj%Ya zwR#1dpi}xUgVr$$2H2@Z_Pk^O>t~_DXKkV7WQ*#4Db)&Yqx0n#d2_vQ*#h1Y0dJ|M zEEs!gu>%_tlN=#=`ECaQeYau%KU36jOlZChw{UGUYwN|b=Sh8iSXawM&d|Q$8t%|` z8*ch{nDw`6jW2`;H?0BR(y$l_Bv0)Kh|4-^h+*(aN+mZyF|U;0L?~PShe`>!|Go6|HBAPziiSEotb~6I|P!K zcL4F;?4XI44&ph4XyosN{R5O+q$&4om~soy(}`=krrgfO1l>WpK|j}&`=hMl%cjtW z=Scc{Y9zfHBZ)6(;?e2e+=Y^uicFgDd73)KH~_eui(g)XG_E-lQMUz}f98;XxLSg3 z1vQ!&EGbWvZq&d5!!CvwwnaT* zm%EI5jd~5Y7qOS6lPj{o72F)e0c7bmyTjBpDxaz}{;1h_5}AKA%Ov-05Bx7_ACXTS zSXqIRM)8m8Ipp8nWuq+rE0MlXmQkoXRFmkIw_mDTUZ|eKfyHcjuQxO?Rnh z#2RGfBy)R+!*Q&tkNvD`^u?V=??^q-2-S)54$Z-s z#9(U?fAQpON>UDFL=IC`8-$b?|1OE4sp zy%KcKjnvN8(F;MlvcJ`lALRcaS;lOy%8(@%MkgS;ilN4fU%2MCU9AhpNDofAQ#)L!VhI zj`j0?iw*aEdr4E9MVh)@{q0sZO}8qBmeg}762urT0vbn^(1}hR4DLejF!Ow{Va!ZzxETv-7RMT&dPOGFrm2@X-uy5z%DM&xAQI-SSU^u5-JX{jXrIIybFmRox;t zlEeOgKB1m(x^X@hQ`7!I5eEIGf4bIRrlqR~LR;b4T+6AY(G|tyC)xYp8w=-mc$7Hk zQ36r6{Y4Ri@F;OW^B#q?mfr}HnX4&ZRxOeH#C=C_J~E_P4W%jygn@%XAx$iLa&7`= zV_B3c*=odlMv$@OR5E6om|H0@(O$;GyX;_3%t9kJ2t7YKKw0J8R~)T>h%I1w7?e`h z0i-R=q&Uikh;LFd5cao)Z7{Y4QhpL?hqfJkfo+4B7Ve`XH-!*xsSlls#byNYUX5du z13cycA610_fVyF68g&-Q*kjqoUxH6Xz13jYivQOO4FX zEj{+4X@w}hS!7(L~rIkJ+!@Gtfl4`y=xJx48ij(e%))|#b1E}6hwe8{NjiZnIVezhmc1`Emz+6r`6z8Vd=+He-L&`pu##Q-*RJ>e8i}D1F43Mga{gtW_gdET-F>%>Gh)w0+o5pCka3Y#Xy${ zlc>RMQG3T~wE|MeWCCgAq9`w=s)7uwwwCv^ynP(yqb%?A^rZ3;C;_5n0A`&>o0q5L z&CKT6HD#S;e&s#dq`XC5W%ivov;n^NXH-siC6%R9m%-|&@5f&CST+ECr4=(*vvJUj zw?j4@@P6A>SJZp#WM}n4d~q)Qvem@#_}g+)vd7;t)XeQW4Br6MLxu!2sF)1`+v?o8 zem?yR=pB9@xUjQ+tD10-S_ln+Zp1-j3dv!`!q+PGT}EYk%1X8v*_oWw!F%{oaD!$n z1|4EygM>;sCgOCzV<(5MXKk_wFM71ti|jm{BX`w{eMNoq2T3<)Da$G-zbR zSGTN+?ieTrrnFfwHtB%#YI(i{=?*wYtz#Yoa3c_Cs|RTx+ zmR*X!&C8&_;nz_{;AUR4@bC~)<=f=N(;S{_-IsW~HU0Er6K!%nYepb7r zzV;`zmo>D%)<8F})l<}o*I)soyHr1HDF5rZ1xf0y>$cRZ_PgyteD5_-Ro;Du#y(?F z+`2GgQ7r3SkR*#GY8H~&3u{*lOt`SNr-{qx2p8?Nvwsio)Hul=2s#oeo$9;VX8JC9DQzLbhkY)ttD7pLs$W{L{W}MAH#P5cB`zwdI%Bk2yZ<*W<$+ z(s|}S87YloV+FK=L$6`#JscnOLr-(U_s)$j>e6 z{(kS*S7t-urS~XDYEiU!)(Fl|{u8Y~dJIzQ2fbgvCJ810lXJZb0@X~@{G&4|F^WZq zQJiL}k1-#>=@aLLv#iJF5|bC4|C#+1WUubG-j~yz5z#bi=4!T8s{;_kW(c&6;Mb9* z0x5m2(njzKwzQH}2iIcy(B;&JB3%2R16{QUc%+V?)5l9 zC@>aXb?Qep?>g~LJ@=Gt2T#bmXT5zq-aV(G4M_9vORS4`btUVkj9 zwVU+|c7~xWN}q4|NdNf#07bL7)gCy2#mVVpasHCUB@7mqU$D6Rf}!QNN=#zpcA&OA z!(k$ez06jPpqZRc&7}Nni+T*4;AMFlqNwwBVWXc$_fC?V&|!F3HP(|9+)R@Aha&ED z*u`q;)s#A}38++;=B$2Ecn6@9>DEcWcAFM5Ve>|pHq{=iAF1ghxgVA1!?ITb(^BpR*YA^JNdS~?_OyRYPfh{l( z6hnp=l2Il5KuQL);!=WLKUh`{%M$+sCt%uAnR@`_M*TQ{N%;ZK-rPlhHS?F`?+}*x z%V&5{o#1SRp_IQc8%Y>Ol`hW3cXrJ49rk|L)$KcCIhX!` z2~KUg$2o9Q4J~x*d;QFf88Rg?mKzv2MUX)^6+!|ibp0x^eyV$SP^*fVJeAOh$q~a& zwgfNLjf@H8_A^G#X6!4ZM;VMK+Dj7mKk;-SjPE!)s=8k)wGR}O=Un=QV^V*+JjP}v zXx_TeZL4;z{~V>-UG+FryPZ3LJC9}`j7#t&qZ%a1^M28lk1 z<*7;eICiQMS^vwQIW6_w7WF5U=V2Q9r=>aYc-;!u5LBO#I~VtESRwW8vR(GzWO@f= zC2A@b4Q(iXFIbMO{rjgJa23g6{d-kBh^dA1hJVXFrwCd=wldMT?L(X z7j*g>de+&8d6c{y!tD0_*V^`-r`sO)p$`jMedzIhft%*sIsbK5uTDWJzFi*Q4>t1b zKP!GkQ}01ayCv1nb0Qz;aNVfh;BOw8T>TK$Qv;{v?``2QSNV4r?5{aHrrh>R4fqvx zcf{3Qt*HIwn%4w3wUw&ZFYNcAv-*CG`!faH{aA?rS;1MYH9Xx3=*yi5WDiD7vWwe4 zBk5Pvw+O|?Vy#YStiC|@^|AGzJFEZ63I#f>`y;DY#p>z$Ww8T&2+B6DD2E zm5L+y>JFvWY-9IK`ODRiZ#l_x@Kc_yUb$9w?!)Q9Ho#)$rgrcA5S?px88(;L0F2G3 z2rg(tl12*&E$qnrYREf{Adi+Dy?x{%XZ38|k~@dO3X9G*J(BtV3A#sH$D#Y$+l|yI zT(s}K;7X>m+bRB2!I$s~ow%)YcDi&z2o34PO-(1Z*?#u@(H(fNZr>l)nhv}=st4E| zxSL;hVCSso5Sv}PrFk>CCA;kAP5RGw(Z4VC=Jf)uOS5~G3@Ny#pW%885D8DBVS^+ZWQoF zWgPV9dy%P)LG`Ds7q-U;gI1zdnm^azbr{wJ{b#EOh3d}JC#vt%iJaPDZTrE~ZHF5h zC96+EVbW{%gsa)7v1;o1BdVsm_5xNW&|#xnIL^M4!|pS^F{IytA;D(xcrM&}+=}@e zaTR-F^{>KjI8uhY#b0$LZ?a4f@g`4r4 z{8fG>$}SyZ%6=$@UMJEl0#ir0=i0o>^r~}Xxrh0e5>pT>9IT}!uIjM)w$Z%RswIs; z7H*=JZ<}BUfqXmJIeR7~8lKuatJey4SaZkt>^<7K{7j}<$3_LZyz!(qV|KU9`H;@) zmC{`3Z%}JHV~2QB89Wrp2fhv+5cKA*xgQd)`~+_QU@!OhQj+mL1XuFh|4il_NWWK` zw!n4^cWb1z-*ExbB55(hE;J-%81yXb3cu+Qu;6dY^L_~n{)e#O?}dW9iWdAYYiPIs zy4O}{x#1Suj?{m(troX(aKDb<3fC;XYV7$C$uE)Nt%3L>Um{f+9#14hS zsMB}I!wYZjf&0)Vvp?+;yx~Uq+;j1uZr+4eU}t)VbcsJdqlmdeZ7w$Tm$0dSKI*@L zsw(cIK>dTL|4P<>mni7Fu>etPvkNCJm|@{W_B93A=3zKhEq$pGLOaENN77dBk)bP= zwbhFEs00|xts&U_j7+KI>q00h5?K;nuHRSJ^X%S~n`UB@WipLV(BIbK@;5jpOd2Kg zEG!J##XwEK_;6c-qNOD&FS>kn!KYN~8*WpB4~yDWwu^LFQ5M5l%MkSDj<0FRS;CuTK>K{wE5xFSuK6;wDVe@%k6&9x zVEQuAk+5#U|BY##n%y92bf=hxnfS!)hS|XW+E{umztEme&gyH>RFLr4#26ADM$nu4 z_jy7>&RZ!QEZ;>6?}dbW@L<1J6W)Z6%D(g}LvvojZbmq_*wMp>yd%bpM{%t77Cn5cxr#I(0#gK6)uE2NV+BQT5rL8wOALiqF zS$~dYLt2+CuIAQC4Y+0l#w;JgQVb(LkM%6f4?FjlS;ILt6P^VHOPH|45JZUT7vl*G zC2cQ*a}TB%Hd~DbTjgit!$EG07dsa=ghfu6MR}|Oc8GC;|2ZBLcAIePZ4s~S7G|{$ z2rfZNBIr{0Jl6<pxXX8wjQ7c@x0NRL^Qrl+_p{g*eV)Ua&Hte&o!kUHwq&fTw zuYeMWn1#1e#Ly|=VLW+rhu%Z!LZ^WH5f-DG4-cw2-5^lIV%ly?$auvR{HNmJyNR>jmNq4UoBlfucg6kO-(3u5VqmbApn*$dEngIB`yuj1lv_b^s|ufq#x3{-ZP~Qn z@(46-za0SU7VNj|?6lt|3HO*^dzgcXR>pYPYti`Sx;x`zEl~uj>?vfuG$zKX3|m=L zQ-iI-Trlz1V00CpBv-*%g zBg-rat4doqjMiog6);{TRTn#}?Kq%4_0a!TGG|*0LmJ9@+m8kvb8Dy*O`3&nY~3a@ z@)^KAi)j2%fu*JZp_Zk-g?&do{wL-<-w<*ljNa3P;jn_R-|5vnUYfTQt z`Tq8x(;glNVb)7EPpJF8sHY_z4&zvj2;x{`8QJ)1&kNUXSl`VC{R2HrQG}y=zjl+Xc5H5r$veG+hSY~MTk>AWryX{`wlc}=01!42lC0qU#u_5FGNtWyk9Qs z7ZHKe!8v;iClQcIMG~P(W`eeVz_IpaPDr5+&MK}71>Zzes`SE-=z1c?5Y}1`4&dMc zh<=~`ytzhhkL=*AUfvWXptI;XW`9H*oz`nT^qXZLkma-j#VQD2Aio;HH%g+}YL%9o zx&qXXo*+Limvo$tNILvdN>TlUNNOm9!Hji~pl1Al-O>zHj~J_NjV>GhHep6V#Xe_+ zWE}HPgo}r^;nwgjvxW;cb}MnsAXML-k`5c*;ZTEVH@awne~zxD&LfYfR;En1o}sOH zJbvKhR2yocW)6jdflD7INFTsObm3CDpFbrZF=^jV&asmut6@lj6n)6~#bLO8{jpW+ z30gsUv7Bk8Z**EH6UXy`So)2+Yy~C&9b%K3Z&2OJGKw%{i%*m8)Dixea*8J~>|dCP zG@0C+<5k(o!PeN*BlseG@?@N$jj;<;S3?PJzob0p{1u@Aw0|5s#aX=@MiMMeecoyk zq@Ruyx`i)VPQs*8zwr2-yjV^Lu-u0GB$>&es`X|4aH-d%jih4~ztjrukAz3SBDMc9 zvWiU|J6Grhgne2K$X#A&Y9UdGfulWqj$phOpEf7|_%M zeD$EAaVEnT*;v}tv+)Lg9*p;a*B~4U{G$pB{MT9@tPguvh&;kXzQBL#YByZ~95ACu^m!e{fcD8*dGItfV!Qt@h;^ajd5Odv;$3>knsS5N&X+I08984Y}Ft zUwG5eSyh5JOut_k&#WmR7LZl~ubxlChoW@=bf$gQ90-0F#(;#mq*<`$tXeTr~qNqzmMqYM!=|GfiBI;BihUj zJ+VO+PABls?4z|ACbE5l#6H!ps>B4PUEauh`1W*LW@Z&Gbra zIH&)}kE#@|K^`AeoL%ZhdE7<$LVuw^@`aOed z_8<x=fus%46x&nEe za|_KcT9K%%fa6$I&>*x^Qs}PCn3Q+)tS^f2co_{tcd+xq!fLy@VlTs5F^q3kgQl7J zE5`5OSS$~pY~^%Od`Q8K)!*U4S#<@A0|#nx3R?w>MXxT>>~P)f9C)a}f{%GV#c~-T z^c&;^vymj_bRB_b8NjBnWb6y-F3(!Q zvejYgZ*ILaNI-#$KCGDOvT+0lqKbT9I|-YEOf@ZJcFV;q{UF4o@Xx|yn?-(TP`N+o z@Kp9C$bzW-LFI3P+7zsCaS`t=*aLXvDh_9s%|XDR9X##&w)5t`CCOV_zUJ*hEinIM zN{p34=9#OPpcU{UAyuH#6jHgaU^f>Uf)Ok6UA8d96OB@!Rz7RbAPSYu2&!p9Gb}2m&@{j@YWIVhj{zDZqh?vGR5q*U;^>JvB_o4AMZt3+ zbt1MKK1J=Xd>=X&lz)XPk-tCZFZf%2A$-Zt1TNcH(>d>p2 z)xgs>8`=|Uf6CTeQCwHy$65V2GF9tbG@Wbz2@Xiw;nE&G3e)JJryGT1o3V`vw{|qI z5cx@nE0Ki<8<|2Wc1U#;>TCWcTMDs&qbP1{hgRIk!9Wd^)vY0c7U65J-B_uTO(ylh z7Z8pf$pnQ!%H0mLtFfHp@sxE%lR+2u)JM7~i$iha&R$vsA9x2*BgHQaV zb+@vsz^1S$%)vQWYHmXV+`j*~egAfA-wsM1(*WI8=|9_?f!b!&EiQw8l!t2|a9hfD z+M(F(Jrpt?-wppCZQlYPRdubOCwcHV;b|1n0E0$(mMINpBf8W~Y%$!Lk zfcJNAelTaBefD$hwbov1?X~wNO3lG`t6;DFPTweqOHZ;g+#%ug-CL4o)CKSgk*Vae z%RKja@5K&=oDDz+=nqj~KezHthQxG~64T!3Od8cg{XU*ZiD|R?`Cu(E5h}#d+Jq*? zIz|x0d&>p|(I6M;E51V%Qq*2ZQF|dp?e*_bAnzp;?T8d={ySnCf?Xd>!Gs0?LHTllDHW||siAp! z==Zl%rQg`i``ynK^GgQa4L#%T%RpN)*|fSTvR< zxgI?66zi$H5Sk}UgTH^E<%6jm^x7sLeg<4jD*s96?}3IwHX`;(kYl;*3Z)ec{l}*H zd0B!L(SAUQu9GS-MAIRqU3nDqO6cxXE_FyIkR4$JbcX~u9!v-xSCip~@^Pjs&_eO@aMTruQU$r-C0X~L^aG4iSkUv^ic+Gd6EVKBWAiNZEXTVH(?|r= zyfr3z?v&KaO~J)9D5H04WSI1_{b??HuVNN*xP)bIQo7m_=D1O)0qf#8R0SqM(48i& zgBjr=VPaK*s(jiEOx|q9s%>a%OiOKHB__)>kA%ExErHfVp>ebXchEjqgrFR-xJL~_ zFx;`3?D*sz1>6W>@>MQjw)(w?$9k$BhywJL_;(cgx5cvO7;KKUx!s#h0 z_!;rX@-{Y?0Z`m37K>4oI)mU2FdcCq2wRP};|jo{TRpvCtB2DC_D*6~JtnruK}nT( zOezNz^8)sN9Jr2ix8*~wRU$S&j9j1})t3$L^Lza4nZlGd3rZfljX6{#1`I8;sFxll zUc{{y2_JW3(JgLlN0wF6Hmg@{d!(%(Zw!__cy1)kMLZcKZ# z#IQ%vyNUTA5j0AE2s_AM;k~aU#nW>vS2ciTn}lB@7+vBFPR!F1c_{Of5NU3g8vPCB z&$cbKmS@_xSZV}xK^IoFY*5f_9mGJkf%6`S%5wD7UEyRckzTYGekYJ%YS~S`MrhyQ zsMR`so8h2kRSZ@}3~0euiX=on!b@X`RV+5ES`D_4#RSdiHk9?6K%g*F3*(-a->OQ# zHbP%zv(_6Rgx-QHaz8YDH^5JDV(@G@H|vFYZKC16?wE;2Uzuf^X^c9evbNN8uHb2r zDUnBYYFKNo)YclD644Z$NwyH`H)EWbYcT)!9jL{RRY)GE539Qtn5=HgxS;)%MAje& zy@q4sQGudOtQs5GN^mwINwh17NSv9X>68=wpSmZ;IvctI)}1Xz{f&SCPELCllYk5In#U`Y@6r(%LiAZYX zmFF?MN{0&=W?6_YVwlAld1hL?*O>2;9`Cj0yX3+9T=QM>;oXaO98gl%46!cOEZ@Ba z*xvCMe6sql)$8v#vzp@*M`%r%suy)E&{GPt0qYv1gEVmwhVo*XrN(oe6Df}}5-AVk zDbOlFRtXeYfpTesIdcYMYVxe7MNO_aN2|%q#{vr_b==p0O@RKZ6E8nsCuZ49Tq23r z>Q=Nnf5WPnZKFctWa?1n(EhgbH(2fKfEyBgr>-5Pwd@utw*C1V*g@O|HdvoUlXxpg z>6co=mb?LK*pJ^%5rYRp704lA1*$h(2IA*$q)06q$Sxjf9e`e+cm&5ax(M?Kj`z57 z4y_@mF)uP40#BISY$|NdG%lJG4y=j27T|d4d;WnVTTZVeR5#ObWiwEPwbR%_D;EU z*g6m=M*F)*fc6WCq#^Au8KeE{FYTE2vHth%-P7B_CzP3ic7ga||BAMy{uMJx{fYLq z-p_tt`j zk+s%Dk`}@T2(RRcMDVYh5GO~F3dm)=Q$!eS+`#%nb?N^3<0k~C>_LA&O7OWL?oz&J zN`l{a!+hL`@2Jew4shf>-l59xr%j|D{7x;!5B6{2*VJm}k_(11t8Ri>V(S)~C1R%T z((IV2n>5M$%CxEb&)Z?@9ywcV=ro)Uk>cR!^nvQn^4++!Y8u+UpR%ffbm5M*qVTel zX+>Y-2scYBia%}k!<{7I)3hH3d%|%x&3!BQH;&9GHn(D%ZjlhVo1~MLk`}7?tKZ2mW=fI6oBUJKci-$DxH~ntCMGw?d}jI@GVn z^!S3ukS4fqj6_QH#(=ov-QyW2_uA<5M%-&d&0c|_lXZyJ&G6Xx`E39?s?)o!pPv@5 ztLb&CuIp@dU5L6!kYsk0Klbw(%6tuFIYXw!xKpf(Ct1ZvRKc10k>9hYQ(y*eeUlU- zoD5IRvANqFOmqj!15GsH$s?Gs%v%2%4^4n=V@b(zvh>^F3mC zhI*kh=qyKS#LTV1MHBNcXgK>~XKOh~L2eK+*^G4nzdnN@53Y&%a7{c6{uJvC%Fk0T z-*2|wI-h+SoPXlv+%BZsFV}7-+%cQbez;MiwQBBgw%zb+bmRI(FuaP0#4~WtjrU_J z`tgBLzZ;*nWt`QOoq^F9{D6zhR%fTy7_^T`N*be)GFMVwhLq_Zw>>2i&7USk*|O7k zNB@?u=8xP~*)uiQ=_{{E!<{uHA?M)jmE$nTPsfz7F;4eam!+ zH)x;Qcqr8|%q%I7-4M{GQ|*Uj8Nth)rN@kV+U#M2%@~bc=3Y;Bh4ejIF;*P=S}MFp zn;40S2q zz<0xcKSJRMuU5o+y8BA}W*Bt?@$L#uOgH5_dPml0F%CoL0-C!*H>4Zu7N480{e!BB zDSt*uS2Qf{k&ccaZ<=JHOQkJS8Z)Iy^2f~NFoQ5TgzBC17u%AiGAZFtgaEE#{ z9@U_uG=40K$ImsB&cYL@w)9LvwGB7H>UZtU#ImER8lO(Wn|9x8B3n|sX1LwzpLKsP zA=dVM7@Q&L3}RV%&-}X}a`*He&jop61#+rV(9Xc4;A%w$tu-}ziT&gk;$?|)pf1X< zNOvC7;X1gbamrhoKzXqfW3b|*!{Ef~mS3E-tDoF+vaSxYxEkdXuQuMMk;s-FN&&Lb zcq@}5jJNW{d`rd0pY9A{T>!^p#pDZc?8D^Pht>NOQsw@t2AP|KEA&*_xS!B753;-h z1E&_^%;EGFEjMeW?LnsTmHlv`|fyl#A^IL0F4`;#)f@mH{HPA z590b$Ij=S$esD%K;ag6$2YmH8(V@(z7N85@W94c=!P~8ou^3X~nK@!hw{jrErr(+j zqK?{P(r7|D&V?%P$pnnj?OVCPjz^KV+R#WFt{e;tAS~!;3@F{>{-I`4&e>lRFu33K zoO17X>7FdjVe|2lg%{zho$-?6DG-iIg#w2MmhM{j3>(Cpc^y~X> za?XBJ*Vg4s@3D*}eZ9xhmKfe+sqXU;au10Ph5qY3hC3~y1>R%XOS*WEWx4T_?d~4! z;XRh)$#k|hMYFxfay{wJ)*aZP;d$<4wSp#h{~QoZn8Qe4=J}Jq*7UW42m<;F^9lNr zC+KUH#B0a+hKIzuTD%wY2YVA-BUD)$Cbbw3HzFy-QJ5e)V<~Miw$W!?9Xz|w_@KK_ zHZQu%C_WN}ZE^~|A$GtlN|kDOS2zu<)8$eIE~lQi8U?}Y14zx<%l${(Kf$ds+H#O%v|@**JRDX}GY6d5*L6Lw6oo>jUB? zZY44O>Vnr5I7{C|Qmh6@xi{tmf3Q`|ovE&q43=}xgTm9u@Pa>=aSLvssfwnAG3d>U zmq35bV3$ohkTdWgzx&E=yv|~O%qHxQ0rmc)G4{t&1Fz}|dR57JnxPS3egh@zc}5=A zJdEz0oS`l~ouR5czRxwfr_#tw02tkI^LsBe!huG>VC@WHWkUVz%(vs}c*0--f*36b z#tkl<(e%jOc3xntLtLb98-|d8{nq@sg{bd4gt3`}!N6<*i(8n;NBuV2ctkFFg4k+2 zf-8(f9$s<@b=Cg-o@&(n82Q%&67bIjyCf5ELV~Z^0{g;B79ESAlx+A{v5;T`$waSZ zhu26F~%?CmMmfUp1=5C+s$Kh*<5?kjFn z%{Y%zTXJ=++cVxoLv@>Z_+kav>!g16mKK}-@zccGXmtqf&s;JLzZsrhn*W~2w&&77 z7?*30L+Va&KK32Y^7PW*&lk^Pt4vs9`?QV7Y+FK?B{NV$?vf(>=6Ld@9L_)L0FQ}^ z!53w{X^+7DQNH7yt$HW&_$^yn+80MB#36OJB}4Gr)ymWNjKn-D*B&9|8}1vCBhNh! zzuj^0QJg#Vmr*+Z8jcdV)3V>U;ZAoULaq3Tbwsho8gyb1yocj0)llo65C+p9^-!?d1zeDj)!1b-vBt!M2|@zcX|@Mu1-U zjbu*#Rkw37c8G>0>7IiSXO}P`zt%9JuaUu&`>aR^8A}kkijg=Jdb^h)DRR3vAJyVJ zxpX51*qQnQ)KuICws2vpyC>-_U*(P#f#+Ou(R>uJ8U?Vuu}NHaP0zGuH)Cu_b@{O! z?%02|GMUyGXF?kO!AybwLc)J8`OjQhki4kXSO>{H-Ge0 zSA=Z?bT$(E$~M(l19bF9Z3gIbM5v)~oX{+1EC^z_dBs7j8)t852Vu}(oZ1GV2>5?av_O#guQnj~=RX003m;Ad z0gc7j{Wlr2p#^dc3<@AbJKP)rue)n%?gv*!QcPWwxfnJ+q^0LtbrcmtM83c(fI@Gr z#XncVl#E?{Pjt|MEpUeG&n7re-h|%YtbPttL+^j$aX)r)AcHeB0uA{r1Lvh*tU1I* zx~?_$x{P&?61>SZoM?*sE)Mtz8SqPG zz(*t*a6P`I()kfq=hd%DBtnk4VtvLs7H+~ans0BLJuKC0Ur|&&deHS1)xfqfxE^!5 zW3+iOT>`cZK*ck$KS~=a*xuq|BIxj9t0~M{oTT0AbKOLo^P)#w9T_QYF0dl3=Hf~~ z0mtCtoe_n;*c;qY7)x8T)pID&pnZw$6X#2`Z`jbGXkQVw^6P5ZzG2DQH%_-tmi-7q zYv8)8YTZx}k6DD~Pb9_|e>!dAfdeb$Y}}|ED=uiQtY1SF743JHPN*>+{uJdC=R|HT zM^{D;no=>2?H?(3inL(_51^G&Hl=?;Uw~)RQh|Eix#092jZug3 zdn0Aw*PIA!Vr9u}J5SeQW#w^g4AlIaMlsBvnB?Zbb_f1l1}w^ zKMeoEX(*mFto3^WMR&)7tNQdd zJ4_?L?P!+N@LdZ82YjJL%^?Hk4}^YTBeV%WuJt^E#x+2r0(p(&Ee7MJ5eDOgD_Xb- z5f^TADmp^LaX5U=CrFa?3fQcrwfdS&@#(J0%$=_r4Ay?>ncvP%lrLI7)U1l}7GU2{F zgc~GUYL4PWrxkp!PW{jo(2Z&J7NAYU!MU7fW_h_cu8PfUZQvJ_AO-8*REKV9tu8%i z)Zd1YoEV(44?d{6oM4zOH&a((xe4bmE-OVUBwzt1%L%)$hr)er46e93-3Hg{`yX`gKI#m-wptQB+N9G;7Tl>0&DdDxVzPh~6T{^8%|d@Ki#4r- z{yvW$YW_&>M)S6bN*obA%X+}n!X>P+RQ40!H&BI(1uk%&6|_TI*x$QoD$?yZsZuze z`1db*E$&nQwJVN-?5eNqjjJpaBz)qk;AlSxjoW5~Ubr=}y()-}Be?%owiN|-R|Iw_ z9`s7}qdj!&t(E!zL<5$>=i`TGZ2v=^Eezg@V7Lt<{qj~j(VO~tn+3PHXe=R<{-LaX zFZy4UfKoD9SoB|{>HlID`TgntDCvJ^9QY>vkF|hLvQMOcEXx0%(tqx0(LcD|Y0y7X z{m5vtYXymIJPz+qp$2|S6JAZ$SU%@r)Cv! z`~|Bp^*&mS`pQAI7ORLcP8bqx6NOz%yj`GR_@9tY=m}V}X&NL~2zL*PC5-&VGD?m( z48r^Iwzge)t0H+<#xBuafqz77K}IUsp0O)eDh5Pt{n(+dLG-CvULyO0e5_9R$p7#o z{7;^m{~_3p|J|5`|6wt%4bQW`YW{aCF|3{ZBa$Hy!gE(gIM)yU12~2Xlc+fvC(Jgn z!5Y=kV8MR5QRh#Kmf8E>LDm@U)*+YRFXzX0Bb_kH*2>$JnBK1b2Sz!twe2W>HYQ<| z^B`UkO=SL=#`XC&OK;XlXPYDKOc?3eh)zDziPM#)ztKNzKW4YZrByvXa=J;o@rlc) ze?>#QjTd4RQ``nt@V&fHyTW%kRjl0%;ZapQI@jL)T^eILqiqoOHAbWjf)Q6BC743qEwt{6r zIAUu-@T}4qnxI9roB1hV3gp^UZ6b?R&`4WBtEGf+lP*X`-72WFE{JiB2%;j3MX8)Z zQiK-UVt5RtoUAAr)1rX;TQkp-Qk0EpB}HW}BKxAHTK?Z0AD<@V#{Gw7*7y*K zxcJ`zCSyMl!AG7I7t^%;CDYzHJB`}IYKkz#!|E;g52yj@r_j%SBh8m#bp^dj-fVhSgJ1;otZTTjhkDi@!3f~o2K-*s6o;S2@BO1K_^}{? z9|LLz@^O*GGRH(}Zz#R%)IQ{iF+?$XU_y3Ku;GT%L zA8-Y}1H6SEVd1S!X82s-Wf5eI24N#U84VVjU0ZS59cld>9U1k9wjKFdY4VQboungq zNjkEF`hDMozSwEb9#-!zB9IO%7oKXnei8Z`jc{A~+kRbp`g=6Fo}}q-B1gO3{A0-n z?n`4JPMqmu)Af4;MMy}C@@niDr`7@*Oo1pu%WbJCG|0L7X9Vc&E9|BUnhrnUq2 z*~o+eOPv2b9b+F>6$Sg+%>NQ=VV}Lj_Hd#sphjHVZb(Evh%AcB0(QC03hVLds>i3C z_Nx-wuV5*}$qo$-h4@h3(0GA7)=)sGZ14`o1M5CgzV~>iB^P>+XS(|!6EHauV$Kb zVXn+n&DeVYVHWeS%TXv33^pBU`R70;cOTGxwLMLoE&?}T8}O7%IU?Lalr1}mveiDU zy=(aCrm1D3U|TI!+TLcpCPKHoVX@=P@&>o#EDAY&)%I)J1A85k80(mXB23@NGaBw1 zzCpIVjsGS6Z$Y02vIVuTIZKDtS70A%4t{Lp zjPaRl?@Po5tF(n1eCqZe;;1J2A7H5DeyS6g-$_KPW#AF1a->Iw|G`+y@64DvR!kcq zEN;_;*k#SNE{=XVM*n(p$zJO<(ZR%O+BEMPfgujZjhZnzGIAGt#Jrm6gB8GYoPHl7 zK00C3ME$G=@W=Y?eXxY-rQU$V;$S3mJvSA1uu7EjK(Ayke<8HVgG7VD!xDatb34s_ zV(I(6#A!>PbR_sFg#uUwCADSg`w8O$W(jTWh8*%cPd(&UwHnSdV~f~W&E3HWiSjhLnJL#}LWgWr}5u{vgA$QuF(I&!}tr|)_3ED zZ2;fwqiYbaosqpqvpfUfi^eZ5_;8)ePw-QN%ft3%s}V*6Q?NZxzjVe+BU?c@wkIRa zLv*|ol6PM>;DcvRJne9MW?}-|-tB-5p9cK6f<@em!|ygU*fxLt-@`8_8T@i%@FU-i z!LRH0gWrL98h-omw8QV#t4|AlZMdrCIBB|-u4v&n(#5-!tY`K&9C>5iWfzxwTRSbe z7W9umCN3}tHq;wD6J0Z9n$YObSv^T5?m=fP&2J~Cl>mz@ops5rFh1BH&T1S8llZgVhAF9WseTy1Wuo% z{K3_rZ=1(t79v!}9oBS?s- zUhEyY4dwze9&Glzzq_~bH*Bt3%QuMfAjhkWLdj`((0xZ<&yo3~_5KY1&S(~k&hhV* z6wywINkdP&Sv}P`;kUxVUNZ}0!@S2c+?kM{Jj1+=Yo*?^QND1&`!oGJ!%>3;vj&#g z85J;>6n>ipy&KU7H+EPB;Jl;ydv1UZ)4dg22>N@vL1@<3sYiAZtZ_%Sv+?RH zJ6ve7=w9R7IE$nsLfs4(3O)9E;;|KQjui0gSOK5THVeQdO5zp24-tC)>DzHBx*4-$ zrMy_xrWq>`p+20M*bG~Y}cF5zU!^C-t`vw5g1Ku;~OF& z?xjSoLnK&TI8u#(4RV(XgVbIrQ&( zv-Rc1y4^t7^~9hJ{qW;7#=a@r)k9tHy%D{@wOiGAAl6rQ^?3vntN@T6aBtPZZ1whx zM8LRGvDIad@$lCu$*3P@;z3W0XVJVNoL>+sonMIGig{<__lEiWy?I_Pe(#;12mgo} z2w4~~H30*jNrnLrC&PgG$uQt%jRBGC;|O4NzJ#5J51YO7|EL2ZgnAFU9}nsLq(SI> zIHC9N+?v>XXty=jx?86BKG2eQq5A zqgm`Ipv9z6{rn0$GEf@H=MJp`8cPbpa->iqN+i5#{ds0Evb zT%8K84o>Nmk1e40;e4o_(JN`S$fqF-!Z14MsNYxS9%znKn36}dw=2}ZKvm$l z3%9Lgp&K~!4`;Y^Dj<3!BS<2T37%ZrOkx-4Cguk7Fe3wIK;u1uD-Sv?E3k`!sw?d8ewCGu4=Hlp!kMmGBA zJ5)>jfUSo=z>m4;?LUhYFZUA&7@hr+piQQA;c}^N+qA8AxyvGZ0 zO#!yZ;Z#^60V+ej(JT^Ex2Jj<{w~HMYh@ovC4}I{W zdBo}(oMnboF4WE3=i_$<8pGVkGQ}Y>`z-QztWQ1sOWHH)ABRQ`SBLdnO0Kj zQMRPfvRFcFK|g*to{;mgJz+1M5MyYI73lJofugEZoGpqA+Fhj|Ea@$rN!ky?F{m0AQ7e>qQ{NaKg_?_m)40`;B?mp2A^!$3f)}4#C*0H4vdP~*{`IYh`|BX^~ z@sXeER*qRP86^x^;4t$K^mMbew>kPFesxcd{?PnBO4bP%*!X7c7Y@pg2+ay zpV4BwNRqWt>1-!ylx{G(5pt>oJ{$q3YNPr|i z$1!AV&fgIL?NL;P~EGjD%he*^J{*`PXcAujR$mV{$3H}{DXw>xt3hR>^b{X|N3Jm$C zWbyoWjI7slt}ApC4t+Ra)PIVE_%=N&4Wzi*Jpt`F7|r0XQMViAp~FT!d9PIg^BZ-q z@sk`JfzMp`kand>`Nv)~>K?^+MuCcRcFU0DRLCHPqZ90d(wRdcMuF&X`>14Bh`W6B z9CKLEpu--WScat&5@TAaN$!P!O3U4m&UPF{EhX0;m%^0`bW>=nUrR@n?%9qD|0MPw#&g5 zHnFC0e@~V(WYX_z$<(^KFNP@E^2r|V1&^RAC{-Guw9IMm7el!{(E{qSyGr7RBeq?fiMf0y| zIBG0GqD_3!@=F$oF44ZhJ%E(WePw|&wamKR>%=?%=)Wt1Irg`!zEk(ghQYa#czP@` z#X(67HNKHA#e3D4KhS9#ByCYFEhV;CTD~Cd7BejcD4c&EOS{6JmM=*AGo+=wQ_krQ z{0&TX~!o8lH7TNwJUbcJ171bK6xc#^8~(3P0~ZQWUI z@^cZqPDFAWDA=of4G48u&Of;+-tP85u=tNitLxEF%f+&*2@kzNlD%1vgVop#G9g>j z&Bb923M|LdniU@zTXU}0&6#kr<}mrCRugipA;Ebr`_w3@-eYd8)79CV5hGZ0P=G?& zM5a8UA2n@+ow_1#wQ)1i^dp;&+Ss>jM;pn`*#cFB3sPXoyn!7lkh72EIH##4JcQ=f zZ5chk)Q3JHA~Y|RCp%rWt@5nYjkee{#tuSk+Uri7_mm!Myf$&^ewpU301hC5|E_os z|7MCC%S+}Kk2jZe_Kfg0mNVKjSkat?<{R7L8kl8+E{?B zD)bsNdOorz1{-I&si`qw*p>*?%8O5ptAqY1_^BQ%0}fFgiP~74A8;7aOanDrfopJsLM@$=^WDDqc?DnnQ7g|M1x)Hmz5ZTjsEyb1sF9xwBhM>xJv z4Hxu9`pr7UDoMduPl24p4h0Q9MUwC)!@pEMm*e~W?uC#tistqA9xt7Lhxd5JyfeJV zZRG$Ezaem#7B^QlK8lLS*LdVnAS5g(4 z3sr{hZAr$(S^Az4T8QG9wA{rlgioQrqG?`Xtm~2v=6F$6s0J=g7?X{I@J)U5|74u! zk{4Xm6v@D`OLu4bHWx+HeVa#0B{(Q(w@!4qB=UW1%nT<@_5zaGO2YP4XbcEo=N3pZ58$pNlpb~6^?X@nff&SZ_@HH$ea#(uj5P&E6^T`aTH{+;1V6EdshOIDBq&pwV6uN z178Af@JJ{WQ>5iP9u@fT8j?bNXEgFEP()|wgat<3ArvWUImpuR6T|&`jk=fcG-qYO ze{=Vx5u$OUiYK$dUR%$TyfDyHI;Wy2_r2-}ln9`h|2t3~I|8ghM`&LVuQNZAo4x9l z{=b3XSQViW4F(8cc#-;@ppD@VO7#{9Wiq2;c~OMkP3U!3!~YDrfl#jARYUvJ@i#nY zRdY)*-Ej7z1i)x|XXxxF>Oi^p4%M1|H?cHN>ohYuYyJG+(9f$wv!S0yjQacaw>h1m zpZ{mIyM)=PpR58*)%prA@-0M}$cK6_)%je^ckD&aO)x_Y6Zmtt$oa^h>*=rN zzNDeN2?e!57mXT4AYjSDwOIzPs?|s<;)Ai?>%Xu*J>=C zY%37k*kDQ~u0n0)a7XS0RoJofG{P2rYIL?|h;b)xVV+?_%HTYkupAr|O0u5`QO&+#&L>>tuWY`zH!d!U%9a&56_5f3_H`8S~@m z@CW*qh`Y)8+LNTchl!d6^$!DhL5wq)$UqjO8Hg|h7~+bLkY${2hpXPZM3w=ujN2l& zfor$|&6R-<`Kido<;IJ^Dm4FqHA%CLE?9It2DU-1nQUX2sXy*D{O@CU$V9XSDkuWE zrT@7~^+`mbSCI&N^o@tIw2H2b~-%aNnaI zgSt!xQz4ur&R{fu$v~D4_{-jQ6X;%89>Prigk}nVS%fp(HGd)9Bi|I}JN}~Q7EVt%9A&V)5ed>T|HKBZE;wh&Fuw@bSfU!VD$`Qak z$Pt}TH&z}pVB|h}zURD+=Odf?-E+E1Z$cR|;a`P=Bz;cu7e^-U+`ANa)KhX^*8qK^ncBL6@V zs&v! zhbLfZjw&e;Oe+y;OG+BopU5;?O{M__Os`AOx;)iw?cvInM=#$orpB?Xx-)SfXA@C_|!n zevm$kVtPq^r%pY^HpU}ATJkLx2C2^5@?-tL|FX_M!0=NzLP^tcW)VW1C@#b+=8dcPN*QD>+y@MQ z7yUZLaRKf!G3x%q4rpVLOP}{)gd&K8{S{NjNBkO^)XGCvLVNL|>b{@`P$~9L{{@^~ zWfXDUlsS@MC0C)Xf)HRfd8rUodAvF>aN~5AaO+bnLGa@*GJTksQ!6FK$CrclPgH=m z_sWw+Uvsr;^w_|@*aC0XMhr($RMcTujZobd6kQQaae=V9(j4Lg*V?o3~8v|~~5IA$-$b6Th zL=VOOU+NBX8V4N?@g3`8JhBDZ(LWy!?!B7ETO4ud?uR$r#R}BX19=Mv^5@7M`FAYt zX2#VsPQ~J=KB;+(dlzxOW4TK%_Tl_ru_V=Obo1*Jeq9&KaVO$T`IsO6Te5Wqc?$x~ zXO02*0QqlOEYD2Fc46{65ogku@7Q$Xkp=kTJJxr}NZ+xp>_lJduxVoBe=*yiet~Ry zYc}KNF>W*B!jS<|^#FGPOR5XugKh(nnB%{aIY~Y`dH{1iz&Mi6%<$4w)9vX zp6;{ty9b&k>$wSW>UyT$h>(uEnsH+hC;g8+jn}2e3JXx1{{abKfUx^cvwusEwIcHV z5qKi7!~~EBaViyM$mwQLaV)6Wcr9b2|BYBo7b!TVR@$(Tv43JLNeG93x8l@Wxe~ah z5`1__gv%2;X$_P93Q4()%J#b$@dP5s=E)csEfYX3R&U84BF$)+eeO7&aD0xEYB-_C zrl{D2elVi#t9nYWX+NdwxyoK&RcjN3ur8f9f7S_i3yi5u-3|V}-FR4mLaRev^1xyj z9Ejdy%VNnVx-3_42K+ZdQyl-MsII}oo`3fpD4h40{EGo<#yCl}zyrTED|j2pw`=*f3Z?@U9ivsGPt4~5Jk@*n;m6(PbDKQ( z3;!{rUNfIB;Yk(i89e2{Z}kL27{e6x2tvh8szE2w^tA{tCzDT3oON>fWYOuYU%m~_ z($+p3^Us6(2|v?9OEZmA)&~pp!H$^!ySnd#`t4pwLqT^v-OoXKO!sxTzehCtUl8*| z5OCrPW{PVtQDfdbL+`IK>d%)9X{+5A(;kqHAI}|Hf703h1JsusKhW~SCwPa`){EF* zHkMLTxk#6=%QT=S-y20R4_uU7%yfNDV$dgvm6PE^z($`;`#y>pCL|U$G?JNi{?<1| zIGKTJInVXfQ(F_pm#uQcYv%-{l;==6kx08T==S3s`i%?6e^PO*KTDSY*#jBt-18wn zoPd1dL(W(lZpJ|^cKya>={IlcZ zuL-XCKSlu-sK&%WWz^-f2rL?21^EBlYt&`yA|b==nGa_Q0LqeIp$!^!5wHzAq$2wf z0k%N;J}{c3->mk@Q>k6%`xf)L5l_cJMEi_swWTdFX1WE4v}tCs z=qYjiCAI@dz5R*c&pgf>m}3(xGHNcG0pzNZkLu~4ne&GnodT86T&1*GbrP~`(_M+C z+xF_BJzgrNPK~J$+I8SfTo4dbu^*lQSR3_T{Bkl%he`pArBw!@7_P!<;i!fMU+~YR z(@sejs@Av~(;sMh2qSkabswF2db+k>oDlnHEpYE++)s~$sC7m<>=6H6?FM~Y_6yHM zsp^l?4&*7vb&x{e&^lJ@T$Rjq^hMmDA%@P1pX>EASuY2NuVj8N{Jp$G{Ozitl^lQ9;9l@J{vKR@ z+W0G|D|JR49f8pvFSx4b7aD~gt_OJ<^-a(yY#94HAO-FB#96LdAO!vz!@>u3>KM*) z<|MWmb*~`AWO4p_olXmk1rzmp23Ln_E&W)qc9{NdVQsl!ZH~#`j~(>fB&eH$RFc02 zrN{GQe)=n>f3)1fUryiHyx~PVwB2+MFqc~JPCTVUbyUELkAVM*X2XTkYsF-z9{MZC z!0_LO1Vq>(&hb-am8D*yz%wv|=TqH>DS2@Me?F387(dUw;rJWyipd z!fl8h{ADBje<&KiCeJ4I5}xXL{KOlge)gEO0XP4|Y8E>M*s}~5&_SpplHR5nJRgh) zBs~VeV&F31*-UfMCO|L7e`z(+_tL2=mwp|H5@oi?^BKc^b@7I-W9sq!hekD zc{=SBriIu#*cG}lj=xx)`VKiz{q*7BzwkN*{=-yc;XjM?vq;*9xKJi#cu)h%(6OXA z7Dw&heBui_RbjIrVXuaUWh6xP#QbcbL}Vh%07=-n_{Z=J;>dm=&;4qT`M%S9 zZpM?Im+R%dS^dU*z9`QY^_2Pkg!%l5JeyPi&*U86=+*(p?_-{po#1*RFPi_a1b`vG zLhy96F1CRyVma<0RHJc#UFUCV?LbfXI zYW6NN4uflUh3%hzZDQN~Xy_zv|D%r>uv?7R@f3J$`)3A2|HrPbXf+!8ACQ z$Y~u*q;@`hKwq>Z26>Th!7wu?yT%|d4Bu+?0PAYd%MqtO_-eO_uh{jGr*7|T0+h># zd6B;Hv25S_x88Dvo^|X1ap^1QD4pR7I&x87kwuSfXUKfw)?0#`S2?xF6PJd|)9+}) zlUvq`=wX6IhQ)NK!gbh)Rwu-|snc-G784{yZt^4+7sKxs@l?Bmiw`yF+w|?QsU~5t z%o1PO?+=kW3OIe#nEH7<|N9nw!0RA0BR6)xT#XvJhBTtvpne4&ZoN2zW+!l0hh98n z(|Kc+Ot;jpPN0!tXK0gyB*m7aUfuMz^jToF-!Ex1(1q2=lj! zKiK+zhSmNv(f-ODeYqUcKP2hZykFZo@i&30IWkMPa=?;$i^(2B85%V?Cpq(yO@z|j z$d>?38zdoq%mNB&{20_3Fj#shpP&GK?4!Ebe7l|94WxTJyd( zxg~0o++PA-eUw*e1@;IDsS7^d&&6vKzgYbhlGX3<3c_K3N3bRjR=7&@fTvLAk#V4- zJtSWwud4=W!hTmt{<-w{(9$>0^W+m#BzvfL)f-h<*52nXh?c{CdpxCIWs?WuOYHm3 zHS*mvfE%zNLM%70JbO}_9{CQ!W;}J~f#S=BKQC01%=-O*Vl#tI%oh8@t$VnzRd*+Q zz^*L8w{X~7_RZVR!^(S}Gm!Z;LcX$RA}{K#xBdQ(_b3iNDf<`!=vRdp_5g67g<=RO zOR`OT2Y%BO!#x}0&lnqc6GqQ-s{^~Lj17@2ETt4wgTY}3IT}2+_(1XA;scQigu|pB z@pupQTU-mSmVu(Uicl3eS{3+8ZxK09SnvE48o$-s2i5eo_v6L1^e68w3nJ&RiA>lS^<>5zD1x6$2R7_JxdvOgjq^s7z`+S?k4u+%IV~an<7MkLw>cA(i0JfBGk@6!3+YjDYLp#M>^rQg8+PWu> zpFr*DBnJSa#u=OhOv5&CoVZ|gSu|50}%gV2kaPUHS2m359ZZDOox z*Y%O6jgzJw{mg3G7^`WQvT1iY%#kRR)XN<$>^4S1N%zfn;On_3#n)(-M%E?_0oH#W zL1s0-pET$XZ(8_~`EzN|Iz;%&Zi_YO6}$_6JcoeBj{{hL7yQ`!1hXu695!2Z)NGZ! zf3H??dnaZ|IQMWZpcV}91K9t;08ex`9ykFgBGk!v;2wm+2;$P>D|KX=vFsBN8_jc- z1s`A*>)QLJ=fR6IJK>={2G!tKc8LP|ku=Zbd7*y){G<{I_ZxMevH%jEGf4eVtsM6* z)(_4W`21q01)t}h68Joh2w&N_zgYwJFx~||bqHwqY#d<1XP#tP?pS5QXSE3*dH){p z37XRcNKa1_*lfP78rvdGuA?Hov21jca8Z*Fwap?bCT8(joYtIb#aYNO%$^~DGXGjd zzqrK8R0v1VMADHIaPKmITy@1GCQ@y=?KW2mNR_~L;Pi4W76!{O@&^G(SrG zfM(<;Obo0Zc3S1n!je+tMq~m00v2Z&b#zdZ{QU@v8W7k1R`@=4?Xy~dl7$C=lJ}AT z<^-PM%AR2Z2SJkU{dJefe;F#VbN*>g&bXQvca9 zYLC4j4Xnol4gB%1q=6ToW>uo!O@k{-bjoSwP(wiqQCxU^DtxT#!44#Sd`DWuUIsfNFhJX$j z$~^QW4*T5x>24}w<^OLq^xvLfZ4^pHeuwgsOo(<2arDu zUC+v-C2$sEX5NNWvCL=2GXI*H$1^i${A{xLJZgfFmH~LsZch__rX7y0T zp8#2|uw%-}A&hHqs><2KWvOWCR@M*4d>mI%6}kcy;8YVAK!Q>soy|ovWZo#x)8GmM zVlY_3B?v`L<^5XNj!63PviTT2G*g;LtER;|O4QiDB=A{gJ%G%wNM`PXX?;UB0feit zKKjU=fSjDuqq?5h(;A^ZZmD7am*bzq9-Qv@qhY7O*bc|PS&#oCoUoQ2T0_8L{6#*% z_{%dm4Z`pNvrzBx zEVHy3PQS$0;5FH}3{DqSft@aNomlOHUPrWcnYtzmJqPN_y=PPgj#a=l%oR8Rb>+*fBby7V zjLMI~(H_MI^cgbIY%65a3eNp;Q8wCNd_d^y#FxZ(x<|r+#qUKeXszdUwze1=mKz~o z*&u0cH=^`ZSD@={h>Ye#<+u?6iBu!d;%KIXIhqSyun(~?7L9vzwNO8~WA&;B)GKbV z*(r*agmi;JRuC^-f!)=C7In4R*f#Vv4Fnar3P0FSjCrB(1y+QAz{58r2LVr1GLedO0EnSz_!lvRnrI3EGNX2p^(@`mtQ)Mp zL|vLmNL$uScLt8_1DWl|Nh50IUrs$;odFoJitLW3tB%emrv0ckWR_39tUlC2y%vE)?w@8JuKD-X{Qiq}Q8$srNeD2owB4>g$;u+hZCztaT&Yjx+k z0-vb~zu(^)#cJ3lDG2KW8wp?R7u4iUtATfu7$H(T891cw9Q6d8vN)?1$^3=`g+Qsb zmVJrK)-7lRLA+m{PdfOnKItMV|4Zv--T}XP^(Uh8KZ6L|fAA+uVS2aU7aZCe25Uczz%A5itcv&WVcOVxg<5hwrAbZn?wKySym1AxwhQm~0oe ziqur3=HOUdf2tr_UqQ4}jca5doPN~fUttoMl*|i>^6M%szpTV?fqAu{Eo5E-O)xKc z0wE4dyrnW|Jn%LO6LELj=9PfnC9Dsa=In5k{hH!97j9F-S8yGOvU=!}i+(j7+M^dA zQB!PvnpHDJEk0B-BdeCF^tH134lsG;6_9P|YYBkrrJPc=sog)5lb zx+jeDU!+9r<)D%iy5zeTr@(20T;pB5yWB~9(uYbkor($4O2lErzvbINUl64KTWG4w2(|}WS1hNL<z+=b8X9PH5mUrvGJc}8=(1S1N8X+BR2lC)O*YI__HWE zicURykRzlES0m-cv_wHzA$Nafx1K^vFei@FDj4||#~eU>M-tIKIc-au`Gs}J{BrZ( zEV9SW8ZtfX;MuWcE$)A8X7l?K*|64lNijfb>&2RU4Mqy6nSc30qZ!h5%|SZVrCm=x zgv(W|CwIt8o7oE(fLXgEUH`)`k|Ur^*I&?~_-UTsvXvv-M*f8KA@T**51znhV_mlQ z*kE^8@3EooY~SW)@3EW(3r!it5x(&+H%MamPoH;#skRUfb2#d8=b-GguZ>p@;%tUVX^UkQ`Vw_ZOeAq&X4*=2;EH2)x_UQ7pdjKX3)K^V`2VH-9(A_gN3tK%iBHE`$1xG1y-S<0Uvf zI{2Pi6l~T~CTC0ab~>fZuFp467BXj0U`eBtOMl%^KmXRaBgb_?SIQsg3Zh1!7-vZ5 zuw+lIKhHTJh}Og+Fo*1rqB8v#Y6~Kx)%z)yczOq-Rd)04)FTZ@ zkFMgV&CMDOG5HV&XX*88&L`!B|4LJJJ}oQhKR!QYKL;l=I^92_C;EqpZw{v{{y-7~ z`(Eqt@{^V^ppLMgv%>JOgGmPsoQd_pqv;FI!f%=<(;4g&y@(N>8BXI5eWC-=e!OPj z3~%H0KG9wXXCl?DeWE!CcJkoPhd!`ZZOla#s%PE%K!p!1SYYW4)tRu+-c?TZ2-SC( z5o+KRHI>%(%eR!n|LS~T@AmTS?rdqOYovyp1EvD8syg$u-u3R_%Tm-uZ=V`fUi$2m zAZ%+NHR{dtzy4?N%ULi8;K>k}aql$D&!?4bN+GeCLgc^Z@?Xn-Qf5gbTvH27MOV<=POPVwyeh^G~Ny6=wwkGhmG?n==7CbRbc% z=!JcD6igsTje_N>3ng^G%_2wI^QJxud)~fdyH2_6GV#+>!lFwed7ARqaLiz*rcYXz z!Gh)reF80TBJDRuUbk_54~DGJj6j-dPvKEFKc-)WIiDu7VtBswrqJm zqzzD*kf{>U8ci+9h3{1IDxn^g;|XyADlTqkd#nM|yEV}iiamyMt*H`X)@5$>V>49= z*>pZr73fr~gL88}Q&lk)1WY!>pGKV@Ya5pgUSU)GV(x2Uo8t1VICkEFf?$H;)UaAc z3M+ftMSKx?1utmGT0NKJ1r1uO#Sgp`@THk~&}GV2lucUX`H)s1A!@QyI4qo} zM3*IHM(|K04LU z>VZ}!L^vU#pcHk>yIRm8nAE@a@x>g>rCT}1NfmzT;IJOU6_vJRIaa$|O>H?9igB`o z{T)JUd4&F2SH?oXFZ4E^$|}fGYJXi_K=S zd1}!|_Re*1|E9Tr4lS7jG(h_yeuY<|<}fxQ=NganMG&EkB}?#|x}=m^&mfsU_-@n{ zg6oQUpbnWLKt4o(0^ZL$&1A?r0?E^G@R9F$x~G?(e>Qf}4cFh*p>Fn9EQzj6C=fZb zmek-k(>=nfzmunr)QyWN{*jlM8&L-mq9kE)tNLR?EXvD6Otfjp7F?XL4xC5mrTHWXZK*MeO;u`*GAe)QI%utue#81LK3aNpr~#FFvHUe zO$%LV&qn!k(FA*pF6g#|R4Ah7lFRYiT?*>qF;xAe_L+KIV~Hj^}v&f|N(Q_@Prg}feCTb2x-CFZJ zz!xWf!`-HVOdljc+YwAwf>&`0*7y3^86Iu9y2!^@*~&@w@+O1D5BKv ze*-uHCm8xv@bMbiOltOU=~i|ehirODxA+GL!(P*d^E{cRIS))c`Khvo4krq%s9|Xh zYlUQt;Eq@-z$f^bjK^~_VzJ05(>y=H#4#Du29_7e;#|_?i-g5t28qo}v4D;1{UFoi zdh}oSe+d2_ayjzV1}_<&26%Xzw?>-YDu>4NuIbF}``_hju)SEbjmf zxqhkeO{3sCI9mY)R}d2eFFWMuAcz?9#QeD$@eQy6$Y+=}@Qh)k-sE?#3O>!r(@X@6 zWFBqxU~-sCaJ5O8=m+2xaKQ7)5`~gjczaO*8x+ggE-OwE2<$Oar;o$TFTE zFh{eMxI=dhUwJ8V@aL=L%LWb#E=Ie%0;9jp4~hJ#F4jgZ498?nprwnI>DF4>|Ir%bR4V{8_%Tkj1Mt&u_a)_$D8KhlgkL2^yvX9$UJa(LyL zAYZHlE}K2&R~*IyXPFqGTRtIrO_ieU3M6XV$yJO)Cn-cS%^EyO@i(mJ06|iKP-9si zV*PWcnk3E@pr_s=iEB3w_3mO#FI=4jN*BUM;nTd9Of9{ys@ch zrUYg&Am-`0&fvT}%XyoHSQx(rmOy^BSRS4BdH4L7%CYC85u0(u8F6 zx%Zz$I*^nmQnGZyNE53!kyvGp!k{K%U1*bDK?_~-%EQUl|4jO&Z(cb)KuUx*F%$7c zm>|A5`QpSE`hC?175g1i<@u1Kmhnh5l^^GtFEC}n)r%tjLPjq%^LWiX4U#NQ-Pf<< zAV7gxYp(ajuz$Wuc91Ku{<$wk+C?Zq?Yrmu5df#TADkTNIc(^TIlq|vyglb=AA^Zc zZGq1Y=e>>e-NE~7eELS=5)Dq8?MO7qlq2#jm(qRY5!Sqed*#v~A-18<7$I5H+_NiB zG0hcrG|kPw*s2PmR#@&sgN#*I4x>o>p89u2`r-g7Yy+lW%sU_tGq^P#T#uk_=5L@- zGIlSKnZf|Husj}nmmlelMX-~}pE3<3mp^0O*L>uBOYXFkYxUUAIg%%rKNBbXnEZ)d z+aVyr#88)=Rgj3PQ+GsjakPo~UAEUcb|jb40k?$Gu=HnzaQ)5&c!b# zm(ECL@&{M2fxJN<+J_SmcqDsu(6#d@E(%;F$-=}wBqL#0;W$_)1dwIl5+MUR4(>_S z*rZmCZLy{#ddUO9L>opWQ^&|>q_~jYf!RiMVtBD>Q53HtaDwI`e#$Zg5ss_dv}5p( z6Vv8bNtal`#KZ(q)a<{l{P&M@OtC+@JIFJmnUfQTder>4^zk)q#X}h@=!#E}JGT)X zHKvhLoThlGz6Sr}K|8n0bBDSGPa9gPuivqwRAh@5C~f+S>;(HC;?K31!cT=i9qTXj ze>>UyG+BoF3MdNW;q5vZvIJHXPIU5MY4{eX3AYzfGD<4CyMl81vn#L-*h>~&Rl39Q z^+Evj2s&<}s9F{5bw+!Z!5S$4F>hdJRp4LPQwQy)1$p^rDmoY&jH9XO#I%lB00R)i zuT}rj<4@fugSb>c%?5L&7{y@Vq5Cb648~*QF}=h^yqdj+cs0brt60$pB;xM^3aA!- zJ^QwWUmxDx0e-c|A@bwFUu(WR5KlY$y!Lhi`fN4z5$Yc`;BZ?1_yXHEpnnum4T1hq z$S3ptgo%k+%xkREnY2E_Y+)!Q z7h`BS#eo?V$|KByw)hV`rR&F|S-`Ko)Q^+#r^?P2f9hfQSLg7h2F}pS9kWnSHGCfF zP**GA+I&~wS((o@{K2_;8g*$9nZax@co1eK-7LrfFN@Gx9b57IL7W@ zo6COGpiOMIQ=WbiR@7547{wvHTsmbznogkXyajQtQL{;OtdPQjW?@0yD!JNKk0ft* z9fGmY{aK-hMEXl+}HS%Bq7EfT-W$ zmGC4$6p|DC)bW3IZFTUTSxA6k@=J>l#?bhsiwI-Lbc+!N+|e{$U=hP?T6M6hfWyW1 zwHu5i_*6|qYJt*YA=1QPMk+Mb4g`&y3XzV&QNVu=t-a5hf*stQiA@ElR@UG9KKgw| zL1%OU`U_EjE6Ad;P+fxSNGb4=Bycp3dvH>ckS_GFb%C@1@Hb(ScK?`gmo3gNXeel- zz13J6(5T~ruxp_J^%uHS3SNMnIjea}*m8j`TS$l#Z!`vIJaJ(j<8Vf2YwjbQVd+*f zj4c%#$yY0WFTWDzM${4=&0vugd{TOEz2OL)c(6Pkbm}1PZ={%W6va}as^N`YngDhW>xUr)I0w<~ie`igEm<#+}U>f+iIPocT%^}&BCn!l?R$WEn&gT7?wSip z2R2AA(3lb)!-JY3ujy`*=GdhQNkT$SU_YCfoI+iVS%h{+kG&8-V=wF!x#m=PYSF_5 zsv$UH%`$me3o^FlW&0)0&dZu5#^PmQ&e)`09f(#3{zHgybP0_XJP9$KU!S*79eBSQ z5=#Kb1e?{Au(Uzez=|PJ8=Aody*xekk+Ukap1zz_Ge}9ge$Pe6%4mX zjAk@Wj879%Vi*u=K#1*OOr)|aUnmlTd@;klEMSg>a}vJTYMC? zoLpOs@lR13xmVj%8=Wu$Erh9Bp8-^k=$QQ85;5g>zof{lifNcNkT#Y(yv&AY1D?c; zFrG*QhT|loFJPJ#W|~!In$G7GiQ*?$~dBYmp~>1M#FHQ2Q(ufq|ywlZ}M^ z&(^*L;;{<-lE%+xH&gxxdLo&6|2A#=5s5jeo@DA~u_cZV=AZ5ohkXWbPf)b%d;kw0 zH3e={)K1@`yHDLtUdb-}r`+Fa_%8wct9+&KKN&0|R{@ya4473Fm|7M+z&J8HU|`3Q zX)r*}Si1?@E)ffO*lYk$%FMBdE%4~JUKi{p0Kpb^I6AHen&pdU6wlv z0Xe>tN;xb=cqfvV$P?2UzoQ(dyua+I!IRzwbMfSG{pM*5SJ*S$94|IKhIO%kT|fNY z-*x+Ouz4u+)7SO*F`GJLrcH&j1Kbt(ygJw)vwLr&j#tA_*d^#(fiEE=7Z5+{c6xFv zyz5C`sqQYYT&H?)LHX$Zo<7=nj&~%(&wr?Xi)PCUB1y*$7!AG;1Ldwk*rYSu3Io?4 zKT1T6r5_sgmqBHk7B$x4Fg`f{KXvZ{A60d(4=3SbxWpZlK;)uPqg+G<6wRoS2?pJP z2}Gq8#Y+@KS}zA7K@^Y)lVFB%bgH&e(Kc3VX=^QQsYdZ=0u%yR4PYyZ)*vc-8my=- zgrMeoo_DRiXU}93qNhFI`Sa7Pz1OV0uJ3)l>s>HDfFog3LYG-1DablfxMv_dbYV3} znEiGp-|F#ZJpT|Ep!$*A^>`z6JX}L$&e6b;ja(Nd|3=(VH739F-wF~~#>$xW%`iD) z@^-NMAYQvnxt;A;x}i(?7k=5>sN(fvHf*`j6220GmUAEuE3~Y-+ht)(z|XhD`4s1a z;_-8?d<>c@Daa^N;%Bv_*d&tl>D-n4-Lns3v{uzD~^_KeNuiv4i;oPC*$_ zO07|Ohe-Zk;&N%mpGg9b>3TlXIaFa26BoqMm1(*Q2_Tp$R#{$@vD4Y2v^m$>_+1O5v8mjEJ9CaZ}Xa#uV4I#9Qt zFnOi&4P<#qv8{!alebXP%3QysILyl5U6WU<-|fk(lXBqkl0Kf>$lp=VE_r`8w+SgH zFGWw@<*VZ0k6m|W&v|ge-&K2E{I#-H%^yFrUbw!4`J+J2{z369@5MlOmEQ;CktLoD z3rieJENK(-N~c>u7&)p*3|C9uLP z0J2H@|EPGPVt+y_Nt|Tq0vHn8AQP)&%1P#e;=MugajsJ5*XaCRb~*VSzMkkdZB*Pt zA`!@z6igQ>7h$-(L;FNZH^j5S%1ZD|C~o*Mq4*39#Ta=GZZyJ1&|Xzg3!5kuuR-`*Y)r(hrC!q)?(ypfCS%hm>xEU5 zB{z_NhIFnce)cva+Qve!HF6guQ79TpKBUM!7u&HVrSyY31+@k853S^Y5TY=v?09Z- zm!#WXP+2pPVO76HS(aWK`tkuE(Dh#Qbn9SUxR|JsG} z`!2j&YvgxOa#^GXgk6KWRuudb)gtCaHz4LtakwxSo>NNyB78>hOH5BwiWJ935a90= zJc>PU8sQ_DYJek`9@`?+#2_CQd%iRRo3WBp!xzmes^16uhA%H2MvlB<&$hB2FcUQ2 zNq{iB8_Pk~U2%+p_4tG#Wfogf#upZw9g9f5+>~0=I@vH`g!DCXs>rv;igKr@I zhV{F_jk56kmAmbwMZv8w2~cf^5l%_FxGB%atS#14f^9yYTBlDz_}tz!V3e@t&|)~! zdk)P*0A5Ttau9MQ+~c9|z^M=lJ2SZ1I|0pUe*`%#I+~szb41l;30x70!V9Hvqcu)i zQwCfbLAo}v_9ENBVB1)geoftZjz9n!Y3`*aNUUhsuI5U_{5wn-+W`1q|B!$W|Bj56 zCOzj(uk!EkB4;^rtUKN$3fndsGY)r%iGloeQU!1)W8e>@3I}&GdLqLbB{lfy>Hq}7 zD$EruLY;nmk7w;O5|2$lgq_8~j|fUNC}x8_;5WJr=dygkCN9}r!Am?Iwr-Y3tYy7* zP3&>1Jc2auu?l049(inJ*|TDgr^=(ndb91vx2=p=fiyfuVh(%NzT9kY_2S$Utl;lC zNpXAk#`E|g+K7Yai5vLbKdZy}0kwa25e4;%{dEErFnlo$>l6?wR2=Z#fPB5bMc29; z@M`b-XwTAt)`olVEg+2FD32k21#=Dj_w?ROy#F5d@z+9ib?@VIZvdtFAyhi)Rj5`v z0na*^G}2+R&V<<_n|^h-ao-%;(Y17efh7zmal@bqDL%w-IX_!@@~|Q^xPmnV@_+EK z@b6x5wPVfVXvYVu*LD(U)+LTMfMS>e-!8%+7`sS~$QQm5E_gN4vv6+F)L{QTQ-jy; zNuL@l+>@EGos)FDwtOW~=hs3du*co`wvIEsv+n-p(>u}CjBD$~sN4sUTKPx71ac1u zT+D3LZl};0joZd6*S7u*wM-2Uft7kMsCfV5i#qm#QEnjPw1u^hD+bG<_25DdY8v)P z>}kd_K%`@*P86rUgZRjxJG{5IGJ>@&4&j_p>#;`VZ-B)H?az4a zWmLke4Gk-KNSrn!t5MnvIi6vc1Dg8HxDe2@6Y(|UpovHl$iL(VBwYk1e#!X4;j(J8dh1G;eB~aMGT6CuuockDs8W{_Cbg~J0`TnIwkjso z3sKBAsfHqr=mjW90}{tqr@tz}JUURo3(^(4+!>}z|0xyLA@SFzr^g##$)Ob+2Safq z4{4Hk)%h`_Tn0)*oY~_a~C@c z6K_Mc*N6V2C(9T+^B?6B0NypJw_#4r80sYmn&GSAi*!04X#zVI`TNMPxSVm^IC@{q zlP;eB-UjN`MgH54;a)MHE0~1g+UGYQ%nrvo0uQ`MG<*pE*$LbAbO;hc1$uIgllk5Uao(utR6fo5%5SJITcyykrg~am*nmU$kQm z|3vR?4h7~A;|*&uAr5cY2vBqIAN|ZUDu0J8JoPgwf1#ehGoHXxr#zzs`1{^8#WVhB zB;grGh|uit49C;Ix`EJmRF=U_37cj7>m7Ce&kgDcdl%_~!{fTmbgB1o`tb|m^Z9S& z9%rxM_z;0jnU~PMGp){pi}0PV+ZX;Z>lZHm@n~_E`G;N+0QqXP=aWm9;lIfvnO)!- zf8v^IyNJybTs^#=yd3-$9&|_J01!)+?`MY`pkENP6G_Sf&V&T&c+y?-jLiZfzAjIL zHEWxuU%R&|`n6N1+aztUHXwD;E9=T<+;l2BO9%Ukr%%`Z`}BjS?&yGA#qifnu7pm# z`R~vVgrHn2`oZ{Pm3}a=Zya_~S_tIdd7rFLd;K7~5i@G*2arx#*MC+&c+(}gcTqnm zy#1R`@6E1e;`D=K@PpD1GL5Roz6A>q{oretXx=sbAdv<9*KHis(OEzz`oW#9PQ>d6 zYq08y2Y}$yEyC6hK=pr(SEVUDNea=KrZ5duf8P|L`ojO$^@@Wn66ipFR#kG!|G@e# zQGR$QD9VrXy+`C2c!J=jPDrtsOIhf3os06@`lpM!y#V3q->N;F&09IY0sYtQEBgPW zoBm(cWy1G=SbxYNTi4v9_y1IX*tv{zn@oQ=0KzWJgZjhJ8k>1sdFlVt`omDbav=Y` z3XYokL)9PK>koG#&kEI%-?h^pXsr+AKcT*d{_yx63D&_7GOT0e<8Q7%EZ9K2-DTZ@ z)Qa-YhxjAhkDrUM7Zzx{P#TkjXp8X_;J;g}aB+RKx{Rm`BmK(;p~( z!FmUCpfz?j$4A4UOMejKQdjf`QDR;`y8Zy(K`%W=zExVoH{>6`Fk}2l5>3S&=_l z=jS2q(E9Z0l5fO64*f~BFZ?5Sm5YB|RnTSrp_L{M9dMcsr<+V1?m-v6XI7p zYfJoe@z1+-`-HhtiZ0k}K@4h90BHL0b2>2xGy%z&EoQ*t)`FD(Xcs!Nm}5TCwhMtG zIEJBt_V{>ytMD%`g?Q0aBojk)5zy7~#KVtY-Sp%9 zdPTqDMMFhPNjKcIG~ULX+^SD<^6WxFrixFpR(1^>>V=2Gxb|Ow@FRjF{dYh7p^JVF zyy%`cwN0)6xsDC64nFXM2M)duo^e-}nR zJCek_HsX&M=h2xY?zMumH#DptZ*I>albDg)8OzoD(qcXh;Qfs)=1SsiUcd#U#JlEK z?IqsFk!SrF<4Gd%=Ai$9{9mi@A@QE@hL(82J{VCaBOMutUnF05Ch~S*Qo9S&+__0j z_#=-+U&htcX0_y-F*&LPvC`R$Nrca)mlS;3);CaX6I8n-n`~AwTyFe!ZU5!ra?Wcq z{b|jAYc!z#^xi`@n?2t1O>rPTOiz-a9ZBIo31oq5XT1QOBEml*{DER&bwf&(G5LJ=Aw_)HU-%X%;xleO zp{u=R|G70>ERoOEbR^#l?uSm0^kDqfV1&CQjg)Du*vQ$%g-R+q6_1^F#5Ua;lqfIn z<4b$<1Ln6RJ20ASv2`M$7aPofnH0Cd{D?+DXIln)bl9BK2v|rzCTxI;aNEdQAlx<~ zi31&U05YKBpHqIsAx@SRQiaUq$ZSx<92X)q7q%QEb z=0E5L?P#HMetcH0j*odh8CFN}F;yH)O08VDcJTX`tMD!0mwJzaUl!{s{H{F;{LUk0 ziT?aFYVByn-O`H#;9@uTN&QNGfyC6AM5qvQ1Xonn$2#&|j!dh~iNia({8Z%GVgxp# z*PZPz@}OFA2o_f2Vm)4*?h`+OmA^q=r&vkIIKQZ*fzYc8ABD{6NSg{0-8mYS_*J4BX#%b8y-d`|c=_vmQgrd&5I?5& zc*RBGZH72w!1(}jQG?_^B3Jz#9HAZm1F=Q@{Kcg|z6F9W@*VZZ?)NMFGOY{7y70?A zhW4W(e+hwvF%3vsXDveN#6yYUSAWAeD=HUlC5(D4iBaQeS({Eun)7WmhMAuIgj z6m=Ehx%mP{brI0k?L6kGuyLLe_$p%yUPx_h*10UOxA4kP}NFm8P=e!;F; z;a;%lt?|Kx={(;|Azkliqtk1X9?{7jkuwG6)jsK~BfBxqMwtnCDK%6eo z2$&4y&%V_r9#re&_50nc|F`w~t6kQOqfm2Ozd!HtqfB<^`u)2ui$XI0kU98W>Ax99 z<6ZQMAz*@V)wuD>Fmew3@)k%;G?F~8D`fdr}66nw6iaCRHS-;=!vM3}Q-zaq7 z(eLRWnS3nq0;NrLY_44>oJb!)bw~Bn)-jTG)W}|zwtx*4D{%}d}7yC5x^YGrGeR}FG z9A%gNTdvaWi+#GXlH^+j3b0-n>7wAAK~Qi~nhouhL6}FdN>l_ z+eh9)o^>~d)S-POq`s$p}ue<^Pd=Wd1D9t1X2< z!*isN$g`@MX4*&oyFy7J)2%Of%Lxw(VVOH6k7n{P#{V<>$iF~XthsPuvTns6+DG;Z zso7=iMoO_~r%ty?3jZgau9H;kBx_=iKaV{=hDVoxD|V98D>w)7c9IvZuOq^`pf4RJ!y)3r9U;OC`GxvQ)97F!8)xLXVt%35j1VCByEmCpR%7$u&-8AMg-j5E-Fb=k-m{~r92;tuSRW4|gd<;=IYU;X0= zEV1I>3RaWbuLwN0{c6S<#UI?$uK0sHr$eYyW~eE7ab~Ct$lSK3EJsI5s2WdC*m&*G z4E5*@ZrbK`fzaAtsES3y+Ot^EHm@}h*Sc`LSVfJj8h+XjgrsK9lR|Pt{;+1qO9M~j zmEbXflHh*z#cVR3lx&Xexl;dH?a+@0urCe$YnQAQu6|<*`XMRkhb8&{Qqnj4C-@_tFY^uVN%p($h6~1tS0CB5#Uy^*VJJmU+hW zKj4?u2-zFtC)Fk*&@+~mZNcNTMtD4z?HA}+JVkAO6R*YUR8_I^zA09G8pm*r0B@Xu z0S`yJ_TXq&Ux}BC5IS<_06zAzE(g$XZ98OsACGPO@g!C&Zu{?&7j?%j(d5Yq_|ZOi ziT)wnohoE^4`73iHsUjH<-xKuI_Mtu*N$~{uQ+u(CVQu#tdtJgk_Qr3YJyC$3 zt3MSP#o^mCoy-!+9D>XlImnc2z)O+m3#}yN*+_xoz|p(WD&c@2NT3m93HMl^%{wNy zS&zL31_ff)fXQMp*1}@MBi>IK?y(Xjt@$V>=--5Vc{pG{r0@&+Y{(agz{C_aNkgc~ zl6+7^NtN)zNm4D?H>RrXbLLA&J+GUF?{$K#m(_dTDN8pYcJ8PCgu3lErMI4~D7%%w z+#*dsE(g{P(N8@a%6eGO%U9@`^mK(Jat`q^A@!k`ENSD={P7rWuRI|AEY1qXBt?TO z_34V(T|f=?AbW~ZpdQ@QP9+Va_C${C@4%%2YoK~Sh&9SV6#tq4WZXx_<~VuR$qPF zC_d(d)JWeni*`oO_)>&IaR*Z5j;(>*8I_kH{=n==bh3TEyxz(LA%JSbSk#8d z3^qTJbFwzq)RjVKn_les$OwNaO&~4|>W+nOkVp&=J=tQB=PyR!1X%7Sho{}1!l2Ys zLPOFfg{GyY`#h}};g04>u=@LgyLr0(zCP~3*@Ln#T$80$BbL+u(m1-}7BY;=i!r=N zECN90i6|Dx|MEKo0XR@)-5en;gc9rdhymqF(u)WYZ~4L*lktny{fFBT@Z=+3a5GL3 z;vl~ras=o8^qk=1Jj`E~rY;;i$wm#@0pQN+FVqF`FW!zPFJ$2k6%z8|K~bweiV0Q8 z#P9NuV?T`M7iiQbFDya8mzL0CHs6u*0}`^~^7~p%e%5MR(^|1L5mcq8G4e8(#clEu zu2JO0ZZjf3I^;!Ftz$rdvh>9LWAcS9cS#%zbuZ1zUDA(Qk`A7qzXY@L+&LgEy*MKn z58(nD0e=tV&zu%VTDX74?}48`aA*r0*}|9OP_sak8SW4Af_r$v-H#9C=gQ~#q#v9f zMPB+JZ-%cB^1`Vx`laz_j?CycA(IjdLTe(x1s2TbS>HSs{W})@)8vNL0ROB-14(gE zmQ%;FrswlSIWtCfTrjHav&Q}XP>~tF3NcN9Lq(p(dDy#Ahy)oX++)>PFIE$JHmeRE z2Eg%F+Ct z$QqR=Gg7CXCuBCypkQ1l9np@ZbI`-XV>l_hNrPFH^}PYg64Qj27y-ryiJj$$=Wwv9 z$^(c%foKWQ_x@$yB+v_7>*m_-ku0=9KcYK&*D*!8{{EmaX_FuF_kQW&H&e zRMwR@QWA150Sr}3X?Ps*qtHrzWCmY1N4)K*&$!A+9y+Nr3{+6#1HgB_^91)}i-S)Fy-1*^eVH&NM%)@ETU=LpW z%=&-EJl0Pq4AlK~xrcQFex-VPj62o0!Rn@}ht$=s`sSNaW4FcAP}}^a_#TygT7Ib+ zUX*HjzFu$>0(}fhMcz7?O~Q-PaK00{1-QTC_%#3FSDl(M9J}Ujy5rrN`{-u*W37~k zO(kjXXV!ys4^oen^09f!a?=7`UVJX?Ln)a^xJ=p$a|UFk(9e=#{c1mS*mmmP-z zBV-cflOvS=Njk_$S%HSSGpbep=>K-Pw5yE9JWpxN7@-^AN6e zJ2Kupd7Ig7rGRblaNA#T(w_DINXm6v&R#p`w>;~OWl`1^lzeD7Pi8$6GnAR0p+UTt z=c`LLfup10H756ZZzp_Og9mPFL&WxDMNQmPQG=>dVL=1pf|K%IPHDSpce`1|EydYp zu%T_oiy6{9=;Ggie&L~?Jv9mU+h*|Cf@q#UAYPc8Qw3XsS3`OmFondgrx`3rXHcxW z)2$zd2w9ioPQZd32nKSK4Of}V=fI+R#f9Y7@(3)w75JlJ=|{KPu=H92EGhVj^g#~- z`!RF`;3oVGHv*YZSXA)Buynx~Wxw5Gu%!%%iS7|7)Y z0J0P;ZIZEOH4;Eltt8cTNT7M%dvgT-FH3F!Jo!d!0X!j$5J9Rq_*(IZ`l9;74@)Eb_%`Ca}fOw435#bezsDLNwq|;@f-j>YX+V&;lH90Uo>Z-4XCHF%rUqv zWE;w|GYm0;M42LoD)NZIZyX()R`oh&i!%wo!w2jP4j|G04!|I|W_s2LQkEOd!?vV@f~UjGQ54+SoZ;lGLyrAYxd3Y)ZKEj!HDTlr z%NWQ-OwabaZZ(4;j>bKV37fi~m{QcX!ROh1?+NkiLHLI2+q`$1M*=xnQ;}!qT?2f< zm8`@8D>Z&ZJG0JyKy+p67h!d)dSO)Nqt}QA4w~T$ML0V# z{sL+R#%1Nl9d6cRKwYN4&L8JKuRj>sG4@kjdSP;$?9}4(HBUqQ>@J(MMrf8~h z-*tEce-Zw6Hd@3;(+Z3qZp83DEDn!4SM^Ws+!%(U>gPw+Uk3I%9AyyT_nqSKkg>(w z06YQ^@de+i4EkOg%C&_IEx~9x|G3S` zxc>=YJt{jF)`m2x@Cj6i+O8d*Rvhj>7E%?m5e8rpve9;7URptY6I$6dF<4(v(WF{w zkyfhC#4Hz7?BiBVLH)ko1r>Yvcv*OeXJU92h-1o&oM=R_4<31u>r@ap(yQz{_}jZ| zD*k4a6-^9Z(o_&=xqiX;*%9=&3Wdtfofr<30!#`jT5fnNC1pV_-cvy8@ctFdKnwcw zJw@JuS1HDQTv9Xjb>Ods@6FWe7S-0$r99nC00u~s>Tt;ekD+v7^$-M8nU@;96tiLT z2ejV?f03m#<3Dl$RKA{uuO|j~71ST;IWZinL#2h)eFwyU;R{cKEQBCkC!ugbplN(T z!15PX7miIun`zMOsfiMkd7cpvDl902ZiY zZ(d3c3N0*a_d`lgwr!GGTajViTt$9rf}eU_{8Ul8_H_=HI{i+a;VTmAT#O8>pRUsv zEX{FK;Ew7W?bO#YC8553$gt`w(Z@i28v9u^a|@EARGTB+e0!oj^vzEuRQo(Ktnahh zE)RXE)LG@!xpZMdop&I^8ldYen)$}jyQyY#EUU!%6Ry$fsR@-niVUkh&}m0qC=Mnz zzrQd#n<2Gri1v|t{dQTc%TY}`FgZoW^_xO_uC5pF21F8t&dt*wS;fcz{j@IBy(pRq z`7?e6pywg}5vqrAhEA`Pd>F5`Sf)JEB+dAv z&Wkl#9xWC*4UbT5FHVt*vfrA7i?WY1Uk5)1LHH0@_0jl=sryC0@@!vH<_q^9BlP`V z2-+a~{WB*9{{lu=2m0%8^_Mk({U@Liy+_Q{?ScFim)KJ@r8Hrc@{wT;UZz&b7n~Ch zo?z@{dEkGoY2cL=U;0tu5+E3EcJG7N6fpWFCy+mKx9TDM$V_k#<9_mkiQ&rJl;N;| zf&P;|FBpQK+uAZymL3l+8?13+aIfgM(I>FX?Uz>_XMcTy-S@n6bl(x%T9$VhGDN(AmO4n5;BQ9c}++y7<2m?`ei**ej!#(DIod+|^ z&@T(Il$Tu^f9LsIH=qcF>U6nnGHN2stgQob|1*c&{leLq#`5cXVbv=3mx3PCe_}e* zuuel6)u%oKrkHg%k{Evr96rNXJ{aF^nsCOIkQUA~mVb@4p|t|SHewBKnsDZoh%$T3 zrtWEl=)DAmDig!0{g+a$^geX($dWpR7@!X>HABiG4g5Hyw45r2++sT3Uu=co+d zt;Kh^jtn8qie}bB|E|C5=h6GnqHd#Dwb5tERFpj>khG0q>!6dMi)_PsEU|%4mbn^W z{lAQ!!Vv`ypM|Y3JZ+kA)>#prJFI0b;c=@c$L*dEy^pgED{naCZ`Wf{U{g{Bv(8`p zBwi84S-$JhbPWujM}7iZ?`Chh7zDx@uVv3b5d=f_X6u~$A1^|VnTf37SPxd~|CMCr zAd4Z(nKgU0WQ|6ask2H{me)Qd0@(~4PC2#9Gi;^1)Ys?fev(gvc0Kq9)z21r?XmK5 z^z%yHPe>On0x(CQ&pN9-gT&ph!Fh{MG?!o+@NT<*PZ=TNjK&_~(mCmYH zSzgXmHLADQDq=sQpML2{#)@mzOs$mHtlhs;{j8DK9{Z=FpTBrq&6Ly<&gk9h%#_X< zwkhNq4>Jy15?;nz}LR7KONi@w$-4Wtp2fs7vMp zeVS`Oqm5FwK}v&v2bNlCswXpaPZsi5l=3qT_t;qMQT%JsV+vMuLq}pOrE|7Rj)G~O z^^(ex-qhGVKyOyt&uC{Q+llq2Y@W=^pTDo>WetBtsamGt9_OJq)@MIfJ<$Mp=^q`K z(K%;Jj_Qfd8mO|QC%f#{(UT_o8ErJO4ZA08*5B`xo?N1PV)0j$I>0pC<5?eia!Y(q z8U<`*g>N+kQqHyvzZ>(Qr^rLXLX0{Kz#jz3B!VYO2+9HlJ6j=iz)_jc4vrsdQ~_4d1JFl$}DBZj!lsX~A1Krmgur zN)`)gi}X^wK*QLh3bgiJ9He{{{WHGgM#$WvKpi%nPyiS1Vxy6cNa$1gNOhdB$|UyTRzXgTYL zKimNq!Kh+mDdv1b?OEuJ_2xY=X}!TeTk)s%Oyr4tX|3by87%TUJVmU@-`(C8UGDg@ zQvRBYT9y3O7p7jwUzu27%3tYBA%8I~+WaR}f?+?aojzaI8=H!?3INGxxYPkDoRn`> zl#(+iB(nw&ke82S84qs4qp}~tHNdFsN!aHPRdZ;pg(pLJ=&S#lgb_eK*}s+c>(jXB zm(2#SpEX=k)sTt({Ly%i)=Q=?6dw8tzGqo>#(KW1l`M8w(ostrAR*fJ7j%1oQMnc4 z!PCI9Tkv+!8K`5vjksJx9;A7yX?C=KYSJT%%5P4k-w9&5pq+_sy5J?P*&DJsvP5bBEbe8 z3}ow#<u~tz-qb zyx!#d+^QvH+R&?fLkQn++CE5kxG5Sx0!OkFDxEhNtNvm1TU2UP9s~ykl|J|ZsC2l; z`;#t8v0mCo!Ufth7bMV&lZ$3{8#3j zcffs4==_Ub{9>g)@>j<`X;#%4Rddm*5>Gz)zA(Qj8Pq$qj~5sT2`cUlCaXDPreaPt zd<9=wjZ}yU*#Xzb4E1gUE7ATJ=l}@}=aZFiKKTWSq)@MljU;9p{H?`CWfbJn-+HA{ zwE$zY!IKx*9Yet~rTIjtScBmUQ^)-=hmdqH#B`Tif@G7)_12&){|SiJ;vsPstot&N ziN3QW!BPt8t$kidSak!KcH&nU`$@xRq`b6#@0~q zjWGvtJrJD*{HU6)TXV510{owGbqngR0~^AW@Hg_%xw6n=e;E7_Ysb#nAgP@fZeYt` z@o{$X*%f)CZ^CVi&AsiMF*_=8W^ES6sqFh{#A5WWM z4VpjwPr#q`&s(J7=s!Aa`1gDN0}V%T1mbYFCG_vg0X-W1P*KW@Sf>>0>5sMo>#)E zn3~=p`5UDzAvH3$|1R=pm8*uozrVv(_+tNmV%YGXn5EXgxxXn~ z`UllW>oYtV&u=wnLNY4Mz0Im;9FK5DRyB3YzPaXR7>G$yUOZJgMSl~RP$%WW8u}s_ zHkgu*FNszuYzQG5@e<|hPu^&=j$^;+s@%icmzQE~IQwTqbip=7KSgJR4L0^t3{?%h)k1n%vRj?^(>?EElfAq z!oadq@i*J3+Q;|sP>cGC>eki~X5&G1SQBZmlAPY^x$YST)P#@I3 zN7ZNB_CZ|kt?H``=&w}Y(l9;g#gsE{MgBxwLZam3f{NC*RpWnTR6W8u31^LZFAqN3 zjYd@=iWP-=Q6Q9dH(!=c2{Vv?_Xuj_II=#pA&oeH68-3hzKmz<>^XqYtLi>CjgiWn z#{H{OL5D}C10661_QnkM4&;wzHQ4`ym(v9Ca=Ito`t58&hF;o=ja=ys=wR!eR~|B| zcybRN+_qbH@F~0}?clEAb_a*KIyjgeeBhRZ4r2fA2I=2FuS)3OL#!pCe@2r2VeAio zjA?)PJ&|ys2gLV3Vd1b|#~If) z#RUG<>b8%5*|gjMy#V+GV5ys@HCcBh3M!%GI@T)nb5YyXZyRnV*}_Rnz}3#GkJ%1w zHE2wQuBt`7BD^=)54-T7%}D5swfTCP(;6+2u{?=oos_aE2(AsIePWd=Tc*phN|tSu zvS^Xw@^GtMm71bUNqZ>O#8M!JIL<$G)Jc<4UW6kJGVzU2(C~x)ElA-NopyO-g`yQuPU5sjQ91gG6-7{>$Xdv7A)yUV|Y8kjl=?^o$ z2biThnIa9*M!5ReFX+`B>(DEfw&v|t5~G(R8cnegix-K`KzXUo>ZfXop3WLDI6uB3 z*@Q#q&|ywBXXtA3VuEM%1#AFX$6W%$)Sp`uNGRh6H7NSo8>0vPRIBl<9;!|;bbIFO z*lZ~4sck<`3B2S5z_js#t9Q)$y%1mL_b_XJ{VVkk`hO$~+hi3z=bhXCcYmViAG;tpKyP3Kbb%89vr}QwY+o}%8 zh5ODk!$t6(_t8YzW1~RAHsJ4StS_KHk0!r`IFmDp%w)O^|EA}#ai1Ul>9qZn0TY6P^x zD$09eM?e=VV}GVdmvMvB7W2^CGNO|YlS{CsNpN+i^iYFmx&}@kQwMWzKY8>8zb+0o z$sVU=dRmO|Ar=akUh4Dg<5i1>Zy)Ig{bTMMf>kOC9x~yE+XmZg8BC>0li>RZP9POgL3WhUz{ z@*F6G#rHObuDh0&SGjaZ`Cz_H{2lyXq}j~HWSF!g)Sv;G2f3Ke9xK}`?%%LKe+q2CAnzJDrq24UoW<54Td|Rl z3|G*t)}uGm2V;w6NV><`tWvlM!2X73lP7bwSZn05)tZAe5))0VgTSEU>(+u+usNwW6TX26Kd@fASwtM@+qLm(4-{^1cwO~J}ZTIqv*?;_0 zHcs6M#sdD>u8oJWp@=N0t z|G_Uv%vk~PSN$3#>W~Zn|7bBvuu|o^jHlj4CAk2e)*}?792`IsSG$_1GAbWH38DWe z_JL6)b=yUG`MEl+0Q@NMxA@_JAD#?1JU9pPAO(K&4N5EUA6{KHiJv!jSCwo)og`Pw z|00zu{>|_8ZLp-N@TOh<9Dja(+MqPfzrXdDMpcksw#lHAjJd74fxjo4TFA$6ow^EM z9LFE5_m}HrNYq!f{PEK%aKTg^W*UW9G$xND>zt(aVaNaIQrJZjS!B$Ep_GT;zS&2K9in^ zfj#i^J&fVKL}5h6LLa@_{j3|1LDa6YRlo8_>(41Y;K_Lo}eDKfk75)&{E& zr5FyKTW{0N)F0KcO>jiKf=4f=tjaGmxV8z3ni@uV^5P4eB6BEB1oRy~ac^7ygbNf> z+}dsZlHO1xK%WW!kst83-O7|7J~M-@Ruvz^Jx+WZQhj*nTPMM(>hl~bw5Y7!+IM{% z&EjaaZhHF#?7htj$k#v;shgHT#A;8yZ20_d1)rtl50Fmy2h##h=Y~%#Fgcb6Q{yB* zUa&0djex{21w)y`o-Cx7cfSJvk&N=&;Z2@e45qz&qJrmH{cynQ%iiTv2suK3xMn#R z>DqU&QvX#$S$94p4z)(C5kpwGse7N^Hpz1)UZ_GOIv3Ey#>#r)Z|`!ChDoXP239(# zvr07#o}nsPU;Z7Z$JNNfNK}uj$}e))dkpJc|I?#)7WBChlZ2ju$R6f&g|ESc>@t=Q zRn=e12{{4^2?u!o2sd{8_%FPm?ZSR(@NaBcUDg|aK_)r-#o-CvxC^yx3tj*}od5fX zLg-(&;$UOZ2t-XJMl^C}FCYso(SbM02^lJ3D~BTGj>W_|zr=WhY#)IkL{iRq>pawip1vONb2IhCJC1%uH4@nBI(R%9` z=Mnb98T`44*#}~eAIYO2!#j9%NkcJY(E82!9biP7V1$y7-o%3+_`hUm`!N7i#>yL@yAFO`~&WBO-NL@0J0a8+|2e+t0VwbQusBDS9mIhWV!YRnH z)?CO#szzlm`)2?NC&aocQ~j{Fr~Xb?+9A^D_Dlsi`N9q~LzByrGaHca|}_>fgE;v2{Zrx}$sc#^DV@WA;&_L)Z2N@j;m zbpQm*#EN}spwRMr`C|O0vwS8QF;>`@JG>~oup3rRko+_2wBu8GUU#q_ z3V!E0fq$YnX--ZvGBAPbU=vNT24-{6ob|v)bA#1@t+?1L=89uUF{-NYS4NDs&nmx% z9aiTny4$@1R^XRXc31N!ky_tHD>5SX`mAzqd|&TAPWswU_Z8h#J;Z4<_7HVr{};By zSeLl_PZMS#_mgKBmG5E+kGft{RVVtg4~vY-NAQiB-|LLZ`FKJ05~K1v>S>fwc@duI z-;QY>h7N-%+LPOWBki_*fcWt>5MFm)pUKhcM?09=fI96N9A7>GQ=7x7y;lp)C&sm- z=_eXv$W=@Q5Y(_j!`(B{*{J1v0o6iRvlo<)Pi%H@T(edb%dK0S9g#M#8g4gsBD1v0Umm~QTZ$Nbh1(T13YnlTNdLwCOr}5{S~5bI>+50 z%3KUkw#)Pzv)lT4Vu4{s$Pz5|#mEAh8pS2lTe#NWE8tkB=Oq-?yu_0+Np{H>># zjq|sTEF0}_J-O@*{=T>@*WY?^*-8G^VP%8-t*4Y_`CCsb%k;N;%lh#5QlqK_K+xGr zO2oRGFen>#U<4?JvpnY4$76Tn)lbvXfPbwy6jxe%8C7Iz&ZM0MKpsyS?eGQV@nB{h zMtCRq$LJ+*&H$_E<-~Vlq+y;{MfVho5yA$-DlBF*rwY8zYo3f0_y6_Nyl&jE<>Xj% zh1V?vNgp==8P**o|FNRCTf70AH>0o02=+P;&LtDX!lp^jz{OLytCu-#2T9$mnQ&a zt;unhvnqzVU)RC4FU1PuU`eb~aty(`J3g;3%bgZS@8n2?)h{m3x{1DmvGKWv?wW>( zX4aarA4~VXq~Aaov@)-ts8?sDBZbDL=+BYM`O;#2fs{Ws>vXS9cT3t}?bPWuoo>+S zI!WuSKOl{etEXG$nOsXe0e+)L4kcHNw6dh+gKLS<@%A&D8XRwiBGZXK9>sFu>4I2} z{@R5ktg|C8VR{36^vI3?V7J*355A}v;ajV?_I_eahZ zZx{G4ApbEcpG9V5QpmUdz@*T%>st^LXuSn*b{nyjC|G!`jaVm&DCk103}jeY#ayKl zjabtKvDBBn?JqOl&q_e7*O6f@@^LY`gjmXoSg+|<<4MEinvt9ez-4r~ zqpfrQqebn1Tty(P*k3Ipd^Xq5G^|r>4n+7K5*0;Y%ap$*^0yQrRTOwdOo9nIU82DY zaHYVjI)yL;Q4W-me$JT0IWe$;`{GIkXtfd60Ohg}!+v7nB{=^Op*CsnM6clQf&An8 z0%G+2T>Ma?mGQv}7I6+FS{Xzd6;Vh5Z~vguM}ysWVh!;B73o}q61@hcY7HVe>;QKy z)Kf)k<}fhK2eOzQa#qDFBcBTwg6Xg1iEPa0Q7JRzdEq+9oR~j&Kq=dB@M{d`B)A1x zTi$uc8ICWsOpRKUH`x#<4qpy~KDZu3MNAI&4HkvU8Z6wD)o`E)e_GlpVCj7XchLCe zAq-(XK`UU$cpe$nVVRG4P{1Z(>L-;#VL}Xz9lh23x%Zc+ngo!e>RM(I2H!z7nS+Fe5MQXKRB~3&Wsc`PBS2zAUz;_^AQ)on2J26#glP*aq+gKlKIwW{r42fg@W(d@I(C_;YH8aOHG7niaLo5wLtv zY?i@RGyJl0Ukxv9bi6AtKhQW2P~$vc{hc(F=k~NCvWbAG>8Qqsnah;)ejRIUt@sWz zf4I&cjnoV;=FXssXK3pOuKIUU_+kBl!)^CM8daoV1om1GWD$5^9q@kL7R_c&F)W&{ z=m%i+xOEDPO7Z;hm)8gu&2g}()P+TFM}b9ww-gp}720FbbYcq=Y(q*esBaMb`x@Hu8H|?5YXGgmfwG5zsaspb$Y|UM=a; zMi+z)pR6GaUef%z7mFwYLV4$x~v_SDFJm7QrEIu@0{XZ-RNY;^du|D^~-kFPvWFi?3dnQ{n$OO zpQM-~b_p9~?4XRy5&DvF=LsNS%D;O4bcudYut|i5XT9ZERY$ z5Ra*wmSr;`IB{ih=aP#yiu~_d*R8_+K)(Q8ER8QoS<;dELMt*Qd5F1ml_P)~TmWCTr|A9LG z*})^-<>Tkc2Oa#D2}0^bew=}4MeeKvLv2WAgdzpQ)L$Bv@R+TD zcMXRP;8pxXrvOm$0UJP1M^Fr9UnP9Lj1CEWN|EFWFGK(N5*1#7&s6*pr}S2?MN3E3 zc&}(f2UUERaU=UBfanRxuui_XBM=?HZwcHP%{>!9^c`ea_vLe~dQaaE5KVnXfhcFq0a10cU5v`Q;Pd-%z*BJ}5ai7|b%fZbVYozC&bZZ440XeK zE|78eQh`k8IaGm95ez?I4MM5`=(mGy0Q!>+K=Jf%77WSIKa$eF1gXXbrQJB{N+9|K zs>{)c+?OcRj>uJ#8^jSf8-6+^aL0XxDbVoq_hS>_=WS$IdoJtYr*);?%wp#3J&<2pm^9IgsU3eZdGHq1}-S zX|+i4WC^`k9G(gDT}=aE5j`h3L;E9;_(H4en0TVb@>|gb?zx|qBH``yuEa$XgZmKZ zu1VtCX^)=a6N6tC1oj<({l3ld>Ny^zRB*ePU(b|q?g+HYCL+b*@1^;It5ui3&qvkQ zTffF*T+ddsXCi<2JbU2%h9RL}qec}R{1d!!)VAe?6N8^3P!YQIRh{ihaS60YX3Hz2N~zm6QQ z=m&#>mk<_$PYaRf2^U##o5({vlLo*9I6&SN&?u=A+d7i#j|Zm_`VL25JuRsP|66%L{41S?kh;b9!2{WF)qx#e!T|I?N#o=m%H^6q!Jp)Eeg?Rj&ho%A!M;Rcz0$z1EB@8xL$Y=#7D&S6Xoop+y0LXD~qlbNyYWv_Lmv&f5jt!u8plD`q?Y$7q?zBEx_c$^IKeUg z&>M&%^c#@MFNoKaO{u2WA*C@$@qzzY?eaihtT7>Lu@A$o)%eFk>afDdPWTK3U}Xvk@Te zY==z$3mnpoKU)Eb3ci(f)ezk2NVc+ZsT1Bv{C45zAM)(_W0nD&KO64CANRUx{FyOU zq0E&!os3lBi>#luJA<_XU!tES!xZ92j>G@DEB&ri*85q-&%pmks>#>pFtzuYs%VqZ z`|L)Q?6N3zL|dF;%*kZ=*j6^?3!4ace@X=C4c8AZGjJ_Jc%gU9LF`yKFkn$kCht&9+k5giZyC$+RKgX*0mJ$vW0Ty9a>@PF^!q`miY21hm>&{W%Y8typKWw_uXE#*aj~`J)g8=oP60X(! z3-y2t-TwylAoGl4!}0R<3Q~6N|G|FFqQ~NY@?a%9>sXxN!A+8{f+bP5J|ORp>tIQY zng$-s3KHnYe39f>ze7LrpkL*>=!Y94li{tEi>Oe97> z9ES9WYy*H4yQq3n6WKRV(s92Cq>uj_^kb5+xfuP(6uR*5qaWvp{Fq2TX5@5EKXwCo zNI!P!bQ@AP{g}~%P|+#vIAFCU~>$zY2^u^`cp!)b{z0|#00W5XG-X{9ad4rpLnRl@lO|fr11a`08I&x z!uPksH*bk-GNOKU<8y>xwoC~v-qC(1?Ux@Dp)z^6EIicTG6^(&x|f%?!|fFZX~S8! zA;gIja<`D&(x}lo4$Lv-C@lL?AxV);@-m#zLGQ?EO z2qnB4%s8XZjl|qJh*i}CZ{I@Fd+?*=lzNT~Bwo@xODOeq@&ze%%0Ck*^`~EeQonv` zmr0Dk4E#ngprcB9q}0|!@5Bf-r@^uGKT##mloT#UNRt%H(Zz=AVxy6=;U?5d z0f8;V%O6*Ye0MuG8Lr*YWS+57tXyGzv1r*4`e*2~7hZVNHMYQ;uCb{&G_4VSb!Ckf z1>hQKY}>1xFdTNH{x{=oWiR~==K&R%Vi-c87WOCf*hyNnqaNzxgA7& z&k9AvSu$pZNyi5e$rWtN_6GJ1T>Bf}fOu0r68inWWM7@jvASI-;^%+GFaobye-`bB zNu>O@ke@;BqXxl+ua*?J3QR1tRTzBb0>2TjNM$_o=ChPaF`cyz@Nd4rJIQTz~Wd6NFrp^TNj zBX++I?emrV5YWdTZ9q}Bs5tx@dAgq8@U^g0!DEZ}YgwzXj|%;5j9r0CI?mzmi%xLO z&l#JSCXN_gGDx`LOZgYX+th2tuE0t7 z2?kYtZSF}>q&GK#hOXbH?COtIDKc7z-*F>X?n$;nodiXW5&n653Ovk+B!vG9A>?$1 zA2SBH;KbeA_V_^y?rSG;(hgV~kt%9|K4)6rIijJ2J}<+(jXrSPHUL=BKPwyw zW5706Cz1tcgVbeT>n)Ce3O{mizB2bDj(^>aM;U)sm&c!MMnEKG0;aXbO+XJDSH2;A z_~f;3Pak@p?4}PhL!Hxynf+bk?wlI5rx-5!FynBi^g+kR!6DCtNG|Zr%YnGnfJKg- z{|&3rmxyek3SqcM!e#Pa0W6?aK)vQDHfPcIoV9j%Q!PENk zp}z2?IE9QoO)p9_3e5nVDQrQ+8h{InAdUhLRI!-Qe<|BnmG!agVSo7=M?~+)KV!RWc%q)I>Kj)?rjp`Z2@zB4iCB+B}38VC(=~vWqwj z<@`y3MjFmZXhZC@9Tx1@zBzQ{2OL5sIg*dcO4)0<)e0dul5+NuQAvCLPPI!xPd~8mXp3UyLa6i{_kg+K?G zk~Uh~^!o;#u0u+O@CT;$faB*C$ny?rj=^Rg)<)~+fDgduFl6A#4WBjm!VRC@RT01^ zWv6)fyiJwu5Izgl?;1Xh%3AD{2#ofKFe$%4U~>RU+3aEQ0zkp9BA#tl?+ste5eXVF1os)*heL3Ay<+y;k!#@eS?DEMb>G-t;&9ePpWu5 z=4^c9nO1=Fuoqqy`wZ~MVB}RVus8V7W9_e&aJH2{XAU+p2%7wd-n^`iK%%1QI%hEg z{y~Y6u|O*-VZ~k=0uTdlt$gYWqqH>;0Vmk^i&?4jftt9ZOPuj|C5{@sv<0PYKOob%Zb$%a&B#fntVU7LchtCXl~i$7<*gIh=$V)Z`k& zZwIL{L`PvwAmm@S=u-TA#0=jrC9O|>sDyn^sT!w@FNASL4a$4ou|U?Mx2_gvyfrsNku=PWycKtn3H3Men;#xgLe)` zRin+|)pB+}zUP3&JYGFW2~lq%$!mo#(O@05qS4)xY6xXZ2ak`t;!rSKpQtm)xl6_^f4QpWZ%applD|b5dJkao&G;YCz78Mp{$B9cXCPW5=F7P~-3-uE5d6%R zhBO0&EcALT7GH<55H{Tr%|&D(&HqL?!qBJ+;eSIqn6qe`W{2^hD$@5qh_W3@I1GWp zpeSP@s6qVRj?r;_@YWmmn<6jz3bOF9p7Qe)NY{S6Ln?;;QmMZ6jir2Dh5Jug{6YLG z@l!r1zlR@4$tzUJ+gS1|fB9)XNYFlt5M$I2i^oC)Z(EHE$x%h~RQyHwNd7H9PsNu+ zG5K;Bs)UTA+Sl?su2@FH{Lw*{Z_;r8;<)%90!Ql3S~PjZ=o&&7%(W!6GQ6v=+}; z;rOMGxEx#*U0wN_rmGnv-w^AN69gsW1Y}sf`cQf*0gIZBO`uW`QacFB_44Jh*#5Zm zMYa7Q=WBW4Y{t3Bv0m>@>d+;_lDp%S+0Ho@pCUa2Db2a3>i5AqJznw~tUfyJCTWXx z1SUxz;%$DR(`KZU=k_w~5Zd>vb+V!TBM86>EOx7>_2s7%X7&Bt&#TfJzKzP~QAoo- z7ucv;iivk%+^ByF*x`hAa1-$qJ^*e>sN z))xI$L=Jo&kIEXTjOCZ^(~`V0mY?sskT}7Dtn5RVL2`k82!3I=ar=XRa5&$O z`J{{txx~kKER16hvr(zT3r8wmIDL^IIN~PrM+j-yjAGf4u7W#LV|L)ir-=xCG=?mY z4Fon$M{qk=5$wGd1?w1yJH8&AxlzKUIv^6N5$RGLt3mwKzZ=UJgQ`MRxabVf-qG{G z0optZ#wz}Z=Yn}T_g8t15o!@U@*rv8K%V#4zssu@W!#e$!v~BPv z!@x@om<6bCmxG0I9w1P0`vda;DXmdWz*YCi1V}(NlM^speT-SiiP8`dH)ckxBdE5g zY_Du4WdnW6D%ncPR^p9tqq_tPfN3fu0r$jXNE62J-KbI=IDq z`P~Uyyk2Bj&EhZ61rlek5zp{r(9?2rc%&cV{Vs&2_67GK8U^TsHFzT>!?MX7b`E7Q zKe}NCr>3iU2u?+;kB>KTTyXJ|Fc(HMSOJ~{KP>t$Xu@x|2$9-{sZW%rYor#+(_^Wd)Od7%QFa;=}DuljShT~o{0!kQu|B2g7_$)HjB zYxX4Ox0{34Kz{uOTdbKnOb|CF)?ADXYit^!Qg9Kj9eBWcBgz{d0OzJq0OgLi(5dLg zmlG&J2{No`Dl7U16d-X`lLai-gOx~nt1uoJEat~$tsXY$@Epg2;-r;{hpv@O9U_>G0U4I=~p#oCsE1Ok^q zyA~6xNnL^8i2SPeY=$Ys-aS8t*uZ2V!YqcFDdiju7tU)V_Gqx(Jo@W&fQH=R04MD` z$d=ErG^34W#6~=M5TP7TZR`E5X~u(XnDzwF0IMduENX)zmONb+?(Q!N)Hfn6a9Xwb zcpZusdtNgFgLSK?#vwm!ecRe0|Hz5Kw{f}?Aaf*!_gN0!gA$0TPhmZHlwf_47-4$? z>#L{b4n(Nu+yOFqQDGnf%{7U%gy#;3Zg8l8n#guY{N<|}iL+Lm zO57_EPc;_MnF;8-85!0{afIj+`l?Ri3L}v>+I4oS z-BQ+jrzGv{CS+R|B=2mlbhfWuMaEm-(VfM8NTN_}LI&|m{1?7KcMGd~I*6>nmEp0s zSld&Gvx2Fc@YpeWT9>`s31&uvZcfYnVM`geZ-;e-&XE|HI7c#taho=rj z6DOw=CrgNv5Cq}6#cbGS7a~>GTEEUIMarDTFkafo>vQ05Fm9&?@dEtmI)K6;@2nNV zaUDJ-7Q+ClTDJ9O=@s1X@H?bvEg-x3v}4}@yS@+h9bwloZhZtFCLk}Wk+CthpFBAT z+m2hGfeM98;C!}=U0;%nU7w}dbsVS03GF@FJ`ZjkkF_?h7XGdn_8^;KTl?>j={mEE z(-n!n@91A~Qx^Q1hRub%DnUDLT4NA+l&6q&&Lu6Pd zi_3$E)Jh-#Fe-rnplOOgkRuh{;#8E?KY^ljM~1aaTnM^=q8b@A*pa6mEhpZBq35QE zH2*Eoe0xr`1i4eDp)GE=C=n)gg{TRW1MBhXIwazRc&}n2`jB@o5g;M|U7X}ZD42*G z^9KEg=I7}DM~SbXKyjo4iZ|W{V+BwbdwB|VqsQX6_Ol|8BR2&B=)h%6?qeY69=A2Z zxFyBfg($cLykB(!c>lbWaBozWxy#u5=PSw0F*6i|Oufxb@6kf;?>(<7uaMvF&-F{H zwqQtR7E))cVlrACG>&*3+7`Avg-a}~b10pE0! zZ+e(P17F;SFC1f@8|@<8EUDp#G38DH`-WN#>{&1NCXBi^OI9PpnkJo4TO%NkYS&~s z9{}u1xjPH>LjQFtI`vOdQEap1IAmCTq@pe;cSi&5_6tpK&QU;0AL1|MsubsQ&Ac8ainn?hg$i<4As z*qWg={1xJSCX$FRJPG@^;wEe=KOHayu6$A37Uc7(oq47XnGSs`_IzM0UkaHF?4m#9 zJ38-3D8*)+F5L+=4!RxvcU}edrZgk|!aI(1cZ^&I*bJ=v07@NQcwQCRE^Q2ir^of? zAGKL*6ywWZ zGt1|}M1#9Xe8D%Y89$;aOYND)tXYKs3Cb@}EUu+u!C1JqH7j_FOb@nbBtouOv-J1C z{hVmJL*?8vA!Z`F=g)BtQ0U{I;s}7-%Z$q3Vahl-7?EVRb1`j7&|iTtBr7;w5%mSz ztOf)`$K?ulINc7dAb~?HJkSWN*0MSzTD~zo4LH3F;F*ZMA51~Z__Fix_kyy~wtcT< zR9P-^t}8ncf0vYH19<4cWx!74l=Tj~4->!QL(@&zlU z!pe~LW@93`(H;H+sV266;Gy8^=@#(@y`8ZM5kL0YOEC&;aWe#J#$DTDl-a#}Sp5Vv za9~=?C4s}ozlaFwDJmqYQHaZKO!ygOJox~Oap9qhA47uNKz_^b*{O8=>;?bm1$Dq{ zm48N!ho|o6PWJ`9BAkpvWr6&yQkwS4^S&g#b{#%G4H?#j{IV<73Qfi|Vp>oAlZ3bh z=Wwi*^4LTZT^Nsvbl1vmY)5FL8@1a#{a>a#^z$z`vkdyloeio80tKL-3K||)aY&&H zjOOo0)dlovZXf{oSgoSTJbe&aBa{Qw3~{wZ*-u+CMs212W2TYJcbvn!ng^&)l_!v-3XxKhQi4ckI6^!t6#KhRy!v)dT=3IV3l3)FpY zQ1D|BrjRKt0J2#u#1t|?4^x_<;OiJu$Pp$01^@q}?M&dSEUx|^mPlCQ4YCChjTi+1 zHMk~VG(o_7AyHIX**zcbHsmn1B{|M%rX?laFkvz$3|=A1KU&dhAA?(|x4%2c?1CAXCt z{E_$t3JQmj_+;$nZdMbZ!$7Q(RQiWMD;jA+$$@l6W$aIZjmp7u?6}zb)Q-X7KPZY0 zoRm*#>fX7kPH$6D3$Tvb8i}oo#CAnuADedPD}LT5-JKpbN3@aZx=ec^9j^k+53(HC zw9=1#^(_D3i;U@eUy{|AH~&iGOe5#4%ViJGm>--#gxBc5`a?NjKPNB zU@Pd{R6&1w!wNE$$tLluiSVBO=Rpra8wm?nYk;gmVGt4ddPDY6P0$*^gNSsK$I`EA za)!l_-q;ZIhO_ePRsNO0m8lLK6q9Gq9d8 z7bWrCTJvyzh_7{{kB&~qU#rt?Q!ocz+1va-I6vm-=(wOm{rf+io{#q6>-k})=kH+9 zQI(zL&>p088B9v0-nGpyz44c>h=$FK6?prROS$Z9V6PWj*W?^6Azmw&F|~k3!-1Up zn1ula)m=i#^mpz=94S?)R?3qyNTXV8Pia)}uGy{#eA`@ppV1(=`y#}@lpjvIJ5+3_PBEdm;+c`~u2%zDYJUO8X`q<~JZYfUaFN#TVOm zn+3|d=<6AhJCl^*+jsjCC*^?V7{u4DCM}o^zC`1iITiPtnFCrcBHa9NPeNFmA}-;) z(BKknywKdl>gZHyFFe&|V)Z*Byx&+s2Q{(E1i$@2_@Bmj%eK=L7Rr~pr)%E>yhy)f z@HD$%Rcx2nXu+L|y@_CkO5pWaCxo!CL?fl(;OHO2@3x11S?tuJ3A zp&aD^d(7qR%AU$?+;q*~qFPqy7|Mt%{Ka+zELFQ-to)Ep-*&Xdp$_?Jr_=IP5%dK~+LrOI_D-o&83OdC5 z=QQgL^E8+x`Y28HMoHp4e_|H2MEIjR?gG>9ozRoc*TVLrTZHUG;rczDqTTCCN%S0v zn(4mO{fg?g`tsv{rp^(LJHIa+Pc$>6?pMtJD1mnH{da|6BkGB!W+&ut%T z#}>HG+V<0+pf&eeL8fNdb&J0x!n?oLVDg}hQIouP~)~pBY2oI%y_GO4q=<^ z)Y3u?%pwiZVP=>~yc?Y5;@0=<2D|#zb>a`T;t#cwyC$EIyX(NSF8)};Q!``m<|MZ! z$H*%dreG%~ED+4INaZglNdDEgay`494i#Sj_rqg1-1zB&Zd&zw2Pap*8U)J8SL*&_ z#|Zv$yt^M25?dLGy(9_ZfVolxCt*N)U}Rl641XGHuOE4@?NFOdOqdd3^Hwtln!|<7 zgdNagSO%-#8A3>fq$7-rwpB4xu?7d+uiSCJJ{KEhpCKJ$F)cjUVz4WGdu6i3joMn6 zaNVjP>pp5WO}|4svYjg!L6KpyQasY+2l`#f+|m4&%|D#q%DG(hws-n`yomN*Hg|yR z2YYW?a4o;bh8lhc*a_{9;q}r`gT}nRpHNfF@0gmo{GL>!v}e~`#qa2vS(d+|W-4#T z)m+GLc}*3+BWfn_TU^8ZndiuwQhraYIho(1Yew>WTg`F&4zDS)??YwN*gH%%jlIX$ z^x}7hJev0YSM*qkFk=(wepolW^BQFKF@`de{)N2eB#$QPvC*&KMuxelD)zb*<5}Kn z_?!3#_U*HRE(unzLh*FkmuFo zs*VH3jdh{Ls4%@Q3dO;pBmAFHk3dVQ^kPlh<+xA*-t4!9@#77CT39*3ilMk7eF}^CpOR7gC_Nud7oJa^aDLF{_c8eoi!kqw# ziDTlgh6@M3+n7>!$UkX|`JLlSsHD z(x7y^o(gk&LvbA-2Xth&na5`3ox8YKpAL_rGBePAPix0i+hKcHQjojlVtrp)1dZy1B&(c zcm4Hu4sOq@{Cxn}KdU=!4*-MiIIrCnf2!jX6_in}IzEY`+ZV5+?Ce2nLs4cL0PEG) z2(+j3<4Y`uJ!Sd^9O_*87+;Ac_Q@Rj7#Z8x{9wL(iN(aH+JEo2kEp`JJ14{L(TC{yf`4hdd78|7??+-wpbr z@H>6Pbwz46;9jv4$kAvv49S8C*|+S4b%eLP$rkjKWPFfhy*Ju|n-zN!!RGzX9Ugn? zK%zYn*_q)9to4WV{e)K*B0KkSKVj3;vif0B)k;FJejAQoEZ0f<;-9n7)XvMNjeC6y zqyuwn;2~~dMr0FB&g@#pld7CstJ7$5sPazpoj?A@lMhDZFH|BmqHMvH9!=JVr6 za0$r$EnrKoj<*KhW#drDmPZ_Z_81wsHf# zoDc?sIYxMGMcB;>hJHuvOI+wUH!Cow&TvIIwp%8M_~4M{1{+^vWXIkJ$7)f9(yN@u zQ)GSlJKqk9D7e0j5NW**A@U_o_EHJ9psW>~FF@%xGBYzuclWmhq>g^lzQ@o{ z+V_~<;3ECrsC^&3rte1Y=Q>ufVS*#|6NI5Qtl)o6>c#)I zx*@R{(AyJ7`#~_|-hhISUW;7UY?`e}8H1n)(cT|l-OnKS+qYB%CnV(eyv7Xz`~%p@ zZYzyDzs4{)PuaitFmNrB$!lY>XT}RtmPl+PlO9{@l4%V&Z;RHQZmngGBK_w9TwySB zjBQIWzFqY|ypbYZg~_4qvDiKaSoS^P7*b$FrU^&g-lCdA9sTd^9%>w*;h0Te6tj-5 zi?r&dC55tQ2~6o&V{K82vOk3uJsUC)nUMps<_qU`G+#K`pDzUS8=a+8>1GYkoWBg; z!_64zKPEH(tm^c>zxo}i-^*UP{_r0|FZTN}=NNv+x5w{+P|MjGvT*qLO{_>e@}@ap z^D0oq$xI`92?6_>$+dEN0SJ-9Lph9&ebhQ@#^$$myL&|Qh)Q%Nrf&Dj=!wmIJAKt5}8fUYG=H7?Yk6`d4=13#gLwbsy;(c)AiuW>a7xbX*F zLekwZas=2^V&pfNJUM_5OoEQm6gsZrI|%6(e79Za(JWk?m%@diBGmY-kgZbJbZ1bg zz)<6lh>L)eh)Vkr@z&L{-v}SKXW%yFQRB|FV*eMnTQUA40eyNsuG2z7wxV=k9VsBz z7tW7^A>HFq!d6|6tBbSPUMC)&H= z#SUf52%5wF=cyvDX}j%py0*Rk>xKW3WC=a#S{t;!s>$~Qz@*7~2A8MHus%x@3<*-% z+oy68Lh*RbUKC?XI9kZVo5S^W8Ql?Te48=1Z{=W6>2tdHJE+GtI(1&C{aU#GS#v_jiC$dIDo%CT=6U0= z&kdg_`y4xXao}C6`{cKTUTLk0&*+qHYtR_VwuKuUT5)O$aB$9=u04tp-=}fau@@8H z;>o$-Jw>edD~@W|!j`)#(x#fZRAcxFkd;xi*0?aoJKRo+ckN+!G=C!bJmYnBTsG|m zB^d6l7qqIR+SC2x4iB=OpLA7q*}8cr1|S06u>o{!HUSAQd#@b|68u73a|3V;HZcH= zEMPlat7RHkZhS14mp0>0G5Qz4iW;-bUfVf3eSj&8$#j3q&yEnRvy7aaqnSDdq-*v01mQ1f`U4gqI)xe+ zstI(ZI%`t=)Sg=Q2uI3x%o`zxo@Qd9jqaIHdCPl=Fxc!$c4;C*GsEjEmCeW4qcbQ=I-Fk!X za^KMV)B4`@NO6ljA2Y$B{6+c>-iO)qG3R8(NUN~-yY1d=nOr9GZdQ7pa#K3_PHN|7LtZ|^gf;8F{s%B`8G_;< z6lF}rJ5r`swU^cHW2nnJcdZPhTrVg6p0MIhadF-V|9Ol(H+zHZ`wp*5O61f-d70&9MKpUo^x1lW{*|#|vkMf43>`c*vOvr}y%yM*mj@;^|-w!Q#(Zlg-VX zc4|mTy2+ETcO8|1sMJnekQLbDnBFI%9|;ywn~je_t3}^N)CK8at_6+icjHauC-^WO ze8+-Dvs>hDq!JR|%jwuv7GyDEi}$nzw`qUFFVnF9vr z-5Q3p)`G=2H+i2uBz_;bL`uIcOkDAvtx`Duf~#2{$G;#f8BrlwR$(fysS=W`bs`<7 zvT*32q;82c*I`hVWCoVSjM-2m*1MWBS*l~x3b5xeF*5<0nIf1k!QE7Hb?oRMgRfxP z-kDumN-mL_V@_FAt7zZ;6N(RJ96Gz<{U?iRLJh6zNvG5ME-FQSd0FL18&I`Ie~H%( zeqXhJGZL!W#4N2Qx4LZ8ttaeT!S9bs#u&l+haw+pcmY^COw9cFFQNLsph}VYOj7G; z=?|>(27XQ8AoO&(4&PQrORD4JVKb{Z&feu2Hxiz-voYF3T2X1@ze#AJVE#`o7*r1u zr*cl?h52*MNEnp-2eDsN$E#sYFEW#NrB;p9Np(x3eGSD{V1Sk6MJh6QYu4d$s^MW; zXmD*Kph829O@t!xD3kV2Ft+ewm3HPMXHZ|wd%Ez2Ef%?nUmN?dsrtz__F;3x zNoL!JmqTwkvej*^?v(VGij02U(HOc~!i|NyPcjb5uwm4tT($N)4icMuWgoYa;6pWaH@#q|7x><@^d1*zRG+smg4}(%$}x` zadP4(Pd{Dwi4FkYE^b^270`sC%NgS&sP493VmOb6dd2e+hyFB8mQ&f>3yZM;*>m&_agy-bd+ zer)TaDv?)uF!#$aWut%H{^2hVXQVCM?uk*x9xL9aXWV}}9?tr+o1xfZNOe5S#<9%p z!>PqSn;kPAq#H4$T6mbR*Ly6OLHE55_wCQ0a=wJWW0;lFjMJcO$8d9!mD05Hh`(jn zPM7fW%hf4+3DZ2WMBst}LEYg&3}_0<_7#xa)fBHO2wF zUyg91ZXz~PDM@N{s?av|2B2zIXqEXO2fSUn&@2P1it~}@RKYmWpf~Eu^Z}xuyTWUj_Dm>S(zC3DL>eayz;Hi)jAzd-rw9=uWJ*MTg7M8^|yF z{;l9U^Rp9b<_8E&A_N>NDfPrqoD5kmqkCemgEwsA(^1tapvN_RAa+^<5MGPmrCgH~?@=()SO2yUuB$ zH35EYO!mSP%EsjQhV`L_uhAUQfM~TjF{m4ay*}ZQ$0xQfw+=NC_rZU)A?}zA;m*tTR0y| z$3ywYdiLh18RG)!{ehi63cFFw`3(3kw}s33w-kKDpuuiXj#2uNA2Y`5!lv<3}8Kj)}0UkcG9%xYFSmx{7jgADplc_Kals76)KNPPBWAP1*y%HPRb6QY?5+ki zD>GH`UcJRgU7xTgvbyXALF52PvIQdd)05K>p;T6J7H8~bN8bwZ(hwvs5!2 zkKII1JM;dv*Nl!>4&p2*pG!fprzY=V4E@ifj zp}tOHdqeN@l_YoW&M{VE=TwQ~c3X+*b9YW5!n@Z>JgDuV+f?bo)zUJXS7ojiI@s@@ zWD_yo%a5zs z2eDbu*LfX~zTGqfY&gJwBC&r()X~z4oKogQCN>X^-LRWRQk!%k4uELU1Nwg9TDOSO zz`;Ig;o*#s0lARN36eU;224Y>1GcBpQbcv%Jm3C|L2_uQu?19W4X{c_t)A$TjLXyf zUh*c?_@FQ@*2vX>@YwXY^?BeaQ2oazq^aKf$tU8+^K8w~DWoh#GIoPuNl|OM_8f{& ze%pBf+J=OTf9I%^H)dMIOP_ALf1P2&Z=PuYSbKyUJ4x+pOei%g<|H9pDE(`|I7#R) zDG$ovuAcF+WXcuaR|Ggo$ae!wUk1j~C0?cXtAa>zC7+y`DsfgR2f&*IPX}_H_EuG#yNEY)i#_ubxlo5K{+qpbs&`rs>CW*>KisD zJEK6H5aG6h`Y%%(l?V18`nTccPtiUwR3xq{eAQCH~mxH%2_lrUw=nsd%EaV9? zl;`?d92 zgUfMc9#*5h*vB`KC`F%punygAIj7~U3>+act0JXS=)w2%48Y*#8Hihi6Ky7P6cEh+eRmW1y72^7z#q6JZY zyN4S7jneGOS8S;9>(p?d@i%vP#`rsS$H9!hA{6t*c~VeFCT7&4^`#FErXiZb zT;l3EFLbBaVY>gSLXCfeKC>&%u2=kVhXTBC6u&q**N1>^ZjOIaSV@uBX&R;&ZtACF8#^i(QH3{5u_|EYhr#cxL~UD>Xs533Z{ z(y0{DK}$0srKOD^1z4Z9t#~^phZ^5Hh)yZbfYsZv{a`?C-zhtfOM&`Jis%5;%qDl( zDZix%b;@;ZK-fp8JW4}ffr;4s?n}|5WC{26X*6Le#lNGYpwXPfQj*bkFzMmYZ+74D zJ)2H7K8C9`ekqKPt;x1X$;7*r2c^ygptD>}Y;XKBQ>XO!xGZ$1+$jO#Qs;@64Ma8s z8YxSUO+(<#XjgwGGK2ct)6W$u#L-V7MRd?9neCucmN@#UWd#FJFAFv9)}qw`l%D@^ zMOJ_;Z`u0?gQ{+zst=W<`1|G2OAl1dcQUJq98@)VqtqS;;$z zgK5hk+H$U|;HpsLdI%u9CA$BoE&qMtm^8|uubU65qFz+=S4TuOp*wW~FKxO$dRcaL z*_DZu{wt$0ui&7n>OocWs36rpa}V4GoA-7o8W`mGhEX&*=)X`E| z^8x1u*+x{enx5&P>eVOfjBJ3)Sj0&0noBQYu$u!)v5mw2Z5EmPJJNSqn0_v!+C5t( zwQ)H0$R;15W}aL-aT`hnd2BPLB5y&aY58LKHOf6df+eE-ByeA^CrGWq_6Kz+Xt;4mt*KJvN& zqTjzV9lvja%}p&cAyfuIXa)EVi-|iZ-FYo#&d1xwWZD(nDrLp2rT!}Ako(%$6?zll z{rVvp2UvhnwRWVQbN3_6kn#`u@(Yk9YmOa$P6p> z3!5B*p%iIt@#n1m#5&Tt!r!Q!ZBEZ#YJ>ST0HWqKIMdxpi)1u_Qqz}fGpl|reLin$ z{`$7IB{Gdmnb$MU=gpYE_GSKR=56W~3k=7fbuNbS(=HpCafDljS7D!@3BS(!Q8<>l zajKqB+73X~`z-%`r~f|N(lyv2buzKl+B=qQOBdV_%0;90jsmO|zx(|c>@v=;SO)W* zM9S}R^d;&u92=i-@M6E&;k+~F{nWw7!R zm!}Crtp_q3RmC=Y-VZmlMq-;dKr*(GvlwtkQ_wfpYo#ytI!2^rLP1mJNMTvve3ok>k`F1MdsvB zpocCg+{5`Z3H1cQmC@657=s`07jp zp~lfvWl-wQGr{*CTv7VC`l*B6&PVb=`$u}n{-FEm8sGkh88uQ(2x?&Y=iC}$jxAd6 z(<&{7*aAnZS-rw-Znp2B%bKmveuQwO#=bo=P9o*{&D3o#nC3Chip*b0dtK_uq8*q#lxzLjJ%bW)M}=Da^5!H@;5n656UIq|OVt3(#gS9l)~Y+o}cnTKPW!?8~i4`HW7;zd@xrNeN9A6+;V zKhxUN!7&EaomSiS-JfFMkbpY^>s`rQJk)lV%^z&=6Rey&mfs2UVR^eRo6G6pyRTYM zGCn^2d6m!LwsUz_u1_u^?uYi?JyO5&(F7MSwG!Bn_!@!s>cmGEBS@Of>uFGg|eiSZ7#BEPUQQ5|2H!}@h(;m%f6tVmO z$Yf5-HAtIj+PKBNPD$KE4XREcd}FmpnL2{H%?GZ0NzoO%4v8#W(c;%8 zvzg#$N;$70Fr9^{L}a-3&FndkS!v|+u@CT3lg_S=-&IH16BhUClK3V3JQIIvkmP7) zgC6diLfBNQ%eG%+A#C3b>P3ULWi%+OF=MGfjoH0r-;L?G=vN~vb|0cPMe5(Lo3OZV zmjLc_0yE`5`lNt=fa0@(XYRS5uI5Z1%1zX%%cWo3mVuWE5K>dBXrI5dEB_#oa~R0k z(FQqVgPuN?T0oBMUz`6Y=;_rFdd3ClS$kN39_$~Kzc2iBjD924Of&^1-f;o+U!{DY z7yWvJ_5*)ML#++1M&z})hTl=2CL}J}^ReSE64R0MX3sm@u(92XU}N9^=E1Wuw^#Fx z3xg83SG4iv+)9KOwi3TM7favr*t#Z|-{>^;xL8cbzDC*8_LLvui}S8UT=c^KH*4+FTsVh9*0>xN}`_rHtN=uQr;FrAsDALCDPQ$DN^qK5>&cn_SJ1wATiWSDz?wA!4W9S zACyy;?>5Cx$EuSW?o+Lc2ve_%nB^W*1Na=K0?o@LfdCjFpO5qY-q$FxkNT*l9lEZ4GluAPqRu$pE zHUugiCC#YlY@tt7)qIS_z$WK zE=k!()hSQ|(EZxlwV4wWT-^l#nGuenK51%eAoK+2{jj3SFk5vJwlOqmktFM zJBCn)OBK50GYf2ftk0V$iOeiOc>Xx7@c?Jb?ChW+25 zkGnCM^SLfE{^ZCY7$E`KbkG;0HZHc)q+HU3u%o$(8(9aPFUdvHUp!NP`HHnr(sQ+fe})_IZX5@spcJg%zYtn?!koF(!PqZ?+MQv2{|Mr%!+gl-z3 z#dp4ew2Ton)u|x6<+m&4Oh9hvY>oyZDIfliS>+Xigjo6igA3s^v7C_X54-T1_?3%Y z868|5pN!6nPrea%{Y~l>~8s8kxMAjYCVdSDkIbww_3uG2W4@TkY7L$1B^wK2QPSr>wHqXcz(%C;+t}HX~PbKEqx|07Os{UL512a z+ocSO;rMB%6=v8jH9j)zmlq+&WWO|dV$JYxZ-PHI>m9y%KTp{ym)Mh|Z|%uYw&!ET zE%tn*c%3~TEZ)Ggp-X-FBN1pVI+R24WtbE&KL5$6f0L5ROr0DcCKlGh1Fa7pMVlPHwf5tfCvsam6%xt|IT#UB1m5~9yf0I_>`4wgnDH71s2-nu zZo9T!O|A-)A1kmJQodbyUAKEAoAEHHq!>Wm?z7q6M@-%B8KH(17Wl7F!_x$8{MGHg znTsDS`qogxj}#5l8izAiHyOaf+=rltxmAA%J!*UIc;jX`3P)MlOPivbBEUN}D2T>IwODylSq$)rk-Va_$+5augQ5Bi$JtKQld-JHnf z-97MLIh>f#Aix6^r2(=beN(PzvP={Ot6Fv3=UPT-D zP68P{+Q9eB3l6^8pc;eIjF5oZ7Ea)M)W#tsFLq?`_#V--4KQJ(r$|k0Yc`kY?{-b2 zL@hkms`N7p=PFE9Nz5r**ttYYZG?!uGpxoAF``UxQWQg%Q-`G4X+6&|NP=EtBxGRD zx-1|EgYUC0Y53G-KU>e7Ry`hAbJPhAK1W0o<6XO`gbD!kzSk_i7(nNU$zj6puK+fq z{88&AC2TYH)FgKhwrxQAt2Asli71CqE!qbYWcc+*-dB$mleo{1OuEelX)x$-SC#wa~Ic z>sC~%epi%;(?Q^`N|8=QCmui=Ih$vu*l8b=*7)|NC2mQvv8Hk3&`i(6gUBvd~4WUK7T**@gq6l&B8p}s}i_%I%pscu}lb5ON zK!wrrk!t!L7HF%5+a?h*DnHaXS7vF>{D`QIZ}GvZM+K{J>qixQ&#uZHIyV&?!vej#i!a-Iaesr3K4f z2b$AzUggu&my@g*A4_{J6G=5W$q|`u%S4hhC)r3Ge#4$cG1t#6zGb)V5|Hd5gLEqo?9e+-0rTx zYeRZs;I*MSAz`~z>LkMT<)x`oPrSH|d2%oj-lJCHL76A_&(Z%cd3<8rC%#>Ag?In$ zpujD##R=MG^A+A57Q{ri!dsAzy*3@Z%z}(&^kWOI^Uky925*8rx559sF@Dr3{&R#q zTfAd<(m=GCfqqPHd#>}kyCvpo!LZHKonIo7=lqgF&8FB(q#tG|MZg!CW6x6+dD_b$mu%xa^bp3&QbU>^(kW9SYYvl3cm201>&NpekOx zt|~rqU3L7ry!!Gt$B1UxVs-@WsM(O0%=hlUNhtW6x6GbX)^Qik6E0O%tm`_2^E&oY zRmI-(eq{+h^w#p!ITZz*Q&EVhE2=FmDpIJm=2PV z`>PV~V@*vXsVe?RadXPP`olaBv2gni4Qx1sr)S)M!bx`OT?o5I=|C98(tfapg1{=K7`lczZYnD_pXZ?tkW zb?g;l#q5+UJ(2gzh`nj^)|O`O$Ld?tgWvw4#s<2vna$a313F61MECQ~xo~|K9L{Yr zAL!`X`J?q-(?4+q76+3by!W49%5leAdJKA)KKV_8I`l4cvA!r zGv_ljLH;3t`}PsZr)FM14iz}t`BkA4*G0c}6FF_l>5Su80c-k%zS|<>hY|I{)uM6R zXkkdDPKRuVQ?rX33_eCR8SsH#S$Ux)%L@o| zu#Oz*U@3dOBfxbU%FCg9&ZaKok1vMqIfZc3nRktA>bkhHY-i1%#c(PF&@vyO@WR$s zs#|b)Md(RZLvttG^+V|4$umnUK3zMjBJ}OG$hQ8gB98-b5qN4wJ`NKKmaDF{u z-(_p{;Pgu8{-mNS(DjC)f44-tDL6P;-qiOls>3+@!*+zCWP?FLeQQZgUelS2c}BTx z?8eqaG0G2kJ-4UBkroKU$vq7imj3OnK!dM zC~mP>G(u8#SigK*O=!{MhK;^=RW95uY}`J`>A#iryGw5A!Eae*=%JO#$vPq(6MOEN zvxJaMoPThbupKy11#}P~TylZAxPOD+DO+{hg3uxlASX2Stqb7A1v?AUiv{V0G8E3z^mH;X zFTT`Z_Gb6q56DoB5ArO{8?r#wrQrg&AE3k>et;%)=S5=6ld8&IiJpQ#5uBiXuQc`g zO;g`xEEcr?6nd~-&l&^c03fZ;&zEqApK<;V!LYkc(~ zsQ+4Oil}z}5LKy4LJil0j_2t_jqk*DIu)xmaTO2KELxK{4ZzCAj}>wLx^m2vAxGJZKbiI#s?mj#FMv2!#x z+|&~v;?Q$Fo0EqV)0Ml>LeKY19!fZuuUGU;Vm|8`y13=zaA^1nNxK~BdxhwGMd*9@ z2mJMQS)B$T)^Z0HPtR$Sgq&?+D7n{y8~N?N;0S)ZQ6n&%gnqOuFPa;AvS;#`&{I9( z{Pnvq&G1QgTrhv;y{Cg$5MhSCrAO%E^#W^s5+uA3el=15cBgRnSA*D(LsQp>3fjRO zzu*%c)wp0N1?ES4eiAC+Z~A)9hocES+h?E!njWRwEY%)#LqS#e2Yltcc72(+AWL!e zd(ib?9u^DwuT=e4qW&vU|5d2Ku*T3-dG5^0>Pa2(CHY2Yh8lEi9wB;ijBE+@^yGjP ze*FGCM*W!_%*U>t z`X^5|{1fS@qkr;f!nt_=UC}?;pUS1pNBu|FH(bcK6xcpq~domw%>27}kkw{+%I`+9}$)CC7Ltowo@e!FpW9t48-mZOg^ zKtEaS@4jG^wZEI_tABC=P05RfLQnQjj!897_`w#omHIK!I zg1y`&3_cFNm4Sn>PkEs`>s%x9qdlO$E>K^K5nmSriZa}XLq(QJG~%6yM*BgVhe}~I zJt!Ni@!X?_ot?w}*SoWL-uoMT)>S1Q5iq*2;yUUN$Ngt88(sScV$q&BG(`HdW-e0pme_MD{L66vEaPqYgK2E}gcKvOkmjEM%ZMjvQxHw$u4fys8t@Y&< zmXf6@AxJ1Z)CIw#_uJVUTDegIXM8AZu~-yrm@rdIh2|(UTcKJ($a0;VY=xUD^SmwB z|EHBc4K--a*{pe2g;9kN(Og&FJ%o9srYs!mmq)0+{CC3zFegp1H-{8evD}@9{v;<^ z6pojFNFa#!eoQl%A7f~72~!KpsERBxQ$@{DSPv%-a87$iF{O@#o=J3Lk5f@~XxtW# z_QH2d>tQX)JoDme8MQGm4`|vSJylpL(Y$_cA2+A3Zp!0$$k>YN#`QJ$oNQpd$(w$t z=3`utuvz?+ApqNjSYOr~czo5nv4QpjQfavUreQf8PZ!Vq$D(rlzZa{=gzTmZ7+%vD zGZC^+Mb3rkxL+R+9-85eu>uaVi>>u8pbxs;tuN`n(}W!Pxc*j)13CDS>|9 z1b-L__yVB?_JMp!EYDyzsZo^lJ*gWrW96cn} z@)-UFtGuT18(Nd=t4L@3sk&@rarBKythhM&YP!^PNaJ^%8@~k@F&Mwjc>I|2mt*`c z6Ou9KZ02c~t}L+#CUF|M8|>wY;%)YH_qmK)?5=6i2yY=iJ*ekc0XFL6{Vr2|m}=bX z6s`XH-ggy#if*y;E5xltF7{Rl87$dlBsKyn{5k|lkf?9`PZ|hf5 z+~97r)Qce;f<9hfev;+rm?1oJrF89h?z7(-o8x`Akt*rXsm-Id{w_z{f%`w+J;UVN z13#B-VjQPr@(EVWr=@)I>WQx}f9W^@RUrv8HH>jOCHMpVM!mX2y}H9Ix<({|e+|Te z^uT-*j@>2vVmzRN3Q9iokT9QT7Ekq7ZxBE6B3;4)wZ$4`*9P5K&eGeYp-4yK|K=f97Ly5U|`)RBHB> zh8J4bJ$A`#-Hdh{EOzjEBD@+w z9{bK>RUNxWBvD`f4a)<_i|SMdW_tA|3bMMhdw1XyTby z#LGt!5VKai_YN>R-mO>hZl?M2D4=6z{V(utAleV_9_V*LL(ynHuVX7?=ewSCcA(xkC>}h=x`Ao9JcX5G8v)ruEf%*IN%hW$9{{D-zzYu>vaQSbF z4X4YW^u@~8`iU+Ra3bV8T`6nfcAeRw^^+xfB0}sbb1Cmm0$2j<-1dZv(Yt44NEhxK zT1MCFAL((C$&efQc1#CjTuefG88qfwtr_SRsdq|Np(Zz;`p!ArUwXS^;-$^Y>y#4{ zb3FGy5QVq-5y!$O!@@hG!x8^3@s2*0`ya*M3#`W6@GE3`*pIJB$4@?MLXOu&yg@74 z4ac7?Zn5X>8!|Y3wPcdd=_d>N9ZEx^#e?ena1M}ISe#vn3IrO73VG_E!bOA)WD->< z(QH4_oQy=Zgbj4Mpw9okIOBV>|GmC^aFIqc(!=-cM3kW7!Kk&T{|ReKN`m?G=d}D9 z^i|g?F~i(P`Z!6&iJbn8Y;*taBvxr%`EdiOrlx0jZJoLcYaFhKwS~xvo}!0%vlQ_9 z^5&x)tBvRX>iF~Ew3;wYE|To2Ev$;?f1gO^Cl6dAhErSQ9Y&yeP2K&J*vUGePB@D9 z8?7?YB{ul9?I2|NJfi?>~=FeR=DV4j`nV2)8Phe-`n^`%fdF zMLNZMc|aoG?_Pc0ulYkJ@4pbeUDr#ax4(wo{yuv9D(UTSo8JD8`LRiFcOevc_E_jt z*6P?cuiL24QBKr3YwE_TBT)i2^Q{g;E8W9PaA3?8<)06>#H`R z6=T_&h!I#0 zU%dR;9jyI}a~5H(_r8xTlu3f)hVmc3shkDwbwFO;8Sl6C4F~}BX_zTIP{gFOCgv>XfJcbFs(6^$@x!sty-n|L zv2H+(SzUn*nf`U_69F)Z8{jipeXAGAua=bjdObw33%9ozr9bAx6Y@)=T9cV|_GGEl ze-~qQI&b{6zk{G1p%wjGS2k|EwFo$0CPKs3yK#Wf5qM9gbBpb29Nn*HQ@`QsnaN0k z={25vMV~Qz-Q*2w(#Xtde#Y2j{Ir{cdS0NOp^Il0-!8~XU8eK+NS>iRU$q()%R!dK zw{vkK7N@&?2hMM{7)do)J6btRfi-3!e@8u4@iLigqqZu&4e@yHch4Bd`5!-cxfLel z?pxO9C+u@_l<_7;u3>56Y9S9Rl-qqDZZ%UuY*$3S=xjy9-Gp_zm`KFrP6o zmlnN~Sv8w|4f|O`52+|{nsxTkoq`f>nmbuob$#(7X0@hX#Y!|;orBz+YR?*}Z>cHP zGnY9QsH-Dq^F61z=A^o3O)trb9;@P7tP0;*4DMy{!K!RZTtUPt;c*8@g}*Oi`d5Us4h&L>!wC?DidLWRvRhbcRz zxyna<8d=*Sa+Ll%XdO#(lz!XcHNC^}ix{$V3UqgB;sc!a*$euz9xWm!D-X=5Jh?4g z$5Zih3^R-md&VTdTXCIg;3>d&_6s$-j=#IOMKPQR6_-C|2YF4MVEGu!q6!ZNS3LjQ zo5V$!2P!(=Z_SaKp5S$8Ab=u0xmXm=mU~yX897PT4;+bGInbjG(y|?)#wD_H+UgwQ zQ~m{iThB^Ws9~|;3iRyO_wXvt)F$M%x?69;t zblGo!J5SHyBY6zPj6P+Y6(cac6TXis&biClBcU4A-$0^o;u`MVFKNYFhlJxt;BxlW zeoK)}rJ(``a;SF~1=SIu-shma_C2b7;KC{^J^+7OI|i-2Mqc=u-HO4j(Ig${4_(`^91qOtq! zeQ?!ENw?g1FOcX9xsdFi-pyEvg~=cH5hkr2R#iqj^zQW$9P!+1Rp(a^Nz1p6rB5L0 zVmn1azL;RG<#Z#c)LKjT%kg(D+oy%9U*-6L2VQm16$y_(*X*F{3UsF5 z?3v@>vv`AVY8pP5DGi_Ay@dP(;)CBFu@CqDL_+EY6T{QSVeIxeRF}=-qqgd_%%thVKIjn!U{-VWfUV1)d<9D%nNK zQdptt4XPZY_*5SlH=^Jw_Wp!r4HX;`!mqDDjHX~hfx<;DT%>S`3zsNdp~2F0pQV)v zu~6^v+#ep7W;v|1uCzS#%rj#c}yH_1D&SP(vm$=>`W1YdsNM<{WmB;=# zc&Hl@cSIdU*)M z2d_MCAFRQYvZexabZbtW%+dPc`ZWb?BdBV^<@dZioQ=Ci`&2G0z3SSpFNj{TrlB}N zv7M4(J{%Gq$cL-1zxL|r#H%V7)^@%AE73}Kn(Og=?jAig^32z-ySnBp*UhOh`B+_6 z5G|^#tIfMHI*^h)l~fh4$Q&88wt_+)`)L7;^Iu6f+p<^A>?un^C` zXWbbL8&q+=hzOSINzawo)2aMk%%#2DPpjgT_GwGwi!L-t_U~45zX&TS>-1Tb38fq8 zIq8_|^d8R*{fXK7FzXXn?em)FYr;NcD-(7y4zu!|w>lX{91TA|?rZ8ae>IR{USD3{ zGu3G>L%P%S?)9B$otBSvzhj}BVgET^%qV65+5KS$W`UHQK=y%IpxD{BUzHZUaC?z~ z{Fqr{W#2Be_jFSXouGNKH8rr5Ig?eho4<|gl=gDY9dO~9$hQfOP+cZ-xub|?6@ha> z<2=nTaAtS6b*HSbMD-6XdO@k`cMb42%GK{GthvOu&(`l^wsDkAPTJVa-2Rm1;{*tc zG-Ceus~lLQ!2n$>v3J)1?}kC7j8AS&9OlnmGQY|ZprDcjOkeJ6k;-F8S-4ub!W@uY zmQr8dO{rTtN?pIJAJ$1>UI^je)=%Uq|F&T% z{B(9&C-g-{-8oYd!n2pqb3K}qCzHA>UTLYw=X;nJVXosKmhg%mxZ?x~ntEu4dQdpf z{CUrBUvI77!Tcy2W9j+tF8tGOckp*#a0<|L%Z7I{QF&=#LQnQcvRT(PA@o#_B(8F} zJoXBrnjH8&(>cOK9R&FCX?Qs9>9nAl^75l*b5P^)HRBIoGiq>lB%I1}@RqcV0r#y4 zJ-Z-Kvm2?ohtg)^pk#@n5F)Q$mbu;?|^7;k*6WOzAPtn z--_gEM6*MsjAWr_-tIn6rym?msM|c7OIXsTfx0TuABQ5)4ghjmZzj>Tg?E8!z)C*?~Y_1)!ywXwiwuk+QTHNTnB1M_b@ z_f%#5Rd&|mePvxcdvuOBL>Ym(PC&*lU@UJ8-Ti=G;QkibR3+2?4Q8e@&Jx>{Hq$M$ zZ0=0Ya6H>g*T=kH@q|FZT}Qf{n$F4l+A)C?pL({qjx^pkldrdWRZNgE$249J&u-tP z9b+^l8sq_l|JaaB`4FZRg^7Q&mpmmCG6S-2hZfyM{n<9|hL&6U;^xYBy4+njuZPR} z?dEZNH4^$3Y}xUCU0yB&Q`ogbPqND{cS`LNZrJRLmNW$)D=oiAa+VjU*m$Ou`=6V# ztlTT!?iy+8S`cZPSpfaWv@YW}OVfGYF|!Uo?Y?dPg>}1E>ip;hY(KA{VeEPP3!gZ;wp3S*E}1uq1ffMb&j)QMoT{L3~w<>`1SAvgyBy*UTyiSo3>TGQJNVpCvE z=ZWXO_1CjV@L+Kr3A~!qO@aNR;uxh zyiQbxvwAH5kG#u)sC+d6Z!JC!jIkxHV<`;REy6Ybo@QZ~l_FRV!xo%>n=7+Li?8{Y zS(&?YR3>*E=1$|i*$O>hh0Z-|L#y{oDX#JSe|$LFz${hq6)LhcC~`ywnE9XoL16yO ziUiEuPkER9t^A(^j6S?U6pQ0z7=|Cq{lL;M2+|M!htjKAe<9$N&@AIGv%_mq=s+9z z%iX=^TplyozgKda0hdq&I2i`Ob$u1ec!XgaJbQM_-m`IM^IV6M}x|isIrFz z7t4n?Ut)#+>kU_Ep$aWBrs?FT-#e$el3nkdYb7shg&A1yoE?;Wx=KD?CC78OjGC0Q z{ABh0(^r3np>tu7Ja@-0{Z_w6z}tPMB|qi4Gjf*az_mo1htxAET$|hHtw)$H5w$kA zzz^1!m!-?u7L-H4`wiuI|C}wGYX4M{cu-Y?s``ej>JJlu>@*+~{}^Pzz4N)>mfUNU z1OLPF%Lz!ns@U&XvCpRxofQ;νw|u}JeJ>M)kRd93oTI0F97{-gu=hr)mI!m*KX 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�jh3a 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ʨ^U^by}2aaOGbEu#wF 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

      !!l8L*JhdXaJPIloZCg+Bq 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%0AEgN}@Qv40{-z2(OiEkpq- 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°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

      =bTLOK&%O$hF|^g3C6ED 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 z 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 h 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

      |KyGQjTjIEa$b2#(8aM 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 z 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

      ZDfP!jtv`z2cI_6?(roxeaAG;;*Ij+ITJ*CA zAd2eJl&aIzkS-*&2~UyGWG$*S(c)69ML}Bf=8P{@;ZI*~Q8~y=sRFbZ9K%!)RV||r zjimUkr1-7sJP1d$Yk{Uov5{RDuQnMs9XD0wNqU z6#}zDG0Oo>k*Fsh^@ycUom8e-c%EKmJwJ;eiM$3&OOO1{*qY#g3IDgxUT%p@A%J4h z0J#EoY&An7w-`4zhQw;j{|s#p z4YvREM$lGT{!Zuy_=>TniWZtSgM-9K>A07oS0&Dk4kFd!TLiO{_NS2FVxkW@qzKvq zZ8w;5BO9gUku;xzL?h_NFiLw;B%XX+G1jmNpi;&!G@NuiQS^9jd|fVN;Qr!7Cx0k#U)c^?Xstp9mHvfi=iKxBP(YqECP=R2Bzo~-o) zbZiWy5~vB|NEKZ$kGWIf5^`Qj6|PjlClyR5HP872p%ST72DX`}*(Qc>LZ0gTFLa4) zlQjY7<<#}Cb)gyNam#&KSZ%PW;IdLMO^l4+fuAZKP}MqeOyC()SB6P=r_5l{^JTV@ z|GB(n`m_Yz0-^z{1aAT1Les~Xyfy=~;5`_FW&QJeGZ8V& z@;-C}#GiC5d=a03mULnSBXM;sY320)-1saPjjtI3pXS}5z`d9-8;zbQy!Lpz~ z1YmZ<|2JSS0l7nGum2v&1Tc@FVv_Gks9T?a$zW3S-%cM;GE{jk<{A zgSjJX%+^axrRKNkUF7k&Hsc>@->v{nYZ14Bfu?G=2&aaKBa^lu;^Y@bw`{(H9CPK@ zxZc6!Tflb)r>I50pxUgz52{V&sg_;z0iJ?I4?Mx~#CCuGckxaW++Juli}4Kp_z^nG zFa`*}B~*t{qO8v4s1QyEzKI>-L?gZMM_R{y1^4FXxa6DHn!FqkoPAuL~N`J$W=vOmHR-#HZNeeLR<1~x5xiUrUyX#3` zT=Z{ygH`}T&9%!& z8B!US&T-~ATK2?DhRB(S6#Z4zvsGteCP{!<)O6{F-nUpDlwkM7(gqd>Ota+oNf~0L z*2FyYBqUg90t{9I;Z=HxW!czQ0Dl0>u7vzqF(@YsMbQN)xMWbdOv+=Da4Np}_$Gqb z9awk3O@ttHntfzn2`{%{*e{YTNsewTv+%1LXHp8f?uFNY{TG)aPG&i8H|hYbel4RG zA-?i^dYo3H3|8&q%YsGqj}dvDtrf+kNKE0{b$lre%+L=%;P~)%l!sSq6Z|IRAPvms zFZ!lu#@(6Vf8QfUA#U+d&)rQ&6*r3xq|;_-?Nu1jMK@>R{@<0e<8M-FEw$&rhAu$u z!0=I~L#Sj?KxXSD!N$ zFTtJRZV*-Wm+?K^z}m{bI8!e%o+|!M$ORo zsOEQtp?@9_hQ3*TT!#MN@$*9g$_)@ytS?aDcnpR~w{E)h$z|$OlQQ+6Cm(>R*DmS} z`q{U&6<5FJ5fWP>SC4MiHlb0~yqY9OmVV5u`)BDlj}w-@5Mg43rGJHvC$jV(9%f4k zEZybT0sF$%Ed5os8qd-fOE=(hhkMHY*)e$Db- z5um$vg%tPU!DG%4e*- zxHf@U9tGX&ja$HcJLufL}ip77~ao2MCYoTJo#=&E>$q{PqV735YIdvn)n!7CJ{M zl85(3BjzYN7UDf6OgW|d7iBUHD@1-gb&<%Ar{yP6eh9YET{gk>K(qYnCdk_U7x0R? zL7@j~aNS04JwbNW@7He^UhRF&@al0AQOM|b_JvTtFPv(4wL4T-h_Wq}*yEzST7Ol` z=_>$UP4$sk)K5szYBzZF|3}=HfJaemZ6}aGSSM^61vO~Ipr8R!h!9CwXJ7&mP$O_9 zph8sC2nhy34NQWJLqkNoZd}C;QBe>PQT#Mv->yL1SiB12(qp)axUg#e_dQkJ)13rd z?)TlF=ONQwUG>&Er%s(ZwI2>?i_|+0!jV&nr{I>^GV^;TgGAGjWPLzxK{B8Cc@aic z)=CnX^?BN?_sZp{t$s7^&NVNU3HoANWGoF^;-{^L#G$22r7-5J6Ocls^cgrhSwSSK zh^*^frX!WfuR1%1NYtfHzl48eJUBq5_@xu^DBtm!@0?R-XKKcj+S=U&#xP^_XGiMl>R6Ip?*Qf7r? zy=H}z$^ogS;Je*{**06XVv5e%Ixs!ih?(U|HjJh_Fl&QaWpoDyBk63!IKIop5z>t9 zSfiS;nIs8?9j8evlV9n-T)b2@V_)B_nlTk+zFrll4Y3v|xhO(X&LsJRU$cfs39<_I zhA?`1U7VVi@ogxB&4r*Cg*$6UIKZJz9 zjOeqKnL4D4w&aMY`P+N>W1SCh^-PKz70kWCtG4q2j<2WuWq(&52|x`fkeyhm8zx|t zJkia|xY3BVZv!H#>7=hH@T|SxFoPxKG2oM{Fbne|=7xSL) zjpULd?X;&7`j3U9c=lDTrOqG3V`l1Co;l~EF%EB&WnjzIos-5Ol<$7p9VLoc`YK9n z>Ol1t8-cQhfU|(17Z!YgqQ)i&_|M&M(U)%HNd4!;I59g$C8JCoPUh^W#kD#T&GK`t zecJ~S&+9tMfCryl$iY67pN!at`eM<-phjx*wh%>akOR*o1}u{L)kP);o?#?tzR+TJ zsZdIwGP10wJ|qHX|1y){vc34h`i~j4mOgGUen%Zkqt!y@?~kt~@Pu5}j~s9fGro~K zvw7<}I@_^(p21Kt67ZXOdm2ZHS%j<(nCICk%wa>8It{?9&IaK5#~7rdv3_kC`` z?JZc6*au?h->?=ndb;Fy)TkL&68Mc9aCF2o%yxZD!o@7IBY4(IQi?}WlD(L(3BQd$ z)j0dEzk{=ACuj3|Se&V%pRW|hXfke+z8&3cmJ3a>)nK{S5jBK`J}I0vbW3@EyQg?J zloV4?v>&OfJ<~s>0zm<{gFfEGC|PLT^g-v96xAiBEMOnxwpV`jLR}uB=g_78y&=Rp z4X8^Nn9?O{VWif&8amaok(BFpoPcY7A?vlRe&?w*Dz>;*jcR2Vu+}K^6ZvBp9~}$98(t`xuFk2OJ<|hFK-NOa)W=KdZ=yy*$Quzr zSy7Nyr!h11AZ6@tUxriDFc5|#`=IWuG`^5?d!*mUiOvjug{LO-hE)Pc~;Pr@hFH%|DkRsN$u`qR}5< z#I#^DAKY(dzOSme)MrcAEL*Q{1X0zTjrK}HLRW<4_P=?n-X~iUdiXPM`ENZ*zR01i zZ1Sew`J=JJO(}06t>bi-Ys+fwM0mZJSGTb+E6T9ObTPi5Z8E=t)llU(g7yQatqhf4 z4jBdqVaPD%joOjhZLqF$?!#5vtOauP0{^P~%PSSsDRp-z4 zAGbXDd!&Y|_aEcz`Jp%BP+-#zsFr@QGREjX=85WRHwLO(D(~u82o}}?mK#)i5yKt* z$5(H(`j4;R3Fn^_u{b%-_&naN{^MhKHoI`yhU!1kk`pzTztAyx|4;jmMMB~%=?c@U z_R6~^S+m4`W2w{vtHHuy{qk7`j4Z#N&j(-{J8s%q5vowLb7r) zcUE}G3grG3_H_S|jMeBrP8ucs$8B)AWUTL3j)OydsvsO$b?zuO}HN8Q4r`aViPBX-k5^dI}|sn&mdW-5gu{l|lnv2%|N zL(FDe93lP3ar0IGF^^eKTT62y{YMc-?fpk`ZuK9@y&PQg7y6GgHMgbmtJ^VXCQF$W zjvB)XN6qB~7&X@JKh7yq{YORTN&AnBURSbVG~ItJo}yKzM*p!j%U$}955A%Lk6w}n zaqk2PtTfbkoLDFGUr($4;of zPB3ze&NYg()hk5+4LHS;D8V?HgJ_XU7Nq?||I$-@Ge4-_L#8@B*_(QN(uL5KzolYp zBWAfj!{NtfeAQy8xS~L=U`Ox4n&44R0L@Z2fawD@f;%xkAnTuD0Yw^$2;9G*IM=R2 zwc|lfznj9A-lGCj$Ag?Et6b!CIR=~MTqc3@&D4onYkiL(3>|yCAe=SmZ1amY*sFcL_kk zWPY%Lqi4_{ZN#%J`NgW{*DY>Z#wYNxt1J1alpAxuHbcKImh(8=&?>SoxK6uw zOiEvof*NS_ISVhiZn)gMO?q3_Mlf3@sx+3X9Ib9#X<@C!fEoI?NhUQx$|02!(>=Ik z%#&mPGrZ^2_d|<+=fnI!I_C$l5RHE@Kaj1n`j}eeo6J!Iy4xx4qT0lWk1%kh{%Z5K}oDYuv8_w;LMDoZXF9+s?8ia zlWA+2H+ZyG>0tHoCiCtL7N;INMY&UPrJXbIfJum(htr8n^#)tz;tBUZOwwvMOSPfF zCfNwDOvH+#!FZrk6h%#%zMSWSU=yqkpbJz+Y*;*2D(aZL!?kSVSuyxHEHY*4wb#?QxKxQnnS^k<+3b5E@mAB zV2*_D!Xmuei%wcyH-8$kx*^dYx)q~TQ!sJ0-5VN;f!d@bFNRv<5E(R&=jukTzeG@? z3gXBtmYAf7#X^u;5(t5SF_Z70g$0e3>bP7eGq{uMJN8UhZ6;~JfMqRQ&Ye%gxiO0ei4l@{$(woyS#+nLkXmn5FVbkB*>M zE81-<9=m@Jq{C>$zVOG42JUx!@D%kfvJ^1<5PF`jnx|gGKHz)@_u5Y`mW{0R#7dt+ zDp8Tp-l}av09Q$_=0Xa$$%y+&nT%YCXRWL~smXAxXIxSG$CwyY!;H{===Jd@l>Jau zeX-IA*bmVRC?P8ys|M`^O+>u>s^vZ8E|E0=-)ZLQm$EhG{<=N+X^~)czG=k5Sa24+ zg2OtG=z`W6MOSnzjhGmr!&+mG{Ek3MIDd>A98OPjo0u|uvd(AWNh=TF9hRo*YFe7E zur$BnDUi10PTSIuXm7B|cL=XM8L-+RL-zk!h7yLiI=FOo5?nR!lD`S^q9zl!imj1(S$2%o{T4;TL;;{;0a z(5u`7g9SFY6jmjug!NNTwA~wpq32YMMk2m*e?Ue4IoKw53nrGo&j@^Vjz4H(V)@^g zSl*E6^YmE<15W#miDVdX^5Fg*%V{ykb6e`LY8F%0bfT3LyUALi&p?eMmy7TDL*}wC>=X5C5t!8Gvh5wUo6EPk zU_i`e%8PDuS%$=PpI8%g2g7(+najR|-R4q7)s@+Nm1VoY|& zxap1yqTZ_yD9(Bh>M=ZA5P|Ag^SS2qYE`YWcA$ zvLb}2BD*#Zkd!kD_wO@NWDoLWvJL5RXCf?+)?DM`B8yfJcr~AW ziFPb@BvP_?iv+02qssxx(sLN)sG6K}09fcHBZd3Rw0vF( zq?O%l$!A+LEuZyxFjEyVa|=Ms{^nv}zWzWFljD@nFRibrQE0K*-D@ed{(v%9C)Q3> z4oG4)Qz4&@Hc5RflDdua6EV4S~wH4WNK$(}Egrsbc z#B4~?w&;Vw%#WPDfq*>}7`x(Rww-klIN0o^-AJIsj?z!1$2lSztC_SYd@+xJ!0;rv-hs3p5{W##?$JEFga`AD=U`qAZl`%U!;bQ(6=e>i z%taI!gxAsTNIPh@-SH8ke>>LF>gc8#@kkRyzd=PmYaOCD1;gf{?To%kqGK91b~9q3 z|4cLS9uss{3DO=x0%_OECBXwW{%eRO(HAj#T^0SFZHVq6{#=PZ!p6Tlf`11SR6Hy6 zzj}Rg)GC^IbF?J5(8hnzqJJhH%x6{fn+t(2O;cxye*7k~OZtZ+mZpC&6HHJECbS2> z961y%2{uatO8h~K{+T4Fw~l_eeblO6B&T8<4({@DmyRJQY3lCg4wo zXJsyv=u>R`IuZQCjga8b)57q(Nk}k^_|qi802@DuSfW2gjJ`%izvOI0&tmi;61}yJ zKL)Wh{ns+VT$Nz*AkcpX6SS2C-`-&9|1JxEJEPyAqG#NV=sY3BJoHb|e~C{0Sr);6 zfeAXR1fPVV5IvcoToOEB<3DZ5=TXY1u8Q6}8ua&N^tlp!gpEHvBA>gMpkjf@=UO|# zXi0FPjX&DL&t~*zRrHs>1UXj{zq3R?KE^8FUJ?AROfW$uICMG)8pH(Al3=qWVEMY` z(_2MHdTABy0AgGaNuN-*Uo=w}iWJS_=svGI3-3Mt?1 zBxnD8VYltqh<={vzeMkD<4=g-k0bsvm0;^*sPLDH{!4;}HogzB1V5e811h>F1@-F| zMsF_B_grtuXKn=lekK^A5_~iO_!lw3zKx>)l7RA=X3<|r`p;9*Q=3`!cbP<=V&e}$ zEUlkCnc&b9!tn0SNN^kRr%8eVHvSK>ntl@x<{B0Kv2~D7TSgxu(OcX26A(+|k7I(l zD#6YhkU&nTYAXr8{hOu#S6TR8M!!KtUu#D{v_bS=qEr9RjNp5iptDNQ@)#7N1qmvb z1P|EwXIS|0j9ynoA5nqm@r*uKqK~lgkHy&Ze~(AA;&GAB6?THrlHfuczZ|iod{;91 zvnu-QV=Q(%OZ4L-t@5oCk^f;5G(jc!>?M@%Lt5^R{$M)PjeQrhxkTSH!jjM95&Gwlpdl)OZ;hpJ z`__s6O9INLt%aXJ{PQGwlM~mqMOQ@+)f!FyIhaFm)_pWOSTDNRF)*^|BK9YYfS~_t zfj2q8p%MDp`|)6|2RMfP^#0uqYE&Fda4ckV+jjU-v+O*7bq@MhMw8_XMaHF!grToT z`HKNWdDjGFISB{|0b7Ub+Rgpk_a(JLBu&A_Adp541RUi5O3KK@otD{LiiQL zx?3WQ%-;uyW@P01cs2Gl$%c4ikc*Lpcr_a+i0KZ9z8?ZYti)msaj6Y4-3>935bGZi zS@d*3JlOz;v`Iz1SwkGmwq()O4UtTUfPy%2bA*xQe+Ly(BJDK9D>lS(pJJq?8e)4M zuS!3 zhUiI%WeVaV2Sno&w?8sZ%r;t97{XHl$!6~xA|5t-!L5QlI|F&UX`LnON)&LBi% z1ySOFSpTk7GD|eX+>E?WMm9YpvgqZ2*u315#drwqdY9IA86VeB=h{%$X(+891Mq6Tp-?V%pnNvjsx#Rd;`5=FOkQ;}^b{GIpdc!5 zjL75*ix9JwhL~?d)OAzwQ(r(_q97JIAR5mA6*62_(NM|cIvZj;(l{E*azY&7as!;7 z>VTMyAud(<=V*x2YzWHH0Wq7hcu_%|>wp+!Q{mST9}KZ%af=&b1R=&Mh|h0`$l}v% zP$7leKtq(;5aZks*@QSxLCkkR{5%d2GFG=9gSym@OdDcrAD4do4_=ji?BUV{-0$PS z8GN-Sh59i?L)EdN?$l6L`+`^VVTIDvfwCmmqNbaMc<(ApCfB=5W-v=;h=SNMCL)uV zYb}}ljMLJ{&{P|uksIO!sqiR>nGT48g@BM&ZkdKiwIOEqaux1myqa6*h&cK>AbQ#m zcW8)TvMfe2-4It2BB&thI3S*B2r6P(b315=*KLU5Zis<|=%*mw8y%5F@(q?a!}XOc z@@xo?8zPDjbrr-^2gJ)5T2_;D3pGSX8{(Y|mwvp0SEV1TW{W_&IB;%w3pkelF+xLq zG1!vHWDTYD;}*P{1q$W6oCrh11_MPDK0!k~WkXDILyRLtX9e-H1EQmC5I@3UY1EIA zHpIZ*uEOnsSMz&Ac*%7@m>Hm=9!qAfhB(89h;l>xK(Q`X5a&A}o;3g=ZrxxF@$n!_ z77x1_nL$QwRuEr|ipXNbjewAv+gL+9WJ6r&hG)xKwq}CLW{$^L_@5wA?|S(?(HmG zpMqHZw}>oWvmp-PSYs;sL>reqHum18R2G7SCCQc*X${ zvKiSLtz#f3F zsUdpW5LY65N6B1*SF_@Nk;y;@#G(a&5a*#lL!9th42^J8LH#%9D2O-*M3A1LG!C6L z#9KDR(o`1}Pvh0}D~NU1MZ{sU{~~7j`zqWZhRQ$5hIrUrGBa2*4HU$52SiafP{A5! zF4hp2+7P|m5SJ2S{S1*sPX|PA8{%dSaj?H7i~4SeBNS&qL7d2rF!HaFR*AIJ5Uc^hnluX9hQ0?7fJ(FVnxkMPc-GS2UHK54g)}tEY z92?@hZmyE~9Ixgw1#yuBVmCY5QZiR-h)?@jGTHBz$%ho{9SXv{HX@VM2B1RPm*yJc zF&iS!4KbP!9Tdd#4v6D+6SeJEC5vlph%`6E#e@hKi!8=CApXaOn57|F*boif5XV`# z3l+pU4v4XK<@afb?R_m-Y;#w)GD6&-AU@?1B0XZ6@+4#-)vca}Fl>mC8ba$wCSH|( zv{pFt95_G!L*r0CR-I5X>19K;byL%v)O-{WnGABEyknu5g&Lx&kHye;ZWa5SDmGU^ zG;%<^%09p7$7LGg9UJ0SH^fLn3|0^uxjaY9q}8i{kYS}m#}y-!ZHR7eEp1ONZLA|WO1RJiq@oJhJvUX z7GdNZ8=}32SZYIj@1|lespzdB-f=*DVVj_@k11K)W0#l_G$cr}M8h%Hw|WU}if zi=m$nD~6`p5I?%9_>yAvD2SO3h^&{a%D+rQq}mWO-Be5_6vOk$-EkYG3R#$|9&B>Np_U+7KNy#OpT1GB?Dtgy^Rr-ph)};_9bBg$zfBagH&) zpgbGmE;mFjA?hlKsSb$T4iINOTCs&1qN5GbxRXmieoe9TW7Rz(kS-3Kb`}oxV}yqK z;z~;H~?cT<#S)fq98ysQip4Tn0CTNJKY>3%zi2Df9SwXz)fEaBn{6{}4nT)g{ zR=H)em@@f(s_>HQfVjYhn5!Yqupx@v5O)${v4S|?0Wpaqm!jx{HN?khmMr?ZAucDx z%?jd+K@nLrv8iaRAs(_JE_6e*CPX_0@stDNgRxd!+4Pf=MV1Zmy)Im>rF-#e?w=yE z80moMYcn!KLo~4=mb>-idAut7@r1%@>A?AQh!zO-qq~M$-NTZ})0epPV=i9Js};)o znGu=1XQ7x!epC$IXG4s2LtIOU<_aR@fEb$&LS%^T4Gq!5hPcQL(S{J)?iQJN9S|?t zCTN0&INIG}B;GC7Xo_`~f{1lM_@1{+&?OpTg$;3=n~Lj6g-=1O_D5tf^eRim4jfXl zm}o-`xY#Am?szrpDTwQIT zudrm%M?>iLiwnLI<8T&7T7b)bBA6x2wY zyYmMnlTkLrHEx;or%VnN3PZO#AO_hCJ**+x*bpCdaLHsXUd<&6BH00fOV9P-#Sjg# zE7g+8OgF@2LX1}sUk!+eKfjRPXprlOyQ_-8ju7F{%i z){pb?s`O)o!uik_5lDLu)v+H$`*Hkx#n5yc%I9Y23NqA6q0DxmJWtP1yrGpEqNfe< zt{Y+rAu1+`Oa?k2-WY8`6ljPOT`h)MyX#D2)|oj9BF+KP%nt}@96D==w`_>A_O6n7 z4X>tOL9Fve#Bq&n2*3YM$zqZX5$i6QU&u%U1u@+LaXwd}sP!Kj;!+!8%!Mv0hT_#+ zUm&vR>3}%2#Dch4Lma%^lEnpXhy+3e6vT=C5k@X(goO&H)Bk9vAzrZ|4rp0u{rDGN zm40+rILjS4qd5Ly^1CEo&T~VwB*YyG!t583$>Z1`@g8>Lp#9PikJ%933tT0W zidVCPf_UBmF}<-R)@=urEUvL3{^q7)5UB`H6j_XMKm>0D#95?bmWF6yLo|0o)Fs41 z1#yl8V%a||6Xeqn+q+n@xFFfZNCIBX8x+K+eIv5i+8(l~M=I)R2*ZZ>QbTC{_z15` zKUyoCc@CUARsx61a%ewRRVtbEvY|$|b5Sz{ujWS+L?(kADAVr*ikRg>4N-L|8A`y~ zvR}?81UB*Y;b|PP7wnnN10uLNFm?|xLS|@eBF>F2=mGw4-BSKpxH1V>Re>B{MzY=X z*5Mvt#ty7aTw_iiYHhAHn<6tgouu*wKai5KKR&fXQo)-(oZV3QT8+)I2$1}*M*b<0 z`-QChb9oR+I`=VoNk)5+;m0-Weno~liA1gd++?<@t4LB84w+vMu}C5Wh{lx}=ABuZ zIF9{*A%x+6%qiHnL|VHErG`*?e}qz@Z;)F)q4?Am1s8|1Vj!Q?p)m#Ld3notC=Zwe zro#|<~;?xQbM;r89Kh{Pf%9$@|Bp21G4D(6J9mZ$$b|KX?3f5h+S z@0l@|YUR=ql!fS*7oxaT6eGkF%Wx%i>cIGd>%5`DME!kAV!;5r<>;Bra^3suFUZL%YMI4(Ki=Ce>QJPb%Qo8$Az*x=+V4xDMEgg5C1Hf}mG5#_WJIy^hja=)8vTAC0Q}~mgX2^E*m};*{ZxBT36D^u>W8cF z$*F?WKhKOuDUOqszo+CjerBz7=zyo>S_#G31gX%45}$fQ;TNWOO1i7J^isU0drCUs z6*}UDj(9yKXR9|K_fI0k=P7B-=+*Tl`pXxpN{dl8avNMkSMqtD!S$jvtY7=7Ri5Ha z6gDE^+i)mVJ~gW!{trqqSL!GW9Z|YjQSdM*-F#R_!2uD1Lbc2SQZ}Oja!|H6wO>}j zIP<{IqQuv0-5rptBV3<@6gl41LAeFJyrH}Eys7u*6?6lA-32+nqowSH-q7Pk5kel2 z=hR+>VpAHJ<9|6tEtoUVS?W^%!riMCsIzeK%=&RqolkHRMt^WVK`ArG`2?5V7hk4d z#4m`tfJqTB>s3A&EmN?+Id#X>cxu0pGi@!YTZ5(LxZO|w=E~nfbNLOjjNJIV6^NIU zt8hg#$ykX5=HJ!VJM>pHEWC9WUl;Ieq5682{#wZO=SBE{*7loQuv(wHRlEj3WugEl zZJYi6`6e$9&yVqFj#=3?P+!0JOp)s4*DU09 zWDN4^tn=z7V{y!D_f}_KjjghoU9Mz{>_~0!dZKX zn`W!T%v%*|u||#1&T=#})z`85t4;g6*`U2sb=v74wRUBjiEK+rXk4UWj+iZVgUBYY zQ;VzFE_K^UKb)hc6j|A)&QzdkXB1iYQ&JsrnMWS4B(o1Hvd_;Q!Z|bh8r%%A0vXNtqaP-SA^T2ozZ^WL( zZ9hpsQ%B+aX13hoEX95oYw0H|y`j&PZ63^#0&Ng>6(~OCnIEZ7-IIH0W-J;BO2>QKp$msuj<$&@HPdT-H5&vZj$_54A z0Zm|sq@r$7`Dth^;*@`Yy&au#Nn0`w!YPQsc6MAqeQQNGZ}g5p+V{!yhwFKH)dOy1 zD~vO5ABU5Q>aLH9#_ghUQJ#m(ydi)F*2bxW=gistG|82g3&)JSfyv2Ho_S?!s@Xoi zvI5r@Zbe0UkhZCyZl|&}-di_;u#K+h_?~jg?{FR-t~F6T+eR*orf#4uv(UXIYX>gno9iVheZtB#3Ee?3yL zm+8O>9BFjlt;ngteV3NvCr*<48X;mmcSIxBoC{FSO}UacloaE(%aHMH|8>ICVbb#QFU0PEBMr?2rLOGxpK@_`+{-^oG z2+_}$`>W~aB_BXP+cAx+l^nlLX}hhTPbAy=nbOPB&xNk`XHr+_Ry;lVIC}qaR{ymV z^qZR0996}fh$JKr)@W_~8naIy%YQd_WmraQ89Sm0(h*%N9np8UdRD}BYlID9G-Ig) z<7mZTi7e}+`p=#jXR7uO&D?l+JpjpJHAI8A(|iJ_QsG3IEVj4VMN^ZqqVn6(*UY9- zXp3`AVHAF`&BZS;EI5)8pDSb6BNYrSJgq2Cv3O*XEHoVc*nosiWl}%P<6rUgSzf># z8W86V!Is|*%asxBPu(zaATv!TDY!>D_D*q!a0~5vbKwh2Bu(<*_&{2{^JwUC8%q7k zSo47#hyxdM1#yo4E;fu_HorKv1en2IaXd{3uuUQA9!&#jTh3)tY;TNd8a^9Nr8yAE z!!7YdVdp^DxvFgtf5W^jUCUa=0N8%5vQ14ysE#LPKg1^v9Ds2fk83v}-$Z5RAm8q| zcn$JJ@sGrS2;7F0O3;@P2T{jke<_9C2OppY5Oy|%y$8ZB6WhE8!rn=s1QB+;2sBg=)1bGeifHVoqYIw)F8{U#UrBxnyE9tbkuMa+M`bXnLX-CUAzke;I?V8(=^;) zBMp!W{w2Q0lV`*C@STqu1(Cu0r(=EDmDs7d0&n4~9AsPM>-*pRO23`*XN3sGqkpjF zp7T6`a~T08AdV3Zd+IX6TmCi5A)jT^vU4TIj#y|)fFGC(ML*=IP(O!)m{2ZN$N7CY z5O5aD+aH2CVXfQj39RC~(Rhdt$~QPPEDlvXJI;q=aTtRU87YWJgM%aEBmm*6{Yc$B z@m3xy7e8=ApST1>iQ+?|JQzKo#rL5C#3oXUoAOIMzl5&^f$Ds%Dc3`vS)xJ=Mj%qR zOl6e(3?dAvi zcZ>Y)G}qwQDTkpwTyls(CR9Sj|3syK>8wB4`ztP2H@H9PQJ#{Q!F(ysb(69czcjxw zk9k89?k~rQ-Ex|;vVpHOKQ~J5y?cvGE$IKOdRm!6uXjU#NrT^beuV#fmcuMg9Kpgp zLS4<$s=)l=dwOPUMRe~5jLOEQ`2BhL-iw1gP?<*Fz|p$-mmx|Ymg>=%{4?=4 zwxF|l2hPojG@(j=y2E*hgqgDlW&50}mGy?|nq7uTGyBS(YR&8~t>I2~U?NvD8~g5? zRVshG7u~t-%T+j9`=U{=@+S#D&f-~qg{ydOvecCKM;^qB8p0Td1x_5o5Nm)j1O6KN z7oB<;#tM01jW^;)a$Yb%r!= zk;f39L_m9b0j|ML&MYa@?P=z%W!?PI7|K&ID&y8GOx%vc-f7?+Nr=|9B|JnMCx9b; zJjKxxG#n$|9RD1WSn3b?U|E{^aTiZu65J=&2lQt9uyd=9P=C`70~bQLl^!=Jj{6W9yK z6OfH~_$^Z~+g!$hWb@>Go?N#x7KlZ7uM-7!r{e*v;jXX{?#G%OPxCrs7Lfd*-t_+= zEYGZkh~r}xWAS02(K6jz{zVK<)@*@e$%YEkxJfQEb&Y4n6^P(7+B6TORh)^+f%6$J z@x&`;Jk9F*jF!#4#*lahkup!SI(#G}o@Tw`!^wCcwMC@Kh)wjIi=SEQ7Pw14g95V~ z?hUDe<{`94jcfZCCnsbfg6khX`i1#5S!r)Pcx9;vc)Ml zhW+URy1IfcUXEw++W%kGc&$zf$Frs6n|WC*@6=<<7Sk|XSLz8)#Py-)HBpyivz z@49&$WVC6R;fb&7X{L@a&NSLI%QQyBTVZi1g8@d%hM+pp6JLkX5)g#?l!%{bPw}Ey zpa!>xACXIvblrl}X;lPW4|M)g9hRYo!s?L6>X1XdTmaH)s}7a1Xui*nV@;U#1mi%r zL!+TvUw8tefr48L(8zy@Mt=Nx34=o;&x_AYU5BC9Un;L*BaS0=pHpQP+=&~dXuqfY z^97W(QW@+DgGIhOM9m{>1Q17?B4vt=QR{-hWGQqaZ^_4bF_XQuA2D{a#A8FJk?&Yu1s_VyW zHRj1t+&t&9KaMPX_JMn;-I!Ft)uR$Ec0?FNCCjtA)6E|5TJdI0qR=K6%lX!pm7@^( zPw4B07kTjF!D;2LfPJ*AoQNIT#K^Q8>G&l*OhYS|h2J{SuyRB2P{Yc7jX+vCF>%i! zf|$6~2(?TcJeL-5!zRKwc7kz?L!Zer=~-)XsE;2;nTDkuX-qO^e{ zJ!0UJ@IXRmk{lzpXG3M+nA#k&t6HVEPuZsSB0>0TrUHA^QLh-dba=K7`}TbUW#7Je zth#;cBc$pc+{PilXWzWW-Dm?R+x89aAnaRJOY+-+CR_1aAN<QGa3ICZ010y+@o_?+;#uZf&PM)zzCOecm-Z-Mb8C+YDNdJEZ>O zjpI!_%sVA~hk3L7ZkGcv5miR~|QU{s&JHn>6GIX6BSlQvR7(rl}~u znwClIhh?6wrFqJ#Zl2h`+UT}Vg*;7o5lWcj+__HslywsOvC7s|$`$?HA9eQSIM4h-%+nbkbez#lK(m zdd;fu58?*KO(Gw2&oCkggP0@l^TaEp<<7&q_@@)_P{VRJ22!p5sR?2&<6WzN`VP4f z|Fm;FjG5)1l9_7$DJj$Dn~c=vpBBX^^Uc)eLmw!!hR)wCQIx;npI$;h)P)P?Df>MW zz}_JJ(_#-zueRTDTs&|p|1_(1|Foxoh<{3wtNW+5aIF2)N9x-Csqp$jMKxYeV#3iK z694qddMNo*_@^!Sy%zt}MA=vOPmdt1ntvJxX5gR3;|KofC4b&O^}(~GYnpAjrmP#e zf7U-e0#B}HD_}JM;-98hZvbHbS1bE3WeqPhmv&?UnAG!}s_oa;7&!gYEU}-p`=?_- ziqk*c20Yct>*PzV@C3TzJL-w_UEt82mRxkKZo#>1q6#s0gIi6^qyw~QmL}t<_wXt> zUQ(|&0?ck$&?KC(RkaWd$Lj+{krsm9s`6>`x1q(k1cT~uC*wBNY;oWXr9F+Ih+YDs zeOlxQ{r}Cp>lM|86rzN&!iMH~jku2qc(RO8BA)qANK3|xJaof@(+FMWa37h1CC(|0rTf?m4>gR?KBlVSK9(WWvOu-EkMj^gxsOX5u}({MBp=n>M-rv& z4|x##b3Ps%?qgJxvOi31w%As!PS$WAzabMY_puKGoc`mIDjqht!+c>*b^8+|v}*e^ zlM4V&X@6?>AKz<8hQ)tW47>ctS{N4p@k}8~{6}H*!uP8&dJ^Lk@gLjJe?)iPb{-2M zFiVff@3ns0dGuS4JIo9`D$k><1nw{|kzaU@JIo~YNO$E7>v5miR30~(_3$fBBkmtU zPxhUN*C_ttc;tU_OEIXHo~*h2UALLYbGnH+PB*byH#Q3v!c&qV6hu74QK&UyKf)DO zm2p*TskF*}+k%QaDP1b=;B_@SqjVK%c~SG@H!4FQo}_Wvw5bt8u$Q`L#Lnhvw3e&L z4DBA`yccU$apfkOZw*i$;%oTT9^yjv$bxtRkE)a&l)xQkP<}1{aEkS|&&-p@O=d2B zo&MpG^IiU7xVnFs4Phz&a5EYz_=i+g`iEjb;2$bOVi^$C9~D1Qmd3&#T=BX1gGH1A z49-mc!nlgT;mAW}UEHvPCX5lH@>8s;3;!0K)BNO2EONlrcm=Vz9S$>7nONtL84WY7 zI+8MM$&{F%Qg=9Ec=9}0cniiC%8myF)(xj8YFlWJKl|Ane1j%a+CN@Noy7rhGy@zE zK@;KQ@D^Rg!J#&1hVPPwWeo(P?{~-jS{|bVj4FHc90%YhKC_+XKe5755STnrQ&dl- zt?EDdF{Tpehx`GL21wsMg{zb!Iz598`;nsF&Ks28CS|p9T;ju)gNOEa=NFIof9%RJSJtcFMmw=*KM@bPbZc=<<{(hrk z41SA4p@lKI3KqgmUF`{Ur^gYDX%=o_4N+#u{31t<11<0o^o?M#3^H2Q!C0gWJeGkp zzGq@c#R}VwF!+CU9OILF5o9mqRipExp^>OhCcf11l)Qsd!CM$_m=GF-H-B(vI4A>{ zcS3(sy&SZ=pD@}fTHojN&>+=0hQdd!dI`Y}dw(@NEx*cOQM zR)zM`It(?ib13urAtb>9-IC^#^=MR=)XdcVp6TOg14_dWgFUI*r4S#R4fMa)p~>id zg)|v$-cwBmzj8$JQ4wqkUR{FuQ&F>6w#|6=D0q zwV=eWC^=tKQjP7pLxF#ed>do4X_N?4|6_0c|7RqnAjDO%!x!4a{ z@phRrg~iG$jEg;7>}#G7GGjz#H157!MMAM{V3G_PZegCGpQBdF5g^rzZq5_wYf&khHT7}v!v z6P#~-mW%Vo0J9f2==tSI-Q8<5UGpx6@(gFAk(luPVUjjM1wFr{>@x)%fH~Fv=sKV4_Ne;6Dcmg_5y%U7& zz?8VCd|pS-wl=CV6Um?dv8`hs+*~o8?GHBOcsFE7B>d`0@Na)3U1*4+aYbctn|Uke z>5V2gGC!0c=0>^is9SlQ^}%ZiK1i4QTbFaEWuV=Im~9b ziJ9wwo@ME!U@b~F7UvWbvgOR5?De?qGuAfRax04RJzJ$)UT7mcF*3?&^XXC0uM}$` znJAnYYK`wuR0xIo7e0>m(5VpBo|S&gr{G-cgSdu`<%@k_o{|Uo8I(`JYP6!G(RU>l zZz^cIvOYtNCc~pIh^p+oGFH8P^Ip5C%A}&Bbr3-Z9eEc)&5DlJEoie+Rw5crdf>1c zYBL%%OOq*!!EeF78fO(A>x%P7qF+W20_(@mviLKXo~c=r{XJYOmni$oJSC%0;3F-mS}~! zBgKe)XfoQXG!Y>b#%ip{|DO4180QUIeekF-MK;S?& z`Ojkg&k`q6@!znZaZzDR$AWrAh4njPF}9JG)~0>byD6Xs{eixnHsL~0bJ)db6gP1T zV(>F@EHF_`n84a>6eAYPlb&2bmGz?Le$;j1!>cHfogd&lopmV3YxIicnw>naG3Yo) zeWJ`2G#ZRKkPj>xD<;%f#XO>7&az^PCkz$$dX1q~-oUZOp1>QFAN=vzi}?^Zju}zH zq&hONWja=ByqF|08^=q>-Pr?>qftUkXHgNg+g zd*5z9a?a|XlSj_+dX{YWty+3^N##{5&yMv+@Aj6j?%`YYvBH7p|G|XQ--en*@s`DM zG^Mmu<*bD17>&B(m8nsELTw)JbJ57hPxx;506SXl<6XJGI0T5OIjpa_EIi01Ereqs z-sR5UNC{M670t;?fJWkT-pkH9g`BOD`Lp2^J!psF5Y3|gbw9nPa=j3-DXM%8rE_+Z=)@A8%(?dfg1*&DrGmP^4YfmE)14pQMA0k%{ye{&Hv25td-U^1Q# zmGnXi2RrS7v>XBKu$xAAmtUglPxfgwSxnM~g!`k4ROkEw*fVs_qeMj)t6OOe{R?N1 z?UwlpzS9nUUW&p@Ph)BGFIEQ@&*dne< z#zGgLF|bNi?j`KI(G1i_3f2F>%J0)Xb6%qTQf9$g4bUrwmLVH9?PI*&VzUYX+;VG zv2rTm2i~0{or2xw8C?jpnu?sAY5eV&OGoPYvCfGFn;HE%uC8XJ97gg5*ZG1U`h&-K zL3&R?+JhA{sKl!mB}c&{a8zRR@C6amX7yx`khp1US=(ey6inktm_~>gM*W?nB7VjK zDk?h1p-SafO=e^Uzc6D8msTkwt81tYrAAxCst^qtl-42xB(d9M+ZFT1-yzAetjfy# zfjnMIL>_D;>^zize;lH)%zACSpE4t(7uLKD{8ceyq>X(G_K|l(+Ie97df+^-Du=LbOmFTb=2FkAmla`N11lRx;qKlmGmDV*irsjSp&eVNpZ zE=$BUJnJA_!??pQIXjoih(8pMc(&gwP7wXqFxTh1JVN&i=jU@#Ih2W?M)N)G04prV zUpemPHS{m)zZdWJSVYZ10|_Yu_wqpFEf0IG2UZgap;BA>4+F;=d1iHiIi-PN2HbX@ zEx+?+fswkbw2O2esxZ1F##ArVLK{L0&m_!+=0VZ8Vt7MkKheGp^A!Jvk9bP-6#t~2 z@;$|}oYCloRoe4Ze#U@bEJbQ}CLBO+=Zuu&&?L}|7KUuGg<*x``(FLNK);hoeqXBJ zg;%_n;hkAAoj){R4b;F!E|Bndq)lUmW;#~rmGV1F()p2YBi==Lw4xjU76Zt{kQDJ*ss%r zcg~}=rDFs?mlg<(b&=$)ED)O_e9liw_rzo04Vz;xg~K>}$@Ub}IsMP&r{vDLnMZ-g zHfDkR{zvjtgOD5?7x|$Qx+O;!8qGIbGqUGp@k%k{C7Ul&#{aQy{4w6BLrOQ)x@<05 zqHfS%qH1tVKUsd~iHeBMP(OUZ?U}({Xd7r{oDBZomC8KPYHIsm(CT-zRxj6D{fQqv zuWF>D?drV{Rdp}~5UHw*68|?;?f+j@MO{l_UBhq{94hmzhRU+1&;#g3%bp(YYgu*r z=lXn)B(=Ee2xLLyO%0{-mR~3biyX=@HOVV~v*d3MPwF#=& zOdQ>XYzUy?Oi*-pohwQ`CC6!u(9jcyRgjiU@Qp#gihvaGL=9Xh4)jPQ68{3Q@PAi| z|7*d#%SuJ#_HGO_#$Ps^V zhwt!iU->a~BfdZvXudEs7^~P>T`84J!=H2n{YziqX!O*M{m~t4fd=YgED|w>A9i#> zGNadILi&frP533;gpz_I4>JsJp4O<4_BD%jcqWM8OAg%t3?Rrx8SG@_MniX#R8+#etU1WE@(d6_m5lsIXi ze#FTy+bbKrCQ*NkTdw{D%MNatfyzkDa$@cXUfRhsl3^KZUFLw}mM`$y#}EKI*$x5p zhdlm^0;r`_o~&1+RF>h=)c+z;|D96d{_Mh*{#Pa7 zFl%%~6oF~eKSmdT_m@ZLO8D>6_1`HO6iixrAGEz)UA%Sx>;FA1tSa-TnjT{vNa*KT z(IX)vumK}#RSoVs3wF7|J?N2tqlezAF!VOgTeZd)JW;ukgQO*;NQ89&mOg#85BkK7 zdUm-<`(chq_-`_V*06Xvh_D+Nw5tsVrf%`v zUsocI=T0CT%yN?UfrAuQ`@jJJ+cewlgSS0~EQcKS2P+9^FmpD68?^PIOC7Hh&OPkmgwtUv%uE{Me#n9Sc&53Zri? zxUi_O&gg=qqQbhj7o1({eGBD+e@E^c>-F4@lS|YLmof9AoKQDq)e(I7BqtoPmw5 zo@>iEJgjM`kt%>wFWuucW>)o7gus^E;ExWVs&eem_RO9MhCyFa9LXyP7gu0`19j6F zUFFB>h8dgSf8qQ1=&FpsI@H-;8+h)205l>3M#2%{2^HbSxaf?)T0}U};I8^_Q;L=I z{l;}@5@6=wKXHB2^l^ymPu=CYe<&Wj?Kk^^A9xRAmf{$O(Bb9CoJ&kYack5#P1j>! z?h=wdJa?N&M;IRlND^OW}l@5)H4 zI$9%}#;4AP%khPi5h|OLaDtDpU7QlQJjo|`YGqCB_Ef{?_PwOxhhE6|JHaxLWXDQ zsBtPPusA;oG=Fd}f%EXl;mTd+SUicH!6>&inPmQO;+5(nbXecR^GV!8a;`UJe`2W( zC$m3wJkvjcR4Kn4W`}_onMAwlH?J}AH*fG0T^9mh)bVmNHstXmRQ zNv`IQ%nPw0|E+k0yqAtY<`V;1R(tZVjg-|0;VPZk)KXUCrb8#rM^blLnay!xEM#L( zREgm!U1LpCDLX{*9mfz<#GtV2#&l*yVojMs{!bjQA=U5(Yj?bLe!>5V{K{dBYmwi# zPeFchAX>?9#DG63zq;)pKMuxMlV1g%%o$izu>Eqx~*#Rrx9A`1^Xb=pu!+6RU!DlK2Q1O z=%C1?r%Zq5bJhIybiF!NRkm_dn(ldcgRg20{k7TOA$$7&o*7km!rF_Z*6<-m6*R)} z0Qq}MHVN%y?tihh&}jROR^2rrwa8y_=De>-+_9+aci_} z(nrxMsxh=CV^7|U;D=0i& zaUPb#eT?l=qkH{NjPagC70{}?#i9I{C$KmQ-60Bedjee+$|^k7s7w8R zs!^B166E@TD#aQ!u_uv))unHBLk+DrPM%6DcQYz?d`1z}`rl$-KgjQ+*K0VH8cLc6 z-8gHWXm+PP=8xG_Y#DCN$0t$Q;FeBRsv1|G?k*c|)rQRAKEXfknLP^KOT9IO!}B;B z45vw~Xme$snIn_>v9IU3|0rbP@Z*PNqMtWHQt6Ae0ey%* z{>o@{)JA!VA7PY|s(a%Rc;l7qfgG9UrQ~W00z-4A| zYk0cCyU9~>FGLFa{mDJ&lT%^zh%(_|)SCZL3}1`zT6sH5^Y+oTf0DQGF)Y`yAYBEx z`9USF>8F6KCa8>+;4do7Wocexund_Ol|6!V*-1+U2+gdy3o^ z2z^%ShdHIit5xRZ_@g_qFE_{gSb5(G`(%#b_tVrnTaFOEBdXaOLHvGPz4KEZ9(Dg0 zPc<5qAO2mVQGxwmWp9P3*|;DC7VXe@tPSo1Mjgj~+HpDmxkxQu`5Tpc+JT)ctl(mO zl8^cozf~WV&dVxzWFc0v!N@8df!|=*sX)%Zal=F*(as z%sH7M>~6ybZbZV~DIDgDg#a9jvbQ)dub_i%EdOs ze4HOT3{R;$^09uMNALMD=!$Jc_@mkt<4!CfekZ92$+X{ec;XeZ{DOUQ9MBhAVzfdI z5SrP2sA`wcQ^)cQ?m)`Xo(&!`rHuF+Vj4B<*s&x1Wr(4WO)aCuF_J@Zfumi z)RKb;r5>A7Pxwv5h!9F<3VlWwh#1*g)XKIe?7*9d+b=N8O8*cZmm;}h7VRFU=r)=6 z4rARO}sT+4oW@DtSq0(Pj{4Gl~xVs)La5pa2C=z7 z7+qT%Yd**})lhaK`Y^SruRdRK8>w}j&rD8psAqX1B#H~Ha9&piT(McnAKc~-er&F~ zjT@)35-`SHRUz8R1j(TP>2uD;`poVZVKpV#&+^J~og$GeoOm&JYYB##OAE00hr>9* zxXLD6-Od-Yej|F`B5!YEAZ;9@7Bpf=3YK>!U`ex4m>{oM|H;(}vN31Jzq>*m$3y;s zwdwGkT}!FS4}_49)&KZ_8iaynL8hC#!!^tTos>kDRWkK8MYMpblOFyjO3Ni=j*m^k zvC+=^bG)H$yom*-$T%x+b-Spy;GN=rDcR#W9-;}XO;O~DeY3K!T#1sx=wh=owY{x!)KYUAc>8=;gBPD1=(e zwmBnJgh<}d71$;Oa(Y2Lib7woJmYP&P^jfQ%@{1xw4K=)!>dXw+v)X#moI}#>*aLDb$C{h zgg8Xz?$6mXK^>>o$^@l2sR+OR_B+kHFlY~9&Qb>!!9rtG*gScG|F|Q+RrnhWdRsxX zK7~T7I^6?@@t#5H928L8mxFJ9th6Y?FYos_Jh7+hCqo)3Oov9rWLzWmz58hr*O+%@ zDtlPy;|W|ag*qlEl9-SifBitn0|GYI#7TD>TE5*J-jbDBFB=DKmK;?|ta4(W_|BAK zIq^%Iuem@oiN(;xilx-mWELatb_lX`GkYg`9EwSbmQ0dGc(_^u5$^V377F9He)490 zR9)@}CW%}h(`YJ_3*lf@2&S58!pq3I5i^8`G*F#zFhn`_J{KdHJ_;Mn_EoWj zp!_C2u!2S4QQ>;z<_~f)+~R_gR`SyePmS0X;KqD^AephwY*b9Ktfh1`dAjwrM2gV8 zpc70co{Y(Xp*H0ML;mtOu%JZ4Qwu!O{$SgEev|OUGPbV1F%CsFz~}-mRSQ-Z2}NKP z394>{iA5lR^(UJ$HDddf=(f1rJU)Od>64^1D^`mfxdcZTgmO`d1{yJS%rBe$d9AaQ zD(sV;z>`L(iOr+@xg;WIfAphaLYYsDZ*QcsLK z(G9Fw58)+RRn4|C*9D-tErms`v6gPC5irf=Sh$H(PpYHTdKz8sH!W7H5L9jS;jC0& z=nPlw^JIdN=AyshRBlJn^^fYQRkxW4XPIHI#SXzY zyL*-X@-y+7%x5#UK=j@!zWJ8^wlI@Ce?fn>46MSSK`KMGwTYlHMc_gIryYjG|0Djn zCWKYjtNEW+jsO0Ne}1mXze-#i|4siI|7^EK2cjjvVrkHQIMCb|N`MZiCX}6==6nZj40_enWj`w~CF56@$sNTA({o-J(U*0v64xkZSio#geYXl3%37vdL`UPf3Jd z2<_I0(%Lnmk=eY-Uyz8dNy-OV+7Uj85$jvgRXJR&tV@xdd2R7BI%_BQFZN(Arh1i+ zRP`=@+`h@AlUgVaN=DtM?Az&mm3_;N*tbNAO$&$JK?;d#N(1lqFOErP;eXM-?dCe> zzh>ViG;!FW%D!}^4oZ10SLVWq9e*#3-35KfuWhjCeh7ax>>d-J+U|LZPZLS$Bf)tG zh!Hz(xh`R@511}x8}X)2x6FgsCuPzT}IEJFWtrA+F|L^>jshyJdmVvd_u zO(rk~+If){ZW*@L|GozN32~t7tX6A69JfqW;yAaL5(mCn;)oYwEh(N#9I*}lf-zv< zn)?llxrw`)i|rP`lblaEX%)~u1WqWft%>hNpP-u7PntrWcbFGvD8-l0C((Kkxjv>v zA`LB#E-Qbj{3=5mpX*_5Gww%Rkh z4E;iC&`P0EX{wlX)bBkPsE%b3zaf>1!#!21H)>vivUC~uTKv~yj1N~YZ-;&V{r;oc zeyxX!v;rHk_f1yzy=zaU>RA!{9!KHXHUCuh{mgoQUaAo#p?*~BKNeG(wy9Opj4*rB z{$mYO{&XSxk0Y)mZ`!^qMX|8K9u@uf`j0FzzwSTgLM%1=kNZ#2e|(ms&d?2|^|tq2 zYtWa_L4Mox|oKp3dyV4e`Fmwb^j54M|L7l z+JD?4xY`8&mHy*Qkia_GjX*|hJuo91t?6EPS5yCoz31Y|c`9Y!OM>H;x?}u|p3fMwv}d<6x0XEKGZOYw$$-Mm2z1_r$;fwXu*#}1^d zL~dCxOf;7WmfA$0j`QzVF#D!NIU@4)c0>L~AqFH>h>TxK8a+lhZS4ZEh)Jy2n2E5X z##v2X!{GJKw`Dy0hY1pNY$<})si4nP&^HWPrh>Mppbrrw{5_$9m#g6aVa%B-=xG)7 z5`zj<&}h5RVrvL zgXXB9MJnhu1i`;!7`IcEn+LH1skF9nZ}XRm+Q+!j|2vMO%xfEX)?u9AI-&-L7g7hN z9Z*$faZ(Xq4gHHT^>oYtsD4In-s@GeL{=SFgX4C-jcL<|46kOdd{j)N z%Vn#fZtl(VhJa({R^sqFqe;d%HpN^@idcpGgy|l04p}0u<0{PWe#EAX+>6Qq_p#qrY`J4-n3c9L=N8S(< z!km^N0h>KCMK91K0E>u5uSi}LsxOGE6mdHwKKK&B1^(iXiYOyP9Q1C{6ag4mq7%{>2mvaSm2vz7O~9^~#$Ekb zQaL?Qn)P9vcEwmAj}?EE{I=iZZ@+@5yXn)SeD`k=53c*EcIa{ zA5#x8ISPK0c{@VU81QjF9&2q3YMliAXe$z;RN`2U@F92<;7KPzH(Hy&VMt~E^CHZD zqH8psjtu^E`UQ0RfQ)KOhz8PMgv(5TnNdvPtM>R0;iP(IB{bcjNm-1e#(KaEUu4xI5CQh))14*_8s---ou88qy*OHIhrIAm0;eurG~)6Db?C0 za;x}TQY(Kcgi5Z3zY7$lQ8oBWF&nE-UyV|%NBB!Nf7maqZ`Pk|{spw06tn2pbtv0JmTdyd7S(1X7XqNT)X9$AOfqjN z?S55$JnEF*5S9SJC*t4{9vc~~;|&gv!*NXU*7h9z6(|U{_Q=R80dwP~8l*~P2;WhY zR#iS9(XIy87Lmrn|Hs_BfLB#rd*2Bp5D?r!K%!y|8kKkjwUvm}L_v3SN733A1uOMJ zu_~pq1608Vk^tMdZO$oeJ=LD3t*7cKJ;m08RILpcxu~xOwSv+rXsv4-s%TpcpyvDi z$DC_ll5nwopYQv49#u6eIDhN<;=}hvz{cYU}+`PzLk_wL21fd?9e*V~YgL0{FX^g6Y4HUMP zh3C-PtN=muo%6@lQgYyveU8gB6)qS%PyP#w^-yj@f+pZVqk@JTmUXtz$ZapU#I-fD zYg?E1*jB{ikM8-FrlDUcw9SFHjIbu0C{lYg9t@#9&DOb)S{<|XmEf8k`(mKM&(`-$ zBo;Q3dNYj5G5W2cQc$bd4`>5w9IqfD1g0i%R75vXTp5wbi{L@N4JQ`)^={70tgO(H zE;MUQJ&5cRrf+tq-e));>AJGO>AzYvL;rPDy3A2+(qExslR!|lMm|07(632v7Hx7F z_n1jupP#9oF$o?otFz+x@^mGn22zagHBAqiTkR=Yohi420G?(Qjp*yQj$-#+G2dq* z4JT|Bj#gKbXb5HRP!oTabI9h}g0<=dQ(vYm`dW+HPW1Q5bIvW&4T*EkO&=JM^A&xd zBe^W$f1m7mw22=?bI9UXU2kptuVMTd=1@KgOANT>;3K$C<8N4*snDdkQpoB6SZcXL znn@r_Euqqg<>@uh=TA@ApIGfl(%b%m;4f=??oLlJPg3HdsWW;a9y%-f+3DzKhNBrit95-!^X;Syu@j zlxz-a_j7|0e=^Rrdy?aUA&0~S4f?oOulZMCU+j_DR~fYb(Y{*iUqQnSWp!#YS-7SX zmKF;7Ng)RfDrz0`v>_cM5SObw(5Xu@l3MNhxHnnC++iD76k)5O&SPIe5UQvZ+jiU^ z=bxEpp-?zWs}nCfhBz@8e7zWyMUc;8$6lC zIGc0cJN@7pcto?7Frfa8kqhitTN=Lt!IQkXc$^N%NgMRG_-EOhx;oxntgweb3 zA3c=C|CDjGSVo7>I2zIppD(e`oqZ&}C=R7Hjux&l%88Oi_M#n4ebG*K3NtdBImw^S zx6`5$%D1C8`bRS8lS`uRq{woJ1DG` zsxUQ#hc)7ql_Kdjt3O}ACq@QUaYTk19#mDT8xpQnjdF@r?&q3UMO}I64Xr&BV`^qL z;dw^t^sCneQkVV5wv_BN@JF6GGB0>O58o;6l{DM@FSWl;`$r!cIBVsZ#x_b-201+N zE1w)|55`2-)5l(F0Zunn(-0GaT;yJV&(m7I8fpoP*jw=O`P&gx_c5 zDD^=Pm~jXa{rdd4Z#(+cQk3YoLx4lSc7*_KaS;M5(fg!NSeN{Eo8;0?=_NaZqyC~+ zZ)UII#Ns7O%U-aqlMzI2|K_@JM>Q_w^qOO%i6cM5UH!P{T4c)-5;5>lev`C4Ic^{~ zLG(4M=}PjjLz@DK>!a{qT{dh&;sugZ9aWQfu{!eT+kLA(SW{XP8UK27dtdxwWG)6% z4L(8BThXM`meX#r^i3A@PX`WqwsX?_OVx=DSpKpNtjF5hdWQ}2Qdeu!X&mc~y*s-^ zAys~%xvldhZ8o0>@wh3f+yL5d?i2ojzZS!5;eX$VCaqkb(WKMt(;mqOE2VLI#QU_T z;pDKv2vebYOC`4?a^^oyL*l} zi{gLphPoUJd{x1S3w8vagti%}EGx4sylN`5M7(M`SBdb6cJ<3P{1(sBds`W$yjw1M zylj${BSgrqxHQ-fveEDb|Nh>?%Eb_Acm>~P)5PKhyYr45-x^umpR)L`7VQ4;ugA@f zG@fIi3{AeOEyrz<#$}ZDr(75DDpGu2afF=>8fxxKbwASGkJ7!Z3!y})tbBYn8DMKh z8n`b@?fJtlb0OtM@mt<3eJ5{LCD)*sV_3xtt=m4TR(x0fPwOIQtywNh^|PII@Ql(t zRrMzeXG}pCp?MVuMjS1P9+r`7Q)-Tt3>!gCNG@o7dXm+U9TJgmk>d^S4fQxsoMPp; zjvu)NYXd%B<1yR#OPjE=eX!Y;S?iGTwps%EHa z!>hObBhq+;0W&oA7Y@bJm>i_vO@lQC+klrzS)_>=xO>~6WXup8>%As|-f4dAwCm%3 zne<^7T=Cs^{?*C%o>Y38vB`JeXZAn&y5WgXk}w{r;Z3pI1I81!C~VVE;sZzMr`Tn1 z#EbC1rlD&u=NOWvflu0HCRPUu<_n!KH8&7wEk>lWE_V(Nb@#I>^62)WTXZALiB0n+=ta3BsdQO!6b!MEv~Gz+t#PdWoNXt;7&XXKHkWh0ICJX|)) zu8)_E;W{lbq)gTd3}~L5>0V-lQX;WV$G6ewTvZ3DVa_6qKvoCd$rpB3FsF_O z)9C;89S21gAEl8b(-RZ}jyt5+h7 z_3zunxy?CYzt~R*`-vhi?wSG3rdx|(WIs;-XH4Mz>+g z`m(I{uHSomH_T9b(^3O{d$+pwHq6c@%LAbJbFsrl8`C)2m{O8Ex9}1hl07rxQU=VOu#;NBUzY!%X^Zn8q*;#%YK1LPL$<6AiPGs8 zJEfO)(G}`DhDI7bM+>6wLnDpLxs|%sZc*deCP0sqjf9N@it&vA_t|q~XsZy84d8 z;>y;*>Xp9VveqQ#LthdcTW^nIw<&RIMRRmxex5x;o2l*dL6deDF)S2CE+wy2oo(HtiN> z?QN#k$T&&Ymqzte>D0qJdR_+1cGEpozx^mw(j72`PkPN6W%R+Zr$grS6MKs+UDbYA zu>j!jX~l%|D7FQuwX~jD0G?Md*-g{ z*EXJy_qJl?l84Lg0&-FEN-Iy~n_UTUv@1(+T(uUl!Q&<1iY1reab7LyFYv!iK$X8i z#MGj1;9d{d)j2sNpYAD;7Fbi=Dz7#pD?BVHeQF#3urobnjH*$&-~%^NxW8yEVDTI$X>Zr(b4g>7!H$HOc;(PKQHFCOFNu@eQsH_N@iOm?ba1V<9ZL76{YiNSt~>QXJuFtO?Ekr0sN2Q|!is|y z$DJwyJE8qKUf9_b+%y2VDWzX8MeNZL_QUyjsW0ng>Xg)+E24ud(Ui zzIxT`1s5l-8(ef@^6bI&<8EKv2yOSdI5B*%A{wFTSArwf(bvQ)TGV>n+}Cv4`U;gS zwHZ8q32q3$u?KPk=|Q>m)op9i6dvV&YZmGE7=zzwLOjYsZo_k4%=leTEK%CGF71bA zt@fFj1!Y`thG)4{i5TzA{m1#$%C z_c_K4C$_9|{&PrGpKB7?=i(vuJrLXXP(=#`QX8|v7kzx4oljW5W2Ddk?dcDzgrfxC z7(}o!?)qIgVBVnuomV}FsJ>nK@fuk9F1#)ag^~JQz2_XF-?d~%I;ed_H1fnj&FzQt zq=16~Bfme0F|FTK$lGfVYKOBQq`i1cTeS*U8m(VDk}0++c;>W+JL`AC8qyEzcMX_R z&4>Nw9Kqkdu5u!Qb`{kYMphiueq`j4gYd!C@9JM$K(lJ&AXlizHtKf`tQ~;m-5blh zmH5g6jFH}vFK?7djGT$w(>elSlhgi?IXaztP^6*W^?peFu#`|N{>Y1=@frL*l;d5I zWs<5TbA}=2NI!{uK-A^WK1Ofi2e*G+?Or@w9EpPRomjQevdm!qF&$U9e8SG3(;!$ci& zXjR?reo(hW+lxn{)_E8d872{n`c#MUWxAM-iKA#s6@H{sxQpT;+S1o@$Tg+BJK=> z@*gNI68pK1zc@Ldmm=mT#wwnJl_v{-W%X=|C7ungQ&p^pS4s}3-7a;ZS79MeqtxmcX>*m@xDZW^ z?rD)->+7vfxw>Dwf*0&)HH0m596#x=;Cc(smtJE|J@I3BdZosYL&~w23BP|ec)d^~;NLfL z8io_q%2NgAIf@vZJ60%4uwhOf`MQiY`3{}6{QvC_sf z2#}?QaCL?_MN8;nqs5L~3b^?lx>eOc`zS{3j&n3>ndQh9UId>Nu#8<;xoH!&o5H!H z&RtiK*T4NpjZ0KLQT?JUeJoL<+6Bx`yE?3n-l|klOn{fvQI)JFE#qC^!oQ?`sR}kV z3@I7ECtUIBh^$zZ<`eQ-$&Tic%NHDqfp)N!Zg@>FLYkXm@FEZE={K8KC`i6&?mw!(kl1 zWXP!YuZF$5L=-(YY(mJKttLj(#DQbdYRKx>jGDv?ggvJE(>ppfFtS*O4v2pasJ%9) z<(b(ne{?o2Kho>dwM-3JEl*2*AAWCbHp-`y)7bRv#=fJ*F8q{@QA1W^x1`ElV@KCs zm($SH?1qk0L)-H|U9YGitD&P)t?Wt_{-$)nAN&_?>ZifuV`*v5r)-HDvRayw`VuYC zP|@roCM2)?fIPZGXAkoECwctsNaI%wtzRh+Z8A5eC_L7|AOamD82*-b;JtOkslZk0 zagb;x){YuQ=D5NMi9b}ezFh!scs`aK_x6tCOyUlURlGIptKt>Pysd3Wmd^O`v($gu zR_5RXrCw`aDU@$2JD(;N(?kdd4fH9fPR7ePR_4tJqW@y(nw4dviozDpUoxb${pucP{%aM~{zGd2*JeJ_s5I{t;*?jQV7rw;@N2*Q+o*d=@K)Q{ZsnE z7N;M42$MxWFnNl7*P_0lAJ`RnRFuzeR>W8GJTG3Y?wS#a%-F^g$&Q_Nz1Iakm}3K% zhS`DWT(1SqgvdzZtGLpNveBx!eM&kOKQyyi^m@Ts!2u$|Z72#IPYx*|HI>DMZVXmi z47d_=nwd;>l37!|Q5AkB?W^LY`BzJonka%3%r#9>Tnt0-Yrv&z$UYgX*feXYR7FDA z!$>)02leq1$->$*8TC;gYt*Sx2{q9zT*=fVc@w19;V}4&sMZBpp#SNkJs&yZw-479 zl(25>f@94RRae%;K8-Ox>Aix;kOJ<}{D^YkpI(q>c$i-ZN; ztgyYT-m|||K&;y1Cbj@!TP`ZD+Nz^1(0GbNlg7wn3YHhl;H8?MiK(JNnoIt5_K#|W zQU&~x^A6J66g>IcUs|f=O~Ia(K5`YNpW{^x7A$o$tg8bxwE=Mu&LPbozklEk6k_I& zkfHchQ>2(bPN53-4Y+**(r88B(}+)Njk7$KyNy6pU&m|NMy*_>4z_R|{rrT{8z*3j zU5b5*`X~Do|BnT05c6C3+!>(lj@=r&xO~G*9|*}eMf$npF*&v{j#9!|@-fJKC_aW= z7X}W5wtm{+Q7n|2+VrtwpnI_4^tVs?i7T=g2nwT-G$4tz8RRu9Z zKRwn3xiL-ViLVtL?oG_UTHLh%rquw=n3z-3CMMrG6Z21}ITLfPc;EEkt`0%(Ow8$N z6Eksv;bXQMMax~$uCe0&88*ueO5Pak!A`p55!C6Ar8+B^@# zhfiqO8h@hw-?A4jy35euzGg2z1#pkzGc`ifT}V5H;I((v3SjpnwMXY$xpQ%uWQtCnfyvf1$yC8us`He1>fRkPSv zt8JIgr)oFys@jd5shVlq)Lc_0E>X<|PtVf|XoD?BU>~Ob%L?^eSoY)CeL!KYb*R?b z2eiaE^x_FxVszeXHDU@vvT*G6EHSc(2eO>$8wSF$|7GkUJ*+PpLKmzRo|$tF*kIGQ z6nGVBI9*us56K@=`!M%2#j{VjmQ!6AcKU$PJ6 z&DRH}XAuNL{)ldc3#h}8EQ#z4>o{~@^@jubCP@=&5} z6j$g=Z`~4i7uu);f!XwN&?AmM1ev;<-sq%O(i@#ryKQt*lRH%dO&SA`G!>0VigFEB z4b>0NUHoLIu5U$qYU7LqDskHabY6n(9f(r1ew6CXB>%&94@~EWdQ{0(I@B1h)fF3S zFVq~BJQLH}V%Ii-)5>k|`qB4yP9uId(s(P3P|&KRC?%Bf_660p@H|F}l32y_k?&lI zSWZm>-;O!ZlHC;1BfBXHZ$@&HO{X0c)o;}%`pEO|xB1_yA)8K%{qK-YyHtFqAIE$B z-iXI-JVQD?25MQ*dL-jJ`8`Ld8f~G&=4%e2YQ!>x`oo*jger(Vp$fRJgerhMp{lR! zF)L1;%4wA}-G`<3b4fRy zp*b}fdJm0(9Cl14|Y$dhp<7F*|?Ql^!wEwp_cYmb5u7;XZmV(P8hJnp^Fs=|A2yuhY8rG*Gf%@sT|P{4<~Y@NFu%jx#YCG*O@UAZJ) zHb1Cl0|QYfhp3Teb&hUmstcuAohl4^ z1G{?V5@ukPp@1}gpBDrgOb6Dy+M!~lh9X8mC`v8VcT_4~CD2CMHK9@H+@z4Q+Kap# ztm93npJ(Yu2QBwV$YF}32q}( z0@%uok8Qo~K0eocjf@Ou9dGCgpR zcTt}2A`-7&tK0XMsa9+s0BPk8i<9#@T$ebrgFUwWoqd9RA8AO?jJV=*N{0Rtogj_< zlX}s#kMx(NY|Sl^Q(##44^p>62PQ-%3hYK=z-}Z0>}Dl5;;BNSs!&n=ZuY;M{crV8 z?^T1|YlQT>#sAhw>9?zR#rU$@6?wIsw^(B1%jWCXL;Mn^)uu?VRaeeRi8ftX5^cH_ zM(ni0&%s{@{}!$Aos_Ig*IAO;jI1Ab(eVx>LX=KU5E@iKSxUx*k1SwIupK4PWUEPO8EXwTB0fmzBQ7K*B+?U z*Hi|jYo;h;!CG;`HP!X2D)BBMi1Q+IBp}t0O+efH?~s68 z#UTOhV9dxbe zr!bo6+g=!ar$wYg(k|ylH0mkJP|s`EsH{KIjGgZZyB0`*KqSCG~Cj0Jj!;oWnJa8;8yxCwy-eNH)O38o#I`dr(`NT;5@ZhWs^wn0G8v>HWzM50=EMic8qoAw1*XyI*Ie;}_x z!<(Q(UQ_}ZEVIzVPOZZ?S}97XqdWsCwQgQn(YoMQbV{SdbgvS zISEh3rqO7WF&Bn2SM~-Vc_S6#NAHZw!Ruo8@Xn_i)t6+HFo|bp5lFy7k!763OG?zs zvoMeoj>Jj-=Ic%nwx~tlmXUc=A>gF;lGJv~Lo-Qu#6llZBV5VY*_E)r*MvclT_kr?{k3ub86eotvV2 z%^^hWaxT!l(C8y5qxl_#8xwRa|KrvNMCTZB+gJyDCsIEXYH}zAp1ai$d1d70W&q!z zqc6H`jl!y<|JcQBd2t>C5q%(2cyMkPJ2>JGfs&1xjz zl%CzvB9Jku3E>iyi{CpQqQk}!;gH$5J zDaN``tcY}Yjji*4PMyPPf59G|A3o<$g^ndZ`|SVBQ`LuluzG6bd#l?Ii#8ShW^r9! zaOjwaI`siXenFAMYAx7I1&ht@`)?1b-!p1nQT?8Z$ba$~D`40!g&mE2y7kP5ps&xy z)1Q^|S#}p!f*WW>IH?a0E)*^>ztO*gd*)_iJhiL~qjdPywomYj)8QsC1%4}40|cv? znH>1aX=nOufXQ)mzrLe0J~oO&OgLrvc~fMe0=HCpl=AE(t2(t9^5K^1RUPEoVWm=( zn!lPYVOv?DJ;_ga8W_DX@tlZC4c3!vOutwuQmp`$ur1mF-YpJ z&TngH@^fb^k*xv-yms`d{oI1HZkTb?4bIG*w&2!+8P|*cBaMqdzbuAhZTr6rvEyu& z&e=zN+pqSr>PK&`y(xafO*hPlRUA@#c-^f<*VhiQkFHnQ7N$=J69Js^fQc#or_K^?a($65_6s z(ynT9Q|JSlmYO1d+re+9@X#UJ9zbXXE0=Et7yJ>Pjo?-7QqR?z%n*GnS*MR;aBx+k zR@I1|31$ntf?m8?O~#VfAfE1Xu(Mg9CNXa?!mEtU0+)UnZJhkaHHni3>sWx@w2UJl zmUugO>w7}^hi=cnT&iKufFT2qpet_(vU|3;$u?LG2Y9U16>6){%LfjTv?*UKH&_%<>`=Rg!1}7uK{sTFE<+ zgL=XuQ=IAU-1DP9Nae$`vT{L8R1puoK2;Yb9XI$-2V_2Nuk03+ll`?CY^7_}^=m4L zXbe}z9oa@*oD_PZ#JgfVR1^cKR|J!%&E21Crt>!c!;GPw{)ZVud4fqW@=&d9;VSS% z3JTDvSadoED^c(L!rPu%IX} zbvlq@Rot*uYX#+AIFd(d;=R;2`L&l}R99CDbez>Si8p#42*1;c0a3fco<3nfdTT(6 z=_~gx`BbU@VFNPC|F8k6cE zK}Oouug&y;ei&_f{`^7=nDtlbW)r2dVJ=7?g#n4y7?NMD2XhR_4LJj%m)QgI;2;L% zy3LsZQGswkT2xpA!ldH1nXPG&?|e5L5n{1yJ$f5pr&geY?PX-dG?%C*(A{j;aBG5d zmIueqR9`YaZz}{P-mSuPsD*1p{9%9RyGy<(yvfOz;m(8;RwZAAWyu%2YUJ&?Tk4ZS zC;gB`TVko$O=o2b?<@v67rf+=<0FXt7r>`d#J$`mVpzhx@KmQSVLpe6A~pc{=#5os zi4Ih*AQdH#th|^rM~?X7f7^DzHfrz_#VGTBs}Z5^wvPBN z62L~Qt~Gi~8O<1d8_t+*?%vIqo&JZ-m^@n7T(TLXnWFw{e`yg`WOd^2?emG=#V&kn z)(kmMf6liOjhc=^#&TVgg$G3p2}JMO_y>=@=rCb0fe96}4%qjgU%-W&z@bQlwMDgQ zz_?;Io_hMIaFxW|4ENHlh8yda0te*-{tz!gB zjS*-b3lY);I=DI<3L6rQqjb#?!7g%D^Y|vs<9X7f?NkmwkDtZzo4~r(_BH7Ln$D-C zDZx!lp(5nZHa~~k{Pbg)x(f{~YhLEi#{TAI@}~XI%hZz4_(IQ%CDZYLm2UDi8!nf* z`OoBAV!xfR5kC;B>=e6)dkHfb%6eL7rEmZQPc30Rr)l6l{T9+m=4WAoyV~O5*N4i> z7w>CRt9`UI@42A~EJI^v&}?50t)M&=oMo3xDlUA=vzx7;-w;UC)3yKa(D;|xyrxWC zt?d(Yt3~}COQp@Ms1E+T&%ZUnz}^y^``;|HG#&YLk+t>=m*BZ&dZcaXSO_!Qdyj5a z{;xx1jd?tTiGOo|rCMm)k_5>k8#QcB$vtbI`#Am% zt35Q0f7=Uar{B$NKaY2ZM;hPKhzhn$-V6Z@PJKb1~k13_y|ePc7^nAyK^sVCuEDwZ9L$R|VTzI$?NT z5c%(%y^0O*90!5p$`D1Q_bQ(7KkQX(yhJBW9r^0-EWN?764D!7_U-QJ4TulhGhL&W z<7Q4R&P+hfzim$Vogue2kyccWIOcP^5ec!}S;%_63<29x{ck?!s z+r$n#{yVl&_#dwx_*t4orj|czNTlI6s@oC1EtrY}*IE6xbULhdY#ab~ol@1R$P)^s28n6iDeil@R(;06 z7yWH;^!Kp{X~B+_hO=c}p8G5EU4k$M9gZ=2b4v)4$x>RRfJsj2eT#kXLL# zE)wBJPtvV=ml?pPzLOzfqdX5`x_e>QP=i#xRvlaH>Z^ZO^)b5phxF=ywW+mzdTJ_% zkmTS+w#R$O&2rpz-AK&M0ag>b=VrNkZ^UQ%N49_InSJ?}9(FcAB({a&6=`h{^7t*a zPbz4oT_1NofzT#^a8}xLN4lYpCDI^WP@36vt~#episV$?V<677>#`ibR87T;k$QOp z<(F!;>oOmdSNOgBEdLXmI)b$uAxc0{McFQ>R{duD4OHl1gEi#3AjQ{cz$1}CLTG=e#4r=Ok?%8YIJyW(2*+ye_vn{;Y z8Q$d4%Cz;)12Wn602$gqpHL?AiPbGhVfGtoj`i4b-yU%{BEXzx1D6!HhjmGaFZ1Z`l*A+}BjRKI=TB@)Nx>Xx)rS5!}2%bN$YA5U@VfEVU8#=oGq`S;CcU zfnq^kwZ35RRaaH58$Y;LfA4@|ya_l^A;!DKuB_>Bbt!EunGHDG9!tC%eE$tp^5@C0 z?q{x9fe_wED^BwQgVDB$OMe{mXz-&<%3GE5qZ@3jl*Dj_$Y0OC6}hkVTGfats8`j= zGm6-o-&=J3fc4TlLs`B84%asMBaQ-1KY;p#1%VS>xL%ZJ`(_+iA()RlFq1>jXdGG$ zlLmTQaQa=E(mjJLo~$kf@0^hqWE%Ed`StW2A^Y*4?9tm{1T4-eNQwdMRnqt>cpR_wMywlTNZV- zT3fUUEFz^Ae#<3T%I}({{x#&UCqH-Ot{?NfI{8J;ID|vo;R`j})x~JbV{N3GENt)8 z(T=PRrkuYx_~Da`m+jbb4ebl)5&N*jMDR@PAuF!>r%~qi~Yg>@rlOwrC`k(?f(0MxgRXg z7qn>KcsditU7eu=$7QWYmv~EM)d(W7Bgf z>3Mk_x5_19*_hZjd8sJ4gSRk_uY9ay7TLPEDHsgAayx2|wcr&Wvc7vbMRxj1WT$?3 zPojV(dBouUa`n&D^W?a;A0C_6-k+N%xv^cSkDE)Ioqtu2QzWmQxM1fnc5=6CORfbR zHut%-+P1bOMrZ&4zT>lgs{^>-Nu}eLxYDu27PkS(@Dogy?hXI4PbxYhcl`(m)JbJ( zVt>H%@iW6NH#}d(`Vo*7QRGox!&H5nAVY10d^hzy`{6bN;fd@eY^gwX#m-v}1@Jo! zhiv2vzi9uW;1Bd!vhb}vpdCDl8FC6~@Pk#qu*?j?J1fT?I5ln`c<9sBD&ZQV;zq+k zJ0bGO;nT(^h8ID(>KNgd)UWXn-@2P8gm%0RVP&xBdlX7Bifg!4v5_Sm(l7^mGS-wR zF-?Bm?f0h}GW_3=mCgS}Ct;UE;2r}8<7URO|Ls}*em0`h4#d>DPCo>1-S;q@a54Va*^_`RKMu!P18 zj09fW^|W{_E!y|N*58NC5mt~MmvsgGF+JF*y2@mfwk>!z#Mx*-fdPW4PwvA|-t zy~Vt=1rII~9zAQepb-bL`fr~=7b`u~_G!hY`LhLK3lEJDsZU$PIdyonCc6q(+b;3V zvlfe&xvuz~C6MJd3YhElJef<5xm=Zv0IB+-P2W zRJ4BXq`X?z^~Nia+WN{O;LGD$;;*H^3EQ7oDHnEWySX|uktS^lMs12lqfL`4qfK)s zn%nnGYl~`){v(Zw-Km>9J+Jnqr@328b-s0^;SW&$N^n4nA?D<`+26f}qzM1u*2~@47xkR~%8l<1>);N& zJS;gxllp_dXS(!n;%62;$?M39!Ah~zAns3kp4#KnYv4i0RDiR?jtCYddQ_7f_$Ef{ zIr<8Fk1$2PCi~eX|B&uNFctU5{P%ox+9B{e+kmu1`_QQcm1Nv!FX1pV#Y@GKC(tma+O4_}LNkb88*=2&vbSPpn6>Z=@;ZFl;`E?yionmEx-Hb1mYr7E)G zkhBjp5Gt^U`4$pT zbbYHPsVhAC1J>d)@3bE-@w7Hu578LAk{0gg_?1-sOzC~qWLS7={;9&k;SLKnzYP_y z_kfC{dO`(3q*RKXr9O9*Wg|o-5_CylKKQ7%1RrF$B z`u%s~82gc$JEfXCG)!7a7LM|7A6j=?{^Z(7@FmeU7%yc?j9e2e)=F6VXHP8$WqWD1 z{jOa4lYh0t87F(hl@{z+qP7q*b-E_~)k|-AIgObiGNq)1Yn}~q%aEhb{_1cv;s)&R z%qWNFMGI84X<|_{q0>~jT9g%nFIrrU#(yPJ>x^%dGPMz8n?!%dJtFb-xNk%I5b948 zZ}j^R`r7KgQz%qSQk2s$eF6*v%nM<)6iv)5ir)DA7(5nKbe2_gMiftAv^sG{v7X|` zDDo#4_JODH`?3;$fFawY@vUp?X?q1=CTEn=X^b7BT#f#Md;YI z-yFc&DS3!O9V=tyt+9%AkwrSkx%$SP$jI@hjcR7ivQ)F7GCl7-MJ!k=LTO$T?QG?Y z!`qKnCOvZ4#ow*lT^fHoS`MGhupm^@GnkO8494siu}CG0wneh6`Lk+Y^Cz4y;r#K0f}$tl-Ov1Cy61PYykHPqwP(#{^MyUn0pwe1k4=MIp_27W z^TX$FvQq^2mcPk6K)gvLInyGdN6tvz`1#=^%OsO5I)8x;Fp@753srRA^5w`9<;%%{>F38pCtt?C>*j}RHH68x?qM_eB0V@rmH|_!s~zJNsw~!R!aWQU>0HhF zx>qfSqg3tb7jNfpY5Yyor}m^ZNL0(Rz3EeBrcaT#c4Pc}X(E*?$AOnv;tiH@r2p)> zNDy^8?eUvg5M?+u>^U2*SYn$gjW46h|7_aGyeCelLIfER@imF3g0ElY6nR*`9hByj z%F$cJ<+H0nW0d_-@xtxpkrik3s;v8j?(x^Uw@G_RK72XKVZ6~1n_|g={Al?L(wy1Z z_*DAE%l0Dik}CHru97P3Q&|(d0Z^(RWKS`9ssUniFrdvwi>PmQ@SF}^<@7IVbpbOQ;7ft%Ym%Ar)7f9jqa zwPLn0_%7F;XYXMb>}~eqpG{5P-~7cnk@jEzq(6hn6gDmlNV=jT+Er6lzqMhale5ok z4qHJ`XICbYT_Iww=r>19L%-QGIkNb3%wX=0jx;Vnh$?8RH`^!3rItK0Xg)UYw-SKC zLx1|Y!VX5+Sg0b+P`mn;H5>RHJW#HeL&~&&sHpvvO!=@}_?<7mWmr~uEfq#QnKFK< zP1LAubJ(_MjAqtK>y`E-*JYhuFV`Bhlc!oDbZkYz8R%K+JHtLQ)^ypZSksksOC~5z z7!K|;OXB5V*zQlfZseUxK9|eOT(8;2F4zVu=e;${|a0VY+?61g&aM`H!zHCI9CyJg-!Z3GvDgj}wdQ z%bsA?_X>k=X|Ww;&lIj$vYHJE%z_&?j!_E8`f(er^m%fR3HFNd6utx^_%;uViM*j3kL!bNQ)-#w93%Wj(A)A(V>|Gn@i*ZY|)_5 zUzYm)2sMR+!u(=fVlqmxG+ranyaslo>80+$8M&;16p!zL6k8UDq zaH4*U@g?u(YP_>&TGamZ!C!?I4}P#KE#6p`CAZ)G>OLv)94l*-D9F1~qPozP64m99 z64h%*iCWXHpPHsbRTg~rt^fOU2>&tu*w}~#9Sk~1D9)u+@y}_Tel633vm@pg;G+4Q zW1N@22DQRhIp1o_&z(90obs5r*wryVHXC{xW?`q{KE0{$EQ~CCkQPnra@K*3ztkYR zX$^1MxDg>dz!jDcak9ATpS5yT^XZj@ZVDQrav~0Z_ss!t`qjcG`RkdMn}cKT?>f*6 zkIowCK2yDdmerGLZ6UP{Qlh4?pDqdomjey})*A-ZkE^hXCWs#i?3%=oL3$DLBXv?# zfFEFx^8>gHBt8+9dTfcPz;-*E5DRbnN}3K-UC{KV=)g-D3Wewm0Wy8k0IcKy_Pof# z)8x#lU(fEC&|a>8t1z0sCtAOXXPdo8EqB;8*0&eh=%(GMXiNWd_i=eo6az(CTO$7- z89klHt_O8VaAbI1JkofmBcy_P0~UpKe~3zfdZlgBpN zGpY!}n~w0NNaZ096$!~>C--`$LeQ9zN1oxMtA8kmJceAAO&)#zt1Ee2Tbe~4Z`opf zu9QDe@;KZoGV<64cwNauo$N{;>WU{1_1Kd~fsx0QDQWUhb-_(<`sUhow`kU;j}yeH1wQ;Mrd3qX7DF_}$|2L_r_t+yQ+=03(Y&j=1cA>EpKe&|tuc z3|SW@6l}Kf>q4T+gv)f6Lw?In+C|CAv>V)a=>av{yk@035!AxjeRp;TBl)pXtcCd# zOx7F6XLbh%^P^`ac*xm3E5WHF{t=e?C3;g4#+* zrEz2JIMTp(#wxboGNZcwqx@SYGco3A$M_dMi6y^Eyv6i;uvzH!ayVGiqE1eLcJEw^0eH(uJB5b4#(UcTp?zdcuKbib8G!K_yCvs6x1>* z7&6xNA60J(Ze+rKM{03tRO$$P_nGc?yOaGMIREgujD&($gbVz`&AOue+ZE+^xjnzv zn5uaGO8f01NWJ~;EcdB~l$pje>Qo35eiB*|bk&swpv_H1Lj2t%#GorQmA3jlw7q}g zSU`(DG_`c<@GKVa=PR6qFsLvL1WhJR(LO>FietMiv{Su=(9YRmR?%59A12i#$_8sc zZ4G!ZAMsRXe?b}2ffXX>CB{2!$u#Sz%nW&{E7wgDuy4pwJSmv-nkKzNg=B*R%A?8y z=Y7QZxSkUah6pCcl2_xb`eXHnTdP;?Ij5@rjr{8Tt+C_{owm~(UopFSu>;?(PW+$h z#MbJ>N250qMpe`J*GPj70csxo0r_R_;jSj}R(1K`iRY^R@Q>B2K02p*#NTW3|5#oA z5A^rX@Uo_S2f>T}WzC2kyqqxluNb<@pG|E)qmHV&v&-g38j{?K_M>Fv^2xqxm&D30 zSb36ADXTvf6rHW9*}wzJl7GZb#bEI$W%8r^Q`p`Z-dYQEm?I7jkZKZZwH5sWHR{{D z`>(7KH+~RlycXcJ_51>&X4t^vLKLvMkR(UPm^e6O*2l_&nu>N(UJEZb{%OobiSffn zrGA5n+rtN}5V#Ni6sbQt>jR8AY7>7>eM`%$^R4q+UC>-mG`2?%+(hwBn=J$$@Byy# zb>vTfCz4bh95-?H=~Z=|{o((MwzP zn?<$ALZum$rfN^%TpRQTj@4#Ymq*8QEO9BkjK-^$@Y-%Pcw$;JiRQ~NEf$eAYp3R} zB{wHAtZ5P~?QgTLgG+q=a&ZZkT$#A91*7hDEKR)1v9#o{ES5It zi;krkxL8orrAi8BE#J`WYF4^6SL}0`TPv^Brq;izZ+s8+cfe_^e_54dEe}pjV!&y7 zirsCzZ7#emp9QhgSP(NqTwM;6z}fBj#T+`7EL`*j!A;r=ZHxPlR~&b9?Rs=N_&koY z;l$0re$i-&WZfiVWJERFUBx8rncqUG6uQb^kegT`5tc;2iDA}vUzyv2s zofgx%f%meX(Odg*8(C3YxBIF{!~0C*y4@$$UTBPh_&N@q=TS8IEpuYH)%5zehyggG zZ!~$4@ohICwmS6;Rax~bgb(qW_JN+|L>g>$f`l;r>c-I0hm=UKP=#Fxe!)So#;h#7 zAIH+fkYk-F2IP=<3ml7>Jx~!V-$16L$RY(@Y7nav<428ZFYlo!{=^NerbgqWFjB$X@B=1qJG)tsx7~Qk1A^9P3v#g($#KPJ!$OYaMTUj!xS$&gp)RqI>_Fu!Na`#`M2W2T=PQjYKQ8xN4EcHtmz+&VL9cRi^-^ zJ8S;cJ?9@#hxgk7UQ&QASMaf=Qj!l>lN;}Rl&}2PKloF+DW{p)oi(w|D84nSsA2Yl|ls%%`*qy zdX2yGml|<@2?^MKSz0A`vG?g96$Q~e6-nMmAso*I1k!Z$i>Ks&?kJ6Kw_ri9b7umO zTtcHz6-VN`2Nr4fbo=-GHQ8hQ#eJvl1^G?P!4Uae9sY|Q{!906UwqC`6KVXe&|SZ$ zcVyAC+z|`j8>H0seH4+F*FHkH8OG~^$fBR}pl)t~-pM*@FML!^bj*{FV->H@0fATm zW@;!XzkHLFt8#W5JeOYlcq*DtnGV2b{aq!}0{1Altv7R42n=v(~IJ9;%V;;^$YZ}AS50*Ilr5qOo_DhE~;(lnG~OSeM0dO^c2hh} zzS`+R)=b%E6HSv27dbUHl?|QoljO^-qp&F(8^Rm0DSNVwo7BUAB={K2$YN>xjG?NW zs`1HQ*eZ&#QqaOD3~#i4&BtmI0n16)t;Ro&XyuiJq)}FK0GLIINrzEu)+{Vk{S_M` zi%q1Fx(c!g6Z^3>1J4EZS6k5BxL;le8y(2+G#d?8lJ`=bG&c`=mz*T~AQL|%3)X6+ z6#w^lI^z3op2&b@K}^^~uV}F+B)2mqNX~ylv(yi*!p#&vwGsB!Dc)Fc$VL9C;0WHI zNTRu4^2d|!>)ghg+(;=!Ls!`RfWtC@#0Gq|G-Adp83%wcJ{?Va(GA)bf+~Zax#Fba zs=AM-)DEyCJm9Y{QFi>2n^18yz;}9cyN5AeE=(}SHnc%QtD_HXeJ1}=9RGiE04dL< zO=(EKX&_WGtj|Uk+u{**FEM1^>rMGp!f&%4B^yjf4&FV5TyTg_l}qKpO2w$DI7-S9 zs6$-LhHIsLG_>Vu?cQ)YjVU>VZQfKDhHZw)M_iWOv@~`Nj@z{kGU9*+IF{4>d>H3V z=llz_B(14Ubuw(4R~oi0c6Dc?R#$AEQN^oSG5u*5rRw zlUQAoc)B{#Q7wJ*EwfL%l2`{5Bv^g%FUemNJjR7%or2$R4QA*^CxP1SHHjA;%Z(*( zgClp&zb2MEdst1y$B{)7;pH`n*UyivASPOTW=;`*`^DF_pJt5a7*^wl$sduA{Hv*W zGqUJUFiwhJHzr@j<3DOI;aVF1UVE{9A8B}s0`0x2RL9EKRQxHj=*K+K91yypy6cMd z>GhGt=P-uceUYe)q zx;me1F|$4)#Y55Ug-;YwoXszUH(;RtUcXF!58>O!t+huI{1?*M{ilo0*qI(nUePc0 z1Wn3ZbL@k}^MH7u?4y~rypN{TekQDXeBzBDaoR&nT-WvH)KqGx%r)_H{$3wxoI~wl z>BmS%&i?JJ@~P1R#>4rT`VgFz{rV7B+l)DvP}{Wl3BuouNTYlQ>91Hr=lquJul|_* zn(Xz&?~l&FnED;BsppnR!+*HDcr7kPHzyyHUp-inUHmQzrTI7C)kYeBN+FG!jh5c; zd$jN!KOu!8Gg|r;v>n2S4Ao~cLq&c8nhwXRFm;IP{wK$3O)U9!()Xky3%Ajl=Z^;Q zll)FImRR!S3)U+Re3=KjI*C#aBROItUXJE(a4ZJVl^l2I z8Q!qz!d(s?`>$}9a7ZNmf@4NyMzA`0UVf^LZ4tKjD;3uV}D&p+DOgU!$WirV>TVEj$~md0P>Z@>7<)t%4PB)`T|{I=AW ztzq=FR4{`I5MR=0#(Eq=Ybl@E=`BpK{RqQPzgZnS3A%9RPO*b5bs zG_6FwJ>&1^O4v!h=!FGds0Jr9Mt7!u1j3``$d&hexMy?(Ybirc zkCyLJ#3qX)nHSIM1&f`s8JF-K@%^Vn8gJ(gKUh|{Xe|FFBBnb>Z$-aSz)^Mi%QZPk zV{-#T534R$eF^ zwdJG(BHJLvjvgb+CE(d^oDfG(ZV8_(*APIlDnk3BSQQE>cB#KNioM(aFp6#QKQK+) z`ndExH_T8f2F9dllOt6;i^y+ft0pS{DT|K(#yODf*B5ss+x5M&$o8U2@eqqe^0ezh zhN4*^L*KU#EKoxo=o+Y@o@fm=J7h?3i<(8n>OA*^43$B|eT%?`jBWx+rmZ|BoPhU}|UrAld;MjLC=i}~5~?*jfKNu4529Ya_JAdWue=!g5#_@7c& zsuno!)cwq)4M7uZ!MHc0MG|HW8PikS$OawdxOY+4{YjIu{6RU)n;*_UVF%gNcirDb z1}F3Z=9=t7+uwD3q+v6-s@sjuxQv_e$!mU(JUVRl(cJym?n=08lZ={uu<%p2`((Lv zuC7&nCT~E@3-^0n{rk**uhZk9;b6Qqd%xFz-j6gtmgched!2W>@D9d=hUxpz7g@+* z@paOgKqgUU3X7vzmU1~ce2I6rYZOAM)I*81_X!m@81%n`fNpXK|r#vjDN>Qxisd3K@;Z0k3 zvyB_ewt#$iPIXsok1TB9MvMB9g*S^(l9xhWl6o?5h{>B2P0mFGdyj;n4J#1)?|&#P z|H{v(6dT-$y0m_7#`rK*C=1##TG{A0S&|phLa4$BLDS2>u_0c4xB6)%inaU!wi0y;=DaLMz_ut6e@jwq#-_BLtWi3F^u2P zTO%J#3X{g<7yg$Y6@q^TQ~sCX#e~#Ni8NMAY-26QDz-)zeUk!N*78lg5Pb~{g;b1> zv6??|cVC=y8^4c^-2|*F#;cGv-_d2-9Rpe~isL9C$-u9y6P_IQye* zpe+5`Y~J^d&VqCmuLVDK$?kRdjn{JisRu)Lulxs(Wq;M=%3<;TCorWkelO_XKgJ;l z2DvRrQ93<N1p4$%fKgR-n~M#9C>%><^UXd#~mS5-{%~8%Cr2>+U)HA`{%9wYkEy1{sGpy zgZ|Z2{4ug{3pd7-S86Ph$A0AzDFF9*L;u)QZ<3*3MzG2O+WDuH^=#)KcjCXmA)`&+ z=_&d&wta9m*yM7(e?@o4=d2q;{bk>d&%9sv?D(8@!oLLa|BH^#jTLx0*YXFqC-P6f zX7k6K9NU9m*b7CgIs1FEy+S|U9yDie8{G$TM?5-4HMQyXSKOLz+fD!Y><~$V?w$$a zpR!NO%2GW1tF;9rTZI ze{cizJJRL?JFBXG%k<9E9;j&?dEspTm3ZOlxgf4zJADnCo>sk4Fg~Bd-<^DlR%|Av z5TBW7n~=QLbniKR2sip;`zC%%D=(bWpSuU`+3&dfefrr(d-k9cgfB-HD(WFt@k(Uz zPq~4mR^t>1SDRQcY%?Dl0YJcBG!H@^M6oRW_xQbl%_%gU#d&iMPJTC!o-Np&hblOW zoSJ*6=W`w4;N+ZozP7h|5?jnZ%AiAr*UQ0~XNrWNxtD_-iZnv2O6&@@b8FPp%~E=6 zkfWwXC*0_(dSz&yjV(Pe5|FcK9xP6Tt&h!YwbSKj1bISnFt_);bGBg34_o5FFY> zP|rlk$fx?w-jRjJ(w>i~a#O@*3UKkD)1$;vRZ2sUl0H$tCLx0PC3~b>OeiLLX4k;S zr<5Wf!d(OJ&UUT`LE=1SvGoBGS%6_(UIX^V`#hi?yo*G*bkc!hA)q4;#VxVTip zb?-LEaY&Y_;c2Deeq+~Bz1d>ZOmNL`b8X+9S9>xprufPp(gR(@~b%09{oZIbnNV}=fl)Lk-J(&42vG*dr5IH;iUNN*KGgn z$+aA5w7aM(@}o5q`n^(RF_rCWkpq{<2V;NkiN^=<_bihyr_>%?W!7~2&qDkmdG!8D zdw(nMU7pGM^!w7<^C}xYsQtWG0&f3oWRbQB0m^lU=U3IQbsEJ{#L=^QxBYgOnTY~_ zjFBbz{8>J!i=p2uTT^{7}+)nnR7Q!;{_a+EM?H-(a zHJsunBgHAg;N0)dbbP|Wplz@_+p}a#yxg$~L1A8Y1y4M{k4#*yeF=LP;58f~%(_RB zyvmm(hxe}^_fxBlO$Yd?E=dgUucw?sX>qv|VHCYDNea3G)8W!ST@?! zehv`7d%PgtDhU$}di~1r2nP`omNYFlEzJ_*bWb01?Ml#!U5RJ0>%Hy-9rEwoKD%!0sM>ErxswTZ*mFwU z=Fj!rKHcH@S)Hh(i;jZ@7Q`x5tVO>94}HU<%eh*Dofo z_LSny4Y44PAoJF3CmnuB{kXT^Qe~{NlD-$1YZAi`sY&X;rmpkBYWAWYlCaOMvZ^0m z%$M3N$)(N%=urkV)AvrR%IGH;`wLCu2HOYkMl& zRs78!oPpoZA<#+tAke7SFF$DKbl;n_&M)dLofuN*FYa;F8TDK?L-n8 zotD%CX|7NqBTa@)<0bn1e1UqLq0d%c7+G!zZ?=Rt0XJbNKuDi$JQIDYkmz%p%5<|^ za_Doy(WMkM`aJ9FUFq`&Z|2bFVaGW7jHc<6CCdY*&kLPnyLVORQ8KRkV^ zyA}l?`fMH{pp8CT_1wizJdjJDj7vBqo<7sirs;EysNtWc&-r|vOP^Pt(2YLF4?95m zG`?;57o}-PvGGi530>@Ng4mPg_G-nmrn9gspA!Q_3#c;q7D^ zn7W*+dpO-d1d>rdTsSe$au?gBgq%wkzJ64iN>pEP>(8AYqRA*HSC$?kxe|h#;c;wy zUbu)a_pgg&F&cD{jCK3xuXS@hoiS8yvJg$7ijb8+C?s1M3Ay#Q1s^Kz$>})D?6xiV zGgnLCvMYGmZrQ>0N^qBdyDszgvCP| zQ9bgUM;$lLb2iW)YS3H!k*W%gyDyvRgrn*}(LzZYTCtpH#d}h0Ka7^k+)FD)pG5Qj zmhC&q9rT?+FR@)`AwF_6gKeH4$w+Q+)OKw&l+cc}2phTmtl5?D3qIjOBogQMiY)2B%j4T?_BY z=#T4m70xbBMt`qs5k@pN^c=r+xA5$%BTH8$HmvDxxcVnnzVF`4pFJvGaQ5ihz1HXa z>q8hc{Oj0WH{sw*>JO&abotj6Kk{!7_L$!BYncPYexPhm`;olnFtf;tHiE{_yewQh z=@$F3;0H`~7bgyD@j>Dj406nW{lAjyHx10o_vQfe-TpWIFt+jr~RN`Id@AaB-i&pVhhDmYS{wHa3K(A2b21XiQb$0~% zXbYG##+_w>b=_@O0=pYCTN2*;4j(kOMjB_^l7%EexO3nF(Fa64(QgBgt)3jW^qOvL z{N{*oIhu)?&Wd2_IWAz7zDcZsOeKu?O0q0yQm!F?`q{I;H@iDN02@uEI+@csepl4b7cXg+mYSbN6=?iH>Q#Lb+@$*u>eP3hhP$PT_3x% ztWF4m&gR+znC&lX?~NEVY6@_;F~1{=o+|JJB?78FkjA*bj$C`h)f=K@;`o7t3sT zXKZLT#J}Ur23FUo)B;DO@u&;3879ht#hrrr8ZS=CDx>PKKy^7D5LPCToIV#r^@tZP zP8O6Xtdp4rXcTDGn$o}|Uqa&zcS%X5;!2D`lDyd3p2rwdZ?0lE?R+_%2C(ou;L1qu zHg0+%IVwZt)vDUkn;;P4@UuwniUIo~xv6eluskQRVK&K~n^mJHxxNQbBfy0e@8c(Wmx)G(^WjPeG_5;_r8eT#2oXo&E`F&6S z{g0k?PkZkSiEnbF?r}y_780u+U*q9kx+fycaNK*SL{BEAIWBT}+|gHc zhLuzwGytbyI{9)oP|*LW+4_sr5^8ZuOn3byt-6>dqkJXGQWIJ9XE$wg^_MU5(CIHy zH9wWsGIlW^a0qBa?)-5!bytn$C?&cYo`bT-=$>h(TVnd{%}26_GgK(5qO#UJZ$+CTXg_~&j)?FzR__Qt$#vbgCy`9G7sYSLd~WZ$Fo_#~$PF*)=# zxj^)V=q1gsdh4s>Dq<^F*{m7m7h}(BUqkpg&kZMO4=11xct`-lf z&B^KgH$+S~>{l(G|5Ye9S1mp_f4>wvb$`0?aaq-RYHMfT`+nw|t2UOrwYSD^SEwJe zlN`=|lT>74#4o8%d<^~7RD2Zb$HW*q{kR5AIJ4VqS55MyeC7-fQSP=Y`}jMY<&&8+ zVRKGL9uiq}GWhj6GW@6W=y-Ka#g53r9Q`an$gHrrDxPDj2A zG86r=liV@FdA+13A6+}w>B-MT7S0ztLr*pp*}QAXOZKH9-~Cgjb~*K?t!d5A+d4lv zFnn7dKj8DUl1v}LSoc0U9eJ;P+z0nLb$Ny{dV1LU$pON*k7^%UPtV!VqMrL|8xFKu zl;q&c2TMMpBflOD;1)g?jJHRxvp;*F(~D>M>xt>IPCwr2pMSxw9l=5Np7bEEyZ4Xz z=cjWu2D&{6>{cPX=*Rci`#}7&*cH)jA-CP6a&yp)l^&3OJi7wjutc(%lX>`4_y5rL zCGb%e=l=KD614UeJUmPU=uNcN?02o z7D}76lTHG-vH5a-M(FZfcW6cdH$OADT(Dn%l)OzH%huQp4vs1a6y3H7Mg^{X4a<$e zCu3$V`0t>DdKF%BOhyZTb20dD`{DQtR@W$-OD^A=8sAJ|9|nv^?fvdq>paNA6IT@%^$nk zAC^B(mMs4rf9%d7AcjBg4gM_tsQvV(^2g#lcijK!b!tvEd$>$U5yG`FiV(SCVUWvb zB1--!9kDE5&JQr5ogi8C!l5XA`iKd3%`z!WX9m;9ng*naHCnB4Yi_B)+xx!jlcpla zvx$dbSG7xRg{KKOX{4Z2pA-p2|xC4K7*3gkO$`7VO`)ob9Y0ItIPv9OmRb zWgqTydA~{D7w~?k+?%vLC=$@;B{3eV`5>v0Qe*<2B?q1t3Px-7nrmp0#u{80ARgz- zK^$s(qX2sy6P^&_=w^=e<+k7xG>#&eX8oq0x}oJ>8*M z5K*_L!~ao7gqUy$wxHk+)r~~K`W~=ISEkA9NCUHGyEl!j4$Q#Tdyu)^!KoP#gPT3! z4*LQ{E=db7r&{1Ol%Pbxd%%IE(nf zM}u51{Rf6%5^lbftme)kqeyFLY)9-pp0?*6`kr<75a{?=s*h&LwV9&W

      0eRBhf!TQ&lBwU;(i%**E_8>6VSRNXz!{Y*!_5{je5?n(atcdA z#m$x?<|^o|gvq0EbQjoa}} zm{B%BJC^Mlm?j%UIcAng2s3x^kb3Fr72pR`Rn2-rfR2tMf7ywJLQn)8gO}%~sZ$0# ziPmg%grXK6sS?o?webRE$38MVX0`28!qFO=+=Xhy{R) zuEXMRz72tK2iSf10fL6zlJzv=s=lK9Pk~5KA#QIy>F=#NQ1pkk)Q>kk@UP8@k1vc> z0v3_U8d#))90L}SE5;Wwdcxsk9^bw2Mf=q(wX-*PeRQb}hY z2m_r_o^^R8p(@~UBKVBQ5aG~b#QV<5qYPz>-Qm?b?iVnKM#gFJO-D@&(N|X@q1;e- z%ME#2ZiJ~J@U*#hk<_f7`W}XjaCXg1Dn>@3Mh9p>Chi-bhpQ)qSb5WM{xRV9b|?+G z;3%#K2ex~wq|{ETq){5$qsB?8nI}uB+8NM|Ji8_BeB-pbKudZE1$3Sgv`8}$!4N`+ z9iJBGr>#1lnIKKsGDfQgoQKq{SL$9Q)TmicBI)Re3z0xt`;?^I3A3MC{~g3S6x5Rq%?y z^}#P&!$rPMVoDM19QX58=)+d*DgG)PBJ!g*wPaMvFLVCDiL?T>b^d?}rjMpBC0LO2 zH%9zL;rg1iH19xnu>XAA1&WGRvu}2G2QzE&9P5Tvj#;=-D-KX_$YKL$H;^{uW$yr3 zQHJ#%8C-)ElK}|)S7N=QIu-x0Cb!fYu{9EN!UltXn`51Lvl*u~<2d8uz$XJr0tb3o zb;qzXfdlFRP_gyO?#@&C@zQCk!xQQp>j*=w^bh#Iya`f@jFm9B(cdqlKz}>%@c`&= zf&E!l-Ro>q;9La3YTz9pbs1F(n&UFboV6 zF?x(DRA+pRF;tYx;4ZCPvJYS<19=(1utuo>;OFZk8wP`0bxhOk2g}UcL5nNG+SFdr5LS>9l?%^1xzq&tB=VH->wmb!J`-?x8dS zD%usG`<*NI`dfT(otUEF7Tr(vdcReti~dpcDQ&-ghXps&pU7k7dXNL|%h-YQ`3T}& zkyn7}F)7TBD?=~PflvPGj5Ke@4X%u|*g$s(-G3A3=eIYJK4VMik|SWQYWc@|?qjW~uKqelppW1AD4C0zo<84@e}Wfy5M&0yn^t zmk64zIk=j>ntp)pukH-Ip#M6&XTjwu2Z&K49y}!eA7uQxa`pfqwA!>vXCoT}Su70` zg1~|H-W&1T!JCg?hgEkfGO=V|7j^bnY&4Sn|%R?1yFUPYRquI06HmQYK0arn6h#8-ne5Y`bI+0yop9`Q_kHUal zr(S-C62{IaD)YBw2aSZp9eUer%7ymo#D7UwtM{_2iMfhawy-1Xd~~u42qe_8@^}wx zycAuRdH}phGt^11*!niRf|CV+qVTxXIaI>Sk6(gJ4X#&4));mh(CpA zI@KS)K||q32NtfNS}467`!4DUH+p@8T$k(J+R)#&@)>7)xWhU~BKT>*^S#s5#5`*A zKqjV;wY$6%;{z4)NEvq7X!9m1L&9*`M|9Wzc>*kZv-rC5i20<_IS;XtZ{)U3&!82?0p>7hc;SwzbIL3Ju@kx8vn0l zG&$>C_j03<7Uy%AenpDzWNrw}-BJof62^~NQR%A_eytT*W@6I4yoMc~&PiG+v&Xg4 z;o~{pa#kgBqc!w~^J;Vu%GTeJmFrIrFGl+kqDPa1ybp<{`B4=zfR52-nqh}}fv~x$ zM7Xo=3F@(&*u!SOO&z=s<W4YK`8dN>bgogqXC$qgp@#wwy6$#i1y6; zCf8sI*)azftB#HdDmH^hlUlW7**nO)SjDUPM9&!xuR*hDTKpe2+f0g3xo{?WDY;x-M40ih9uK6Ku!9KFc**t<1}v)TXPI2|g{0Ru6zaj> zNmJI|D7CNSh4|h?>XoTk``ZSj8C?XJB;G6+`KTV=!qQuFBnARZWZ3}pKR>RNT@~uh z@0P*UpJPHikDe_>S4&z)KMm&5xQPBY>)&m|NB-%zK!2}i_9R?YxI@`*-@qoHwH23F zo$`GvxMJ{THK(!dLJ!;M3iZrex&bKPZnSOyRzfi`jOrfhm>^a6zXTVx@?hJwsY&;? z4Zo$~cea9m!;fv3cm()kZz8Lfxi4SEm5Z6gPl=z>8{rPP% za*F=h%c}hjy#YP7w|Aty(XUyRa8ptjHvaTN6J5Pbv1w%(&386!XNSNYy+lHhg{VQl z#rWkr-5qi)u9V*JI4P978PMfLyc8bCtL&op;uBN_3+}Z z1QC_m#3;;zy{Ls^!$S+Ry@T&CJS&S`;6Oyr9eQ`Iw{1=qD8)3Nr3(7D{YvAMJBf06N zgshEWA(cQaSN%5YR@Rf+N#eO8H3>!>M)fS)bVSuN-10O}>YpY)(-f|kwiTbr4zILa zl#hAM2RwIRMm|;oKI@=0QgmAcx2A?(Y2zXS1yrm=THpL0A_S%zDx4Rn2YXWCT>Erf z;cOr(g0{jbPgFPu(}92rr!4fd2B=l2VKzhrbVI-7GP6#t4!-&X)j?RS)b})!XeG0t zc9##*fSn4;0;G$;YVxB*K(7ZrE(Ec1qgzgi7pD3rsefV+lFdQ@Oa1u?QWMiN+rMA5 zz9$G8gis}g5Wr^2Yd`}ItftnO*G!45~k$;DkCiL&>bNm|*H9N;#Q8ezv( zO|YrhCP-$ED|?rgXk`y=W0y;Yr9~XA=1@YvT=md0Y`0oqRBvP34Q}K@jKPmykiptp z**! z8SV&$YxMbX^AiDm@*Bzl+7sg9$nZ^Flh5Kbp#g<)ULHx7*2xXwEE56PyfkWv$u2I+ z2qMS~1qmP`KI?1b2&MyD6dnORsaj;Z8i3jgpkx7ToBHS8wp!2};fy~?OXI9>hX0N_M{$Z%iClsCr0Yzx2YOvQ_0K# z2L25C97d#bez*3BLcQ=XTPV1G1&>Sv$| zlxGZn=6#u5SIZ(l;}$naIxT-NB5M}&Ak*ui%jlnD=|jkF59YmEW_^e zoUcvzho&5QwmrXHAO*QYQ=DA;f*l=fTzcIzO)6v86SU`Vom&HY{%Npyzke0wVdf^h z2o%kDi~|YQFdPkdj%CB1{}OK0J}jKmnxFZ!q@FKc2^^m)*eY4$Z>ZfnH8NUY=FA7HNrB+~Eg3Atfv3@PaJ4@Jn}5RJQWy)M!O&wjCd zYPnl$%pi-j;{^2YbH8Q7ZQqkcd4+@qxUZLDw8m$>@=52ZeK`?x<12d+DKWT796`6o zX5xFNshRfslF;B-SNj1wrRiA$o4?K+&oq)SN^x+42LX2c4XY|prDL2pb1H`c5rvEu~N(YIdjLGuKS(o-q~ZsX=Yr$0r{N2#rk! zR!qH0pab+AE7j+_P+MH+?S$z?-CL*WkjwPo!5q2T>cnbYK9DHo0~;)#^QTF#vMBH> zp0OxIyo;`gBvKTrW>Lk~f`%wf(9na_iL494I8%li0kB=uRxEfGuf#)I>}v81c&Wr~ zGg1?Ddl7nzv>!rfo^JO}eBhKw4_bCfSj5tDS*KP%f~M+)+GX$}H&u}1GLW2@@}o+& z*oo&6a0$Uu1f~)E7&;0Ie7awILW^~G3?fL@N8qXvLF`faG*XP28V1eV*qmc|h}jsN zEqy83M2ZC#SPcol;;8~_Hd-!>P8F*j)ywhiA98mfUZkYha#54XTu4Et@&HIOS(Jxs zCFFE9YpGf9$HfeNWbPFKLAZB7o8>P+idgRmW|pHS%FJ>!E`v8m)UGJ90!yM}0ZW?8 zHI!60BB+TQVHdJud#EHAXbfs0$!g~z0mr!yR3+p!kw&{co5KcstdR}Gj#Oif+|TB* zD!ktj{S{1Kshb$l3e_AWz+E4!u9QZx(B%-BB{}Y}KI=pEzM4)^b{lL-l#FMU`@)?&3Js26Zpp2_)N9gr;Eb&@oW7^bwW`|CB2;=$~?1hPvf%OJIB&RV6xmN$^(e z*M|~U8Z6EY6x|`IVX)Q?5hcMHa8fM^&%g@WeC>enJLblkSzACnj}F523SQ!rHdq62 znxI|KC0bJbBW$;4;Gf`{5m?|xmjrRebk5ex@=ns6Kbb@6f4CV#n9VnB!uI_u2?SwD zuxcb6baDbk;YCDImlEUZ9qU#SuEwf+gQ^p3kE?QT1Ub_%DqgEox;GBX;0rG8&&(M7 z1N2j*vz}1G z0UZ$=U%bpbZSd0Tx9bTDJ0?fHg}lmyrLA5WpTN9L`v4T^iz(knd>zu@+wX>mChqHf$ zB~#9iT^x6CFi3X4$Vq5d_R+X_tP$HeLRHbsU+D=$5myUfSl|*_8J5npgOlH%9AXb) zTFiq%N~GnmTWy=^HLJ5UK!AWg|G>ojB|4KrCJkX@`X}|T=2b>kEJL7I+9q|+wwq}W zJ@zvtfuJVY;WJ!x*KTb7X}0&8{d?Ez-2bENWI@fbl+jiXP=ObZ#3UB|XQI1Wt{6A> zP|*DI`xN|>#4yBX6ncEUFlWp@?A&-o*Y@#=)4DqkJ*8Vm3*u>s}5* zZhR8=fGRn88`>H_f&=o|pM_Q+2Uq+-urhH3=|)Eo6ODGLb_Y>k{gS;1DReE`jKGp; zQj&U#p?{&iDw}^s)?@^+zc7c#nU&u7df}K*R@c(> z58!^~@cl+)4BQ_Or2`XyO=|me_$^=~H`eV?J~!B-3BfM`SA~ML+&V)de^@(MM4+xQy5akdXxzXdq z8%5;XsgMo1ly6XZ_!Dx}m5CBJ2N%p~dW(&NUjplM*QtCI8QYNXUzzp`PyAhRm_;l5w&6XAdx#Bv#RT zAzNR)^Cb93(qw@0e~JXX4waKk8ErcmT&pFh=Kpjmb%8yAXEI2OHdawq$`lFHetQZf zeHx0-Jg|#lU~#e_Khp1-?hxu3Suf0-Jw~tZVR7|(-1;)rJy*!WYMoa^A;r=wA7?~x zN&(;m|G*-q?sj1wa)T6*eLQkufi_PrRe)?KT)LayLkKWug0nCvt*@4TrAyGF(T!qc zXeEF2qs0kqgFdzfWANmKIe`5QHDU`!YM#6Z4M5rxx)RKDF`jP&ebFVGwu}4#$75%i z^dG&#P#WsTxeoJ;1T`{7B1lcQlF<0V($J**;bG4}tS940nWynx#+RXQS##-_CnT=$ z4EoYDC|VMH$DIFNa_qaK!&xUMnRR6rCu8nbz{%~vIHT(8yfmKTE0M7(;*qgr{q*72 zv^!C79qbMONTXyWkc@38Tt%{9wZz(ppc4J+-6c(`7k(nCdKk%^uX-;{-N)GL^P?{x zPQq&bk^^>9#iv-E=Levy*(H;T*s(SzZBxbP@C!Bxa7Ia*xX2|{fOB8qbFA?n>gB~M zpg6!&2d_kIzowqGn*v|9LV&JCw{tn2jSQ9U7xZwle#v` zrODVFKh-=J`S2)w7opA*Nu)19>B0VR_3#E!xw9_TzG&#?6en;X?S{pU<49NNpYFJ( zJ-I+@+MVc&M*e^JUR&92F}MipM^wK*ABOjFzFoh=asQjxAMmTZh~7W)4|r91j144=W`-J#vv~sXS;ifZY+q*cdp}11E>@Yv53pReK5w z(ef*B2kd|*`Gc!lJYZ7O-h<$RXV-Vh1 zb%W4sb=M`@x#(!Y0gA$$A%%016b{Tr09sTIR1Y~my+|~c&u~!}!6#g`BcOnUBT-_V zO4dH@?RJTk=Q4GMjDsS=l3sI`%-Yn1n*{#f>RN8&g~;2aN7NzjvaTflkV?THepU`D zxYg7@u>b>3@)ufMbc6IvjB09`TD+BRHZs4k^XU0hbgmTX`1V3+?{~PU%V7RdM^)+e zHpjf^!r2=n@mU*jY32yT^$~ivCWEeFNy33z`Lu=w{AFX#cKLy0;2Y69HAGiyh^`?- zuc5<8|5CGVX&bE5HCP2L!BU^^I3iHT11M_wNkG}$CLSnUYXdW4$dlm_D-i&Gr9i4> zhvK17;veX2#qCI{`%zL4=craGmNU|&Q2p^KJ=<%Yxvic^2s@J#cbO0x>P zFt_sMx3!f|Cy8a4evci5t0fcM26#53SUuq9u9Iw5hrgnm z0{T%EAJMJIB9Mxj&HyDA_uoI%$A`VH!wXmmHn=v(2G<5yoOWU>Z8bQ*HqVbHNl;DU zPc88Gsz3ZiG@qFhwXspZ)(cOGVHt;;U|TJ${g}EIZ5fF;DbNcskI+IlK9x`tUdA*6 zWEV!SSznJtNrU43H=s4JiH(h5?psnUl6e#^z``yFa?%~@iEVF661UBfGKRjuz=w;N zDQ92ASgJYIrkA!}D2L(7X5eUFH@7yf5UbWmj8CMiHS(Y!Tifwq3DG!%{sF9d2bPB1 zV$zGFcQf`6Z?Z9K8}uM?{AhNX_W}x5^l0H2)PqKwkq*;~uCQQWqg z(F}N?C?l1Isb2ZxVY)^ndNAd-?Rfvt^Q#Mle-A%@r`;B+Vgb8Dp=i+MZg^r;vdQky zaPY}^td|VW#Wb61ke@>A#OVr=Nqob!Q@5VUZF-ycVaL0p@}OvQ4&U`8S+cX zRrGz$ki>m;3JRsq)f55|;x>9x=wj9*vmkBuF#Qch7%ryPtlIyDeKGT$B6Q}Vj@NL3 zjpnOS+D7vQVL&o;PmHu8(KH80=fyi1i5wsQ1tAqc^9uFAOG5Ljt|QG)$11=EehOw^ zh8KaNj5}=Zbxg46$)Y+2xEk7#M**0!Z+%{4$tAqc+tW9B{Dod;I#2R>{xpd zyM$J-)b}q6hKhbo3}GW=_F{ewW}k%@fuhg-Hik~cbF2?Al!qI!?@aou=^0Zbhpmd( znpWJgz{}0HKWVpV+emuu(UeHSK+wpw35dBQ)ZuMgJ?4u?4%cI%$r6qIW1;RJ$B}Pq z_GtcJqWc5-$8J&!=$3gS`iGt;Yeg`zk4TK*Erl58pR4ZSz?PNA(Cr!Szz z`^^`NL<^>EmJ-~AJkkhf9FKW?iI^jLEEn%kZ=TyE0~aOIz?Ns#odwwp)z_-q&xU}x zFtWf0%9LEjlIqPvMZ8$7pTC|f?8Ag=$Z}zyL)Vaf&H($2~ zBq)xtZ!jw#;iCI)gc@=(-a^|kL3rO?s@0F=Eb!&!qB*#(`P;U*?$(D7$94Cnw$sr6 zjj=K`3x3j`5bvn~$ta@Bc?Ao~6-29+_mIkR1<}cWIr1>y_^-5NK{e~nB>rPWb0?2i z!br;rwmC&xJv>Oa67RVX*&tVK8X><$@J!|*G5K6?o_CvP z@+!aYHO~#^nVl+;-!N~zd?fRtB%KpIh7Wc&KT_!VmsPhA-L|xDmsNKK`!6&vF<@b= z5yX(+)dN^K#8^{#wv08GiFYr%kMsrI0#*)iccUJDsY-^OmGfBy zLfG-)s$-<1Fr&(RUOLLVSJfEpV>Q19v){rC#6O#5ca+!gEZWCv+^8S1hAsoqU6R@a znE<-;fgbjeTwZ@(ABnfVSsx*8l>5O%A1PnA3#yw@ec0>w0&Mnr%kc&0n{G6a?#g#P%J^lGLnEfnX1d6Vj zX`|-}JPUdr!HwF9^>{(g*Dj`BV0`InwJ##zC}1Q0&(JeyVH@ZXd7xKBo_Po&qyWuN zh>&}hXc3Z(Q3Q8H)K7|#T(7lYZ3MoI-|FRzbgS0PLlLp!8RWrXpPq2$%ssOa96xItJX#N3LAnjW zOUDB}AqO&lzzfL#YD2f|ukakh0)8WgfKPA_``5X2ra+vfPRRB4{mdnD8+tX@u3a?B z48ZxJV-cs~9md`$4Ze#w6<;Dw#d^l6_%ag97&-V~5YvOP*s=*m2zaQ`ODgyt+%joj zgC9cdCYeu^;i#F(QUxY<0(}3!!~}Tw42kormX3(gmCN`{;i7AQ50`-cXsRcS?w^>A zZuk>vIT@;FK-?%yy>O&h@_@}8_E);wZd32PeApGNOYS=yVb5+`hu8EygQ6|4-p}<> z1aIUIgs>LY_Ks%TI>*&;y}Hk#zV*cF&U?`|8l2t%7ep|(q)j%s2Ai+pshMfj(b~Ar za%PUZVF+aGX=|oStO%3@q^eUfyhg*wCW>7w8m`!NDM zU}_gP0sOT+I?nM1BA>?@Xb3_Pj2V~$R@d|6Q z+Jo(uv0F5DM1P*OM36I~M6VB3YV9vIa+W;@c08sva?XA#89AhwCWowVVBd+JSdc4- zJTk7iL(?)+PWoTF=WzTuH=(Pz14RvA%}i^W*44eyv5a^4OFC|f`b$|{e|e-U=v1>u z{%r_P4j@_LH8nznxXrj+ML&Wb)7NPG5rrP1f9d@T5Nflkm=I zoUcmh52vroW_K+*eCZQeNs&%!&|xKU-#8{U~Ksg3m&L*H(c$zfVlS}@Vk)`}^; zgFiy7VhRTj{jWN?e%P4nu|{l=s5=dex`S{;nsuTftl)xSv?ixU12k*`_)MypZ?rq( zs~vVYPQ$9=39K%xzr`08duDM9mBDq*dXiur_(QN#cSQzsEcG*E&7me-thqcv#9Fb} z6Lu{8oI>)>Y5fG6n4!izxBYf}tH&gzEe7~EKj+T%v}PmqEPQzU~O zhiEVc}qplvqFjnnOs={=vSnirw1H({Th37iv6oN9(j~&DMD6h!=sPm#S<$9GYP8 z@I7u+!LtSrUmQ=Y*^xPHjodu{?EY~h)~yrVa56wc|5z_ow8DcL))pSVb*8`r#x%$v zc*99FstR>6lnL8PBf`scB(P0qYip-fYF7uDe4%2N71*C))wL%+inLsL1aGxmaeWe( zE9=Jz_z)AL0Y2o)YP<*(-E^}7|E%SB7Vw|Jjk*v{57ZbP{UxiI!U9m6x z1j%wT;I$>o0NlqZCFAq1#X>FbvBXm=e%i7K)Edl6TguzVx~Jf$q9j>z$74dc*T>p~ z``yVxxV3l@D4KecX}RMSJWI=;$Bo+aCquYvCAHa655g^#mYe6F-G>-^FWzqT1wca| z^5>>(^J$Nx&A&+1=I1g~v^lW9i&e+C{V!`7vdPHOcBcJsQPeVI+ey0pc!Bm$j<+Ar zy8XCOd!9D!e@s%hjP7Wje}4O+79_R*kGlN>QntThahvV$ma_d_t-9}tE-2OWMSRXh z`RKE6!*@_Oy_atKM!X0VRo`eg{Z%|m(^ud|ee;xQx*9~djNb`Jztxa_lT`9^hmlj# zlbgQh57P9yV^TK#fydfv`tq)=n{M>4EC%lr9a>9Mm5;T@moa#u5!(NS`dzsHoi`6m zQ=Vt^a&NM9RhI!M;OqAn6JNC7f8JkMnq0Uzu`S5e)8+B65ps>-N8ypI>?b(AV-dL_4LZdFEMvc`&>Y?#=t21P6QQ|Bi zST?sNian*gX*;6lAu^S?oY{(d?6gEqDM)?ym|mJheKyX_lnOB zH^w0Z3*k9d?Rp_&VQ6?pXi_(K=(0itE6xvh!)d_qZhZzkZTv5WLf$-pM-XO&tea~4 z!tA_q>F<82ZLj+7QQ`Zy&ee<6`nB!(gNZU2W(3YWf&u#eus-cqbrxx*cL zaKA#h=(8@E!45>RT*PKMiAn6;h*?dH%OD$%OgSF&-_f!^c!xUmB<^&Rg)N)R6`Wb) zd;(aVqAO4wEH#M?h`%@pJBn8TdUTN6Mze#^{$3}_MfNnj2o#<88@q$tjAyaG{~9;i z{{HY{BUQ#pmI+jN7+C-fhLir!Gn;XlPXnK{xLKhZu`$ionv$C?~+#TAJ`p%spc+{6t$IUsR0O3IfRRz`jQH= z0S`oFa8lH)o_>TP5^J0riV^=2r6MbsP-KqTYXQ-Kaw7hjfc-?|gdk$h=LC9Y;OACZ zY>QRfgn0Ij!x18q!c3*{FP5ml9-weC>VzmJ&3(9L^DCKP~=Yxwu4> zrL!5Z%9!|vWeNun10gIuu-=9BKNJ6u$DwC!=dn&&PTJ-WI~j~10K!Qia)|p}0+*lI z$fjPZG0kpsyMoX)io=Ur8enPvSP8u7^_wNy{;`Sd7{qENudsi}724}wJbN%iHOlwZ zvImbt)>e71S6%qMLcT8-qwzd!#g|8{(Bm3G7%+zOwfEPQ1ok6-!8A;fa0dZe>X19c zFPK7iUwdDRTJQ)*ky>MV(cAku4`7+iLm1pS5CUi9Ln3f8;fE<2OlFqoN|_G42o$Zj z#uhmLxzK1Z;wO1}y_PkZpBweUFOWmbN-eNR^9p+Yj1UH*{6H}mp--|VE^}4Hrp+LEHYc(b#De6Y>2NH(GBQZ>@1bx8lem* zC{Tv3b&;rG(f1}EuobWkx0kE zFt$W7drMPvLG~Jv-u4S`i0j^m>ShNRX07qyI{VXC zwCEa!BjJL8bWl^8x6?F!wMH6Tp4lvQ#`9z#dr`rxt^uK|-p+?dvnT`=$&7p#d_0 zB0~-{qSxbmJbkW*;2ouK9g`Jvpq=Bh@9Z~_FwuX;@jwcz?s>jM zEg}xX4%aCNf8Fn|PcUvKgmuxY!)uIwyWtLoz|MXNF9JoCSJ}PkIXsJg`vh*($BS(J z_5n%0K=0!Pl+}U@^ZXO%LeNLyR)sZfRWclH0M7}O0DHmO*brivI3R`vC!k$DS_A)7 zEEdN7=T+%5@NvyR0k0r2nm|t+EE}gWD*$W6%Xx^gAbZev;w2*w?B++z*()Ux!glOL zmN<=kQU2OT~9zfg1zaO6d(wO49U}_64&oHhU+_$1h8`W~Z zzs9vK&fCB>QN2x#GN`trI}mb@rK3C46JitHfoy>HJEDs_w1pe!j~I0jFl!yA*SPEB zy-BS;K>kXl6ZDs5V-ELaxf<=YV?Zk95WBS@V3P$Ggvg&jenQb&+* zNops%65(b93CPcQ3<STGeRYXYCG)b<-e@ z4#Xj~+l0Ocxv`#Ze=_W1Y(F7svf2hRHdZH)!DtaB8v#3`K>Ttdk<54z8GI4zig*!- z0-=ToYR6T9yJjM+#1Nef!6KYG8G=PP2X9wzFHFRWi2e&rYokjWI!mMo6Qn5mSHZ+y zy$x6mJm2iEptjPLTdxN1sDWc)lion@Ka zka~qI1yX@1R(BR@Qxi(t(fd4T(^ zqy-?D;J_NWPu)3+Q;9=iSn;U%lZL7HfXRCUCbPOSB zeLl5Foru}v1u;|rYkJmnobYk$S1^L4PdiPYAL8v1eS+wQsGZgizrAsM5)Kn_Sqre9 zI1n%TT6J|uAbSUH5+%#w4xPahVg7+#ZcOK@{lPn)^F9}q=K@xYDcUyLkA6pV+VM?p zq8TdL*yQ3Y5>rV4r<^_}Wf{<83-kvJDErUh>&ckX25?L@q~=p){nFI&@HoXeP#HZ5 zc{p?7{()e~3@HdlJUR7I9_POd4e7y&t#?4GJa4O+XcRtrEvH{%e=`1?^<4UG%YW03 z^tDK<5?F*56#}ZC6SPr2M2v-Snax2Ud#4kFGSsR8?(kVxkEz8NzR%keah^BvJT8o{+Fu?;|H2DP0rR)~|xfqyrEfHrZp zDcL2aNE!sfj#KeTx%b1%8q)Ub2_kI?J9L`F0f25b=U!kx3`avD-tD_Nuiwjg{a*E+ zh~k?#c<&yB#)3Vt-BqjG>Mq2ei9X0oXgbb%aXfM*l3>Vy@X{)q-e0O->!jnI;&3ug z$OUwGJFNm8(qf42V9zP^#7>cZg3F54|M$h7)!R;mt#`V)3 zuFdn~SyjD5+?&`Spsy#f`F;pV3YP8ym^+(hxnz9n*Qk-TcDz9ryJ;{Z_B6YRbc>2YAL0I+^9duYvy%VeH_6DrMpS`)+cv$Nace7vr7tkEk=q{v; zFm4&Ts}xX$lM2_4i?<)8Wth_4~V{XuxQ${Ow2EI(50**?4_4ayocUrdMI{4vd{6bJ!~x^ zFloLT_Cx`X$4g?!m7#X%k5js^8jiKGTyVt`?Xms>#e*-@24;x0vo`0YsZ$?%p~)RMnC{E;7oN)gVb${Vc&a1| znGI}O?GAQ88{sXF{b$Zo)XXkVG>x<_YxW3! zgT1)#Q(EmEWzqgh{Y~1&;$xSvm77=*;M*!!GnE4>q%FZiYyt_ZK1QF5L_Gu#lTz3v z%vKAafoP9`iw)F30CRY7Y95zdS``T+RI~%jfn?%v1Ia`dqkoRth29fsQ!I#)QuV&+ zFdR<1b3ydXHUtEuLJoPuNvYsuJ-Ik-2CjZ<8WW2gfsZrX>6_evb&WXh9jx>XNR%-< zD^$?6s>6>P{P^>Af?E#f{9xg3NDz0>a}WK%3SWy4Rv^sZ6=$Zq{D=IA1{y9(dvq3G zoDJo}s(YK*2Ghk51*PcoMf%Hi5hVV`s;CF=;LkJkQ)>FFa2|7P7G9tdXsJ+g4UHFrMi z4jgLdJ>L^9Zs!@g&YHs$*^p&Kdb{F4gTL6{c)|2bk)*x1AAoG{9{Q~{XAzQEE4=CL z0~`DR^MdKe0rFEGnFW5{62)P$=oB5g$f!jr<%E>N$>n@So^SCAqjk$y5H&4cxd%z4 zkff5(uB0@B8)PJp*F}xu12qw1l06K!W8`)>Z%0sg(qHxiHI%na8_>E8E8HG%TPx1P z=3B?rAi^-*cfyp|`wu|gt3_idCR6Ya0-IQKh6u5p5&r@I)RWP>vxK7Edem{ z=5%Yt`PPbQ*qD7V-J0_!qyhO{>BWVOQyj&Gd#80vs&yT9Ww-O5PWgi5?WWygt*B~e zQ*kgpwuhN9aIpQf5^IIKePE5>zyE^iIR1ER9BvcLMw24B+(m%jr1jIudhpS5aETU27<4+YiMioVk@Rpg2~tn?p~;9roXE_98f?!+Y-8X|WDEII!cgj<(u@|>OqXhM z%7(~&E+NL)ry;J_WfB>|%<)p@(RP`R(RP`` zSmu4Qx^I}utW0bCuexqYQ*>GzqlccqP8$U&0E|sWn=pzLl!mU$Ev@^^cQZ$65J{9e zOvtHP(&5!U`i~LSwyJX;<-o_h0UTO}_`Mm-hM}n0YMi?F*GnLn_!a7+lgyiwr2qOb z?t4(Tt90lodA_+N!Mwa!4doN{-~SQ5XMYlW-~Q^qhYvI3J-NgmXo(+dg|o1y??h`w zS$d>!e7di{JA?^wXgr$k%5V=I?S#gLsbbB)AIJXGc3R@(0DHMfO0a4Ve32V8zG4p$ z87cns{NN9i7|mc{bs`^!mSy;6pwBwpL&rOPx8M#g7UOe#zs6lI><>f7=lU)OsQHEC z^L^M=Q8uV>{2<>&02%uJcrbYtf#+FA=4eh;3$IOvCN`gpSSF14s4(I}8<-SVjsLGT z{;LQh%mnx$jKn|skyZCOKQqwV8s6aK%@C$ukRw1E&Z7fL^JM_gyXLi_0CHH{*Za*D z!S>ycdhu;GXg=)daVEcyP9`3^LROa-m<_g(t?a`PSKQoe^BD;~vB;N1yN7^Z_) z_3(B`okBNr@opO2K={?cjAsy^ckmDF;+4Q()jGB5S2q4Qeq3Xa7ySmR2T@l|)ZutE z5S8eQwriWZw*BmHhsWPG8-EOx_cQUgYo_35`44U2ZIaJ7x9jz-*7M>MVm*tqJ|5?8|i)!=_r46Y<^mD&97GyIQb zG;k66p5;W$u^t$jaFfFu83EBH*=Zqh(W7Vcofot3_7A}C#SmKc>XaaI8Hikt_>$Me z;jXT*;lA0xT_L^0FXWxx669vRMBx8TYWS}<@DKZM;2(ZJ{dR~F0r$)VxSOvs;KuGC zJ8D=LNKd}28Ekx@ezsQ|2ShQe*`ue4OSFkStgi;+Rvq0xDRQp2oY*5eg4?oPPTrK` zCYLvrxGCUGH3giTGO>)fFDLFRi2F*;=&I;(g3XrNT2;c}-8GF8{CCnW3C z#H(#W$hfM$ywWsJ2GZ!cLJ}QVMKjYCc*E98|BqgLSn^2w8+H5Z*|wTJdTC)vo}Z6s zKd-IYf2(P~%Wgk*rR(-%Q?G7+726MHqY8nx0tuo*z;?>^0|{9AWmMa0Rn2DGtQhKG zv!Vf^W<4QVr^Z#-cu-&b(x3qG@$B{!S^r!6#rx<8?Y|whkp5_;(EtCY{R=hO{Vd#W z?zLCNo7;GW-Tz2T4`{;1YX3;xyj@m@I^1 z1M4%A^p}?E-Y#Z@``DRazcc6pwrm4wx+=b?CBj@J8yX2|qCUM`BP>b6L~(?COI%UDoA@}_ zIoQ4Shat$ z=8pWcdgI~=Idb^K<@XWP?;=ZKQEhDUo&=@sNkq1g?J8!$2>tKit`}v@XdtjP>)ASB z(T*h74(k=(C-c%?1_Wv9ZVxe<_y*aG+Kpb|R!-s2#OHATU&15jWvYg1Li4QRNfUe< z_3t8;;=bq&NNYnO@YftTbo-UR!)9cD2xo^^!cBxIc@Cx8D1mOGQ36^DO3Jw7nz1q% zzrlN5GRWcnU)>LwXn@i9Sv9&I&~IlUe{?rZGw`u{ z1?Vlp7lU5VS3Ue;Yy8F;;JS#Rf89q?LiStx`swz)&F2tY%CVeiIg3RtgKAJLYFRb4 zf(rI@Nalm>eHUC;b58Y5zC!=Zc9VU-@Py!NQ=OlNgXF`Gi`(G< zPkI{96;31bg^E6#AsqEjT)(0vBg>XK2d zunhP;@M}MpUl3;m=NlBUVD=G^aaFEV0Q;EWKmMMLu43~6#p*mi5|P&Tk8ECixc@Qn zsy{3Nfg}J~*s-&+HUIByO&{QG;+05QfZ`1))s7VDr2qc?=_eQYT;R>Io<5p(Jq3kh zGu)vWPIu_m9CxS>fgFpY4P_Sh0-=VQ*1)Ujay17Ew!HO6AJ$;Aqsx17a5nNo`oCnD zfdX$ufw0J}Ls$s_`4P-M>Hr8AyQb#Ab5lP5(W-lZNyFI#9sMLaV_odaXV*PLE%+*;|^~pp2xa21#+RJ#-kouzP8^6hdMf z{GKj%2S`1(=Kd`_H%P=xN~zWiFX^JJv)N{_=51SyB5%_w{08wgMn=IU;WWqx0l4Kq#69 z{^RipCqer`)1t@W3TF}28SRbRlHj{|igv>-E%@0Z3g7m%8*IP+9%CKyqfsY%JL2~^ zUluZqVC0O~qdW0Y>xcMqo>ljxZgg+o?P(W>v$`M#Ob6T&f1aT`ZoAEcLmKY*2h$AQ zZq4P=2~VCI^tyY^feYNn?sKQFmD7b}xBeT^#}WP7XTm0_#|$+^If{(18lxPM`nCB4#W6K{iSY<3`UDYNMOLp^MNk*g6s#-5bk~B z1e{O!1qqA2&&i3QEJ(e9nPq9dYt+q)=qmZZFCg3KDmmW(Rb0lyw#-v_Mw#kZ1(STS zB)-8;YzMU+=4N8^6rSl;AKXG@8|ZAf!kJg!m8ZQ$RbwZLD2`sxpCG9-FSI|=zOoDB z7q)5-c8B$b5|^9YyqEgLAgo1Rj;#N1|G3M&<{)_aLz#P*ggZE6&^l$ejg)J`R8*0h zI*D=s$1B>mu_KK7>i6IOsYxxx+AerZ^64I26{+3q!{G2OfLal@;hmQScmYy(y)G2a zeDZ`LX{=A?!}NF#G`62DvzKbN3mWaFRn)Rj%IyzxjprlvS&!$@y#N9jt#|P5)23x17U*61)yG^G~Zco_ZN0Dll z6os7@tR`57(i%@^X*k9?fIM_7#4GLfltR|a!B{_chb(AXm# zs7X{B?mrU@E=8mLu4ITtRd9{n9hz9~4$Z8D{BjTdaq18hG$Ga#`u#H0Wfv42RT(JS za~g4h$^Ec$o?$n$T-`XC_=LQ`S~f}wPN{IO`560ECXg5txQu=Mf3FtQPhukm1X|Sv$kgrc_a)&cbA*e2fBcX%`r%^aZGck}Q3m{~#(xn- zw3wlPV_IYcNoXvX7KnpG@>;a;o>5>Ri0?c9Zn)PMBzRzd51g-NLpoCp-UG=KVPVPQ z{H4*PINzZ@XkZZW(SX)J=pU4i(M6lU-g1(|_ms0EV2W7AE2fBYg~+Xx_w)0raOGZ> z)1jy5r1_|)D=+lTGto3#-@JB<){7)>&3YEOj(*g&^+-h58b986AlK(fq1Y70Yuyi4 z?OG-XU0O&-&xjS^;yHur=zQ~y6OwjPGKyPpKjvqcwKn*0+Knj*SfqCk*)3nLx<4oEZR?yWLjVR_J%+R45b(B#@I=Ch7;^}v>G6QwsprX zP>KXUQ{fvql%B9}1G!8q{{M_vl)4ROTMXv;O9ihcK)qIg!Cju~*fuSuM8D)_ppmGT z29=ePrB?jJ?D*b4uBpIV-#PFrZTQ3wd}pqaOY)IIR^6K!B!$jt7f;f#M4nSLrJGw9 z6uqByAmvkX)zM(pd+)=oijdS~;;T-ng|}z{`bF&Ggh#mTQl`6-n)Yk9DtmwiFgFE& zIoQu12TYfjfLFum?MO&t2nLY-!^eKM^hdcgZ|N3lF*X8`zGW#>Z)?@M#`jF?ZtfOu zo$rD+8}sz9q%l)83{z9Ua9#((kQ&>RkM+bY0{eSAMR4iib7AEWvWAD*Hb2-l!@3We zx?PaTXvoH3|C&#*%=rTyu(8X$Io+sV_B#>KLLQY5-W<)w_EGiv?@&3lGCx%m2!IAc z1BPsrE9U1|3|uWvd~)ML@0FV}`=&zr^8&r84OOxqLmXLkU$F$N1!2=y?FJ;m-iutE zSDHgvg<}%1i!C&+fZOB>Spu#so7?2XyA7bQis*d#xRvawnb1ChMW3^Q?HU^~1D1_E z7@zwMK>Nbk-~GNX#-go0XcRpW;tO8Cqp>DCJ}1_@_!U5vR!mM$)3*||%XgAR`&KC| zuek(;AWBp}^8mMky9kORPh!d#K|iwtki~1)fqWBzzKh^a~#fXrN}^LL~Td6!rE^=L~cN8>Vg zutUOGbCP;%_v43i)-0p5X18eH43>wfA@RG}>mt}&SqC5?tC8CUBGlO+btlnPd=-$8 zc!E>n!|cmp$C>B$NmI|&5~T+0AXL4~6Ka7LnTbdng6<5iVN^rv=mQ(D|ADRsRCXL= zFMyLxi-FDzYAxRaE!7g?4@olSUN4LX`V+ME&(jXUi4agaXrZ48#Eh&_$g=6Q)< zmZ`qHisEa&rX%=?y;u4A5G%E22k0Ub2^fh4TSz3=<@&T|q+5t*GJ8GW1G`o7Ju8nv zbgOaC1;`9OFe4vw_`qCzfE=*31bfT0wtK5n5uLCVj*$2%p^}MB4&cc^8XNukX>2H_ z5Nt&AH8zT|g2gsv5H=$;TQ;145L?Qd!|bStiGkdua@D6;vu8HQ^YXk+xRTMg%5}cp zI}Zftd>R4F8%F>$#u30=tq`E$n=czh)hYc6Y;$eMCLJ45fD)RsL*Kp{0XyRes615= zAo5L}d*x5yiT8e)f+w!#Ic;d_ZdM7DD7ns;C<8=EqdYIqO9KNDB^h#^pXbDtJfZVx zlrV1`CCnH{33IhVNiK^9nb{^agS?pnC2jLWr#>1bd*dj%4nACE1#xMeVYKL z5x3a5QNjM}N6{YorM5ZNPI^YSgW0IGGe>F2<7AN^cZy6M0}1QvB(tj6NLsI|h^0+P zMXco`mnw9z2z~)Rqo2E@mN65JzIY)&&?ea&3X16OC74o*rxi~bUU9R5Y9T!gFMKYeLg;bPa z!u}~hU5}z$k;#^Jc7Yf51+@qG(JYn=`xr?A+|=_$;6NW7RBUGfrW*JbXwdw=T2CB| zF#-C|AbUC+6V0{)oJ4ZkU1+7`UTt!lNb4wlA>NCAc)TcYzG9A)M`JK~y^zBcw(g=J zZ8A{rr(=nrrA5uBapLw=SYZk=$m#S%u+Bq&A5^k!+~r9vLoy z4&8KH1(~;!h;JrXFtJ1Xh%MOPC|2;?a_TA83>z;e@f=&U>XDWprJN8VzI$)%X1s)6 zb{kz8U<_y*nSbto0=iEI-Z=3Bx6~hQ^M$bS!?)5q!{JKl_mo^0njb6}VtgW_#><1S#;)KjQ=Cy_6$tcIFO0I#*_Qxg;j8WU&V1V(;+- z7_!(-d1keCC(|O+R1Y~=srOLtM#5S|2YC;(JIeWtDV6~O_>FGC*8~`uo6J=A1)4Gj zxZ;y}f{P8j2^+&wR*xQ0p zu{oNI6vv{CT6N<=#qoC984unzmf@dBo? z@4Iwe=(pvF2*2fYfaH?j;vTPYz z$xc$Uo*f;FBoi1*QR@e`QUk?c2crGczS6rT!>Dm2fow^SV7eKKP`cCnvK>Ch4INp4o!H=CsD1zI=(#Y`b9Bb-Weom026ptiF?f_9k7$DXQ0R@IZol6lMq`yI=aK%db-0UPQD_XR*!Vv z5<06#u`@=^$BF7?Ee#_B-^=*A>w_oarrcz%OQ;>mZ^=1+pquhAP9{B3ozhK00Kl>a zrWGu^?VEDkz=jo>FE%WMmd`-#&h{33DVW%D4u_9#txPF!pUZn@5%n3@5*+_m5-Nvf zsXC6%bFmn~{;du^*b<%P*+eJSCx+!Bz6)1na@D)zmSBN1|Xb%!ez1AX~#}(G&AKYQjIomW#>r2O}jf#`%`g(+ZJWZisie zA;N6|DjAPJ_-cSp!u#clxszNG#Xzo@L*Yuo*W*gUF?}-OnV!!!;hCP#HsS5`IVQiI zKHogs=?n2Jgnyr{1>p02m+txI%vz z`I{$Mgz5rtbE*r>n(72MPW4x7<5XuZb@#TPLv?Yf%AE9JcA9$6MG4E;TN2d+$|Nlo zw{U(2M~oIK2Q3s(4pn*@*aTB)nBDYjQYMnkq8RQLB!bAo9D1Ilo;C)IyJ)~jX2TT9 zH})5V9XXv~8@TsIZBj6{fsCaC!9G|A;j}LvkLlT4U>NA!LrfT-bnGYg1(VNMK9+S$ zVfmQOY}=iZ?HOcKCp6D=TdGXMkcs|TI-8f-zP>@jXzIEsRkp6I>pEmQg6)Fmj1@A1 zyNi=1x7slX90a8sO}2eJTG%lp#xHjqxn!0QE&dv24f@|TXy=b{Btp%e2GS(BM5fbp z{#Yr`P*vrs!-}9s&o&XA%H+O6ei^?`PXpv;9&*UdLiPhFufj^E<|@voSPth`94|aZJM)At%5{gPVw3( zyV(JejQr=KGYwFOj1#aIA?$cqC-uNV3X7JfZq*0APGZB>Rb%jbv6Gg#*&|K5n(lkv;u6+`UYgvuAf{=brS74Vu4d9oS2$fqc^p5 zGS&XkSCTaY>;3dGt#*g`1Dt8x$s(;;M+LKJM3%uSTmf)b`T>JGJVmB>6F_c{zb`28 zDUASEhqYiPnC{@6Oc^Lzm0=IaRWdcHQs-PqSarcA!S(Lohs3XBA|gC+m-YlJt18c?O^5|`r4-(?WMhXcJC&0+F$=*R_n{t7@N4y@)K`WU z(yS0#Z02z$eh)Nkl&g@Dp^Ps==bFW_?ex>g2G_Hcns+8pQN`L`9e;J3y(p$uTMGJ9lW?&j~ek$ z@kFYogkvt^`?-zFoJ;%PflbR)ZJy>(7r7lQk9X0kmdpt&u;x#q9W|qX$rLL50let) zW)=>i$BxqA6`c|LV?yVglJI$*aa<^r^>OIY^I3_nYiTg6 zb7^oyXJ;&{6dd*BaB|lBGC!P!`w0B2D#XwfDg$Y%E7_I=mz6oXeQK&9khm3Cy^IHF4i5DV0w*9HEs?FnBO_r?ye{6WxkLfpjbfdz?# zB=GeUj|Vs!Fc0=EorkOH*pp7H@t29tI}tr}3OeXFYIwFz(!hKHoM`90l*x24bSnPH z38!L$qH-ju-Tx6LV-%DWjce@Ri?ZH$##P5L$DE^*3di_~9+Jz!6;4W^9(KW84&+s2 zV>1q{igB0Iy^m>^Q{lLp^<+fuKaDqI)%h&@B$RDyl1V8MQ)vx4)n3b)&Y`Xvn~B8e zH4k}kpKD?6un_kYo_@J%i7ZMjMKBZ6?oj(3ZiH7QMj`bykzUfxDyXlxl3~h4YIQ%n z-6>;Sl)LzBGa|i%Kit9O|VRp+oIkCYUDNwH8V(o5abJUJ-z z!j-lI_cZy|+Q0Ox!Ar@^wmS1FUP=#T3pLO>OSPzTVav>T$HbcgKb>;vq zT|jxL0@2qF8mU70F;B~nm$dw7L^G&=?&THoL#_}P8JNMuebneD{A_!|Rfc}-s;2v2 zZ4q9SG;J!uU~(~5*RiHPp`DX+x7y>G6odc`uzYWh==Ey-xr$^$ypp4x6e|@ap$SgF z46VMoF~wd(?Q&T!CJ|Kj6je}Yx3-43sSs1_0;x?9~p2|R_25J26J)Uc%2 zJ|wS=4@4;9mq)A>g)ioKW!>>-fzyphSnD8mxxY!x!eoK`LVH8Je_m(l{$am79R;be z&0oezU#K1srbv__{optxhhWmcME6lB1AMnuctNCUjv;6gki(e+CJoq-Kyg_?ZIir; zduj4d$pg0#-#~hLP#f8->Xs9Iz%SPq?h`cFmC1}Df>&}=&u=mqs^1L}z2b&dl$mBg z#qgm!r9rhz-KbNIFsXEYv!)()OdV*pMY_Yrr48*yafj5h-)rF^>{hd$T)0jkSc*Hj zX|Qj$+Bds#Ln@<(0TpWRSpwkZS2Tdkm>A!SvyUt3YG;91%K#-6HLP0CL#JPdXK~ZGTK`v_u7k90#>rU>mF^Ry?!a75q4WW zKIrnlds#P1f7O!(l)r5eWN@A-pWnnZ$nvjEQ9gzCw+I^phpM>HJ~vf59i0JM2^f?+ zyeM5l<tns z9hCu-RplI8a@|c>{@W^xIHB3SPi`|fdbNA3JMJC$er5 zKj7S_Uf_Ps?kj;p^oY#+r{*Ed!%ByKdV2-8o2|2f$1&_OV?vNWy9uNvh7GFIU_%$+ z>0!;?0#wG~>puM&yv_7=`POoF{MMS-5bJ>R#XIh!8Uc-hJ&7a6zB6eK!>Se+dXa!1 zwU~!0zw$SLM}0lB%~nahb&ty+FdpzQ{$NXA{kl2w8KRjR6{enH#%D-ub>EL%@W!1; zZZ>y=e1(6_DLC=uhbLcXitZvx^pMUh*DwnP@ItQQLg@%Qs#ao;)#%?sRmE#`NQ!^B zmOMBZky`vkYyR$s+sSEIN32wG`pe6Bf%wP!1JFRR=iBi-p5-*ir*NY_9b(RHJ4aGO z6=$iCe!N3>JVH2AqZ%R_ z^ri%vf#2TV)9{<)8y=?_?3U4L>SYDdJMsSF-%aBpiPiT=&6Q0L0TchmbTiL zP{k5vn1mygx-a`MQi?b&h)%Ipwq~MA%csxDI)OdlZEWu5{5O~Nf%(BAu?%wm@?9^` zqRC^;=`6{uQ2TrNZs5HDG`$yQG5S=1d`WOrY$C@WCY#m^zp@?b+%yLJj~$EWzP@wB z-{X(k-y_9&0P|2U37iYbnGY6Deh520-P;!{>}hJ!C7{p7cpU$&4-SMtfbjRwR%JVs zO}iXM*=+}&YGsr~|H*2Fx#$Nm0((r8P` zK7tfEH@`zi@*Hku?WCy6v<=*k!`mkAHfU_P^kso{2c$5*#th=?)>* zquIg{YA55D+Liu1`uBg++A7YF!r2ck?U@$y)f`y<|CoCd_$aIEk2@@ph=vJbAZ|4X zYEaZrw?s)z5O4-38Wk0{3NDl?T7-;7K}ncI8HcfHi@W`oy0mDmrPf+pYQv&HwH4GV zN?WP6`i!G3YRe+kyx-rs&oeWDfVBVr`+47dKAC5`%em*Cd+xdCoO|wto$F&4@gl(s zRXfR5n_s2(yTbprww|uG;i|0W>b_5uaBo$3?jk-+>?2wk29M-Yf8rY=7o;%7pfSFIbPqx0J>D zI(P1R>etA}e`;f&jVbTgR#S<~Zdjd#$J1^T=2jC1N;9;im-bIi^w&ho0nS`xWzmt zjqM?C;2VdjjAnAo9Y6G>JR(!ldU%>&bx zq29N?P${k*`LL3+E_8c`BAv8dS0r!L#?rj5c&3~>yss9hq1n+(|I9v<{(-U!ylZ

      d=F6W#a#JV9Yh)aPb4p2X4^SsGM)7V~!WNsr$4 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

      sc;?m53I-cNTn(oa^KKq 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π?)!4uIA@Nqd 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

      C4gxl41vWKWp|mtpl*rnAFvWJY@^ON|UOhpm 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�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

      g@mU%5N?4$i&9?ZgY#wqF)M5bh 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%0AYu^+u;A|gfpjqA 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%0DvW>0>q|Q&4}{75L2_9nkB?b3*-UQON(T=S)HC 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

      -{;8wGu&kU0k`jXC7j!*?C8p+>S8~cpE$(N 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

      `lO{AaK)9cBY_ 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

      Yor+*0?>a+cbU4EL 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 z⁣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

      tU@#Q7fWZe= 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

      DUpZ;Vf9P&c*n7r~&J3?IhDy`!E`(jo zW7yr5aMa(^l4uuI1@ zSFR^)oya~WpzhOzL(ab8z;&A|2WK0~9hY^FgIRZ_?)in>ue0vhf?Wt(c!TEJ9HY9I z=ky*Z>|O?21GzU~sCTjPK_Pctw$VM;v+2E0pJ|@2BXd!X_h9R6)STX%5$t1_^}J5r zZtA`cv!0(VY`g)puHrtovb?KiyE7p_7;*E0Q%hsQY=^Bv#J+9Q!Fi|=?`1T!t= z9M}82f%OyYT*7|G<2C%S@i1Zc>6K|;vKfiHUo6+NTjdcF3g$J^xw+x*VK$Csm<=}u zx6l2}m2MOw*w0{B!`?v7d?@F(eiP<*-Xp!|VCx*#T)CM#2eQ+GH{T`u1xnNru|huhbB2wmssLigCL8^`HV_utt)?tfwTqyL57kN+2To%{N+ zdcK5oS>2_so*^D}HCxvGPwIKO|Ak%84gb^a>p9hrmG_G2l=t^Vc|Gp`CwALN!+yX% ztba}~SbP(Rq|=x$`jXX%2aCSs7?|zWv0?NjHy14Wk{ElpvF>)%M9SlGP{7B-$HTyIzQe{J_|Y}{8@UfKV(-S4MkSN4Bx_arvpCqM7n zu4LM^t<`T|#{|J*`+7{P-@exrEVl2pFt_gz{8@3@@SMoSHW_VbU?No(Hg<$HX1Qp) zXB8}LoDC~&_L$Q-BafO}~FZnga=*pHRhaeIAv&3}D)?<`p4g(CQHdvI+KGd>l!#>XY87|IjN#nS4_wAPM#UPlT zU$t)-0^1Z{UF8nMd5-fIe%OfTXRi7YIgh`VBjolg?CuWN#?poEUWCnyV~nsnp0IZ9 zhwAO_|08nsc4JP}a*V}k*Y*@PwjiwCxCc$SEpgf{+wSw-s?S=M`77n>?JiT4_kF_J z9Z=Z)5T@Nl3+6ahyAxsc<#oG6oiIN%?-=E z&q%p-@k8z&!av`qTg7b^%(RuWeU(hPl0BH^7AfRp^>!c1a;4peVfA(&&2p#Xhh3R+ zC3`%}m3C$IcAv;{rQIiUdS!W^%5r7dWcB5BOl`fagCF^mX}7fD_*FUkl#u&9VbeRQ zU@vC52kMw|C3_{ymF1Pym-p2ySLWq4nCX?}{Zp1J%PXrd?|WHpdHg7cOuMlk*{#>uE zTs<>?p659CKUcOZn?18*3+8&|Y@4QM9XjrlaVlS9Lo(YTv*Ef-6CMh)ZJ?g&XGVO#H|Tss$()anh3@6Z`8~wzGwVbAXqHg>CcP9Acb!cHF1lFp}t`K~q7 zvz@wlyxtyn%6-k1$*e;?G0XN4y78@aZH&#jv*o&)4fYfY<$m;I>^bBd-^YHW-1M09 zzvX_UTs<@EOW~aNnIGR}2HZ#JI;Sv_u;o?G@;UeL7QS)iV*bEmWXP>VSh@A_-PcOF zn{#_1`BYcFS7QWWb!9u^eD93sioy0E{ORT`=^pQ32V}YEBhxf+mJgp%W+wx z#ukA2{Zab`m+rXu{;2)EX~}NHd2M?`{76sTbr`JG>-tQWx~1GUSxz>Jbyi06F)g+0 zlClQaUnjQIu6N72XSo=g$y#AooZM2o-Yq+Two_j3mNEUA(u=m?F>M|SbM%ERwK0us z8Q96^wA8M5%i3V&^=?^z*lSZ-DpLtt4%racev?~j*SlrQ!A?4>rFOmBIy@TJ74-3i+r z7X75mYm5K*JNqlT+Fb@Wg0OM}iu9hya({zqx0GvUUD%kBHs-Sh>mw7aH|*Lzt?9m> zU^Bt)`lh9FK_Mqow`6@_A0zj1A?G~1$Aw3-UH1d8HQ4UmKeZuy3g&+Fw}L$jduGwr zbPqkjbnn*Y_`Qd>rfY$r`!p+W9@<**m>bM%FtURSwgGv0cv4I4zOML!nVc_xqXq_ z_S=@)`2s_h%67Q2?oDrePVZ~NZr?J!2G&J-R}yZ)#vo*ZT@CwYWNX^LOLp+EuFP_} zjm8(c9%Ie(kp;T}W*r=aZ+dv?nD_g=TWi;UW!?|@6>P1nD_e>muVeo|;@$&5kJ@b4 zp53+adToR0rmu|w(@pQNrkfH>@35wKObMN^1`MW~4uK@5cQ7@SFJK__1Wbp7VtNZ; z5+Ec%IM=0D&%4?;B>B$yzjOZC)kwPMe#&Sx8jWV&k?ml}dY`rZnAZAx9`d~JT?uRz z;^3KJRQ?spwnv~^^w>$2UB!p6>7_RIqFd4@Ln5r>W4NDn-yHT_mQu-&t48+rq~ z6U=?vy3qFm`~5*HvVhv84uZ1 z7mgx+J}rab!;^3EVOZ=DI=Bcwy$B+~M%BXUaK4TasQnfG&Imy&l0`Ox;`YW!fr?A{h2uS zH+X-^JWk^@-|kN1TT`E!Y`RbJ+Bx>5)@rHjpS(e&JHeJAqg^qtHS)F~qkm#^u(AK4 zv|$(xY)-J@V00hr*p6T;XagA+W$lY?yzlROmhR`<}*-7JCE9dbI>;TdmgPl~^ z*bi*AlUpmlBP&mx#}m%rMUt(uzQAtGn0dqAg!b|LKAt#aPbMv|Hw67HdCwHQQ%P&% zBM2co10?e82Z?ynk=!;>3kj*HmsA{^_|$j zP5|3+!P++hNTz4U=g?R2dv0Hn58jEH7dB=iAH1!zjlp0?X5KX>6;+ zu9~iI4{RHFUwztI|E{F^#N_>*IAp!9P6JycmkYaJUBb$1*;<(==DQVMw=OEMn=%&H z6nVF>Qg%rUYD4T!R^BJayA@*oR$6`DW687M{W3BGj_&^6h}ipJzO#5$_D{@r!F(@m zc!7NYw%Rl{5{JG&W!X5E%8Kne_jL8+>-G8@%6!4iy00IB-88&!x~6#8#b)lqZyknl z0}Bw?tQoTn4Q%#|y#$~y%6^B9#d(-)KR+;kQ(##|Us>M$xmC0(K&@OBAx}(K+6m{oNFq@MY7C**^(vGcf!2e!qnO>T<$T z1pD{Rg?~q99=9*4K9@Y)sq1?Xp6`KRu+f+O)MwvU6`K#e z_9HwVk7XNTHxiDf{9fX?U?!F6D#Vuae(1$ak8=K~foFeL9)~l%4>OwB{%$8&*!A~O z_G1UJEwIU8+8qhjX!j3bjdpDpN}hJ*HQId|OdB&0E3?VDebc+?f!SZ5A8Z|z1-28| zv0z*Z>)6go+{7+oVb`*E5evIs z!(GI}?q{S!pXmyp9hZvzT^ndIF#FrV`!kq!mzU2{+FiN^^|1S6`#WEu&oN8)?W6+x zDq{;2`)j{IyGs-{Vt*GYu-M=83M}@QqO0$R*BtFeAKm>}EMxXDV}Bh(_E@$Tvi5Do z>{A8LHrR2W1Hi1$oQn1S!6P{@7X5?Cq)VRt19|GRk8~8_PrMX9GkRSd=kl67;LX0( z=ETBc8xs}-bDN9UmW1`eb|==R*x`iRdFgr&;;=E6^#1VlJ+Ldl{%_m88XLdC?p)a} z%|p5`-evB#s-3jHi0SL1v$xgX-4Z*L@XkDK)#iol!I^hdfmwdadLI}1eg<|5Huwoh z!YmuxTgN=2y%O6XV<(VSR%~VT$m1|2j3zI=r!01Lwo5ado->L~E3k#Y#nhobHdVjp zB=gjyfvTZo7 zz9*1z(eB|Ctl!YRfpqZv9jP`v_YqIL`{{njvwVU#5T14iL&99*4bS@Gd;0o!0EOfJ z?n2t7+~4xvVt+3r?R|>Z>A)@`?R|=Evi@m9OuO5%-(oY9zc^#gO%vFo89RCUZp`0O zD7)tz-I%|(5<7B8H#R9_3oX!%EuFE|hSe~#X`Ie)en&!fycL$Jrqn?sz7xhX^-#xq+M*oqCT@5b)I#$eBWDH$D_*k zy~U0ME8q7PqkEp7(T^n#yUS6&+I4?jO1n3cFL?*fUE`J565sYtvYz8q?{u&69v{ek zuaNCvqwfaHL?uwRjcp$DGsm^nzk?z63&LF|wx!?I;bP)#g6uS~sHgI-Bs_)eS9w3g zt|BNqA2uv!v5;*q?A{69X!qVMdj|Uco!tlFHQIeR%la^*@EUbKSQoM7>^V3q;RUc0i7iuQ-zW4xw=I3AT1=g@Qy68v z;uQO*dL?fjcxAm3n-8q4S7L*~%6cU>KbXfi>Xm-;x^^|!=WX@p*kUt-9oNZkT1o3) zVE(=$_SbsK>6m_x_&~v%5m|Zm>qw?^CV2OOsc$&=^rTzvYfW<)l1;yRb!_w78(UMm zOR^e4u)eH*eQP@JO4)brt;v?yepz3MJ@rgap8dW#rnOZa=nY;+#x^Uk5gF?&F#Fek z`)gah|KfgZ1~%lIwltRP{@MoZNx0`$uH6)zHpH$Y%s5@Y^qW1BwYG|Qb+9LigLe<< z?ZNzgR$#WlVrS9r2lfWo`Cwbp5CryTu!%f)n32X>4A;^a?kXSmt+w?bve>UUo3K6D zF4;!#em||o3)ywyDZ3LpW_|7<3s&-!l^0lNmVKAlrIh`Ue92Q*USJ24*6wKZHQL?3 zupv)bdCGc?+MnPxMc)HEjP!UWefp%p>?ewSQ(%XX{$Qtm^*)ID^t(5_W{VenTon8G|jbLAIm+Z6HS_JzbKKJ84?O*gkJdXp5KFCL49$!q> z$4cjb6qwf@`ygDV(*A1WL4r0eAa+qUY%H3P8WuKo&YaT5=>--x&H%GawebkSeS0@! z1BksBvR*|wi>(QE=7Igv_x?$yYqIt4F0lKE1GAo<+^_b{>c9>H^E+Of00j0^uqDUz ztIy}9jZN9uXm=a1e`Oc9>-zq`*xmC->>luM?EX*f@3B8(_r(7PcF+A0yPnhks+|8P z_LrtReG}hf{w-(b+_=`k{i>z{ z!+f&a4#xj~v}@fAUf5l-z{2icVA}1A&Rq$c9oa8ECk$*KFwf~(vTS)yhc9ArPItnK zHsV5X?_Dk~usEkZe%j!&nV$7K2D%&Rz#cU1h~KAuPRRzxsF8#B5hyJfK(gP4-!A z&5Xr$T5LVSPtf-}Y=yp&U|(<1ul{Yh#mR3=m~-2v`Z%H3Xu>zo@GZD(Lu@ZXUtVg6 zF(@&Q$JPuOtwLqgMqu(v>^yk$f$hS9mA4FekFVoH?Zhq~^LT!=J!woQY!b20kG3Lq z37+Fa@=ASo59*)v**0rqXM*qHX*l_DK)MbGwp7M!LjzkOV<%@D z%6jcq_MB`(Y@LivDr{J<5-*q4EaX=vScg_2)`r-s1nY+W2evwC>&8#AFY?wPoO0)Y zYWD&g0ru#}^z*?yzOxd}B)kq5<4tTz_e%B&mnZGA2;ppk{aE)$yTN<+^BONO`_#%V z0Ks;nlyxk$Q$cNnt;O=YKRd1Qs|1v+hA+Mcs z`_zW~w1#}x9g}foE$6NV-h_tj;aBh{HEh?fc61p$PWn;iwR<$7ap`CPIveuy{CK{- zZ`VeiuGP#I+`n03f2)7|@PpJS=hlY&K=STe>|c9BelPMXvfc0$``6C?jUjC~eEwmT zU;QqQA7UPhP>x%$$z{d|4KtX&R^Sr&egl^euzJ1y;`wBZhi8~ z7`l+_Y{(x$zCCY0g6$WPx10_4Q(lwFcaSz%UU7W2Tl)V^L%tQca{Hi${4nz2m;2Mv zke@<6{IH!3yVmnk@5F}uq=vlymwfe>`Kb;0X$|?XYdMv2;~VmpTe!AEl(E6{EbOk|P_EmMFXhINFXbkX??8v)OY}@3-T zQSZzBnM{5-9E0c4w1&LxRk?i>`3Z0hH=);drOc1PZkhL4iv8@obftJQ&*7W8I$XO$ ztUD`~*1>5#)b;wyx*oLb)cI%|hnt>bxam1ky7oD`R?bzV>B9px@|Ar zb=e00Xqq#vP1EO2>tEN>CyE?W;L99e(`R-j&wJr*(5$cX~_Qzay>FPk8#L2Rr@K zCuI8{nl)JFwPMl%NBdZ(t6Hi)DPQ|F0OQr*(-@1Im{8Xu+>534^wYU@iL{=csyl54 z5jeBCp4$~IBR*AKCRt`Dcz&m)%Pr$wIqX+mG}e`e>ta`z5~@o(SiRQHY6n71<=g{J zwX#}OY{mL2?Nqzjw9Gq{Xx`me&21{#9%3Rb+jx*rn!W+r+{(Ah4b1%1cnN7csi9Utrxc3BvfrMEI zGjYE%<8oEkz~#Ues5+P$ww>Uo{RXnPt?n^lIzrPxEYR=Ii77q7uBLH zklr8i{w=>O5;{?A#rH65-_hsTEL32iA}lk}RV+uN#{2+i&Ns^%d+No-?(+NvRJAL91b zwrV;;gL_wDs1)h%+Kh%8N!H|{zvmv>c7 zb|XvkVH7TSTN%H0T-9oxc*Pv2ANY}H*AkwDSxd(NE*;ixm-a~b%r`9^IZnT#igYaw3Z-6O9CL|h zCjrualk7^_z9~H*ue~HKP^ER#K3#pP1;(cJTdwmmFe%SFV^p*17!b{T%5DV^ zc3o_79k1%Sbkwq)wP?*+w012TRg2cGMeh$CdCt(0GhN;zx}ui5tQOUX<<5g#TiZ6Z zq{NZvpr2;DVcv0xZ5s0SF{HH^44L4;|Kax z=J#sQ(?z}=uHjnv`qfF=a2);9&>i}Rfd}S(n@-C&J?#u^$hVU(_ish=p-VlTAkAYL06;YHrRGTUA{mP8s#M zOw8MTC&J~r9EZAGHLJ@qa8r(>Jf{A=XL(F($XDO?+&-`&-`%ik#A?4!TYU=MSd^tM=Q#`gKfhJ7hgSF zx<4)R)~7LSGdTVd<*`?Tog>JX^}+kIGJkDDelq!XbQ<()DtUb{SYHO_dfP$X`#I0Q z38W39sUP9TH^`Oc;r^8Q)`q-#2cpAZd9^p>J^$L-X3(!u@er#9rn56|zioc}xH zDApH)<1_79ufAJ;9ps0THe5$NwLX;jiR3%k)sXe@MQp_x8$mC-hjldgRK?V`awQ@YEN+1Kz#7)6|`=o~liOyNmyxAO?Mno!sflP6|b%}(eb-2`u=%xedGg!HX+s2Tc5WgzD7 zHN?&;u;;-Z1RDqDFU7+5a)+{I1Gf?)5H))%o&*^gnI6yJ~z+3Aqg zm*w$^WRLpnZ(QUJ249yjN59%{?E+g5Y?a})_6KU>twFpjWx6$S@HQr`?CAyOd8F*+ z#MTXMgzO~JA-gx}?cps{_%aqpPip6ORiiBIR@x`)n(xWF1U9j~hK0W4k$rku-Wh;r zxyXB)@IKh0VETfZ>I!bozMrr5+aJqCjL(@=mr!@tgQvbBU>}iQfrs5olm6eu{Ql35 z$odYDzRXY9f^-+hZFphB^IM+hj=q$<5t-*X`yj#k;`!)O)))QPKY70+4530;Cjxt& zwDo>VV}jeF-tS2|cvDGRUk)eM7i~n{J%V)b{zO_|;yfySnWy0Wg|uxur&3+^OVaD% zz-q+$vJAm`yfxTX#9`wb(w>7y71+0=)pu8cjiCJQK-MyFS)8D~r@$5yU=gF(t9QXH zqp-0avhK%dFnuZa!~G7P^O9IDzXEG4mx-BY+w>8<;K>6PDt1GG{VikP7MOFDsBc`>w-BS96Ywm94M=+)Syq;j*YgdDL-xoldjgoU9*eWsxCzSUZouaH5v-AS zF0%5p7y8c2nDw;8Jm&unTO58b_T&Ggz9`FUtJR^K)~>7C72~l>!dA$>h%K9K_&Wyc zi&)e@e@~$7zF@Y&UbmuL#8w1bZg8#4gSRr6$8r<4Th3)Y-G_Ye)`#acFZu`SvkmdM z@x1Jx>TdL3cOUiHwlVab0j4ht{D?0L7QWmC zPhX-v(7#`U=}T9k@AqKZSd}r7t`#ivGJ;}fNRfzpA+=pDWt}U>~!QR@2ak&C}3T!v9_X_OgjLn6^+ECx~S)cVQuou9-$Hrp0 zZpfPgrj27VMiEs^YggTQED086#k_uqEm>fH&)5b9_HD*?FR<@2)>UBNXY7&!WBR*f zBd*h4<83EBkG9P`G5d4Ym(Bv?v2v>8W57_;qmG|m@OVW!9iyAU8jsN}1<(58dHG1j zY%BaGkoCoDtmPuMJec*xJ_sT`j``LFZ_CX442&Z0!TY@6+5b!R4`tTfvJTmvYu9%F zEy8j4(&HgCwZKF(C z_vJ1GoL|lRtH7M&aiZR7rwdi-X@(JELUq3W%Jh}_j+hD&U);}>$(9vk>I{ohW!WW!?5i@?-p*@wPMk$rfcrfTT|YwBC`Wij}{TMX>WnQOm4FR>Hmtzqm+vb!4Bz&~R5 z4~6W~$ZBJ$!p2-+%K9$0<)Y6adu!&2d!5{3wWicZB3nEE!Th$S=T?broiY7W_Hee3 zSe^NRhy%0Vq`vQo+4Ua!2Cx$)ram!c#Scbit+kudH^a2+K2IZz20M{Bc!$BeV&kUD zb}g{uz!u+-Idcl^B(M#^tfw9$Z8*o^_rGBbia2CXhW8};{0&K9V@c1=K-y$vT=eBh z!U|v=#4ch_5%ljg;*dRw4f^7D2ui!hjcTfX3l_Xn;OXB%1$HXf0bplkY-aS*tw`l^ z1hI>Dqg=SOCVlcek1UsW3v5x+$39FyA0h3^Ta)n8*8Hw5mx0)Z1j}F{3MqI?fGPVa z2V2a2@!a?K&g+nNu}tH4^qY_l-VgBh-m9r<&-G?9(i%i6Z<-2G`)3M`yj{d*Hj;$l;?e|*j3qQ zG4FrH-Y>B6`1O+mYjq=h@%vL}!8^6EaR%4|@TN9k%9hw!@VfSIN@F~haq@-O-#1c( zsSb#}L(rECvoD^Piy?dKp-t&sU$W^OJb-v1F#88k6Xr2r1?)&-b}1d-orpIAJCoS` zP@nURDSIg-eGv=UyTHstNpngm`x00j%Nt04eN0n&`z^4W!G2D|6URu|Tfp>XrMz#Y zzKhu&viHK%hV4vX{{{90H+F9l2j-lLr>PG`fpwDB?gE9rUBT36`2_C}uoK4A+9uSb z^Urd-6s%WaqvTmGo~Oa{x)u6AQySDR5%M<$!%=CaZQ^SjO^ z)(KC$ey=iQcL&pF`_`5VF4gPCNoH7#E@S)b(=(?i9U)~gRUHWS-h^6xktgQ8!~ADA z)t|+P9Rl_o*c+rn_HeM)bDGk4tor5IIcY}U0%U@BG`yAJaX3@C$n)(_dC@kBT>?*E z2C0WdEPRQ!PVATPZb08S(qY5n^+&M1A%rizvC;3`ru6NB;9Ui8H87}kU;LJyJjW`6 zcOoad`x|`*?Vb$g{$5Agydn12dKj{&!gGK7KnP!Ae;+S+XTY16hNLX331F7Xy~u{X zDPZpJJcaBFVD9fnVBt&bug{i3_GNhP?@Wa+vA^FIyg$G@slgY&U#Bmd6~0_X`n5~x z`xLT2hTR2ko?kSj-}r?uzXtm=vOeF6a`E2bo}bsg8~S5B&m$=59z&kj;ovzgWcwWb zNqM%J)BTF`vf%v!Y&I~*ghE!{qM1iB+4u`5&j_%tf@d3|jq?iZ^o(so9Qyo@|0V3( z>V;jgnvLfNf3LKZY+ZmdkUj zJRZ@{7JC5R{$Si*rM6CNDl28}@3Ogv>|e--jmd2ESlZ`mJVpzH$+Mqu3*q8>=!Vh@j8AXS-sLWNcc2S?2oOUf9sCzJy)Wrr(%7 zw@h<=oI&h(LMt7|7qeZl;|R|#*PhOzeJ$oj{nzfX1r$ z=P@Fx2D3rl3S{JoFHcxumF6^OJjo=xKJj^cpe)*m;ECOij*zv!?~knI!Y(J--x2?m z{n(?xexEV>+rfJ}W4B~qsKRL+cJmR<)q|ziZj0@ikC8TPN5%YZP{@9cu{RIln!>ig`k`mzxti1aZ-IGFrGI`i ziT@t{Z3p1~I`$C$Mc-SybFy6w;pW0C8y9B=*YJCsv1JXyY&{Y2hySxtx z+pW{wZXbz+|1AH&<7IBbZiFR*s<>k=$0x=x8FwqeFj%r?Y! zAbh`Pb2T%{)hD(iLD^ReYz?qk_iC;-&SfC4gCH-yVJ-x2mFM`-LiaJIRbb93pzLq(nPd;yr}BO%JCcn@oX}jYPaOKhzT-Y1u!Z4u z;#a>jnk$CH(jvAmC(g**YV*ws1~v>{j46oihOGV57|TdJu#ucFbVHI|v9VwWfbEcd z5gVT|$A0xs%;(+8dL9RM4VX6O&Sfvp?9Z}ew zoO!Qh%=&si{@=>}zKWmvB4!&W_DI2d73||>)61ELzC=_LkTQ*b03gWo*lQ z&S>M08M~1NL!N!Pr`SFd52H>X?P9-j0m9DnH`n_S@}7bB(<_?Odngo5;@M8hyPi1o zJrD1fS2m~bCE#MRu`2OgU@h1$c@Jftn7W=q@tyZJSIcIe*dM??;Wev^^6?1lC^~gw z{HL*DK7mo~`!r*SlokI8n?&rlB5um%r|hQ)Sa-k87Ri{t24{H5<>X*3;2E`-aeI!vK<)r8}T%4b>2kM)|WpL%P~ZK@%liKCoJkq?`+qynn+lV zx}j{?{VnOH*C-bR#ng8w!Q*Dx1~wmh#Lg_RD>C*<#yIrp9FaGFwrlx~C5)S`r8*58 zmW!Bn2lQ>JI^hNODA+ACw4`w{?ao5J6UVoqV%ny-h>Zl(2HpAOpV)SpHx3)_L&@7X z@0-{@@YY?trTTS&?Ve@d2h+Dw_CTBqUsmEmzspiB^>UH7G1wVkeep#X#fF1@K{?M< z_%|Z+J^{l_58j^&-ddUGx6s3v(03SE_;N0T4INzgqK<2KGMMu&#dTloWw3F}wp0fo z8|Bj8w^jyG|Kz;}?-qERO6hor4b8l(3%jqwyK0k`>W%{IGh59U`_18Be=zMH1Qz8I zcF!t!1L4ie18Ih7>$0M9jqqOj*lh{HDObT?*Q9{m|{)X%fz<#ClQA)H=^%c$et&G-3)d)7+us< zU$pUe(ofJSZzYzu1=x{$i><)A zz}ok1N#8aO?BtBCPsI()V=eFWjM+wPN%(;W=9dt=h^p|4DyoB7{hIxq(Sm2uk8Mdmw`xnZ zO)eLCj!zytwI$6F6S7Bwy-T62OB|TvlQaB;zH4EFqDz={H+bX0wxT0-X_mE4I_@%( zM#wUA5u2B=519AeE@JZ##11A_pV)#Kb6g@Y`*DwOfp^Tna*;QC=Dkv2gEAI#2+F+) zdw!2>2x%9KC%!SbP(o^0e2;AF%#n8?!RL7=7MRyqpXZGu)<11b!iLX3t|CowB^&Yl z{l6kq~KYW@}|qjP2N>t?W^>v&+#C3CD{JU_NuqfVpnHb z&z-Pwea5&&s$&b__@n6a2id{bxPy{sU~2!sms-^kvaP-%?<6 zGHJ_|ROGO+eCGYW;2pqrd2!F~emJ(N-R}xtP6E^CwF+N;40CK#U#=~92Zasnhc5?b z-W%+r*o@eHobdG8y{Zo4z^DS%-0SqJxD3>>FES4^b?j@fKOwtGfq4v-T@G8J&vsJG zanHb>&HB2yhKu>k`b5GZyl8E^71*Vu=Xju3x+g((x~AA}9CUxL>QVd)%wuys*e@w( z;KcLZ{vEIxbJ=U-7Q%{cz3bn#7rTwH!O^{{6}WDOe~Y8|^}TynSF$azmBF5Z=h$Un zUUMcq)T{bUfzgGiT94^f?NO8qLjs96uE0is-Md%s%6VQw-#TDT=({SH6_@SQcKYq( zLrJ@M-aF@u-+8wmuB<$ouk?-NFNtxd2k$QO!P}Jd(?|5K&$*$jnDcFGAJwTpy$-SS za&HC}vbN9q@&d6->C1WKe~j1Yi}wb>>p(_d2ITV77cqSiYxIR7tRzcUqv|A_{7&!s ze2ZfH6JF(m{9Yq5lddU`l9=&l)D805mA4DwjS0Q#a|MX)P0$yH2I{Cd|XPswXP+!(8Z2TD31@EP! zdshc%p4STR9meqD&Ncbm66=?-Hu|aB727gn=g!=XU6Qf&xPS%kvW#6{V3w6OzFxYU zcVNagrcx@~PJT9Iox?Y-J-Ae#!`D7R$@97;k6lUS7uT&(1s2z>v%ol&5-+Y>4;ENl zw;lou8%z8fU)F2j{VQK=d&0l)<;=qFf5(?);g2AkK5V-5`vLtETZ{1R2GiB&h7O+d zhR@Ho;H{ZuHzT&Ko1Snn;aT+UKpZ^JUu{@caUKQl;DR?Y^GX{Vg6YeR4ZKEQJcio% zPrg`g{~cd!hZ@UebFjv8k=N*pKKyrl*)sF~Q@L!LdC|stJhmt3%dx~!&hqr7S+8~Stf!5~==y>;I`hh7v@2L+xyWlQmtC^#e>z6HXWqXn7wi6^g#YPr zhC#>l`KNJ)gU9swr*VdnhxMtCGpvmtj&EIkVxRgrgP8Bhm*Wg#3ua!7GnBj-XAoN+ zUN0syiE#!o9@iurbluZ2DrIAwL9931S736K1xZ^s#O46o7c9mZ#J)pcInE%)Epp<; zI77*caR#v&GB3s%N?wdJcg@b{|bV_c*-6 zm^>iH8MN^`u+_jmL$Ftty^WJ+$wT|p#~Jj`@o}*jXIL5R9)jZso+sK6V@Rs{a8PUg z_Xc906F!@*HNEr1t|Z>s#6Iu28oMF;F_`o0`HoLupMW_(@h)JV)4LLEm!0dEVc*2t zi@e((WKv7@x_C`}iSRAhUBv2>w;Md?W_yO1|8y^AKg>Dde1C+)kg%nQoqKQ52A*@X z$v*t3;zq7%#!6U-tOKD@d!p6Dq z^x1nWeHljxpC=VOf0N{x>Pc*OVN-of^>?Jhm!mT8&zV#5RxSK<{z3H}3}$^Pc|4-7 z>pKSCvdc5)M)u{WaCuagz6t#(X%}VVo6s@FEjEeZxR38qxCGB{LPvjBefzV)a^3=4 z?uXccV3z6W1?Iaw&YA7|9>E(;q5Y?FQQt0^_wUL@-maPV@5)8qZt%)-aTk4V>73N( zlXeli3ZI>~c`|8z7HeiTEAuRWQ((S>BRFMIby2Jfwm?Oo`5C1Z~k*dH=>J7p2F&w(w&eAaQVhT1eg z@NB2_oMZTCaOWMiT|p$BBL@*X@34JRTufMMKf(4S@1nkA2y39vXA{~L+XR6_#Ik z^_N(*CE{Nad`@x`f}w9MHaKRqG}~Ob4XM8~yC~`4Z4A#jf@})|+Z4<>f*vfeO~9NZ zXcpq&jU+t)UR*24rnL8E?`EEDlYK7x_oqr=(U-W_cqt(@Ec*A}!%z%~cOkK3WTOi# z?lov)k}ukD?7{u*0;9_G*x$o4&wl$mC~mv0`}!gFDcFtMHK%uW-8ZqnX5K})OvPGB zD|=P0r(*rUoafeSTFAbRtk2Y)-%Vc@CdBjj$H3%4sVw_pwBy%gSux9b^0YqnIiJNG zU%j^v^8^!{H=IWLYp_qT&ws+kfjJlZMcF@j+k$!Rd9lE@1N$88tBlPD?-Z2SPTKd^ zKe5xmY$s2GAJ|!7|Fufr>bZh2`A0usSh3-aQb_3Iw`-u7PVI%rO${vz=BY(t~4GLczm(uS0 z1=a3c7ntp>yqj|SBF|?7Vjla@=Y5{@=h-I>Y-up(&-)V?$>j58#Ll1hJaHVOjY&Iy z-lxQvN$0|>#Ll1h1##$G5hWAPZ>!H^r!W47%`)g9?NVMFN01NMb>Vs4@?Jt;%InrX z1s2z>Tfy{2-h~9OTW=LuT({l^3maQxUv>s_DShcAA3Wci)EBS6jlOVd*0JzqN3cd; z&M2_(-jzf7QWd2HTq&dFtG6DZ7_Xt z|GfS#{83x|H$P&$K2Qx^sHI+C#D2)UNu1^?9A%9(}JC*bHFW_$792UrO1d zvoFKJza=>T;J(Bzs}Ve>oqzC1(j==9gsTY7KX@#$c0<$AQRbN<1S_dPOa ze$`ezTlnI&@iOKW99HOC3her?+tP1{NhZ5K|CkCkfY|+7h43N4`3&2^!miiLwb9ob zlE*`zea51!{awqYhb)+~p0k$Q@8;}RpC?J|Zm?aa@cuMBlIeWCm4x?dJ})aV@73ZN znz9eE(eV=BIS3nGpY4}?Szu3s*)JK2!}8daeq(Mw+q&f9wb5&j{pWRvgLfQh`^w)H zm^@{7MX$O_*}K3()_VhaoscY-l6PG$7wGBS-)Pr<^>Hb&%L#Wgzu&3E>Jz(x;M{xP z6xfxdoqNw?q%U3<1`(V?uoEm~CuZ#T1$J@9JeI+;pQzov*cR9XFzwz4MluEa56%r3 z{W@{m3w>FUxX~A{524TJx$?d0Nh&i}S4Bz=*$Kf!qgpCk_KVA9SjcyPh9U*&vq=YoaZUx79Hay6K~+(F#v%bj2$ zYhU?)(wCtaYxHGNFm3q!FMNsp{kZUDF*Z79-Kc^WWiYY84noGc6}`vdKb2pU%dY|4 zH_P-9g7?Im5W83}WA5+hd&_&ApntZ>a?0cJ82P}$7w=&M3tu`4EPRPRtNQHM*_Y}d z9scbBHgv_d>SQpIN$1HlP@YHLM`^Mc&JVv0(4bQoBxzy$x>< z+Jg@Y>~k>ZqH{J0Wjo;6?!7my`+6j1-)Hm}{p!yz#byTk^Q_I)WYQr!YsO|nZ(y@$ zY~KQ#JL{WLVDo0)OnKkfl-{*l>YcvTO{86LKOL|2z($eRhP*abJ1pPxw~;hoX|6K+ zW~ffzwK<#EdEL$e3t4$zG1qVO;mD@G(b#7Pr2CNI9mIyqpBqqZmdjb5{pOd!Mv@NR z0boO)ACT_f*p>7f;)}pG2J=1g;2j8d1eoIos7$;QGVe4T4&K3F6XEfgKJ_8CgZnR+ zE-luU-kxx=v`3;=UXdHE;k*ov1o2AUYN}O=v|}={P-W74$vMB6s@l`K8fLmRtp}y` zglk0x*47EB?Q`vy#8rpwQPpBg)!gKIy0l(9t$WqhsU3smvZ8HFQ(9NUOxw4z-TGI{ zxMIU2Mf$2DeNvG=uSgd~RIi6__MH8(WoAIz_`HO8XUY!@xE8zHEVUBuRinB;EOnO? zXPp|jPDhFd)S?+`QG0rws`fC7&3mP%F;!u(oORo-9&7`_qb-1dU86$323r%!=ES_X) zzuayb0S0~7s9I}L+ak4GE$Zmr26KFK^&Mwy|5`Lp^F-gNoVynFuSM(EDXLC8Uwhn3 zu2ZPKIDY+;dd`HcUTyIm!`f1twaD~OYTlCSZio)3kytyjQ+4dN+ipWmnJ|@NQvE6M z+S0$ny3%tQU(a%g(tFr-piH!O)N`$M|8%BcG=#swBFa9e4smde|NGg@e=peZgf(2vdamE zn4AY?g*C6KL;{Ub+xs|jtX5%`ImWmDZL_}h5da;ZGl`Y-sf8#V`)cKugdj6$9o12ve_Qk zYFo=8o!|9jw>G79JIpQ`e~~m_*uW79e=s2rwu?WwB4Z{4WiB#sY{E}y5{`DTCd6WWs*Ostr)^8mC}ZitX}wf!Z5zDwj9!bDP8<>}?bQ*~=Ba5tF|FHM zGxFtpj8B<M3{2~;8lE<$_N}@$ z@h7HrSFc{g%qzhzrDo50R-B)(%zx7`4@GOkJPd;x@}1;YM4!R=RxfJE zkK+96V4J~t6(*1$L)zecAaOc$Ay@h_z9H{?AOn#x*uG6{$WLm>PbS|E*Wf%QQ^|Lb z9!_wclJ*8a{*_-H-*nFt;k+Va8uAkx@>3e})!%yVe+PNTB~n<3@?ajA3FHmul5c08 zn<=CX^D=L$$A_9&8TKJ>*KRO@rK@RVwcF+YKdpw)U)XJk#>*A=+&I=<|Jezav1wf! zvuH~F5Wa;2)>O5p^{})a%6fscZ-c9LZbt?;r*%tOH@RLW;mdTSbZ5c`x~?7NWqO%D zB&~N%>%rqi7OsX!$&3Ci5t;O5aoYam=43DPd48ad7SkOy_f1w0rZnpg#{1J&M-m*j z?qcmzrP>(wu=K?>e!H3QwG;06!m#u;X}>8gfBl4ej6KpKqY_fPPqe>y9LIa_*=zOH zdq=Uiz?x{Y4k!KZuyZo+EOZ9Xcjk^n-%JH|0oXZU{;nr@{M0wu7}dKQo073H8ABv} zkJot*E+XwBW_jt~rli#;b|SLN4X(Y@7ud;Q8-Tsec6VFeTwseK`zq<+odUL18}9)Y znD4W#32#Ge**+@kSlu>YF;3={M;|^JQoB;APi%j}ujcRmy`b1ZgvnqlqXX6HTK98e z@B8fp2KGy^Imyfg7Wy2AdL7w`1$GLU7ipj42G24Y3h%~@wUeJ2=lx!BT*Gz*^Strf ztBVpV+fFO)UAA`ZK zA${RewfE%7R=8jN1ndE@T}f+K-nE&xFKPWNdHWSS>-zi1EXSFvKovI`@3R}0V+ELY}FRVv?=FJNxQTYR;7N9UA*=?zrg&B;T7;KkC64fiq;is zZ7|97+bqleAXOW!Y!gu7AN(c5(xztXRmdgzST0Zx@(@Dq{c0*h0h}59{ANq+QDT zV*gEj@}7nF$%xu{5!iEJ*2z`bu7Ao#om`D{@ZQS2sHf_in)Tg98n=4Lo}Xn05r4x* z{acK*OX;8Ow>IQ`2TxztBTe<_p>O?yXJuF4K46XK$I%7PStQk`&m?>33;#T49mlhM zcAxY`%yI7N7fAi@I(97Bc05GwEO>#9F0j+#`HlYf3hXklS68NQMa*s{8;-5Dp>HAL zu4ZU>9{7rc1S-!|nid}!ObcF(8{v9Vxp%ustrEwBs0 zrtDDr-ceweXKXZaVD@IdLbfj_bYRzkeX=dzYb$uyXKdH(vvzOD7z0#EmTFv$o|$uK zcSeLst50lCup_pq)w#f~0<-+~M+f3P>X6sq;GGTcew1BZU>Abjyj$)4z~CL9_4yn; z%I`pJW5ahEEyUS0EY;_W=!-<18KJ((;DtRXoJU_xeu?Ym{Wcgk8PwZ@h zHvUpzr-He^UdtN&+rIE`B0PPujSF9HAg$e#3e0v?eQy&Z-lP29DR>W%)|aIUUv2?Y z*1k{U`MXNNdja0{$ex<9>B&D#J@J~iIBES8`yR|X`ALEKKDl-Bvs|y_InT#6!)X&K zfRKHO?ec!#ryH9J)_)Y|O^=<7 z^U`Zsl;4u1Eoa-U;60ytkApQH-zPF}8RCs7OTYQwSzz0O`8|H? zoOb2;Oj4f5H?Z|G&;Ds(qe$D&_IwX)3)1TI{v)u}Nz3cY&IYz-=J~#ym}T(-nB_8p zw2S2z<+3K};JpOTay|eI@gC)TV8MG8p7ka6O&fmzbH0jG3Z8u^^<4zkSbi609*4W~ z_XSIx;T>ab5xWO$B-l?#ldQx%Z@q5Oj3uAN-p;a@7TEh)_7*UYZz+3y&X+dc1k=Bg z_ceLTMSKdu@|%O$r7XWVr{z6IaDV9<|5N$V<*n;`k+k}{h#TwQ*n;;mY4zPk+*p3M zXP$azVSne?s%DdHdOq=#G0*-p++!P|yfrebG_{hIgv;RiM$^L$?^uyer1z}qF)XJs!WoC)@F zfn5f6E!Zje6SCGZc|HRP>Xf>;K$@K7E?f{kHoN z*h~%BeDLN0vu;qVY24EKv>4br#M-p{sPgIkD7wZyuyx^yg^l*i+o!;Wl9qRQ#?-ed z;W8T7tqW{T(i`)F#-=zDWq*9;U0-15gUtqScbp5}nHl?{z)s2fj?HDN-EkRne!`Hw zBx4U`%=3Cv^!SePaMJR`wg&qn9a}EdJ+L)r?}>H7YnzqtrWd@uvaHvU&?lyBiR}wE zKeC$@y#2GjGYf1b99m{>zK>hjSP$$SZXhNX*g9Z-TVq==_n&Mvn(+AyP4#a`h>c>U zY=1};R}bEx!tPe^oSS0j0^1tQvN|ne6l1!cuCQ7Yql~rv6?>iFToOmX6DfJ#(&E4FBXdHlt^PY&Kv8C$%-HYcsmQ?h^R+ahBx7npq>d2be&ZJpSA1-1iN zqkmrG8vWZTW2JvPXRP#ZESNT)DQtLdiP<-deLEpz@m(GFsG_5u2ASZfmly8_JlG=>tRGU;<3k5`}JNq4R<+PIqFd>W3;hwL?A z&Zn_nf!zppHrQ<$v;DG7+Gq#fIU`n9%zK6tx9y$_L2OjU4lZQR2D^z0?qi~m-8J(j z6qxOX`nIH^1@EAY9YMhbHYV%yckE)EF4Z0A`Psg;Z`KE9AJ{n}`coEE{lxo{*!Nr) z1q+_{#PV$a`0v3xvEVuPk-X=?JQuVZ`f9Hp)#RxH)lT^G7<_F|6zM#2&V+?XyXcQ? zwR0vcM;tuQpF6-#YrsCBy)Ut0nYSB?Fq8B>Osu|z!9t(BbC8v%AKDGxIMVXm7mwEi zhj-5-Bj#`X#ccP3cTmRG1ydhIk$z|9cbsn^?NVavVo;kU=DXLS@2ITrC^(j9$vc#7 z!E?;tIT+$x(7*e^{El-RU$G4d&aL3L6~aHyY5ns#Na%Yc%P!0|%deEZ6Tm!_`Zu8c zO`?m~Whi!DhA$zhZ)UK=3I8~<`@8sJUX!PQ`3%D{5c7Ck2^PPH61$u*@F;kNzAG~J zWPx3ovCS!{uzOX;VqPxwc}}a(FMU_6${zD(6{z4n$r8~{|fUu_yXZxZq63N zcX?v35S|9}8w`Pc4E8?Q_tclbJ_V~L@hyLB1vU+6PO#PUu~gsR2+Dp|$o>ON*>Qzz z3p=gsl38{MDE3G8UBCO>7u%fRH}Id%`oua2SKr!HZJhOqok3WO4$^G2r+G+(2DuExI5n#4(6>r!O_nH)TO7q; z>+{IEh|LMlZ-LK4tPL@`J=G=ftk;392{t3wl*6(Oc~tr8UU(1Y@)P?>mhH;>CbkWj zW#xBhL!V=%Pa%65l|qbcwF_Z`Kk?o+abUZW{u$W11-3is)4%SXPe|E4GIngi+lzG9 zm)vg^*xs3Ub%A-VXqVlq+dYu9*U%YIt}j%j^gEd^KX0mkyH-pa!=`avB@W&`r0@NP zxmyZs-;7;VVEdEq_f=EBDq;JKHCee=BlFB0&Glz2Vl>U^+qK%#hS)Wkwa3}RmQa_DyX`-z31M}6Zke%P@!9w;saLaEz z2SR<*kzbJDJQRM%D6oYxwm{xrd0vb4Z`T6bIAie}WqCiz*k23YSbR`+Eu0G*4`u9( z0<+DO_j1O_R%>Q`+K)0=pY-;;81SvIVnf+3wn>34kTK8c;0*)&H9Y%^fh`60DOh`f*{_$kS%LX1Q=a!{ zA-fz{*Ye%-imKxbFz5C-IP=6#&e-_{c5cQVD6p%*TKJL6uZgvxteD5B#Lf#W*GYNf zGd2&EHe@~4%3hSu-^JkVO>ho@6^LDyA#6doteyFAh!IJcWvZ2Ah*F9#{QS29-VhJEp+G zzgNLR-z{0+Q3z68J@g$7X5F(4Vt?I_z(U{9?4Q>(E-`5il~)Vw%Zx>TNFJB0#N+eq z$rmv$#|itUz$_!@WZ5PkOL^aA?Ct{dT^D(SaL#>`_d~|kDX?|%t8u;xPN8Ztb#fKz z0V3&LoUe&T@6lYJ_eFjFw$?c@977Bnhq#}#vHEBE^(RDIynW%HJg))eejEX29g4OX zwdsE6`f;`SG{~lFyx;czJ=pH#wJYyVg0deM*xjV{Z%%e1cpqlWxts!1Mp>WL2li&h zhU9ZW8@FZbuNfms;|6P8+?>jnY^oc(5nKOk>ny*rzSsv3Eb5E*7ur?dFoODiLyS8; z^m%>Y(Dl$aC;Jgt=<{7U^(_te=Y$(*$M+$2*_q&ZbQV~Qy*Ba?@4-6_yQRMKcCG2t zKhNhw2+!=&Tz@_o`hw?mvE+S`^;r%p5+3Gdf#Zl>#O@*d73?`;?TU2}hPAa+_677$ z>@0#j&!^z63AP=)zk%tWyzzwd!4^g^c(%*horl8HKY3v{?hR%E`zamByN9>bpP!2z z54HjmuIx@)ePZLlUVwL3ft?Jt9lUk2fAUVrvj0_Jr-2;<&$c4;oej3!(#(61eOC6I ztS`Q0E!KBVe)~RuOS(5Co4!3}SuQuUHZMb9$7gIS;;=CQ*)|UDO$Fxb_CMXXxqjcR zjhV8I1@O0v=gRvj7BQn;apScXy1$*qcmh{ck zz}5isJ8GY_)_7ZB<63m@xM25OsJnrkgYHjfZA#xSRaV}0@ccH;k)-u)cS3xR=DY%n z@6kL0X8R)VLW0kQzACVbNIM6^*Tkg_zeS*pz}7~I{+$NqQu=2d4&FNO^iLa&{`JQ9 zz{0;Z!5aPJcBqbpe?FrsZRnpi#MJpKwqJQ?OZ6nNi`dqL7w>9G^MD5CdHn*s*(I2L31P|=f%$t;X*1v5C3-iFnYk`Z{ z>ICQZh-YB@*Fn~-m38251&sr`ZohW z@Eos`cMDjfe@jxJ!5ah5?-7o~W?%<_%|@Fz28?975Ak`VJj*+H)@^MZ0cJTF>SfQi z;4$o*l?cv1R*p zW1oQi3f@Zv_Bq%==$ns@bJ&;zrQ^XS%+QU^4R!-<-K0im)C-WF) zOW%5Mu9ZtkD=W4h+npO_i)>eH12B2kq2O`*pLjzGeVb+8)B@X{^p)s~@7bzPzqD~D zg&z96-&%IvUey~o9N1N0jsDpVH2P;Bs?on&Gq3c|XUp9fE2(Z7Eb{`I1q)psS^Lv}ha{qy=CSZn6Zf{wsu$UMt7uz{KPWr1;uCw;a#!Sh`S zeR;MhKku!z`&IUDHhfx{eVUgSlx+81#GHTXunl{qcL&ucwidiAHl`lnGo};vIcewc zc|PxlJa#qle1=D|2XFuEvpn2LJj>boCl>me^L~h}%JomX_Vrv!Ui7oYR?EDrf5gAX z3;))I=f0g%__AS^^}66WUfQ6`mdaFYOqRVom!I65(CznfHY06WiQNolKf*qNi{%jC z(Aku9@a~7__j2NXP}zsT{9evw**~$#V16&hHXvm02J`zn6ASE?jA>Awb#hC>6}%Yr zB(X~?;U2=PV6O?V1m=7*exIeOH5h67hB3Y2aU2GUu`@}THYp^ zXMbaR@gI7n-#(B`?>~P6Z>QsXrFm^hCOhwu_$?RpKE&Ek*78->_DEl*Cxq-K@GN)n zkY$*xF1r)>LtLo#E%fc2u?sS`9QjdPbDS6H0@B(Q+X8IizTNXf2X_1;z0&ho%%pp| zi-`T!nB^R@Yh`^reyU^ZWqmVe|I{a@J~7LWs+Z13^~Joq@_Nn8Gr6OC`qv8Pdw4Ih zJ?x4-h(59K&+D4{-Y9r~rC`-p`u8oE`bz)A)K~f!`oh0O(Q6;r>*WT-F7_Ma`s=u- z{>kekc+SLFmDpZ{C-|}CvbkKux(LnJG1pYC<6>h8uTfuKDzFp5w0j^YkmXm}y&g=v z^MTuE9m!lKj+MI1P0;RH2lYH(5JlmULnSv9{Qdu zu+aBCnEsXez9b*|P9pux!M&@F0y~+s^DM2`fSq_;PfTBxwR}R~k6~x9-L_-{>ZI+B zW%3*e-zRL&_0+POKycos9Wq80tu7<&eVP4J7iHtVahrtHu(&VNcgs)Sg#_;#?9?{zZ)`liYv%GJO25DLet&n;`YdMuaLg`!s(TA; z6qsWf-s=W$E7HmyS7440D*NjK(+6c8{|?!0Gscj19osl#i?g%ATM-{-KB&(>jZb!f zS)YT~L3$rB?R$KQ(mkoX#_`GX!5YUWp8#99@MRU`wc9v8slFJWTpP{^PO{FE`lR}# zFJgXe=WFJDi82-26l@&4yGRFbbFd+&_oZejw6)gr((xv zY%AjM`F&)|@jvZ;3|5Z+iG2d*7^C+>p1-Ay_5uqVL-PI-rSI79{Cc1CyASP(t;|Yn zD(S%1$k<5Y5GxgAo`s<0H;fRnOM!)r zXTV2%LOmcZvD1G9a~>3V6n}c|-a%nF=k|ULvK^dQ@;qh>5;{mYkMB*SEkCg-1n2R+ znOOhCUMBdB;NKI6FMlCDzNNKCyYV%cV+D)ndf@*47)BSTT5s2uYB=^o-^^gwp^xb( zlYh32LkZiBYpMJVSnwELtbX`_zGi`WtR0`+0f*)3w_^&nVH=PR>_RZxtGEWpI{|Ei ze$2H}@El8%w<~eTo=AE;ygwA!DWv@k%z(VV>N^We*_Z=FtSe)0WZuePw#AO`dR=g_ z&l%%G>yXy2yglG8I&W*mBfUDdH)+4Mt)Ic$pY&O?w^qyNI;8BuV7nrFW})v8unWNG zde&tf&r$ZdJ~hmKiub>kpT|KPV&4C{Z|4@6_qxs{5&d0xw}ahEUGurO=LgyPJVCZO zm`>OvV(XRt_mbzgr=x9B-#ytbpTA7LcwKZHTmOcT)<3ZY!1OP!-C{#B@8E*xd!q8L zDzMcuHV3|hzST3fR)G!A*v|@ImdcoAq3q%4wLSY{$L4BOfo%;o{Z2gBEin5s2QUHq zuNtti47i9{E~^seBizW~z^essXRrmS!23|3xKQmvSc9-U*d#FPp4du+LHPCie9Tdi z=5d?(ueJAT$fje`N$fYdHz9UEKuK^|SKI?vxG%9A9g`OUMknJk}3G+HI7Hm&qZOA)L8{=B*zmX6- zD(kZ^pv_X>>SQcGvARBZq3>wYY2G0SV$;L3&Q4~&nct8O>~|UK$g=WY$k^kB?3-Y3 z-P&3?{ur|V3e!d-uMztIeP5yP(Y`f(?#rI6JU`+ZAjTBFsor}(uU)bIGWH$m!1e)i zjd@~;s zYgdfh@akDG@2mMwzs=oj`<|F+#=E37OF_p_g=om-Z zdGMAdW^;Ns-ZtNP@K!4HEx^XvwrEY?xeR^&)?!je--_lW+3+6VaDw9&QSZf$$=IF5 z%8DINa6X**vJJ5l2+oHS_tRo05}ea!&%(wyu-BQ_C%%g#?khbSi`3dH*KQav4bM*o6MshPjmfx!*3Oe-DulU&6ny3M}p~X~ufk&_8W7 z`q!HM3t#k4p8gF$$2$b)S=yY~Ma=fad6qUwNDZ@niFuZS_fp1IEcCt0MtMGG2pjKb zEXLQg@d4q>i~3eCv9lguvHP;VX<#Ai`=9#fJ*i9S-|!lgu<-Af1s48sIP3Zz$~K}O zp}yZ{tY2aGk&HREAHF=6u@5sg53<`6)_=2awK&`4iCJ!2bAl~F9GK;M$%lQ@d)J7k z_p0nGJa%f|`nv(jZb`7uH68j~`V%|{Z|5bGwTMHX=d}7(g=hK63w?2(tHO5R{2lw& zzs)XYdogLdzV)#xu|+d>5V1DIY_H_)R$$AL9<+1c>h)X(^2E0O5$ya1Y&g939s1J$ zuG!G3y9o(0=> zmbPlP?6Wq+1}@tZ`x5NJ!EM!HoJ3IupOE(4vg}>B6|A58Ym*M%U*UOf*=~4z<;573 z`xv~x!E>B&-RvJx`gW1nbp_Aw8TozxMy%w~TvyAZVC@6i()a<{Wcw^)=iBmnpnmm*j6SMWLmx4Jz)>Q@1wtv*AZRxkm>XUZ`m~&=nL;u7!A>sU8tFtY5-b2Vc znOOfyp0Q^w6^Lg zw(*~2=gqQ?>jbZbw6b2q1Dhjbhfo;G_?xn8fVq^itCJ5| zulJrGaZjh+1G4PQl&R%c$}X47S>6Tk7C({sDZ%7;jO-7TzrmO1Z!PuD>$!GEfIUIb zznzI)mLtTzS+9ckJZaA@+snYd0K4bbw)$LW>JyU}zpoJcBxBRqiIDvqOxfS&V=hlj z*%I43^Zr!W9S!!ghuhLURp{F@^9C0@G3S^Rv-~zA%u5;g-moWrDf@Qj1-2Iy{j*KB zOqHEK%g&x7jS>95_TW8GU7MRyddA}~O+cUN*_Jemv z#!f1*J2N&VV_x%Y>-J@ik{gL#^v`i%=hqpNZOA)`VA*d)tPQc#3C=t8GO>%Yw#(y@ z{VQn>UBXre^ZC)YUCx<;=nu?JZDA`D@SqH&zX^= zOP=Snyue;0J#Ox%GzU#!FM)Z?Jw}23fwcEMo)dw+PI|Fj`=#eNVl;#4JD@&0ULo_u z{zz~xqOrvKC#KIn3p}1UWYy<*DfyrAOU5gSd=VOQiTaNVJ=k`m_ZUS2u>~gU9K9{l^2A10}vE4GZ21Y}6=Zvk% zjs~`M#<&%zW1D1bIWExh29v**F!CS$>T|kUR+jIO-J9$0S<0J47;tn`eU7lezImp( zdXcgSeYe5uO9SCpN?^7xV)quVtXv7cwVVzz~QP)}FN$4KmOu>0QaSIyt2+lH8JP9tU=4{S|j z)0hJO{eraqiFplkte`(}U`vvAKRkE-7jN$Yr&m$``#-zckWEM+5FqqC0TL1tAoNZa z2)zXey)8ZTP^Ghk7JBGa2py>jD412`#opA&(1#TPw#!* z|Np#pc4pq^^PP6)oHM7*6U^rjSIp7B_94Fe$9lM@a8JWl%4IgaHCX=$`FgIW*y&!t z5PZuQ*L3REM`yk#&WrW@XxIh?wnHj^~@u^ls5n7!>tk#{45)h zP}hjGeoFR6r`XS`*vt&uD@o;@mAxsgrki6^`c{(4%XwWgdxBFdZ*t{be|ECtyJ^i& zsl3X-v9`+?=25o|b-$`)N({+)pQN8oDmh`5Ey#Vcqu^8pF1Gd;hbh_z24R0_${p3?Gr+^YHi=OWy7dS6Jq#yg8HCRe9qomip~Cy&N0!^DwDf z;??|38E=s2p-*0W^4Q6Z^{>3PwiL^~zioW#=HXR2EKzyg{|6IvoEOVL0$nW~sp(qA zWpCjG$1R$?4XfCOi=^07;Ze!1mZuh>l6q89kJ93OH+lT{g|UI-D{oBl#$-r@b!Mle z^8BA-bv?p!i1X{1}_qgRtKOvr0 zc^poQF9r1s%par?$O=8HvSN3k!)o4q4bY_1cMXL%h{#8OXzdgZ0FJYewz@rKs+ zX>F;zft8matA{3SHml^ZQP?7R8H(SL!z)x{h&3vYuINe@ysi|e4Xodm0+p9{CU%E3 zcS9w~|E)?a^^+rnUw@;F>~3V9mW1l*fBskBt%%ikAu=L&s1%8n_09N=yQoclGj4j6 zkx8x z2%8?6&Qq3P#m?5W`#2s?M~)Pnthu=7|x zgYQnL?V&j5@qHUVY`-Dww@eJr(-@`9V{TaJC{jw#`(}<4%Jdj^C*4r^@7VzUu0eDQ zk9F>MEwJSYo1VHi(7iW1_oxf@F6OIR1? zA;WRK`946{-!<@^qp0M2FSF>egi=p$G)GC}j9wGdH%6^h<+luu5TlN$-J1)b! zbZj8YyeiHkq1){NSaUl+2(x@6(fBUH%*CsF1w<3O3jYxJk^&ZW*Wwl=pVjfh*89>M z)~joXU`N4xw)J_T+XJ@D+Gz1<-jv?s_~sG)#XO$Ena2|FNbgF*TVZ=?W*+O_rIOCY zYdzJ;K7!f*Ite4~(Z}~E9=d;^n>e=mjaZr?+4?@V{pB;_!ES`v*PbqHTWCnzbQl@1 zx<}s~UX-sDo%8)Jml?ZMZ8Z{h{`m!Sda@4KZLmEGwjS(YSUSK{H+AD+&OiSuVS!c(#x!`wwqw^6uOTKwl~ZUh`(cMmB+-7btUjI*dyacm+WgagVy4SMqZ5U0|L-$Uh^B2iHZVW{e`Hq6!y*KSu zFz2kYZWqF$%u%SNWS8&v&+PmEg8ib24JEzzVcr9c^j3iNoml-IK(I}+u7gG? znYxmlOkFMW@S=Q^VXtu@UcX>h!2E5S*U8s*UL3atVSn4^^P()*qFal0UIG!DI`ykt z>7$#%{Jzk3mOFlMdkiadx1l={HX7C^>+H|YcRmId_1IyaYMU>L#-;3Qix3apN$8&4 zw<>3_OJQ#FzNG81PTSb#?%Sc8oONfxn)}Ath3=wUmf3Qd%d*6`X6{=*;%>m&le*6- zvLD0#PJL}>l1yzijy`XFcQ4omnX%~_x{WeB0v2Wdbx!X~m}NGP(EYYxk;lMXH+7N6 z;<;|Nzt1SoKdgEe%sga1L%$2QB^xoA$BXA+-XjaPDdBc?1@m6IERJiYw;OD6*bas6 zq^w((4HW5}4Eq$F-=GBRf-Q77_gS-U4bmG*c!%SvYeIFh(XjntZs%ZpQd>I-HZ13> zZY=DGovU{=L$?m>0(3VQy0u`tqx)6Ce8ebpCFNoiy0+%swmFT(Gyu zgIm;T9~^u*;<4t5 z)2sWw!F=~nM)NmxK6g0m46Zc_whruEnEO`Pt`EBzHYS(ZJT}Vg!9wRZo$Br_bj~{@ z^KMC`w`FD@WZgK@SOw?r=j@x)ley3PyC07ix=%9uoQ-CB>PE5t#IqQW_v>b}VA_r< zblzvT{eH)BF>D>n%VIw_J+HkkA-&BP?AEzo%2vy^R44sTmcJ=6h_LC&90T~<6AKY0 znAi^qsN0Y@RZr|5nA?q^V#C&ctSwz3^=H!y+j9uBse9PoKs@qwA2pAcVfJTjBadgY z4oP~ieEqvQ_7==>`&)N)msy?1vvzb*X4zQ&{pQZ@GRyYkpSDqES=dIIWnmj-mbpF5 zBg$Or$}%6$3iB9-jf=X-V~ZRwZFhv(F0v!}XML|KnAd}*cTK_EM=i@eFxy$%DD&-v z+cJxM-ym)~m%9H&+ zsw}0>{Wx@wq4T-wi3NK!vj+tJ95-a1FRgDJ zH)QT-rsuvLWpTW2S>m{%F6tY{4O!&-24VX~siO;~^w_m)f1%>OPq0|Q{HD%#DsC>= z7wG)XegP_BS+wx?sLr=(`fnH!=H0$-YK60NYjy7U}uEp}M*M1G|~^hp-dv zX@jy@7ROb8J-8*!!xZV=4|7icE%5nEy3g_5&u;>R&g=b?4{E77ZVUE3!rBg_(^IS- zw%&^}YxA8W>l{Pc&a%kkbC~I=J%dEfzNzON&u77$7kzuytI_p>IWPKtP0YE?Ws%;6 z=(hhZze7;4t6+CeV?K5g3f;x9gVFVdSvK>S#XoJ=!ne$_m-x2`Y#V%S=YrYCF1)9^ zZ^%3bpTGdg^g{Q`%)ZF&r|!kfcFAoZdm^*93-)AY@%ujNJWZI#efd}?bKECei26jn zGcr3pvki$aOu07xc}qH$5lzPh$8g)jJm0ve`wS=B4&U@-o;$UDwO~tTHWHs=_ek$O z;=v+48l2%*&M{mdRM*aw-t zU9gWbn|(-k9-m~kT){rgY|Daup4m|a8^ApU+j%f;6!n-hv$YB~S7y5uY*1#$7i`|l z;+SpQ56He&qF!&UWK3G0*2S(ESx7`>DqS_lq}S1M>FmOMGG6j(=m`4Fqar zE92IrEdIW;$BlkCZ4ZVm4~u-K!d~KIx{dLJeV_0iyhP)D1nZ#lTK-bl4U{F=ny`Dg zY5ZKl+%~eWV3FSAuotksIhWb`KAM^H@r2If)u6SQbGBelXLe0KZjfx6-_SY1rx13r z&S`wZ$<2COKI{A&0?rA(8e#L$b~wyA!5=Bu2$*x&Zh~(+m$uuwF551Zb-%_p&r)}7 zp<9OV<_u1~4%U`vx|iyEdQaqhWgp}Gouc+^D@(^e7(=3l?O(Dk&gber&CKIqWw&wts5xwLaVWUJ#2+O{=)W1_9he(*gQ!-15Z zY;D||Ft6i`+g>Z;2Jr&e#W361ed_?+E-Q0xEZBjW{jx}Jeb|EB99V_KY*m*smP@B4Mi;k$UwXW%n{$YZOl`vV7zVEbqG${ZD22HVGSJ9m?eAj&>>q6%<9n0sw7_0-9>VY4OT_Z7uT@AKEX1^<#`@Xhb|AejM5m}5Q ztgp|EW$`>-=DsIeJh#DUn7@%XHye*(dRn&R|1jL{i?=quQB`*cx`h}ho4@(Wj)EO^ zV{3X3fMEL0%;TfBQ4e)TXIuMW*q)f#o&`Gv_A=>RSukIDdW?Ld9?O!R{oor;g7@dL z1arHU?2qVH|3P(LAj$MR&N1k=u=nsSi?-})sa@{L?INR@5?dvo7i1nMFFc+3;^`Y6 zZ)9#a=Mz7ie&BHfuQogBIG?!lFq_91*nv3PYCzG>(N;fZUFZ%byf^jjLT8z`#Ert) zrg0C{^bWwC&&tvI)JW%($tUH$Wv&?EkcL9wTdCbbXqiH|O zToy~gn{zwcw4MVdzSvrGoNaotHF0Od7Rhy!ZGm%c%NR4r4#GK~#zPb~ zZ1;fOj;(Vfm(001O139DfBSA&u7~OEkK2CNmfB?n+c&era+#@4ntNvbcUl|IG-ZzK z?c+xgHecE0utU(jP%!tEc33%f{4VU0wsen_o?|_lor6p@kB524{)&4RX4_hS**F58qpWx6{zlk-bw$A}zwDWU zIku2}Q?S1i9#0;Nx>D_AeWUa)^zFs}!lH)j^BTu#89jB{?DKL}W4lX0?* z3frOCHm;}5cQkAvbj##@LFV|+b{RxlvD@^><4M*9i#(o%xi4t@1Yzs;)4ad+hk5?} zbY8|egl#_=r|mR{cWdrLvO_cT`F-e)&1_%%U?&kCH;H-C@y*x%^&9dtkGo-(Z!*q4 zcI%t$BlKNx5B3(!YL>bm<$ULXuRA-(JAPRBrd$u%^032s>1Q7dwY?VS`R#7lg-z_Y znOSCSSHd>U#fvW3ny}ec@70)tM%@N5=jA_|0*7uRm}NPOvUm(qH*NsOC2W~?v7tK; z-P1e_eUJ4n>Q1Mg@4?~%O44;v7TcxNS+~&Lh|c3n%(trUY}f%Xh64?q?4r!v z2ffaifO9Thw_mUwVA@VAY*(MJR_hqoE4|kg`ECf?WzAmc+o50^%hs*hKG>$P^*89% z_f9F-r)CO-ct+a z_pQ$9zbD%?*u0rB4NZeN|Ao5y^S(7V#+<$hcp=UhK7{vVs2 zbN#qjX4z^u=lXH6ET*?ID?j-YeWA!>Aj~%97D7X}1Yv)hfYV-sEkpRyQ+uWN6(T*E zI^SWC*$$smj6Lq?Rr^7+d|BK{%M#^p4>iixN!Z*ch8V zUFaNxE_Pq9^j?OW$@IML(bjL9tOG@AjO*shZKZDcY zm`{9Xx*K83qRw|U`fx+$oF?Y8#gf@4N5k$yXWyvfIQ^z)JNMz2%;$cx$ip${wj6}g zeX*SHy0A+)nD3Q!oMLKsP@tXGZfo3!lidk(p6ja!(}d|mv5yHjzxH(E=ArHxbPKN8 zmVQ4p*blSq@5syYsSDe0V4?d7x)tc8AJRy{9?Q1xVQ4#-wtZRG(9sFsT!ZNAPCK7Ee>dSN@sa>v~^PkIHhecWTL1!EM zd9I3)eR?+}<~vd+I|lb_ZVv5)@8UL&IV^_Q@GP>J!(v^+G)-cc<2y&wRp^3w9pfBL zSLZUD$H}-(_M-=2wzKKQJP$lZOJxq7&sWu1K6ReU4xU-H0l~zs#DD9Nw)Fm5$?iuN z`=z#BxLyn*_T@kt>75Sy$y{6`7HlfaJf^cVS`KX^kB^&}dB`HY_0ZOS(pFoale=tr zqKo22GB@&8_`!w~?u2bquq6p!0o%V|V>0_Bw}I&m#r1oR-#@^&Z06}0*ttfB6}shM z&dJQ9jYhsJz_j%o?><=Co>uI?j&E#x4ykFGpZ_n>7(N5Po3Qn8-|`;wEesYt&jmY> z@R@J*Zv57eIvx?HxwWptx6Gy&{mSd_V9~E$huJsOMZX$MrwVoj+>H=zYb!e(=lsyi7VLP!_Lpr7=JmM! z<FF>$FV7N)}z!doo#o)XVazkJKeXO+k8v>NN;Vz=CKLB?aX1YF$elFghRIqVRg?@ zKFeI{9Pg;ZOYir-w@{zPxqB{{`{g1F_i4OCs*c-KwF%5!>b>c(-Hx!f3?)*TOWU0b z-Gr=jZX3&7>c+w%J#8)^k9zLAMALi7&Y8-kchZf6%}Hk;aTN1w7wlUSUg$#Ro5o1H ziMUk=jE7y)#E#0$d`+*F^c*97gDx1GyLJ`2p}BnO2Em*o`^Y=8xYP{ zYguGlVY4$V?pw$@vu+MV_Ki~a6}FadQ~0N>JmtH68utoh|A6g&Nj0By=vo*bj<~vN z`(V9bUtia!abG}NnYy@FAnONv?Y2IRdj+yNVed}s)3{e4n?OA*%PaVi$3S#Ppo?SO zM0DS!{LZ7W8ew%Zzq4^p2Zj<2#?KcdHe252>TZXvHnhEQu8{pW>%7j4^!y%2o%h*- zJqEjXbbIae+$Xhlo=fxXowvEn?{T#C9cpcnr|)(CZ|844pYl)Og8UE?GA-RW%5_m! zd*e3?Wmljp=Vg^$3EOQ7bDjksj4%@1|agR~k=V3R|2Ak(H2XhYPlKnF0 zu^N8l`$A@C6zrkQ;@*wdA$6S3isr}H)^XbsIDbokZj{=Os@6KFyT2tcUoMNfVOiG+ zbDNjC9kR~x+_wywfAy*vKhE1j_F&wqpMlea^H~Mm)U8Vk!(6wd)!!zu#4ApajdhyxX7B1b+XHGo&!$9H?3rg z@3qkB_?AV!KhEQZdfQoD9P2zbhVDSZ>QWt>ba!W+?Y{zvzB8;}?Ns zn^CZ@DT{fmnD2QIt)0m~>()Wo1$mKxbm&bDn9>^zw7Y|kv%g)r~`&5s|t z3o=`^V3!e|_7Kl{@u^;VN6=?AXTsv0Hddu~u{=IUzn5LhzyGGpH=t`SGp|GcQ<)uu zHkbL9%*ry~1^aKx>@{{-=6NWy`>SF)!o>8zE3p@z3EZT2H_^nC((!Ka#+rXTkcN9KBjZ6>3Qwv{JbmS8&|t9&iQ#aDVW#y&d=*{((kL`bsPh3{QMgJR{NX4T6IW90?bTt+hFEv9;@JNmnZN&K5HAtXRoV6 zw;Eyhx8D}5BeR!tnRg{V8t2$-GYX=uY^ls%$G0luaL3^s>v^6F-6+BbJlI~FjEGH` z=IGmq@Ojs@r}sEYoq3$XI?G(97h}hgZC;dR8T7u7n76hmbpx?Z&5z`>Fe9h-gxe8J;u;Ld+tyB*-$L9!*GsImw`pQ z@cKp4EyCc#JWJi8u+TXNwCT;pfyy$Mx<0VbrSU(5jq5m>SY}qG_H(Y_S74#@*eTnG zN(I}4gw5k43&K+7@o}!N%;!PQ2fJK*Rpv5}U%(>0-Lr1}zEzn^-I1`+ZI^X#!yzhr<5xTEE&Cxy&8J9WQ;w0DLdk(Z^+uo0jAO{hbASI5Xcp37zj6Jh5W` zTJPL9wEZlzc$Y-xc|qOFxh%3dGJCEl3$LE0`DO3OeM8-7So=!-(_CYb@1C&5|H9n4 zw527h$=r%)|E>Wd|1ZxH_{t3U*~?uNCa_%;w5{&Ge?j z-u`6vT1!#i@3Ort%ShHonWw?jZPCQkmF%9Z+n~^S?LUH@D6XSASog2k{pj{W=l&G= z{wwywoX3hBU(~HkdN1Qz#`RC%VZUt5eaxerpL^v&GB!KBi}yaz9{%x1MF z|L%TqK<(~=Edl%OxBb#L8lhVf_7S>=u?aQ?Hnx?08b8K#O+4`Ck#jB*F4n|7pECYmd#5 z{?Fc7h0=kN!FKdQnho#*@C2zhMCbpOAR{tuZ( z`1$Jpva<+R&($1v^;`y~sQ=s2D6}md>-(pXXa7VFN^hH;kp7>T{!d7JLc3P!e?R&~ zSF63o|FwbsAK1eGaY+*?n^oJm>VL}7ZdY}_+T;|Bf7-T9^FR9^Zi!f-Z>LOWrPLL> z*oCWki|dBwcjY|(o7;bL;kwML!+&-ErP*1lav4pNK(-L-vQ{1btNU-D|JwbRir;F; z58k_6)#1N-77av3w9S7Mcpx(VrG-OcTBb3NZk>?W`G#jU#b-6e>5M(}^`>}7Q@pb& z-qjSJ))b%F6ra@;k8)d1Thx}FO1WQciht4+Zzr8nUvG-9+7ut(6rb1>?`n!)(G+(c zttSL%UvfN?f4+^jfk&` zyX%(u(t8AJ5H6N3k56{KYH?3+sg5G{!nDlH{5tZ*Qabc^6Gl_ z^}24qy)i**+T~!`+-{zhXz#A3d8(&0#jhY`u2l)H}IKr}k{%P~0~+o_`|KE5g5 z*%Y7D6z|IMNPjBvI(bF>S6z`vo7i}EyrcfJ3fk(%n=HP zKV{gA@-nF4a~0vZrmeftG9Erg$JGaM%{eL)|>QBWh}$B5s6P>1oG3$uC1$O zo<R7Q+`d!tRH$blYB7>z5Vki@Z`ejHiSlzV|+tE8Xsf*Xd}+;W8CJ1* zHb_;Ur-I|M*QYjtA$CXhW=k)}nQ(mbom=#=bLu&eS+ zDJ_Hfzg7+>uOmnFIS{mFzlI;1%xfW*w#x5HgG#~1{^LxSIO43U>w8w#uV){x=KY-P z$4T2L`nrCtZ&&j0T|IZQXI7i!*V?<1KNoAZsbr1+U5(Jc350-#EP^4P(0fb-IbU{m zho@G-X%l+08&}JO-t9&3iU#d-S{_rg^(I5dr!{S-=ylLEwXQCM)pgY%{LND={?#K8 z6U7tnOwT-BQTJb3#zY{U*Q-dq!4}Ky%NGR=)*a~H13GK3o?P+z!0z=CS|S46;|bj! zEfJd42vygE_VI6U1K2UP%$BkjakJ3@yf^JNqO2DUF&y1i1^YJZE-jePB!0!o^`3&w zk!^3Fj_xC-_X^HDZev~K(UmNerc|Fqe zd5diMg6$1^7d8!MlkbDGAy>rku!4DgCA+I&roBHq;m7!qM;GZ?k6ZAAdH>wDdIUep z9QBQ7RF>KIW3)Xg+ty*uK{H`=cRgeW!%l#0OxQeRgJ5T}xtAhrJ!E5P+#6x15)Pfu z*G=z^g82=P>3vi%K545h!@)hCGu2tQ8SDadM-=5dA=_?Crjf@ynfactY#D65Z|1zo z-cNAZ6}K$T-x(N%AG%TKzE4Lx21YPFJF!mANq%U-wEZK@Z4|cNhjXso^I`TY^U%im zl`p^#o$o@=F^qS*3g&me+CB?&?<#G7o^>Pf_r)#0R#kS>lkJDw9JV=rumcHuA%Anh z4krBi;@meX*x`it#r8e?Hk|2gf-{fz@gqI&v#R?N-_t;;`>J4@5!SYqZ4~JRTPbfh z`>ns7`lE5(?}o~rfZe<{+nKQW%ASHbH~2nH%(=mB3%8NF83bDTbFaJ5{RvxjR}}gF z2)1FpdOs%ecpvupde#1cc}kB@7i!0{Z+%w$TX zz82faGM}AocPebpf!Pl(hS`3*;-U|oQRq(1c}$17J=EDJ?awptqkMihYkF?W=6?0( ztXm%6d)F^*%k#2=&CKkgf;|p%EWHBEw)dEP0`+$eXEt5R*Yuvux(x|ik5acaaaO0} z;6fy_5c{ib5X^Tqo`szXb1}WpU7twBLiYsB`mTb10M7Y_ZQo$WXBPXQy0>v2U#=t5 z(7g-0d^es~7R+P6x?L$x=)TPCApBroXZEW?=k~gd^!$F7&5+vQFVxNQtyHj2Gvkwz zl%8$17TZjnWi=1k#xUoywT{7dggO8C6)=)Xx|o0bJmM55wZHFdJOB8Vg)ZhFp9Z6A zC!OzDxh-!Z9(jx<59_f$>zeD~^MznhkKe<>_8?9yruUN~y+bpz9YZ%MvzEg42$=hk z=UnSi_VNCO?nrb4mL(sU^{}nF=H;9RTM*{{A=_#&*Y>o5a|J}cM`7#!aSW_^|2Q`5 zMqul^2J20(-b2?`b~?=M5&b}RKFoQd?O&lgGqcVjJ-;7RcXPq6hpn^#&-B=k)?+=~ zH8{r>z8e_nU5C!H>`|}>b9yV}K4e*V{U_ydL1sj2o+mfpj_pl3U)gq6j_w-BMC5XtThwfpRWmb0-;Y&zwzS;kojfc67)Y(tXV-1-7s$}OD zwsW)Y*gL9cFa%Q>FUIyVSlrvQ+?T@cgSpQb*Ik7BC2U%b%RJtG3A-LY%Iw&B@SU~V zOnkS8x(?D?1$H0d&@D!IJDB6jV2i_!hWTz!u+cE{-6}ISYx?%ZIck3hbJ5!j=Q|U3 z<7=zV^}Y+Shz-J`ZY!Mc%nl|Jx(Bk(_r%;D>W;&i-p>l%Lxg=l;!jk{dX>6G$s^MH z5i88MmBcJZsq2;dmHbUsJop*=D1O+!P1w49jL%nZb#ycY3 zBQXzk@8Q&~kIwchbuSWkk;S_tQweJ)yBy~`l}{DSS|6hD~nhsk^%>vps(d=8v!tFc$Xj>^n^Cv=BpW}ggpA?!*T&u=RJ6T7cT=dncFK83C9*@98U+R6O0 zzwATU#l8^z>cB)Q7Tf$Pm~Emi`b+eUWDB>yJdJOeBM;v_`VGuBQ5WwXy;bN=LF~Jn ze=V5jDBnNbIJb-GUC6)P4x}Gso&E1L3gsNXtD$p|tqyCR;yO^-^{w|Ct*pzHL0j8$3_1tW6WWF-7svg={%_k;EydDw0V3)@8r432YuM6h5UG|&I%;PlvU3FAT zZ5_hq@$cBRtgs&M=QdS0jepkHcj%4lqRiXCB0b*``7t*S{CzyjYul`e`x$I@KG>b>$^f%qx*TGbIjO>JYu|SdP`;^L*5O#4}#&LJcL@E}?-P2(-N7BV{_a_C5bL~%I zk?&6A;c@qESnq5b$KBVPbiRA8E^K$kcGuz6Sis|zd0#{#A9AkUDc4Q51a7XCyMJF^ zHY_vyu<6N$XSQy^mdtFUf{n;*i-L{JY(l{pvZs9G9))=^cRr%+53WRKbQ4b`IDZX#?}@kE`RH1NL~B^))@~;e51nAqqAM=6tkMVQvrm z`HDE_qxCx}We1kOkMVZl5X%l=-ZHwLyTw#SiSY`0G-!@0XLk0I-VeFpPf7UxT% zY0f*@t%c69f^#rko$H~_^Oo;veOxe)vA!4SJ9UwV@2#tQ{y(rf>&^Ez`d8SJWn#Z8 z*xKankGrmn?_yc@#Q7cCTKHi*maw|@@JXhJF8YwR9XNF!f61nY&i0P<*2%hS@!cL} zz7H0atR zu3g7ekzQA}RUgcI8R|C5eZ%w|6FQIUhfU16FiYk=4{bkUr!u{f*nS1`J9>``!Tt*S z<+-i3gA4X8%y~Y~EtuDuhn(G7d!t}&Fw@&H*TXz|!%VNMV0~eq|AqF0xjj67c}~&x z(L(3es^vjjvWc6 z^dgTAnA^jABM;vT4%Wzn{t)S{nDh7$j z=YF!$Fy~#3dnmG{VIQNb=d#HBJy&f9!y-L(9}VbL8&WVnGpdatJ@?trEe7)#aRLnx zY(Ln`1AEmzrQYrzZnFpUihPNuG8ov;&NV{_fickj$D&+RAkytW-X+fV1}uG?1dX&>}T-{=!e{nvRxc09Iw zU$9-gu2nZSYe*{1AEK^=B9Tp%*DJzXIn+SbE4as`O=;*nD0(m-zTYdR{PJ@7o3Y3icwCv7AamGVMPmY&{ks>|!2KkD-J^_Zchv zHuA`VeV%Qaj3P+X+Sa7J+HI zB58!J_t=1>kSN3RT+ZW8Sx4OFvW}lF?7U?aM*|r56n%Nx%+dDI+XK9q>&7AM%`Mh9R z7zU&~26B#!GJl%c-kFh9dbi8_L&FKX&}5DKLx&L7Rvo9$bRX$Td^SlB-DAW<_m`~u z2%o0xq2rcQLr1fx^d`Y#|A_li_ZGU(v+i{m&Cnw~$6n?uKLYooIq8%5F7Eq|v)%X4 z#>YI_#=d_u@vyy+@LJd^3U(1})Glr5S#HU;Z(>KGTV`Ne`fcdYIbOP$^p+^f_pjKg zS$9&_4Iu6_)Z?CHj#@Vai}kn__W&&BD^TaLb%96QYGY_T%+uIxbNs`2$)h(_3Fdj> zcG%-2tTAqmLn1C z(W|K2iZJWZUNEnZtjCj?El63sr|!IxUMHEJZ1v3Iyf0fjv$JT6&}|L-4HNj$JsNC$ zW-AxW{cP}`de`19*a@(?PHJo1Uo#K;xVn$?c9WfhYyDnZ?G-KxB45whmU#{~glrV? zg>dfYH{iPr#>M{jOTwY^JgJV|CbfO3>&SI8y`ebIm%R%%8swAwb?l>Vb8RM*F(qcf|Q3k`-!@b zV048Zy4g4;S{8LLqH8~)t+s5z94|e~J{|j!xXMg#&2?2<{fZe6R(onZyfQ@NO+T}eHz#2vaevyyBgQ$GJmi4M09o9$9l+SW!tzu z58V%s?9;eDmoX)A?Q__Y*jhf>N3inxT(%-@zR7p`G_KFrhkbx6ug_&4;+n6|t^3ix z>yzFUCYbK|dc1Q^=>74{m+aGTX{cKv*JC6sbgvbICKj)c(dGBJa`Pv)XW3q9a_jBTU zL0iv*+HRBky=+~adECG@h&;w-_C~?%+v*m|=QnK~3miqhuQajgO^l+a-wrtw-^F9k z2%Ntiay@?JI~$F23iph*#-|yQZV3LJ=(d4{jzeV9dAw|E(#80|^0jB(Bj_k%kM!bx zySmxY`P(L!(JpR}vV30unD0cm$M3C&x7SW19PBgLolHtQdu}UrU&8#|j4wzmbe8K9 zY`2`do6Qb;l=%}U6l?(O5pehLUtM03U`Mk`wKW)BlozKc;-(RqsIWCc{Q?J;5 zl+Ur?@!$4I_o9fVx$^8+ePI(RJAa8Shd&DT7QV~rICZ;!Q|U-1eSNkGo(rO~ckaHls{#57Uc0e%_=r4|Q%2hKA|huz7UA%mc6X2lDVeyd?>{*cXn& z`7YgX{LsCL?tUJYOoM4>dZ*x?fZ3Nyo#{e8e2?~t~2Yl!VleK!pouaycFze!dt*RE(E(KGj3ru*tOYq(}G=)b=Mc{(#(9` z8R=b?ZM{YeMzhx@QIBO<7i>Y8b$h;GqhXfs_QH0#%sdB#?V7ObUTUxXI&X8^YAu-U zG7rrCL)M8ik3SZ+YomJx+b__m(H()Sz1&{g59T(L?T^!TX_)yAAwHCZKN#PhexEVe zaM-cS_f35y*zz#vQ{`5A!&c@#DB~|3ulK-rA9Oyduw5OUbG4sJrwX=lPH!jtl9`^& z@{YhodM6aR4G4RlIfKrp?Lc&A;rz{)K{;R9Ik=JRzgrf}e(LSie*Bb3Z5kW*W_0`|_5%L*VYdL>7u5Y4=e#&SEz+}}ny+)kyFJuJ zzB?54*qCj(_YHm1{vKuVy(QVN@;0|_8)UXPWeT0gpPfJGTl-6q?|!fj>fyZg)#-WlddQ+4tHbz9Eb6f%Ao4hv^iC!ZP8SV!I_&jJ`qtLups9{%npfzygZno2k6;T; z>d74EsPmdUY-PKnE16|^1KnYTPG))~do}AWDReT^E7@;hgAeJO=AeyyUxRH0vn_&6 zq|Ke@b8DE(!ni>&=O*2eaOe)oy7OTKd+0o-{41U9UZ(d-p*x&JHXGZo@!OQP-%+qF zc))T85%&+TVfV%z0Q0&g*j})cU{Ar!cP`@hVC(Vz*n-`cnb)2!USh>L;JrjD7UzI{ zVD?*em*YGKI2H)zKI3zP{bBs|NYCrlV3FQYXe@J?-cQg4i}W6YS&uo;I-Ydi%i;Jg z+?Ggf=-iddB~mf(GdOQ(2R`OW*NN}Em+Rt3dbXAGSsqxh{W3eVVEYm_-!6Rjk22q@ z3Ksd!fVrQm>%^JwefZ|<{<}Jj=JuFkqp+xrw)ed0B8#^2euMRpMcZ#$uxKmCLy^bI zIgck{?&oD5pB60g@EN^rU*>T@!6J`%Zch?vF6}Y5^h>`jV7{`&DgV|m--i$8ctqU| z1@l;UG;AL-C7WdHxa2CB-~EN{hS~Nv`M72t-s64%-JN}_?IE+>w0#H`wjEjbF`dkM zl{%(nOS*O7OXJ)gWAI&8!o~J5?4loSbpT=0lEwD09|ViGng+8h=CLf!@!FgCZVzo^ zyyo#JboOJ%YjHiT?Fu+;-HEJ6X}cLL>g#u(Kl!*{W4=wxvt?#u3f*|v10VEje7~h` z!>s#lq2rN8ZRYQolNUkcv3=Hg%nP;yto_4&jo&>qJ6NT^);(S57#^kc`s6a3p4Y#o z7x$2544D$!hX%0B9>Z3J*(Wz39BfP2m3z$I_&!;kW6?kDHhW{vJ=uDh*>}Ts6T%N- zy8=Fc$*qj9?LCEV9AW4F{2RX8!|Ss7an8#*B=Y@kDlb!R+_4 z8w$31W-k@YeAInWu(6qqpgxhu`mn)Y&Ys>il_5|4Y5w(@2a>Q0)lSdIcZH209J&n& zt6LMFBzx#KDs+a`?Tk-1@1fhT(7FGrI}YFNQRaI_q1!a;Zo+qal)AgK?j-#2xc^iS zbz5cK|5OikjyL~PJ=D3s{-=7V+cxX|T|HQx_H+GDzV0~>R_&Xf@qtb8dQ*H%Q@n$? z=T+Tf%=a~^h(AtzT2uUmrg%H^mrcS}cjyu$YR3?tPFUAx*ofK)=HYsQu&!nJh(BqIqvbNi@5XHjUlZ29`lyHOMF$rI_I5p zzPK{(e25*aQ|~-<|7qU2dC+-3wtKNhSBuBIYS}CT={<5Im-OAtDp#Q_>}G7|ytW!q zSIYkGRB7q&Zkd*bEbWOEv+mWhKm^h`w~Bb?sFo=aD17U)MG-e>ThwY(+UIIi?ZUQt zVtl{XV9PZ^ezRLGEe&0ZFJz>pr7`zsOQ2edkKq38()MPoYMa#vy%3>|S{zTfw0DR6 zDXO&C0`AA%OQZS~%8k{wa42j6j!Q$TcpGC}m$tTPX(K+daJ7DBG;+hw>E^iagt(lU z{a(GQ^}ReexnzG#I>JU9n@`R^w@v@-2mj~o(~^#%q{z@Qi^ueBga&kn96q>=8PXo1 zv9VRg3}JLNV&mtwy=cwu&_WH?w>8%Gg;lAn(@2>oz?rr1)V*5Ua!MoglSb$d5jv$| z>-O;+*1ZfQ*wxaNMi5;sr!{;xknu&6e`dO(>}okPz14-^;-BfuMT(VGe5HO2_ImbGWBh){1utPKc@{)g^r|I>A@Wishmcru;LQ*4Xt>UUb6G znicgTfutDP3~p=&J>$gu^s}*8u))MOY7hdQaU`7;hwVQWfwm;ww;Hc7D^pvoB6|lR zT9N91nesugU+&$z+sZLBvkN)7a(AGkrFL|X{UT6l=E-9G$_i}?=%;{ds`q&G$284* z+0hgq-xTj`ice~acQwVQHpQnk#iuvLXEw!OXo}Bjiht4+cdy*bij_-`lg4bdukx`L ziNnQe={mVKTW1mJv3>qc1e-iVB8Eo7-W>8Vj7RE3@)|TORV0_fNQEooqHq63Z{B)R4(zDB%5ESvLP;cfv}eS=;;=rjHb`$; z<Tr*8=;OyXq`r=kw|sX znYeGCRZDm0sjgFP%8S{B|I7*CaKc`@%C3Mp57f1UO>tM8_X3^k>^l6=%|JH?o6~1I z!LEimN86bLmJ7{ZsfrC_aW8&PKuQnKkr++niJ-R#LM(LNY61*u(`>@x%PH!VwP_wm_5rp z_~fnDLVCMr-IDm7l%;(Y=F!AAJ(1}rOx|dk?;KItjCrx%zJF3@r7;}I`?0% zWW#o8nEU0n1zREKI~7K^>yht;g>FT3&aZfF!B&D|u0K7T;I$I~1ywnAc=~Vu!b#>jm?@$}9G+&VSmf`vB(loj{mm zdbIPlh3#L_*`_~)5$v&je^luH!OE3}@_lE)W~0O2y*JyDvPZsi!kjm8*@DdldlKD* zf-L~EZ^V65%RGGEs?3WJb}9R$$G^y9S#-|(w@5{r5NCJ_(YG1yw) z=`f1WqrTDhrngeoJx-Wz*F*ON@knn(*1ZgC?vuYPbf?ZopJXI7qF|@Mwqa)*Ua-lq z`{_(u7wnR(JGEe!!rZZS`H4`&-#o9=EKUEZXW`!eM(kwzk#B zu;#jbl67n152eAkqSHS>*hRJu>@b+^YBX}+ znfLY0W3Sw=WJ|&<^KmfiW*<5f=lMM54^g*D*8LP+bKRcI=^?3k%j6C=?k$9^hwSvs zdA2nS(mhk($s1O%t>Df}cqJ@sFCc6lj+-cIvONx8+r3PT#q@%?O^v(l4#!<=S#ld# zzRPlYe5RG^R@!a?Ghf+YoX-?JCk8VtJGEd7WcFOa7R+og35D&BnMGeS51-MPp6_9* zvz<4{x-Sd1VP@;051nHLZGG+*Y~##+U9b}~<8$<+8$#Uj_2Hr9NPKOB&E3QnVf`Yo zz41vh^^eu@N5j^`x4hPaT_b%P;c=j3z85BoJj};$C=M)`$F6;0Hx|reob0ZGEk^iI z*dQ`=f15o!^YGcMd3bzs?(idcUavmb7O=+`smfe3-=nb}!8S+d9E3X*Z0BryX%o}7 zWWGChDjnQQ0+YeyYt+f4n*4eJUZ}8#1Eotm%nPpqR zoR99#LbnynZ+#ZTce{~%^R7Kr=yrh3c3sck&z5zNhhzT8LpJJP=sqi$$D#Fby?@wJ8sj*d%{*i_bh!b*j})a_q5a=FW3QD zw=6qQ=-eOGty-{2S$A{64$HcWGn=*dE@qtIYx2ulBe@bs9MD8!L&>fchpUi8yS>!P@_g&d+nJt~$ zS;k=`>856eSKEkmeD}vTb7Au}-W%GDu=Q2vwfb0I`d@%Fg86;3?=k%HKQLakNjl## z4BLOjre@uNxgO@bS7yE!8@8vxX7Hk9Y&Ughz&uy1!L_$Kij=-nyJT7BL?ayRHo`B$ zzAD(=gtcYYZ0PQV-N(n5PZjJw*mBEP^X5>*wC%jlur|7X6uKXSo+RVskdwjam1ng58>R zn-}@oE)SF5^n!VAG7sm|iahSg?DQtqyQ8(oZ)VQO>1~4_wzg>pI^UlNb{S#6Re2_F zbL)F9&UwR@!gsOnuY_~nu)Xosc-;660p|@{+I4xGUqtvubk`TmHn?>y=KMq-x|?7N zt=rm|>)SMM&g}L=cV)I6QLw8rTd`ob!`39d=L%-~nTOZLk+0`nw`C`OF!!@ddEwG> z2HQO|_xE6(nU#HakId>t9(!gszF>Q0c1*!+OY^N00PIk$9wM zzgPDClh3mkZueXk&Fda@^SnHS4t zmOYturxxrP*zYfHP4fp^Hg#WQ-D`#J2bpbvA9?uB)@Rs`!_c~E`#qR#+Pf&<>)Cd3 z4u)a-YG#hTBHwQ^^M0$kWk~OAoayNYyM*xI%UaXB_Q5WM*#0N}5rtXoR*Q>!IJkm{r(1g7j?0}ZB5wp)cpykZZc&d>mEAq z?S=05tozB!t&MjTwf!iwHwxXCFw^@w*Fzmy)&BM=_u^po)3Pi-D|9xlw!eijwCkaB zu0+e?zUj5$um0GY?yU#&zT>yBxDHVFSJ?6}-z*B9m0Xe+B^^)L@73K(cx%|qg55?~ z+c=h}+X{9Zx&x?Gq~}=Wdf2OM$Y733EQ{~S1lv2O_ff&dz7%(v7{g>|62Eguhv zru59W)S0igWxg_X!QAd6a0_x^+LU#cMdtW^9hloH*c!0CVg1P_SO@GpnDf{K+dMPx znFiYuW*#RM%>7&TVZqkTY?oX&%d%Ex&lb$HVI#49x?t~RTc5vBlIfa|Lq_8uRU7edMuHwym>qf~}ry zefAn`%WV5}!93rap5JSzbNf2h`qkUL((xmh+w1SJU30$bWFz0{mA*eCnRK1JHvY!2 z3#kB2nAjrt2f#c}2U|3=S1^n`9N(LsV=3ExZd|0d1k5~TkzQP5%eA$9zN#3y$YT!@ zi#E6eo!n3yT9zgc_!K+Y z#y3H?H0hkPLtWV3McDgmQ}I17norERZT9~+%(`m(9SZOL&ZwJt9E5Z3n;qGfkzUE%ZrVP=AS2lpx&z?Ok>kD-wk301 zqV1TRuh$6bY{O@9Za2Su4)!!`-tF4bH7D7mJ~I-31=xM~!ImPt8*FRR3+7mFD$M(d zF6JBk!0R3tS@eU|2}j+cA8buof<-@wIW{cw&v6ft2h&V8?!B%H`vdHZT#tUlhvL4y zsI4&;l`WRp_W0IUws>YY7i@{l-YeL!%$A|DVLLpt7CSF z37!YT_C&%@lE+)Q%%*p0W*!?ucMkn!XAf(?vkwY`!4=^=s4Xrbl$&m z&M~I(X|U^H&eb)P3?jWB!CvNp;Le3kmgXTV7^lzLJilzK-39AQ*#3Jf&N;_k$vUsg zx^ULRwsk4%u@`akRd))`W7sTwnkGHddZ~A{?_W>+U+HLu9=hn0rgu8dW7udCvuyL@ z;@BDeFLdUsF7h}7?V8Lb<~NMijq0S|oje|PdZC+_c5{2I$NI4K-n;ePp7 z<~_=MbfH@qon`KYA9af|e^cn{toOL9ANe|d@OT>cU#y$g#2zQFE_DBn?eUY|4IM+y zG>@-+m(7#%ka5|U`t#B`J=vZx`}4g8I}kQ*QfqBA{g1!&Ebli2{9TB>@h!8qwy(Nh z!r0V3bPpCf$2{tmqEXxy3*sWZey~Vy_gt1q1=}SvpS7rSJbor+J!11d>7A@#-pi83 zJvVh{XXY3vbXR7!QZAo5pM7gPAoqKjZ7$mM}7>-@P-I`;+h{>HhmW$?{I+dtr(gX>y+HeGEL&VFRy^?rZo z-XN^*bd2nirEW=B=-$q{M_^R1htBt$LibkIZAklhEGg65Ew|}W@b6Qocjs?!Jnxpd z4;-^}d*k>bV`_=o;tzDcLn`|zY-Lzn&&VEz_1U&hZ6;yMB6}pWTMPCmY&&$H6zoaZ zs8Q{;cXK_ol{x>4%<-G&{XKBb=knV^=T{V#Wz}3aR@J_Pb1b?NzRP^Li)dVb2WULu zXshE1J2rD1hdi9*RaR2_4o5a zHxThn`}L_k&G8`EvYEYDu(@IOgQclN=;ndFhHYG{5l!=od98ah8!U7yi+eQWnp$Iu-P+a2b2@%$y* ztMCtEei$1mnD>EA&pA57_K3`0E|}YBadhA0b}?Va8QSid+eOxu+4==@%=nV!!;d`9 zC;U0=a<&nF>79`u6EF{tTcNvvb(VSQq75#FS+_M|QIDwG_<}{iwzrL(@Kw-N4)seK#ot;;+&^gpj}`fXV@NqRp=-Duck{IK1E@Rt|#t$iQg{cR|2 zP23M)H{pkFeZuM}PC8DOx<|6ka{ErN`)?Ovm)UW#|Jn~tPu)`J91s1vV7|ZWxamR! zp<5Q_7^$AOhqf!hoEPb1n02G+8uKD~zmx8k*bDf+gEjz$Nn++_n>t@g|zoR-8h(an?xEeW!?5B9=aXSSvT7%*fuch#w!R7wkyoKeO55{3(GR2sIScW z%A#%^lxrFp_^u(Vd(@ZPhv^((yF`6AE9$my&SOAPx6fez&35a<$)$O_wZfXWo8Kun zZ@0N&|1Y=OAku5zZcL+?Sh?MX!v34>=3Mm6+ieW2dAqF+Yu;`hu;%S1`+vFJ#^pR> zyUoS+osYibIobCCTPnC&u=b?ytYg$O&|7)IDJmt&O}Z%og+fiSO`%y%MT7pmVl zmh4B^^wdp2*Lq36+RVb%^80R?`$FhO7IJLl{3Mvo-g`7g}= z3rTIMvpYGR{=0wwlxu*7Mam=10Y5g@m40VL+_EfPm0!=kagPVJF8@{gMe^-zEZHOE zmSdSx8=Le~zDmCR$R(y8XvAsrv^@P)mHt_k-`K7{yknI*4U zk!#WAVTrO;UJBRh=~%^JEx~oGUmxnIV!1LM9cf)hXXVYR%&XYINhvmPl2+Q~Z;rcsui>l<7JDN*Q0ZDL%d_KCvn8{41sX6~yaBc^_HI!=OjEq0DL%d_-q{qN)D-V(icf8dPiu-#Z;H=sioehlpVbuq zq$wWT)An{-#`YZ16ra=-w|&cYnc5Ve))b%K6rb4?f1xQpi}(o2qnpZi;Lh_ihOo|g zf~FClL|FG7w%0)FRmN@CG9L9b-GSIdJwIuR*Yfx9v3_7v+`pQ{2NqC$3zqODt0&fNy_~C53$m!*Y%P z%CK>kYicuj3!+*cD#HW2`8P%QgChL1FvR!#7fU);=SW%3SpQFcA+oN!{*!=jqcUsf zFdAV{r_WhjI%=(rFnjzy!RxhC8sXNiE{CFNnY##gb!3P)cv`n+@bvERdDD!MqRRyYeR$?3B!WwjMgy&qm|_uwbWV z_GZECBkz&k9GnPjg!ys4_w0Ak40#*rnf5%eonelB2ID#itJ|&6dCy}sY%S7=vfKb$ z7d8>*m`U3Qu-O4NJ?nOZEsC3SA?}^wyRe6(-@1B;o44l@Ha&Hof34fpf(<3S7`6`< z%xeO54;O4W;j!pmF4!o-1IXhQe8;Tj`=ViNU&W7nM-x7K5$=UhcDts!-{92s&TU}% z)XCyKH`y|otzGCgfc-c1-7wph_1zfOT;I*JuB@;9$ol>gKkBg!Ve9)V^|-RW)+clm z2>)-|-U809>WcrpGYMppKyZSV1WoW@!3u*1Def9PxCDomAVG>0DON0aaJNDscqkSu zK+)n>td!z?-|v~d?yP$Xue|?z?|x>_+2?zIYp=c6*=HX=*Y?^s>h0~7+M&+&stenV z3tP3YZJ7Th%U4}}`N{^8a(iX<HzOq=pxxK$+`D$BVzOwrA zmDQK8tiF6@zhwEU`z6aabb0y8>dSWk>_T>&eJ0rT-F_gu2UU-Q+Kz1#TeYxV6B}08{;=?SAcbgq zMPdiTtn+oSUZh;->yz%c=oX*1>%PJ$&+U-5-=eFx_q$|!3CrAfl@PA#L)BW|RYKUR zh}UV z{d%q{*hD%>$Ew(;y1Y@?t%-3-yo$jUFcx7;48|tihsAc4ms{~bPFqo^<$N)?xUQS>0_|-6I1&(EZ6V)V!J;& z+q(cMbdRNW+)#8KbTr$Wb*^L9WnsA6jZ0VR+O7rL2)6k$UHdk{+;)$J=_}Zl8v z>kdrq&$eMF+Sv!)m>T;Eoh;klIjqapv%wYPB z{Yl%l1Id`icty6lzufhAZt~VeHZK)$|G*dpn;+&ny(Elqwe;t;l5TZ$u3MfTXP9Z} ze~wL2-VW%lT9BBR*z0#>@xi+lo7*Gf>%M^7udv;}__z{QUw^Mkx&zR;{>J`>ed|Wj z;xl&lQxF7KGRJ<|Fcz+Lku3xJ9gJJpn(WtwZG`{O?Fsvq z73Tsf9Bl8xChyzL9*3Ppc_Z0YyL@R*bqwn|b0jQmZ!WrJrt0d?S+@#IT_?7-@0ZHwBiS0M`=T4IAhvn_Y)aAQ8$zu|2H)I;R zjmYnhZMD9WSI4HZ(jCk+bgoCIpc~E9_NrTyWO>IhjXK-M)Sbh$4=L-$Ft5&i!{Z6W zwG_5jVm>Qv-(3@Cd-Jx@a{XxQc>5r>dy|jyPQq3e`vU6zSlH7^cLr=9D*S3(NIr+ndMnkBg2;_4_%mKHe13u&@BVZ&e}=q#a| z8@3tDdtF?A_1g*aK8o*?ZV+q~ES^K7O4aXKdf&~T$wzs8CS@I=9o~-@Y&zIdPj$s2 z*rYIR{cW#cK6fNrG1*R5*!7ci>t-r!DATZAs<4j|TduGp*}jI(-)Yvzv~=)bj;FFK z6PvrRk!6fvwlUjeUDt$XFYT2LEbP~b%~#kJi7j5(&_BWb-NVieVL)#wXhy#`KsHyurmsq9JUkbZcdO5X6nbj zKbG_?%rVOH)a^pr`M$1ucY?Xz9swJcbo-J&AGUd73?q#@VEPJM_h|;--*w-7F!yOz zgWZ&L3`-UJGOT6#PXXx+Nv>6oop^x zA2t|qe(3)#b6vH(tCHVe$_8S4`0j1Z_d!_~*I$|UX!?=$BR`6E9M05bCNoC%aqkPV zZLa5oNJp{Zn}?|%s?^wobRKMRrlFgU{Kv4)#5m+>+yc9##@-`PnYsN?=e@mAp6oPq znYleuHzw(1>SV0`Rs9}dYW+Nqz-ryXc7)k3Ce?nQy7S5FcRHpok=8trXN?dA`vK;A z9A+rvi@I+}_riv^Oc<_BSlg{iX@%rk|o~`P#=_mY2eOqi)36W5c(u>3UZa zUsvV5$n+DK%iyPU(caLxt;@Pq?(Hfs+WR)&uLpBKBJ09$v^UDzhC2O}t^<4H61q6= zD6<{m*ZwREzqgn2mV&Vx)mZMnw(9+k`jCwx-T7qq@2$)JM0)S8wg!*NRdtbFPWlG+ z8yXh2vMD$?sA9Y)hHW}L1yrv}cdvz-@wLfQF#8fu4 z=(c9cVsFvy%6!Cc$)dY}sr@;ZcSq9MkM#QvQ~Pt)v3Q#0ElYkDbhjd~Kdak_bRO-v zpPBHx2Fw^ZRs>s@{C1qU{2f#6OuLbmz&7@?W$TgD-N2L(w&=z%ALV%rq0aR##@HzD z(WKj;=-Mbe#@*0;o^-b3P|9;GrmI$dca~AVF|hFa8<=f-J2C6O9oKFrG7a7S8Q$+O)g+5{(lwDbLtI@D1?;6+{=(c1*2D=DmU9K+c zxwaP<+aYPaJQ;Q?x+7ElWZDLsf%#QQPx8ZA$1>H2%<pQ+8T`caedj)2D)wwLaA9F#<2zEBi=Z-y2G6wqS z!I$1s>2Xpp_lNX*4)vQ9P4@deZ3`BDS3~FeoBbY>Sol2_7CtCti zx4f}McTUo|Uut>pCC2VT#p1qjZI3DJ-O@K?pB6SN`SAOBVa77pXRy(2?Ty1>+ATbLw{zS_Q7 zY-eN|KE5JOLttb^$BhV3_X(+4Wy+a})cTKGByG6+7}hxH@+7xwqAC zYHPl4U0c~8bdJCJm9@cqF6Pk0dcsz~$KMm11oqsC?ak{3+PeR$ZXp^P<;iyatd;p* z=U>Bk?N3uTQz`G(#5#)Y@Unatz{hJe=tk;%*VJ9MGM9(r!2?Y7EAw7i``VoC1&Kzn0$rutBK z63O>69ZC!+rqXT5RNY}P{wg*nnQH80KG-~ky#OQBExHH!E?DSh#XXL>OK?Qr>ft-nd(EzUW-d{82ulk*XPWp!LIqoQRQP+nr zKVswdG1IVR$gSR;H9F~LhW+-o_Uc__p))QU@^D@}V`6!Z=^xWs`r?bta&@1~)l5fo zLU#jL*m^z9n2t_tNMVQ4UyRELQh$=~;k&W)p|zMlm!#iMm|C9fyuxBUkey%H+LRl* ziwfhAtH~}dY)oR86viP)Q+H`$j!~B9G8xD^U_0Xd&#u#J6vi(nRXW+Kv{T)JrM>o# zxk$2u5}UiQ2MWVg<9gEfySFvpX(DrV}?anrC8>Z!mP8pN7PXs zyCF?B9yZ-aymK_M$6yb0^2O(w!}jrFJ2J5+!ZxwDiY}ige7op;$8?nUE=(V8<7JaE z@Al|M9s)X!e6Sy2+fV2k)5%u*{Wp^FxhKLs+}39wUPwpX?Y z8Fd#W-KOX+#>e6`%J!=JEtypp;Qdl`+VDGj@o^BkV1tW~Kf>JpW*=jV4p)u2`1d>m z*mmUo$Tp(>Zfg%9Z+W5Hcc&iJb&X)_^TpXPUOCs)`OJ#z(OIQ_+HS+Y+tJN}U)#Gp z$$hA2mhI7)HPvN%*dypxNPhQ&y$+jD#vEp=-@13XO-d}HF2-_??Rqq(W*`W5E$pAz zE>^Z%`u+oL8_5qJJ3jiM*y?!UKacdNj`#SwV%A~S@ja@2i(o4j=DwyrEbkQZmiHcc zn$l9f(3-}w@ zL&*D~*y=pjqvPAF=X*nU3tZjDOsQgvt``M`?moWrcd>tj*C|KdnF3D4Kk18 z{ax%lHa!5__kgzM^+xL_vplasy8hk{F7H`b)a6yab3g2K0wUA*DI||m`W2n* zM0FeSzLwGs*$Jc<_`&fjnOYCif~3vSEyzr;#b8InmSyV4HplVStoZOFi{qZ5ro`5fBK=xndH@l5O0sU7O7_lP9MDS^hH$B4p4 zvLHjpqOEi*(Xe2yGunQi7~P^`{*qegwl3_U!q}ay-k0oqfUYI)$3EkJj_(1wmAtm< z-X*E~imClM>waWDbZm;McmBjZ1lmp{?LDDq;~L5h-3zeGU|z#>Sx!&dkmUO#mMbyU z_Dz!S26CB)EnT#FH_#7>eE~b={+^9BOH8$WjpRF5;`n!I=Ko3^`kcV^ic%NZW8@Fz z2AbuW@>h+?%P{Q?`y0UajwTHu%?I1Ert>`x>Ri5V8@46+9*5Y!(#I2gztq5vYWrY2 zWRJk~`)?eu*jxObL)(mT_B#VC>-4KmpV{w8B`!>=d&#FizN2Nl@>p)@F&$MMs6y2z z_hC95wl=`_YU_EGBVao-^&>lsv^?c~h0b<_kIDAy@)67!>Gx;~bNQ+ZziwM>hb;U) zP4Ge&KK_m_%465Bu`oW?!^pU38}*x{EOR8)`$Bz=bX)S;%0^I*O3Hh`c6 zi*aorEb4c9smnTuWCO6hisWyl_*(&f95)UjJ;aL2>vEd9GhzN7%jz_WVk+HQMdw%+ zY(1F2$Fd6`d{`HKc+6}0*~c|WcTUmyo)xQ;b$7y|yo>nGy7Wij_^dAK;`xDKQI`S4 zN?Q(t8&sn@AF&D3V4nZo{pOB__q+t_AiwJ!9o0Q!woTh%u#+zAXdF@MEc=$EZZYcT z`kQrwOPytXitVJOugM%k_8;BRST(W9i{Hu1^3COaOWUG;GZft==v;TR?wZox+2AWu z*L~LOsJ5%x%2tAHx?x9iUs<*;>>YF)Qf}xrhJC{W_M5|KN_9Q&u$W_zb0 zZAtQ-HE|Bl@?2*wUB9EjX{}~?GRL*dM!{ZVTd`G%mA0etZ@?-Mw9k=~8VQ``Ol^Ssn+lpDIwVZJNpT&BUio@P51 zNIqnaoih7guFJYf_anNwXX@4PJup$8zvFFrf2*--8vwKK=JI|>y588joxZFr-^tN_ zPrCHV-qpQSWUG4@9;cnY4`merA9c^ce5Z-~mDWYp4qF}_rvw2V*XDE+hr`i_?AAL)l)p<@v+jwt<%ymZQHY)tS z0<*pI^1UB*(cZZ$(%RmuU}5XIKHo8T2Gd~gkhgyBa}nN_`uV$1e)JJBVAyWjzE0kE z+Z>qK8{~brq4!9IkG~h)9ErVIbXO<#R?&H!6t>flHwIf!hhPH>bDt&H?1gnwMzEO+ zyF0O23gdEWQ|EOBeYlQ=?QDg;o7fD6jZDj9#=@RV%wt&NvQ=3ZjGy;(=;O@9<|%Ag z>El$hdM;-Db$YjKe>Z~5#xS*h>b51h@8dZcimA?r#XgtEtuDF|q#-2txm;FR=lZ4& z*VX;TmgiWq2`qeU2Ghrj6z2BG^1{b{w8Q?KeSBKe=|f!~bR$XOBewglZ+lZOkB?R- z@24**w)^W>q>IINe>BW?s5^_~@yvaR#diN8nC;NVNPM{eG8a?Zt8MJR%nHl8{EjVc z?c3TO#?9t6}x_ewuV%gR#Aw0{pM#`)yhG>FU)n-vYb$sqUX+wra~P zOm~AFDd0m<)%AzVVSg&~vf-pRVCONlewKF|ssA2*s`nZNV-wieZ=XJm50dU)@^`}a zNOgG>wh6ZHCid52yFXLgs}I+6uk9?)O!$}xvpnz1G^SbiEQXl)n2#VmUkzOt+#iV)Ly!B)m~%f$K@8wS08@z@;$Z8=jD4k zEaEo}n_IX*2D(Gdhgk%;WcooUDf6HOwT|!B@5C0 zE9EXL0MFn!E}ZVgh8yE>|47_!wh>m8`jch_`O z?@_dF^O7zjEq7H%^BK>uee2I%wz<5kN_m+*#t)WkNg2UbBd=fgpIp9!N#WOVx)<}= zuh)jNt$wx5Z1+-LX8H}?5X!8MQ-9UBx^|*YwmI?ecPZv2aKVm%d4JRER4%ig*k*PR zy3dzrYw&8=rcS0Vv-4p~!|tS$+Ft!W#tJYsKCXj>k1LDq{w%a$_Z1(D(s6^`58IXU zc1i33nC*C+l}uf=4&i4v-VsH2t3FPC!$02}Wt>CjxkK-D*_dfCx6i(t%42*#+OEpK z8q8x2+jb1!2YaKi7ZZD}u-HekyboX}@71???ppRC zY@xmTHn=3(Ebk-OS0npY&sP{1b$gI*!}j;+g6#`Cwr^WwMVE8Y?Zedj1P3POxT25E zU{U9H@L_v*EdA8=`el;i)o`YMaMc{IHXyI9I?v_0@3Tu{Z$MZjDWG}>lwHKA$#T2J?9 z#X6Y0Ug%tPP${w(w(~W&-Q`CvoDSo?JW~QqzV~U<+Wd&x{6V$(<7)F~*XGC8=I>zM z^~-+j`?Mz1=HF+20N=PoU7PoPW?4T& zZQl251Z_2zei@5F0`~c=n_J>ny^EcGyeLt4{!8Dxq#qyTtdJL$|FI=1N ztj(`mn;%}A-@7(Hsy2U0ZGKE`{)XE8xZ3=L+WZ@}`Oj+ej+2hr<49AoGdmyCV2_gb zxyo~yGPJflS9xR7O(5@cvu_{@+xKBU-{}1-~(OdkdzIo`KBMm+V)IzV zK)+9u^!rNEc`i~mPl>%c&qW?Zd7X)Q{!iT@iFt11Vsv8*TM*mNVUH}`b?x8w$~>+x z&byFD+7iDw{!sTLI{V9^V-+dy}DDOY$d`|s_#M&{?$2~Cj!}2n68HBCJ z4*Kv|t)u9|hu42Y=l+Aw(H{qMe{Eip`+`14ziW;89KB52!RS0D*2gO3{aBaqu`2n{ zO^?p^rtFs3fMRGEFS<^KW)8U<@+8u6sTe#Gk(6?!Tqt&ZCP|)*Dwa^TuzoZcVb~X2o|>66x$7$ z+7GgiwUTa=qPv%ApPCQP_Xi6f?-X0A&^Vh7fqil|@_uqm2QY74)E$S;cM>h~f548% z*1onGw#Fd$wVhIV=b{^ikG)}ziTXXhKie<(K1p{5^F7c}wW=SeI}Dxg2I`mEc2X(N zz7*~FLt!2#$(F_Ty0T82_mk`QYvx1uP#Ghxg^_KE)pbetIA1T+&kQI{)g%(`S2b$J$@F`($`x8Lu2g6#u?TCnel zkRNUJf~Hs3?A;~d?(V~eiGdwP05< zb==71-JERQ7f`n$0g3WtwnOIlmu+`RI`A|Y@53V~Oxw)vNB8KVZ4H07DC+WYDes%o4$GTZ7(bEN z)V)&JDkTQ$JXd91exGbT2Xz2-xgo`6MasFYcU$$YAiuEb;i|gUwh3%k^4WIYuexk0 zva(&A>5MGA7nlZHqOi{s8(J8r@tWnWU)bQ(HqXCV-WrK{Y-9a)fVpkV_4C|j)X)8q zs=bMAS=byU2F7X_X}+&nr)?}BncKP>@v$vavCD~JwDBhFFsAwl+f9qD?Uk{6-gw|s z-dBKOFm}%?wqRn*7Pc-d%G;!{BTJnvZ_~o!J`b5~vwrpsW033jbh6!=?~Fm*8>Q{G zg~k2K+8fi&zUA6Gb@3x}xh+fI7|B#@-!cY!z{W7O&S85@v9-OjRY`mNv%7D|Rx50K z3JaaFS9b<1%G34Pc;_tRb< z*?nKG>}%3I`*Hn<8RrRYb70roWP$p67kDYk!4I+?bax!sk`$25GLPF}xp49jdorY-C4>n|x_Ubus_mP;b?q6Gu^3E(e*CTBNv z518_GwJ-Y;U;6y{^?pbE)H$a6?D`3O7wk}&&+P46man?wU_OgCpe#3;`;)Sn6Z2Zg z%xqAWO3eLJnZE-UK29iXg~awK<&9$suFeJZXR42da2PS&3g-H85Yu3eLpO2}@zTV$ zBkyx^?mLEV`@)t@Y=^>d)70%)*m8;ORM_%~?Oa%AVj~J$A+cQwew+=B4-D5EKPrYw67>^!R`@jwu z!5$?)4Z2C0x;*F(jo~Esse2{e6Xf-=5+bsdF800OO1j6%Ti)#yboT#8Y-P$Z_O27*qqDH<6LWiHU7kwJ<2G5G zd$rDPe=YB*5*OLf!fsE@Wo|oSe^Q~qO8*@?D&3ET{?3!*Nm^yZ4 zD_vXBd5tf8Y>v%alsAB>{lN0(Mdv#VuE3B(fr`CQ*meNN8+E~E#?bPRRQpI5bFzV3 z+?#A&_!F>WnTBo)^6$g0N^DE=KfV6OX z$~-rF)i>?Ub38J)p%?y}Z5~tO$)vj0^&;%Y#C{E*^=qEDvlQ&i*IJ$qE|KnX@Q8hfx4woa*sxI4sIO{G=I>$YA@4<{o z)_s$7-utc2zCjgRbo0Q%@3cjC2h4RLm*??q=>A#i*TK{nWL=Ey)@LkfJt}f^v6b1k zWiD{bligI*j9;+FYMyPZ2Q}v^=SNox?7fMWzu6D^eh4kAJ4(QLl^f3sQa2U zB`3Kqp>MFdR<^4%)i&PEqV6t|&k8=uOq6$XVLlra?3%(hE#m>ruCBp2h7BjLPWD^= z&Hr_e=DII)|4$a@TcklwsVy_ z%Wf@fSYnRP>fR}1m^#-Z+0&_Q?w`u;<$xmm{;seq=orEFW_fwvh}#=KRI_>C$Wr7( zcL+Lv^UpX2^IV^7^0F+g%c(H$FS(nkWtpC#og-m8!NS&k)fG5ccr?Z3JeYOqPkUV# za$ROfF}R@Ue1Ed*Le}}7(eQB*I`8-KUEP^Yw@}X}Ltee}-FpYuAn%9fH1BOZhP<|+ zvpjXd{z~3^^RA-t+F6&lH_vN9!Q$S$tzhN;o~uwKDMAe zt_#`6v*?0_kACP_>@7Z4O)Pw@2GhqhXkGXBo_><%d4XW(@*vq^d>1;mJ=dWdTVv`n z^Vq@iUP?Ndwwbw&l2MJO562vzUtP4sz`EQ}*z&2)Zu7K_{U&uXZ8NjaT9>CwKUF7F z7YtX8IY}MgcU|kVy|Te1$HX;CU1U2IHd*RdBMRF+v0Y(XAK9~UAgGh}eXsiZDQ3Ud_Q104 z-zjR!Vk%v%)2}6VHhI_S zH<;Sq0ZgASKIjTnzsNpjVDi74vRAb}F_hdQ@|pZ%d{b)GPo`;M|b zQh7U)_qq3j36$$XKhi=l?-xC%EF;U?3FdQSXD2qIu=^A9e2UMoc^xzSa{9fh^K%5s zeqeb~=Ml6qbjKInM7}o$S+_i$Pu;X|W4`j_y_(mVWShZ8@<8wpOhdOtVJDTks2dKu z5*@2+wGEIto@u*q>1#6ED_a!5;L7jfg~dA-)NL0!f){>02dV8p6WgJ%he~_3_4rQR zY{VsOT{g1o65Fe=;bqKO6WguGAHfdwQslLj?Ev#VCvFRZ?F4&w-5%9FqJ*JZ#_KYj zS9HG5!{ui`FbyL4-j8#W?jm&GQr=~>!|}i}wV7$X9*w2TGO{jvqjUf7 zHm2cYAM)>Ua=Z_nAhWGF@j5TezHt=kaMI#)_Gt7??8w4SWdo`$E~|ILFMUZzW4BU2 z*=PLwbWBI%>axsbpYu}`j3!sQ7)$O=EY|aJ zu<-F^@$nM`(Lb-|)8@l5(`__e=#jhS79>O**%&)ffy*m~r>#_YD<`e}Ou$#YdRmO9JaACf(a z4%gLkkMmbEmbmC6*i6aReWb%~=xE;SXL+($YV2m1=h8YU$bN5m!%3c-I~Au*E`OXL-z4?*wum$>r?Fc*Q=F*Q!Fd0n5vMq&I$s@pWYz`$#iTc-U^t zmp()E$?7s%ZD(vf#u;3ehwU9vSe)mV9S$=F z8r9Cs{oPY(|?p&*>Y3cwdll`DCQQz{k9{h$wh;+OP;Y0=gDL1q-)5`)|i`eR$~2btAl zko&<**w*_&X7w24elQod^?opSVYweH3Hv26@IDk{@Dy#OyS23U7UrX0WnD10&&J>> zI-}dCJpSF3`hC`g?J#VO!Ra_YFFudNt^msvo;d_GC$eqFF#$p4ZU zj70ZKVvu#=;{a@bNer?sY!Alvm&73J!q#)H^%xviSdM}3IQ=CtxD=f+cq1+I%q6c(dhO8|OwKgoa%W*K`(Sra0b}sLwv7*< zGX{Cvm{~mrc}(;-9gV@Iso!T-kHJ?-_ZVLqgQHTv&#WE;&*?_np2gM}#C?nu+jy?9 zo6`F6F6@`|gU`_!gS>6btR90rCjJXsW01FvnelbY7?H=sZ}`#}99tR92h55{6!?+2OHW03oS_aN5$ z!HtFGe((V7m-K@t(bfAwX7w24e((&o^?s09JqEcS_&cNZevnx`2Du-+hHbqcyk1!J zgQ@6)Pq31BY?_Z3;@EU^zW3v{ERIc2B+n{Wv9p+ZjbMCYacufH%>JhjkG+g@C)3zA z#xcoau&k@U`{cP|do|P8Hiqq|$<}k0UMF!~^%%+&?|}HW^n2^#aj)lO-YCavoN{h# zOfpu>F|{tTtw=NQJnO7`WcSxy=w%d?=9{UU!LvLlf2UDN3 zj=rI8I7!`b>KD3wVLp3(Te9`O2%l~C+^>DjI7D5jZguWK7Cv@GXTOp~c}HLvEXq3@ z7VX^&Z9N7D!K~i{loz@KV77NMnEfEvrC-t=Sacrq^4AiB&zX<%4koXUF)0Sow*JXB z+VOT`(T?w6(YA=eS&4#xrzMs#Belo{i}~qx)9Z zz(cn_>}zzhr}A9Bv)|FTaV{%l=ww$c^51OBMgNF3HbC>iUdh@-^v8(q|;j#JADg+bD1pv(*xIt@Q)1*5GP} z7=1=slC&6U;ac8%+dCR^oN_u%Ip5Kks-d{IXaGo@AU=m+B?3tUoisI zJ|*T(MzwrZeKE@aon6<>s(d8@bWghq=uwc9DXV;K!8FD;!2n`iN%&``!+%}HbeT4K zNE!pG|2-z<(?>k3MRrf!VG$_wW;#n1 z8l5wA?IKngf7_@^ z&K)Ad=DyN&c15V`x@lFymXOMYdzf8LBZG@Um8O{)A771#s#f2Zf73ACJA*1uIH_2C zW^b8eILhC3w$Awuw4eUW-WZj>o4d7?ww6*lTIbr6-R$MN0aZ|~SqJXA=BV|Y-M*cp z>E%;>cU+oljEb2C-?e<)=E`=#+-H{;EZ@3cy%5Rg{f9CQ-HGUYCV5wwc1w}snPm4R zL+5pL-y?BmV%~45Ew|oQ#~0alHdxr6T5LB@>>`-Y0dt#UwH3F1dy#wx1-D@~Z9SLa z^V2elXU}c3P2Vd%Uewd3ow_|~%>x0htoswcO9eLlSaXC{*L?+F5XPfc@I^XND4HdQ>)1$qZy83>N-N^fq-AnTQ8b>ejCTBsy!G2AG0*!Lmje>}w&+||Ve4_8afx#z1BtWG;Ge}xG!J<{ zbCA|XcQ4H25pC6Z?ZowHG4fY4*UmOwJ=V9G}*AiW`jljZl^rku^`O-#@vqOlFnxpTn9IW)yEeO+nVJ~ zM0dr)U0c%d@fqwj+Hn)*2Ya#TzD%}5SVzA`_uI0r4n#kc{H*MXdkh%1ov;;QKF<(r z4f5N=UQcW-^2fr)CtI%}Uk7_9u`LUmYm)Brwk~Y5#I}Pyi|y|dYL#b$+I> zjaV4gZ$X&X*6j!DllPOy(+!vp9jCRb_oqCX*fqs=LCU2HEw&56!q&0GWwa8EDz=P& zD<_@jX{^f#nB#7)%PvW`d#Ov@FK9b{4g2?!9OI(1zsN?A`VVFdOSbEvTW|{Y5UFs~ zZ~elSPwX*lR#}Gk%}_?@o`l6ZgGo#MkT!MR=e9Y3MbczGL$n8MmBd^gzHjGcm~okx zv=asUzMX4p%=hicqAuEwg=rh?1(9>zzCBtC+bHifbiUWf z_{dzRZ-lM2UDx;$>?YWbur>J}X?4G#>(qg;brQR+u-`Hb+uN``72U0g{RMV8%x%1J zp_$b-afeOWmZ!QrjP5pc8zlBun9FEKnA@Y=hm39bb@|#4yuUD*&o+;s5BV%-uxDY$ z)a^}ud~w?nx~Hk=ygRbJz-O@6VAkbW7}A!y{4wdiM5m8=5XE}57vH^JL|XQ?E{PTD9Vd%t;=$JDbMXk^p}O;?u)*Z%6qKT?+aMHzx*@l9!J-2 z$F5_hsLSyf96KlXD^aeW0VLlub_t9jwOQv2&>5>OVT8P;Z7#zo?^<*nL)nHUzgNO+ z?`U)sUD-x^k4d%{72QR!dR#7sG4xjF=Z(QW?6mxoY52XR*v^e##~14qK3s00yP@bd zgw^}YMnz|T-kAIo2X);e%xtyq?=o~7HGp}`Q|GdN7af09TsoODq%|Hsfd0YM{$ihV z?AU~pq>g#n_CLkexO9@{Cw+s?hTJJ9&-h~hMpZA=hd*96Z9S+m4`>FNu z0qI2M`t^R!Q6*a7yW+qr2Cw_u^O3}``P-i z?)C9yn$)(p`CcD`U^KDCN4%TE*nf!5xQr^c_8-TtkLVkt$XjRGYp{OQWo%+zUr_gt z#GWgS7v0uOqr69o?zqGzqYld*&AM3j8MJjQTznvPNbF0PF<1#!?=RdQ-SlBU zF$O!q>ixz0{Gu)%2iUgL5;K;vuS#58PM6_q(OJ5m`H=CGPmQ{@gO zlMi-n(XEzrR}|ftq~q1%)pHxC!l+JF-nL9XyhC$I`aBu5+7u^?r^1R)mjiO_J}|aBLFW zmaR#?U*ip?Ve9hp-5j0+P?K#JfVm!J+uy*#_P}C0oQeh81-9maZH=`tbez=I=ivJH zYin!<3*7<5)@SjJOZK}mGxis4qt3%&wm<9sjKH{L-SMR^vZ463y@!z3uWTup?=?Cp zv1MVt$LWT|)`j`bruP!_88*xNBC%nmyh$iLe5_D(9^(h|I6=Q2+XdTzyzh2eG1r2Bz_YU7}28(Cy^x?8O2zCoPV`Z9+ zbQ0{`-rcsZ!z}L&HZtJq{Xi?@<7U{rtQh4Qyp2B+LD{KeByiV;tL9n?BdnhsYx%BaMV(dy*wy|$v{W^>8owAH% zLrK=fa|_{PS(tuLPi&Q<`+He#+B$aj;{Fkzi3-~li|x^c;i|DUK^xuHUY!SIwmLq4 zl)8R+NB8ko=sw-2OXs}Ds}qaP^IiIoZ%cW9n}nD$V}DWS{)Xk91qu#M7FS=bzT&PB4 z0O<=hS{pK>t!yA^i9_34-s?7d(Y=s#oE~dTb5MKZ!qQ%C7b)zy#N0P|{J{1`&(bz^ z_7~YAiP;Y<&wKf!E*>YU^WO1b_6^zeB?gwaT(Naq7P{pNJ1VhN3tPOzN?X^jLul`g zh0V|WUeteTPBdC4Kek~*(nSN>t9PtwCv$(@<#rbNU>=XjdNQ>xmPeOr%z18mBi0$2 zzYDGp_o;B*;={4q{*ry{kXZN_4+|grlb>Q>d-YtsV~MuwkgT)YaL3(T-h+undGnN5 zSwBM3*qu6mUScoXgo>_kV|#UUL3DeNI4$gdOd-ZHjFk`;| zCGFKSy11_Dy9Cp1=HMM8DSkT@TZV~ddAV3{TQ|@+xd#^T}ihuI_uXTopH(a zn>n@ZpyK1m#C{9A03TCOxyg#H{m*uIf4}W;oZEurvfPZRALAVTWpnbzCC8rb(PR<( z8B2RDZ%dNP@=lm>$;nP z_qWvEZ79S3JeX<3V0-d+;bROHk>S4Dcl$RB=#iq6ok;T8`6d4cbH8s;N2~2=g-u{; zTrBT*q>a%nSYjnRqOdJtQ5S8ki?;R`bytv%#MWcPpJFt*#m7YEgN2WO!2IO$22|v~ znRS_#?=G9Z(db;cNAp=(*)_2ItgP%hSbkP^O4z!j{H(0Ho6zNFW!1Uu&d%jG3PMS;Uu4*eLk@x3)_kn zE6SUa<49w0Dc=Q~3T6x@!dOhz9S{+N_mXY~bfbBYZl$u!ZO4o-pV|LgV!tXr7GZ&f zj{(J&UH2xN8`k*@$6PFM`-c6klYe8LWPc3idL)}bx&^ih%ymZg0%;V?W32G88Rdpq0Hu2=jJ*#^JwUx1(+?a(2Se8t>V~ft?n$VqE zbPpwVTG5Rw^|QPSif)6l{>m;ax)G&*vdfF^?!>Mry4wg;_&uoTZe)Kq*aw9jIz=~I zntCn9!?T|A4Bf5hdX@ zc7)vrJD0rW$+m?x9`4zAII+!O%fVhx%ai*)3doxsLtbVb-pW)uF#^} z8Xv*d;k&D_eH5K>a-H_v$Xl>2Vc{cmgYj#B$+}p#^m_qmjYE4jyn!+5d=2bs+A(Wc zx71xv`UrMgVmHASoMe*5W@U_3cPnWm?3==7Vg5mNyz65|2QWVUNj}T%yFMN$eNx?J ze#c68c!{ZOOkw+#^+R@5VOLXzb(UE_ZO76vg53p4byl}x(Vdjo>V^6K48ql7JG#VP+qFZ-GQzx7SH=i+>lR%<0^s75 zMV)6Vv68J6sdr ztYgtNb(4^P7~M%Vw&k+DT3BzszidL!#s?JU_+mfZkmUQB{!{v-_49s#znt8&aV^U& z>O!~ZdjCx6lj;T)wr64<(_Mn!TN0Zbb`<69QTnd7grd?tRhaENiFC|fz5b8)cW!PjwMcXS#-^1$ryTKg8vX6<(2RnkiKK{YfPcCmj zMgE%^`!)IQ2|8lluai9q%lmbfO@_UmN-hRw@^Z?Ruz z{B|U`o)_JfydPuWcEEe>bx$a?o#s3XWbI?&Ct2OsV?^Q)b0%Py&h9Dr@^ zbTp^BuJz5O9o0EqZDosM>vL;IQa|Ti9`Wqip{35D^SL#3Ve7p$+Fl0JXSU7HX0Cwl z26R_34O{p1-3~6C>L>HJcQacURz15%kXh7~k9c;^^9aG>*}c1AeT(iarars(MPg^e zd>7b1Vb+C7V>oq~uf_&ylB3l-aufCRg!*#0%KON!3({h>Re=-dws z<~cNd_};}}zb`DtUF+xh{Y}}BK2+i-^L;I{?-Dx)W;-rp8s+gCu!;>y>{Rml_4)SD zonP3$3)>SPA5$;O+rGp=_Bl*jw>{d*{sFsy7dzdUbp5E8y46el)J;`b+&3rVFt_p% z_qoY9q^-((pe!TVT*dafvR#l3hF!XIug0s1+3$?Yh78V8zlC777E z^MQ2auyy@-86OuF=DOgy_pxkfS0}Gd=5;mu?zAN?vSo^HwZy#E=Kj@x%Km}6^^4B? zJfl3XgQ@d5+FP(uMQS| zuY)3yNjuD*Y;VG&*R?BG;|-3 z_c_d65V7bg-5yMR_V&Z1Gp}w+0vft~VLp3%TC&|A=ChPH!>D$P-@hc7 zR;6RJQnfeh_DZ_Ritc!();a6qoR;--|J3?@$<$?$b)9ATs_R#Do5NVGTXfz-9ra^) zsLH#Yg4|B$@?K>|9g^yL&)Apyw7lzg75L2W_HI0qbW6hA=QJniL?7$-Wy~2 zve@T(9A-a|y+HC@+GnuvyAn(v-;_G@RkdErwoiUnExP$AENoYU&Cib4u`t&em+6@l z;Qp!Gs;sj-b-{+AJ>}2*1ao3*!qj;UZ6@;Tkga$h06`^Ph&HTnGv zwfTi>^TTTM!)x;g)#gvB&5y0kkE_kUSeyT>Ht+9R=lTw)%`aJ-U$-_tqBb9KI*z#5 zQ%wH8^Vzlev9sce*^RD@}23zIR{nisOQk0Vg2`B zJI_J7-pU-azK7kFSZ`Je@9T6x3f(k?d8`zS*OphhnG%~7<~?s~CN?{4HrTU?`P+7j z!N!y^$+|32*u#k}1zQc>S1`vUvW*!iXDc%QPCD-^(#LL0qkjI**`BaBS%ZU}1+#t| zv-$?R1$H!Sbr!H}YkbU3JbaGn0P=pOC*4c(`K}|GhR*Xs-=aG?G0&$=N@XuhY%t8{ zj-G?zt}5?ors|wVdGn(C{j6N)@VlaWspy<$own+NdAuu&^8vP_6Q>8j_`X7 zENtEHQnzGTM%r!z^Bs`hL*=$E+ul}ew}JnXSgEVWN>-1R?3ct!UBv1Q@;?`=&>0tX zwpZr0A=wtG9iD?U22V4s$I9!?VY`0OjVQ6Qylr8|s`Dpe^6i@R`Kx#o!&l_eR!`)X8MTxPmINJ#M66pXC&{(YxN6} zd=7%uwW^D{6VQ2&uH&JxQnwe$=QM^ewa)6!Lw6Mi3#%t~ezDyMW;?R&#z}W_sY@r! zxa7L*lXT}4-H|Z5SBvhbq&o%OAv;m0#7--9xfW(za$UwH-5-nX{fW(vv&See$7LSa zv2%94H;Bd17(ntJDn~5PXpABsES~#_{dHqC1Y2W2Ga|>U++O#ABc@BDGxl4?W)Z~$!rO8UG<~wSakcrmM72Vr)w-n=kt^+F&}kV z0UyTiH?Zhe3z4_)uAOu%p?hou*H;o72KxXXx4>A`mET>a>w1p!R_2YBb&2OVpHFO6 zw%gX_wZ!5%&W~YHzYX!>a=QV>q$O4!Td6Y+ZxPGqu4bGrwz7X0HaxMJ2*xotaX%!C zuPa-xRljr%>u1uQ6sdwvPsN;nPML8ZLWiG5FA zzbEls=zc8hfy6v#r{9VHgSqha8~4yL+jxu>#rxYfDeaZL5A#^g?F@fapP9ha^XFRv za96Pxn0hRCXlbvuA7Hy1>;;(Xpv>i^?zN=*u=w~6<~pb@d`yP}$17R*@I03>kbR8p zsgxJ@j|H>N2Qt&A*hYB=!CVK`MS15j6XiWidBz~_jZ?>E?~2XARGn@9nw7%yJ<+dZ zlTmruaPpyB2(|+k%c5VYyM%xK_Hy(q*&^s(o~EtYuVjlA7X3=LIIIshJ4CbM%+M!teX|upLh(_Ijy{4npTXgYDo_e3MOt+1|KrP7&3;OX}7j zW?}0&O?93J4mK;ywz;3mUrXEUSHYrfOTa8Yx2-p#V9~Zduh%ZST2Eqr8O+djmnR#bCy2zp@T$dm_wp zV+`-r$7LMn?w%qawtqlp{7#^LWLx6Lsn{lq_^k~yb~%1WBo^^I5*9x0reLoxJ;pRM z&(UY*{-)=DPf7I~53_#r(;*$N^c&}$&vm^kEb8|rjLmpU{RUziEb2Eq%(}Qd@54u* zJ=+?;CjbAGJydLuOSX>`_Q?MMd%W1rU*c!|eu_O^bUP=V_n+I2shCDP{#MxGN%u-& zaU8D?pF7vqeiOF7zd?3&VfLYm$)CSp_q#e}JCl4yYfq-Qsm7BvnfiQJjP3SGk2`&K zXbe+*XzO@yc{4I~+2-<=fH`l9^1KdUeRFxkVNu=>-Zk5Su(0)- zz`Y0Zn@D}Tw}We;x6YryLia(@tq*hm%DRMZ6dg^Sakzl=;ED8S8W!vznCFCznHt;N z$v?Nre+E!=#bTR$7tHe2#WvY-HOe~_emdesF${JXOuwro_PfGPD(%(xsKPd3B?{Zo zg&msOact=Nb?aQN`j~6VZgyf}i%;FkHhY3?Gt5|3?WJD+Ug{!AH;C_+{D5Z|nMPgK zAn$L$|DLJ!HO)%$H|j5D8oJfVkAm68VA@)qwle+df=n9 z>vk}0El*q7Ld<`TzoDn`JVNm+o09LJg2i@K<~SgWXX|8xVdJ=A@p(?l*{|jxeMQ=q z3y@n;+3>Llx^Jw^`jGnt;cQJ zJ~Tx)I}Y~YZ~5KpX}WEHUv&Lxn?8o3^P1Ba>?luD;w+mC zW_j_tgtD{*d$w{FfJ=LeYlTe+b%Ebv^sV}D|S&?9)zrM%T$a- z+~g7GRb+R=c3!DR<5$GiI?En_9k61L#&jj7vio3{!eZMadl0tDsy!M@B;8}MgJDM} z_5$o`*z<|KSlADV^<(*4mu*U1^f4{$Ic)!&*nhC~9s^#-+N|?@==yQN^BrQ~I;ia} z^iSLSNr{VWs^a6k6qh*)yS|Kn>bBv8skSSSkGO0HyM1Vn>b}EZ+ZT3O((O=~$M&Jy zu`urm40b4N^kO}#ccKM567~*0-b`^h2Ih4>tfrZ-}OmTb0gqCm?4Cf?ke)$i+W`$FY8(w0FWy4`>p4+QAw#$4*`AArd?XqoQ-|@q( zF}BM_z?K}-t2wsIygz;t;-Un9kLr?mtlKlVxEt3Y+tf(cRR+z z-beRE8QZnpkOggfzbosY?7HIP`m(;s#uavF8QW!NGG1uA1o?>7C9p+C_p0vacX6#u zS`Qyvz-~yoiRj+u$JB2`6t*wHCcmmz^*aaly_HC_lhnPMbg!U0;jCWO{i$L5b}7%; z279lR=X*dM+jDuxC*Akx+Ns}k^fiX8s?Hui^*pjyWA4(Qs~8j?o0dK)d!+c-4@S6J zd>of_{i%SlS^-VeZzkBJe_**KHgjQ@B{oZ8u^rU!tcAsPP_`(n{|UXC+d2lEwo>+=5|naX<@M)%q+HpnZ&TV9{!(ly-=~eCX1v?UU94~6vrSu_f zkAkfM`%_}0OL@`P)SU!7ZSsx=hZ{{FV_;KG+tGX{fx3$d+mmVd{R?^Pa#mt&+N!#2 zh*9WVFRjaEiTxF3+wM&4Ihb|%u&@#Moj_WPmjwUF)beB<)O9Hi*k?+*58*O@OD1&2 zP4*_sKA3$>Hn42FEpHXdI};xlm178*`_E6pre#M6H`O(~6`Afh9lr$&i}HSh?mKiJ zCFZ%9;d}IGT-3i?=QdWq_s`JHJl7`kJ*QFLX@yOkrJEgC*y?oH&~X~AvVD#LM7BS5 z^B&_lZtuPiSoR;-`!jSj-(M)})suctUz>q4!nP0W&hL6PCShF2%;yX;>x=GFbn(2C zL0AbsY{J770HD)PeggWmpxp&5n#wKOC$!3FjFK;|+D;o?uXn~H#GiABS z+KcX}vJH?e2wQ;iMwewNTL`w`M!gzCVUAbZleQ#n4BMjUXm(>i{w>N6;J!%SI?E2` z-#2@8RQq?q4uO5XXGitSPq5#@mfE|cdZsYg(ZPs!u(OKow~4tvTHdt?8=J;-17AvumEr@O?Y@ZS<*{@*>Q@=mM2t#GN4^zu~lK9c&mh!$V z@zZuFwue){J4*ay3&C#SA+^6G=Jl58k8h2Y=jN;nw@p<2Oxy6gHf3Pa;&*4}{ir*P zv^?c~g)U;MkKqTk#`#aMV_{D+4c%Gft&4GvSVdhpWm4@kW>r@F^%OhZCV~s>DDQC&=Jw-TbURXK`;}=^lC~F=ex={1Nj{r%VTpmdLyB$;Gg00|nD2`k zQ~H&*FOc-{5q?>fT6}nn9kw3x*^co9+5L8X3@2HaM`59R8Rk2md?r%14fE5JKHj)@ z^^6_aYB_OgvT+maAm&5&EAq>H*t>d$%vgD>bt-8K7^kLMbWiZ0)_aMuX=)t$W3R?4 zRLr`KAT2}c4Vw%=Qz|xu>3lE_&02KZunka0wHqTz+mhU-D2n>AnXG*53o};Phu6~V zSF-ToK4#YGL!D!L_Az;h^OW#2X}H(v9QXZLA8ov^eGBr|McvuxyiRv=VqSY%dCxu# zkAGR5)pGg+(=+zq_iSJ^xnjFBePj1N)%|W!p64RHzI6w>V7w}&s>?$#BGFQpdy;Of zb>XHPuWg3yz2q0bhsTP>z&~8Y5SM~_((?j}Jzcm-^uZ4L$8q9MY>Yho= zYx%MbOI$3^YyPr{iM>?V-l;BL^Z$anT!K;f@S1v6m$Hqryg~T$Jn)7zG<1Dnll`u5 zV}1e^Y%t542ircZl&-h)lbWA#RhRGNe|w|)-|qiL`*8oa zneS}tWM`EBjgHRvzi##IF#lIp7RL`&Rkm&ID_8kdtN*L z4Qxw$X&HIzz(bi`|55S+4)cwfk#0cBpHU7@U7vByYliCZDpI?cJT_ ztY8QlZOv?Fd&)Ko>l&FWIpGb*WSb>)jc*U8`Cp!G|2e5&tnjnn{*;xK|49okd&nY-&$NZ+X`MqoN z$JOS?)aLJ~%}=P!zh9eY5NYv0Lv4QH+WfHE{P5cRLACi)YV%`j^W&HwklO!7nYX|B zoJqvZ=QCsxC!d3HK6JJ#&wpK;_qmw-z3t5NgKG0WCzHRo-Fbe~+Wd&xym83-<7)F~ z*XGC8=I^M@kFU+YSet*J`P`4(HW;f3q(M}~?}B+P=Q-F;iT$0t_v>E8)D^|^+;P9| zh2-t=Z0f4xFz?sBntbTue%+g3ju`5uZ)5+0bGf&X55I4c_kP`ROx+G{Me-W5_v_xr zG<0u~_ukwmnYw>rUE%`*T+#b{^e7w!~-kZzrV)ZT} z>#`Tg``M>1x~-YtlQfaw`JJ}1eMvsIas^YQ)v>|7Onq*}*oJN-d7oSPFtN+Y`x`og zl8*ymJ}2=+(w#?M+l7-(b{Rfo#?P^y*EUstJ8QbBXKA%P6|K)*oQaOzj+W<4;@XgH zJDfBG+i|J9<6+kCKZ%VkY)?8twDbvKNY|6@ZA5@Jx=;x{ZF0!Dfd5_9X9tr*#uJVf3mMg zx&HH zpU%wq$?EIx@S4u}W!nzEH-0-Yt;cVCvi*!Y7(bsk3cuf!`puk}*UPQ*WDM+~o2#$` zlFnfI9ozLyL zoFjhr7j^cB@T*RyE|}MLWgg1~+mgI~y`PFhtQNmHR=XG76Dcl-!n`NT`!LyLwAgxW zPag}yeaFNtY^>;l)n@_z&r5m?X5Np}g-CD1oQAFU>$;8l9>!v7d49zEsY2&@3V*A} zZCS7@ieKYADJlCMgf3Y4T`$>s&e84k0x&|>vYoyl>25{mGjNx|jGyhYfBJmdO*Q6o zXR@f@o!HtopKI+`eC);4?eAciI>OQT8!`5I+PTOFdl_c^=7&*aOZ}Eex{uJ^vs2eP zAGY7Z^m_(6_fztA|IB3DlZN{Y>r*geZ(TN@uIqWSZIiASI?LlSO|`$3%Zp{CZ9jBA zJGNqpf$a5C7yG91%eEUN-FxV)i`O`!9n(RrPb_T5z@p9%Ve7KI z97Z!+mZkewp?etJ(nDC6V0}pXID)$P`+Scj-6KW!9&ECjF82SleH5L`Z7{K__rG~d z{2XKMCf~77*ST@)BJ;fA9I*Mw*O`4Xv*pmaUIg`x8E6@q_u`K1?M{@ZNX6na2?wI2~f5b)Ic#^uIOewlWwu^)U0i~bkm&__x4c+q_gv;XCF^_!$~ zyKi~>&aP7+velS> zI^UlOTSvgh?Z6qZn_+aBDlW3qNIsW&Z(^sD|2OObrq)Ft8;~|;g?=ir4auK&E8`*M z8b8bP`o&Om{h5aCmhkm%gtlMg&C~vpKqP)0XX8qZzerYd7rrapJ!dK^AF$?L=G>;HFbC2bh|ygouxDnDMwn4TM4+|Gq< z*4Z}e6S^;wZdJH-{v3gQtv@O1JTJ`kmtnd2tjIF3@S&~0iK4CJAH`PhWAHaje9lVU zG_Vy(IetIKtn+*f&Pz}b=GA$9w=X_Z@_VMnZx)jA^O=%}pXIGW(#Kk*Z9m6`p)-EZ zqN~Sme6r2Ddi<^bd5xN_zX79d#P3b&VEjHVx@obu zU*`Dz9J9`wecM*uFYv#5=og33Lz>oJ%(e*^q|O) zgj1A|BvGbEN@kwIL*`@1JY~$>gODMaW&C~K>%Ol0T=(rfU(fgV`~LOYud~ly`+a|| zb*;VD+H3E<_S$>PJdMrc{E+8mJpXc9C;xa}#`BN(cF~Lv?*sTxY=Cs+A9+=pe-B#z zVHmzoJScl-_WBuNtRaw?Xji1}TBgQ!9 zL5kejTgGOWu!j|2WD89<)Y>r8_p-5{0^|IqRtKXI%4GM^ob-wD?42|1rr8Jb!804q zRyN&hI#$zW<70^8Yr1NAcFD?lomSHr{BdfShA88(g*Df|OSdmi*T<|g_tC$-bmDrT zt;4p`KicA(6?WUT#Ac}uc^?Hju6vKvU6*BAvd&zsf7q&NOKH<)r*{!j|L7~A{xN&I z#`&@PXs_@MO0yp2D6kI3xUbH%nr7NNbQ@W@Ns_Ive{63bG4|i6n;LW-Exv05<64CH z9u4d>`D4tAaGLZ}R->6QD+{#rH2)wSV^&&Oy+Zz@7-Q=j-$%fQHYYnpVd{ZjJHz<)AJ2ZSuNCrSb_weEImC1p} zH$?_p{H;7Y)$&U6>~dqipTll3wx%L;+c9En+h`RA`4_kCRx$0aMQOQBjQopfc}|S@ zx{C9ip;jB{xjn0YoHMVlnQtV0rlspB%NsR-@?FRobMKmd&+%MNFURD(HTdj&CIC@x@gCNb^>j`9{*ULDxdg@O!WH?t|wZ z(7hgXyf2z>LQT+b2W;);ASAvdrrICLJHjsba!uB339ou$B zV8@w{`GK7*M*410niVWcpPwI)2d9|r(_!0qrjj&!yM}I(v6&&wR~lOy*bFi9d7hSR zFSee~=siz)hb8Hos~w?*G%^49Mz-t5o9;msF7+?!7K)+UOPq7_OEs8YhvfpBEyj0$ z#s|i@OW0h?D{S8o;~nqhi#8?QE9SV*JKlE{(_hi|f#%89*;xI?H-nZ62p8!t)Ved* z`Ew!oy-haw<+_;jmnzNf*PoR`$F&^KM6i!>{(^2D%{&vq{^WT;S+i}+lxOU}qcxwU zne?rsJay)2nPmCQezT1d`uBN_3fHT!lf?#z_1AvRcEHZijP7FF_hFpRq2qW-{zcuE zft{(}E|896t^ShE*-at7i}fS%El~xc{fqH!q6~26w*BoK1Rdpy?MdJXrw&hXf{dSw`n-5wcKG>6DybFV8GFVr!6yAl= zF0d<<{!!A^h>?HjrfKFqExevy(E31oqoEMn; z;JxYY<3;nq7cCzY%s-Ncah!%Rooi7UoOhI)L%O~-R;o`3Gw_d&|;1k>@&Vb4F;O%(I^ z=mQ{qTPqK!f6?!;Vy+uuy5(ZDe^HkU`Eru!IEK^yMco3^ttNi9X1-x^jh6U;on!2N zEt%x1@ck2=>ZCdu*;&+eb8G`;`P}qV2=dQD)KhX|1^JWBTpKFDueLYZYg*Z7G}0msVtN2Om%9 zx6{OQYLe<7KD66s^Tf^-^Y|XO_;wPb{-N{uco&iDo)jm(1!B~{7~g$C_q2ZdMK30+ z3Tb}E*p|jN(fXsBxgPx0Y+?A|TSY#081|}Wu2<)1V@V6_L(N>*Zli;sqD*~3d?%K1 z;Ct9LC%TVJ_b)N(ZClN*doSp|6elfvYQx;eQezhe_LZ@R0{h0;hH9+b_6IRM9$3P7 zW;e3m&Guv+pxyR$G1`OG)LBFxx6$nFMqe>>D#rAT{92P&NYD5>TO^L{L}dyZw%2X_ zJ`VhC&DeS!hrOd2Tb|LP{zcnS0`7x-e#B4OSH-;kU8o4=e_xUP5_C(X+gm*>A|G3bx$YkQ#{R*5b&en8gYR1%#i)Ozak2bz9a=5swwH>t9sRYVVHdaK z3^8<^53Q;^Vn1K5ursbnVQVN}XT0C=*F($FcY{?`(>;f3ZPU}QsK2U2$Mw-jG1AsU zbF~6o`&}(Y{e!)vnQK4ptB`-NH#BqY_h5)`UHR=hT<=qnQ;r{8N4+V=`%3!QKErmj zHy!7$?7vZWe$eSOFU9wb82J}<3xkgPFno8ax0apYJ0a=m`PD& zoCEOAL&{m3lGq$A*|rH9$^To(Nn5X%s5*=wq=kf74r_bm0r>~pRWr}P9jPULVeiWJ z{BtX__F6joRN=uFR;FjDD+1$X$o4@JbS2HS8KQumIhv?rP*VaF~2s_-^U@cw8^#pydH)u&ZGBf_tkN2>den=`9>%4Gf&gZIeKS_oJ|+w+_sCDr*E41 zI8u!E53T#qW6A~QKKRy-4mCwS_!gft_c6)xUeTv#&)AMT6=sS)I^%@FJXj|zcYZ~(JXJh*WHdhhTW{(q764Sov$E{m~?hez@?z8_gyN+jC-0z*H z>!&687j?&)j(vTq;vs#H1$L>i6;&~a58Y+P_6bZsWlP65OXD{cOz*})+w0tBg)xDw zSIYJ z#om+c7gqm>k8@t)TV(q*y6$G{@7aejK5OL(&9ZB)zQDN0yt$Yj_fN+U;%lXu_;}>T z^J;yIZ;im(TYP<_N5^sNQO(r9&9!8T^>52ODyo0Sh$$P2>faTCdHuUm%zZqjF#EY~ zm#5<|KKyyX+k);%h1t(P4D30Dv87?bF53QBqQe%Q`_lq&F|!(<2ZwDXD!{9 zd$&9vNxMP*k(M-N%b#7Dmm^-qgJd^?rshz}j@96C?mUO~rr72@OEfqI6{ z)5m#-`$b25=xD#ud3=nSLZ_xX9XGC7twpxT@*cLY<~BbzPxlyIcevQg(!C@B`A3=W zt+}dAi}b#u$Oh?v%R7+V_V3c2SW})2QHDAjFV;`CCnzHFZ-31jYd%8k600wyWvph7 zjg3P3E)*la{R5k9w&MbuD#o_eC_~*Z?GLQAc3x+r#MrhT%24*-xNTJ>jBSHqyP34K zQ&T@^l*XSbn2}GtHJ{o^`>U2wH)XvRg>kCba^3x^*ymcZt%EeT(Y&hS`$9{%m8%R} zRs8}}7gx6b0^Orf#=DMo3Pv01teIHb^;=}8TY2CYhAuMhS#wR&LuEw$W54$6DDKnI z*1`Om zn$e}S1h$3P=Zdc~v`y6e@5T7;x2NwoF?<{#rfO8=swk`=jISa zk!zcCUmi%d>|1{|RsV%x`@i`8(7*Wo#J~8R_UZr2w1YDBtp6bbWzYXOsh<6h_87Oe z82GMOrNYcS|GRI=dQHjtQ6=lcOV&r0tk;&TPbgXEdEDrKddd2XlJy%)*5{P0&nsE4 zD_MW4Wc{U*^@Szti%Ql%Em?1+e4A)_S-fb=X2q%U&qOb)DxNA6q4D;qQtv`2o+`OU zN)5d8%60xk)?h~~iYHGxt>Q*mC4~1o6sF2{4Oz{}nn$a=CX!Z_Gm5LE()=gVso*6a zsH~b$O4r@Ynug7rzu@nXCDl#7*{V>{=IeOhR|!@Buo#-uGnwd#COCv zH)K2d>I9bO;<=yZY)4~_l{jbq%(}lX9ozF1AKSq_2Q7-WgZm5acbw_CH?VSvu20al zQY1X{zl$_X`0!``w^f)trBr$;z%&25D$In=pZTZ0E6Su>O**!X>mEF8&2zqQg)9{&<6t*3Vf9q)bbeZ0ouC@v=a zp0sK{ueMiM(xUAh6qs-C5n}GQqs2E`jQSnpJ5%e_)0lr32Ile26!ZAHC_dVz7XsT@ zj68i$tTa!*2)gd3`$mjBjd|ZFz3R5@Q$$lk;W8L6BiR)a`=Rf?SUH2UDXiKLIb z8LN4~8s$abO`5FjVqF>ALGT_j{@7^hiRgr&<)Yqb}$!Gu`J}Qct68qD^K61&}urj=Unt=v46;jxX^Lw@VwYOG13e>QjGd{YG90o z`s#%8^c@HV)0phn6$#ILaV&7#yY(Z_*4-~gc@Nb5f$4l)2|ngY$1`M;rQ`e*-BQ!7 zqu)HfXA~wa9jvZldyBDq16wHet+oTb+kS4kX;#;;eOQbCZicefp7Y>AkHMPt)13v8@@W4!wG zV9PNXALprzl++^I&!ltaww!~P`faT^I7W@u%y9u9j2Uz0w!4YB?YZWcah=Z2Hr7o} zoy{=zp_LJNb+NJbRvzq!t7#tpc%yV57F$?5V|&>4!d5rNJxJGe5aV7AW7?c;YRtzD zV7sH)&am{sb~3hSVEY-{HKcEUV^0V6H)FpmBKOO=2ivh)&>d`SM?0qA_fTW+2X>e- zy$-n$UvFc})EKyr&c+Vcxxce6#ugeQKYvu6U30L;7Se!eg6Y#}*(tkL6y7leYpFEM z8c>nZNke?F?`3nFY!@o*><43AEbr0jRmRzq(p~TujGg%Q!6sli#oO zJ36k<-7md~q;IAebrQd>Q&y+8FS366-EGTdOCE5JNqdUU^WfiMdl}b(Zby|H?P=8c zxG>VlZ`?~~KVec7g?s5^6vi()6+_b121Yj~wwGzCWEa^^)4H;uh)vMC$JbI}?#-X4 zrIMI*FKe3^2mDgdwNV%!9JfeEOy9+p_wZFU6W>3yBu~+Ke9MBatN3pZH%i9>Ps>Ke z{9YXKZL4{ux<-Zbd)W5I&ar%k^)kkD6~rf3*~^+47cogoXFAI@oXntIbXCCp9 z(>ncmjI%gFVWzg4eVoNviR77&v*3D0$xb@zB4hX1ZfDaKX6)W#E!_uWc=6F#OI5`p zA6$Ppb02$&(G-yu_i=t;?!()XoOC=R@X^nW3-7Xn)roccrEz)>9_Rej`K#q@u`Y!E z&~KhT&bi6c8QKW;ef)a)@{FqM9uO1!Mx8DrQhe)(b1WmTMrer-*!r3WEN-0os+@H+-7!JeU18GlP+*%VO#VF)*k-1C zGqBASX4^gwYzx!%2j6)S*)qTB=Gv6$z(-NJt(>gXvOi4_AP@S}VTF*(+ zr{FragKy(Bvi$?wXEbBmR!qq$vh5Lc&+9k7p~JbO$M=F5-_Y45F!~SphR%5<3?Fxh zk*8Y`muAv;XVASNwp_M@l?TlgK2q~IrJwKRoUX)ietDSY12pr!9LAS;THX>nd9}){ zVugCPNNkMGcPDG-pq}EFyyp4QZ?qF(%XvOyQ5d_jpTbPq?84X;>OFZ1o1>X$0It!J z$#slf@%@AN_-+Sd`)6DJ!LAi!Z2!H1-6Y1?{+q0f&`q(lbXC5vPrDDs_D>X3vWwC} zKU>t17IeOC$16UbN8q__XY?sBw%?!M!|!mh!(Pg7H~T(*=PF%n?-BYfGJL>1KAxo} zzVEbT|K3q^=~SL_v6Ql2OZGC2%rElwP~lo%ukk>Y2gn7cS~i`jI{nwboCk`ug_ZQH zsz`ov&$SL}JWw!jPnotYKan#`g>+Y^RsExlNt36l*4DG(9$3i(CClR zDrry|L!Z-ehI${TLLvnV=~UQLh_;YyR^sH_E*65y^xB}R3*q`;bouuI*H_1SK+7>9JRyW97s6{ObW~xjfk0i% z+Pb>(TtQP;*Q|S3DeqLjvZzRwR#r`=r3lumm({h>%3k^Py4v!N^}p1XZxB|-hL!A5 z?ddk9v~hONRHr$oIZbss+f6&=l;~DiU zE#pd7v{IJKe5y6Qe>{bt^4tJB+bZGevjnz3yp=6-qp2c|C10{d9(Y{lp2vDkiT?A@T_ z-Y2&7^?Q8ZDm+uR-sg*LrV=DAb^47qHm2pGV9WD+`>NV-T=4j+%ywTb*{!1OIMcNe zuU0&#=JMx!T21H5jN2~L0kyZ*i4WaCvE$q7`Hd2`Q?8iN&)HhG-cN(={$kwYyDQl4 zAl6O?@_j8|(DgU=XkbT)?IPRFwPepgr>^3xt9=g3va4~#LvV4v{7MLz4+q=|IbAM|? zg_$@{-dHo^ExKw+nsZv-E!|=Ip;}=@oz9cr(~@hN?X+~=J<`=mHy|+jLt$42cApr1 zk2eN(zgW6=EY?IbX&I)O`;B*N={_Em?ncEoKd?u|*p7F^lodtW@ovyPZa%&jQ}z`3 z_#x+YMkvz@3zliqgN@LXV zB}&5uC+WR)3ZsM3p9ecQu%?Q8H?jVT!*yRs_w?yy*(3VRnJxhm^LvKG$NorsW0X+W zagP%A^$PWjeH0%#Rc6=qviSVDE#l*z3AV4RA#vT_rt6@}?2KpN(Cr);?I`RUH6*Uv zPYl1CsDeA&-{Si*u!GF@c@>81xUWilZ>(I;xPJp<3^qDtSsFLqOO4t7exCU<7=-K zPu~F34G`1j73q!%y4_93eG=LYEehLvN6_tIy2WC&8&OxT3~;}L_1j?O%Y$ObpG8| z80QDDX;!|lO8J1TZ1oDpxHZypV_>UWTD}a7=O{@Z$6HTJ8;h@l)ivVdJ(nphf${8T zN=sm`So$uqI*IM`#-0pJm&nQXkHB6RBh7m$lRYhOo9^tEdA5<_>!caKHCm#B_0s(H zIeNcXV4Eq7j{YmxQP;Rv`Mu(GMt$eL-H`n^1#-7vCna6jS1>ffMA<>`K`>*k1) zf85V@Hd_oI{(WZB{GzdQtSn)ix3eAo+&=6r(>1kngFSBS3Nclql$Hs~BkINt+RvSF zUQhZSv3;N8XAjkr+LIflXYffM>~OI;>U`Nj+a{C54pDfa7{?6PO_i?s&_>zUf$^T? z*3!+g?Ipg;#pZ6%D7!bXhr}Mxi5>4Lr9PuOM0MgFu@M6LIkBN)Z)jlFd6qBep3sjs zD9x7!cDLA24H8q=Ss{I=D*S|W>swx7TPxN}jLTHtjtRz=hkR*>@&1!e7nWzQtXOZm zmDop$@14MQ6>D}%qwH8~H?-NQP`G!pw}SX}#(fAF`Ai-1dmXg#&ip>a)ndx(q?@KC z_c~q;Y`VhS>v&B|_rd#Hxd-&M82OA3zaOzCM*O>QhqSFwH6rW!ERM5dzXjPHMI=C&@`KO8K9-D$T96-EPYm7PfbxmfBT{YP3uC z$xb@*wT))l&Y^*E&JX)%VC{@84@{RRNwoteI>sYp-Vv6}jtLi2WiqD6lWgN2MKqiSIRIt?V2L_L8yIc8&zwQ1NkG zou$UreQYL1ntQHN&o&q1y>NH5u4mht?(J3U*>+;wulRPge0`?Q&|YwlfbrMlGmPUZ z{rA1Z$UE23e~-@7(${=64n7!1M*7~ew5SNu__2c~RA##=%mh0|Gw=0Tpe6CaxW|F+ zW5t2bs5?|3>Ne85e$Y9)&urh35y#|cTWjqf?0)HZ$IvWQGPi}@r5F3cRP4!iS1m~& zeKW3mT)H=fL?pK#1$;XFc*hL@T1m-?Ak)C{x zKIo5g=00k~+{cRMW3-mk=jdZ%VD94uG1`sj!n2U$FK2 z&iI9)D`lm+wr2aG?MK))#8#7Tx$@u@+h@=<#MU&wyW2j9u9UGqtf6h^{a8C$9ysIu zSfz~jV@0MzdA8FXmD#gelF!&qv-tLt|Hz21lo20{e8!ge4zc*0(bke57maF8TA%-pc z@D7?!|Gh~XTd81b7q-;0sn~g1Dw@PL(Q-pE+83son$aDs`}^p~(@vTX(acx_t{>e; zKZQAuXr#!T?PQF8A7_J&QC7}|7^B^Awy&{`tc=)>1C06DWY{XoBmDZg+3{j~X=dB# zSEPMrJAB)|viQ*9_a$8*^1f;O!d}wv#MjpL1}ACHC+!Bzx8r~k9c6@0*^zu6q9tYY zf|#e}1TlPkt!<C+}B+qJd4 zTo06Yu{0CkB+W-kcVA!}7huN(zno9b5@Vc%`;UDy{485F>rp ziqS@p7Ej;Ipu0<)ZR;(8+nyrEc6?;*2DT$LlfKC+G}j$1hL0&KT-u1};}S8~(U->d zKBd|bPDKD%E(x4>_A)A4)KgGKZp_b%VMiFd z*y^^8W(zdD5a7KHawoQ$Ovth;-D3hHH_xM`Yvy;Tg(??gy z_cL#!^*E`0$x&&1Dbt)PUu{}f`dQ|hX4Nda`*OvsCh>~=veSC`r9Re^OLi5$%+h*A zMSe+TA4vRKCY{P9EtMdakOI9Zq{kn>;{=}YHURWijtbC39uM5vATJ@OM zc&;d_HFhgnU3-_YQ)K4iwRb7{^`PR_ZHiad-la?2gtd1qvi(P~Sm{J;Q@QF$%(_*s zDza4-FTAJIO>9|48(KWwQoPFApEN^CQEit}RrRV38J4JK(A*ZqHIN3N2;HcfP>c#` zE~M+`yhQ&U(LUOgN2IVYC6rQFg!0LW$dVI~C#QfK4$$`W)=%GPhdWCRmG`H^MvGk~ zHc(;L)r#>A)zN`X6k|LE{iAA@i^f0D|KzsUNynItIm#)r??BD8gN)gjE9Sb}r5mOk z*KLIYyF;w!y6UqC>=Ch7RiAzg>>V-EvW*;2X!zJzGh}epq)TZL;}}_#mZ1Ag zI=i6r&uebH@%Olh; zt1#(bM=(sjMe*7E=z&rG4? z*;d#6T@1f|?uG7Hv%S{N$6%+4;diPXBVof#x27`QoB<0vumUfEqZ zADgU`a<@f?EjnjB%ZuL&WT;@uE3R)3(srz9$5+y_v)Q&5Bl}^lTiuSiGE46#}SOHVbHOk!8Wq|L)YBcse#e=i|(<&Ry4Mv@|1kWb|qu`1g6_c$#zy?>P}1S%fQsN zl2|Y8a~_|%ZxTD(n0Afq8L`%lb?;SSbg-9<`M5aP0%LpIz5sjK*r>o>G4_wZxF>>- zZ&U%?$D77hQyp=}H77d0+vkk?Ah0h2d*9e9)<%$)4~;dq{RsAvG2T7z@qKD+abQb4 zKHGn>{nA(?t7|ZxD<&=DhQds+ zr!_OCWR{ks8FrOsbhl`!Xo__6wC=jAP4|qJ%B~{a8$riCbK;|JvR_8OowefeU1K_q zq1wD6-HAar!*sL7v^x~(9t*l_O-DYesut;5Sbfn?*-X>*5>s{+>HN7XbhAyjq3RW< zG%(MG>F4xTd_IzM3ial{)dEvdz=o(`0h`%abYY9AGJ~4LJU$Eb#yG{N5dR#WO zuawDdn&*pA$7yq6T!VceHbyJ%qfBw*mt*K(F}~I4$6Dg6(TtBLf-UVIx~VE~@;>VP zd_$7d{-N7a`vQ3%bz9l~fsVEg9p5S=@1t&U(9y1O&*OUAKiKB4HQ%+YJUt7;w!wbV z{OC72IhEeo?_$R;FHi3(a7KJb|5%>hP2-Gq?HaL{lnBzH)%2~ag<`ZD&bAg`>!3(m2j=m861I)~hxCoIww?F}im`26H+q^Ge~NCb zwZ-Um7JFZ5c|EXQ%yx;j8|ap5Mt6uZ-sAgBjQE}k>~qsq+qJAVF?&$+>x&zu>uYRb z4{2`nNux9-Nbb@xfb*pOIsv*`OWGXTu(dQFBS!n-wvQ_Oo8miNmCAK%n{K#(>*~bt z@v`MJejhfroeIcxj~Lrh`G*F-o)-2aHK|2u*)1^lySnN)?OL>bN0CwQ<956onA=_{ z2b6iV?WeTpbfw64M=M{__?Tw$V2;YobspaU%X?iTXY?bD7|^8fesmZQM8Ley1;%&^ zzQ5JZ@(;%SFmz`HR%Pr$YuC`huq|bcw8KWWp4m24g(B~<#UI}}J3yI79w_OBZ<>u3 zi@GK{Q93=a)h)iu1LHmo@$IKfa$6X-k*#I62M66cX1luWTci)hche%vnQh0Q<31~S zwbWQo+3u`)@v`P=3^Qqg4c6R94eh&HIvc0(AzwGoHn2L0Zi?m$7c?(?p9yxI=CZe% zXUC|%xb5v?x4h9@&r;Vjj?XK9&^*i8c_OyYYd+=u=Gnu6y(YG~SVyZ@=%`oMywg0J zVf!@fan0|FJsa4kV&rKLUA%i*{w+57ljhlGs>seh5E~#iI52F{Mcc2$j!=9fLVU}_ zPWz~Nc2Z!=#qJl|T7~02IBubvE5<%>sOI7+7guxIjKY+ws#UJrl&exIZK{g0R>doA zU8K5^qn6lYHnlseGGtY`6j^>H9Uls^P9X(VTZEO?@t2Hq>;|VbqpWq87{Se9r6S5I z)(gL+$D=*!Y7emFJhCv=7D5DK1iAQ2Niw6KR7Qv|QhRYj*ZeaflpAb{7<~%oD(q~k z*ynBZtZ88L#d>zrxD+{Z-9ob+sq{MI8)~1*2jdZ({VYbm0AtM5OceDCOcrw;-vp*# z;GbgJg^T(H<^)}(!gU=q-a$*wJ3DJ;Ea~w|8}Hq5M*3-={Ju&~>znBJ{@RZD*8af; zi;Y&A7uh}t3(W&HvmMWiQU4CqJWMlv zEiaglE?TF(-(NTA(31y|4GK)B?AeXd4Q_z#85r&On|<=-revk~bP1pRAT~?uku_6% zF!#%tHf;Mz&#{fPxGm=*kzosSTiS7KH`9{5kG9n%3|pAn(zf$v;S04?_M~T-9#Gsl zu}NYp85=6Lt=N@8_n_GRVzb3OzI7EQEq7>1dBn8Tl`zr*!DpdPXI$@elWx^ud%f8*mcey57;6*QEn>uXMqp2v&hH_UmZ!z=L7{nk&zO$;oz9*$ z-R^-sXN*?WbjMktYpVa7}tg{eS)TtzJIAb_)dc=u2)_$q2s+(j3c7lm|&yD7G3*`%O;fgVVZ;Q1IdG#PRVgmzv$QbVl^Z4Ep!}efB=8S$v z7~d~*mXpn0+Kz!C|L8|V$2*T)*V|Z|z!(RQPM^#w=zbAfVJ&@rz}g(PWs&JFZBegV zBDRKfFNx7!sVK7Ll$+Scrh`?fPPEldvWdc^1-72pYS-wyH&&lvYm2RQby@npmh0M! z@&1{463AV;_8X%m@1N-}7IoAEboxv4Qf==$S1DiQ!`ZiD+sW@u(kQzU|4BdM_uP<{ zHO%i^IaPHl^84U_&?&o$biHNk=_5YUM|{p!Gau9g+AFPQV>GjEHDXbRt=AW}rIp$K zq$TZDw4JOKw?&67I#^EH?=>@~bE=lkbjh7`ZwE%d==&qe(sxH(=Y5;xsWbWt@WB{3 zXPno;o(k-D^TF5-*ZpFwIaA zfo*7v=XX5Kos6w(`x~}uZqoKXV*3`Xt+C$%qhE-8>1}No`wjQwFVM3WqZP&n>~%4o z<+xLN{Uzqlay%jsbw8WV8STc}C+HjXLHCi^7Gft_dEkTn_W-dKwRBsa$-L<(eeXT6 zFBRr_kp+P*Rd|AI2U!^r-!idl#p(j%p8wCs>l^i!_vjcqeb!-(vZcyXH52K4@mVc5 z>eDD&!P*>j-Pspw^zG(ijQZfDUZ0l z7psnQeih@JV)dT1oFdz)O3Sl>ooejMz(yML;}N!}8QVk~;XXWl^XzzZvUI&PGp=g` zEt$q?)+tyTXGdSHqDhS73u6d7YRTj}#&w}ncBS*oL$qXk+J#z@2l&vbU-B_Sk&!mH zWh~#(Vr)OmeW>{?(%}Og<)Nf!?&Cl)d~hv(ux7^m?JWneBel+WIL5T|J~3yUkFdSB z%PHj%({h>^c@@*rxI{-<(6N8Sv>YeqKGdz5+94lHN?LvqV|$NKxv_6VA8UzWyRP_t znt6ZEQ(8JZLSf#w{w+lEem zMdLyJ{g?PXK{GyjE6tQg^wCs|{UiD~OOZt#KG3N-Df01?biN&v%m;l?lt+;dMaJ>G z$VZ7T`H+qa?oOHy(M+9W*oga>CdNCP7D(spZ(`(W4?BL~`^GZeTbtfA`_=LpHcYI8 z2HEYdFt#xE^J8`M_mjX*HpYEI*VP)kH?Z@KasSG7ml!*^yq;ZZ?8(5Ui#>Bq)AVez z+g@injZ-Sb$Mw;5H#N<84=?qWG;>Wtn%4;IRWY`W_e#6&bz>ig__(&ZTekO?u&$RD zvzw&*PWeZfQy%!`c{F@dG`1Wa{Wb1`d++P%r2v!UfP7{<&ecEsZX{oa#M>Ff@LdH!xEtK(Wt-^1X!#CQ#HkLi5;Cb~zBO%M6}i5O|_r$o4quf-~VRlkbW zHEbU#uJU$zx< zTXf_LI%o9N-*8Q{>?Reiv(94e#JVanXR9b)&Vf5?>5QIO*b`yfRy9@?w(SD#%Zx+W zN{r(IvyXK>-gJ_rcNY?$kKa%>rm>&c4%fj=)vd^Oh8Sr<_jk?cUKLYvigb;Xc-I|k zx?W=JA2BUQ1l@6_yF!fPdDJ}@bjO>nu`+}GBkH<}x!+-?8!AS76?GGXu8|6q?O3&4 z{&*gB!^DVh4cVWs`Fq`r;#n+bQ^nStw_@readw$8T?!O*v`y$Z?{wXj#{9eM_~5=E zKKxzhu}}JHvwB5ZVCW)yRqVw1D`pE+4jBRl`)Z;J=;1eUoU?Hm-QMvOzkbL7KHymH2b&pp(@ouwxabiUwn-P#yjA zRP;f*!q3|^7(*PnT99V#|C}m*Y>=v0Qa!D=E(%qzR4f>8C-%pja9?Et_ng*L*jaxu?zapKjB#k^P)8J->vlBVxxxyj_;}{4o62gX zpgTZpFR{x5<5^MSqwktyNlvrdE)P2TTd+MCc%RN(k{8I^OR$}Ydnv$o! z7J`=LI);4pZTm$! zu5DnhJKV~WH1438Z@JLdj1Ol#`+sm?JDHB_TG#C+#!kXLS7&<&ts%BPg{Wz?=Cd^O zJr=GTnP6iz!`4!sl6O&euXN5_H%U68Bz=$T_kptY>q;2q%XTo9i1ip>E-;VJ&n?j& zrkOPBwdCnKJ^GlfhS;}lvUEdqqSr6v-xOoR1Dh^Z{j%C3G4h^tSL@%57t}W=#yJ`6 zCCzt0gUrQ-eu8BiNG)Q<8#gTb!?QiT&bRMEO}0>iHuy=RE+nJ4^ZZje;nXB zdh-5pf1a55x=Ht;bd0Na+l|FO7n`j-aMoSy{#VPho|XsL!teoOpNT%s4!X|LRcz2G z`&{+UAezjW)#$9Zgg*F+ty3AZ11aq@jNQ&dq+%{RYmdrCZ;SbitqPe+grAb zUuKjI~ud-S!l-y&$l&O?O^kry2XMgwgNExeaBc zp9=kcs|V)&e*ML$=IEwrrr)nNFxn>i{lI}9i{abRRFy6XOY58`0#iBY^r?LUt)8#q@CnA z$K*QR`GbzM5Z|kck9#4r6?XQtvFByv>?dQdT04a8`(mV}zczsS=stM=&{bk;#){IS zVWveo(t^%?e60Am$H6#xXS@cVzW4J3<3;!zoYN#*9N4!CbN^u-?Z1@KIL$f*OZQgp z64UNbbZ@0=iH>^%=r|s+j~t?zdjmI$d0Ozny&8Pb*5P9l&D{T5ZaVVdO_kv-%d)Im zVQgWX2OT5!b6|W!?Z6wFrS{x)j3I$>jpK~x5a?rRsfe7lv-p~6>1?R!MuxO-&v@|l z&9WbZj{CXz=&$W@TkiX!yDG3n#(XRh+rfDnx>+h*w>?3u_l6Bp+<~g6>((j7k1ZmD$t$ zoET%0bIK@Z--$6Md3x)5_JtT@jqg$gciop_j7k0^Fl^C9+h4>Oll*pw?^iL#8ov|R z3aZ7eoedJBJh99wc9ywBKZ9hYZ`M*3DNVdx^m7QfNuRHpY-q!3 zRMFE^k;}hjD!-!thZlaS3M=fLhv}E!)34Q8j+OkBep$4RuT<6lQdwSG@S|g5SgD9B z<+as87FWu`N^KTaSg8Cxuyl1tY{^_@2Xi$=M{V-!#@>*b5m~L@k zSBkN1>;rB)OYC*|=wR(Nes2)tdo<6Aab5v?STpH+C+Oyx?Gajfe2gicDcfPnGguGV z^^gtERBWg)6UQ#vYu>f6xt6Y@U!CvCUo56z(f8yp3p%dxcxK^2G0KhjhH2)Rg@?5C z_~_>#zEzY5wAZBNa?QtUopBPb8))(M7Na4K@%0J1!O~Uegvk4piEoH8bvqV(TxmY& zyLZ1=i1B^u)f-v(pBU(qp@3C8}$ zbtK<1@%Y}e_;_bGM%im#~vfNBwo%)5I97eqvzU7a+c+fqkbm!}Kztg6$Hq+mxsG>3HJt zEfXVs4}>)TVYZ*Ns@L({3uE6WsUQ_)CP`uJ`wez(N}9QbUVdCz`fiQ;;5rEQfR@gF zR+zqnR`RQ;Q`-ni%C=V9wvEcIg>2FR_Q9q_jM;X;B%oOu)je4#H{S<$3(WVy0b=g=289_n^pr+ufKyQ$bpEnv&vM(ee*=kTH%`9^VnhE)DE>V}4H(+f$5j|IBUA zGy6C`y4#I?9oXH*dRVz(`;am2Rk)8Q zjNKtd8;j(8wvI={-J)8+WHS=Z5@{BdL%!U zwe@6{>Dt4Ys!^KC+F2kg<914##)SB^%cZG)oK{(3lhzG7lVyzytVs-6G-8ENZ6TB^ z3X!rVZF6d{ETkU3KZV*9*jo9J`%kvU6pQ6TlYMI})TXV6n$(B3aJF(iYg^MgAE#oe z4_UT}nZx=}qXH`nAx~FXAvf~-?O-sLa?i-k2JAWd^K8@{ZvgJDY z@W9AXu9L?FHpUp&I&M4G*mZ%OBgS>@9f3_S-Ccp5XY7T*xVFacTY+6DMn41XILAD; zZGmQVoy9yYlgxI9z%DY@H!zNk*d7@e=Vq`I1DkAY;9syQ`kj7(SAy;eg~ zSeC?hl~^oG*ew>HKL-rE)tJA(qDGAP{x@a$rEJ&^Y;{EBz8PX{$G-x*&UE(#Hrp8cnA>vQgWpAgQJ*QxYAs9m%ZKr)lP$8`|Ww zZLmv?ofjDAW{hh*UrUaIT{Kfad6&kF62`bj7VD+C>M_p#+c2>$V<}9b*AfPh~bxh7-!dty(QfeF%GNv8Lt~y_}vP8=@81H+!P+@d1>K}~poX&nQ_LZG`qx;d=r4{wMpN#F?xSsuN%%6e4 zmimm3KU9$JgMK&|-}7H90h^|s(%I+6{5c=e@};r% zE7t4SFR`svLAvd2#x7BRi8IOzUC*j|_D^G<2R6sp>pBN>+j+*$vOY4>a<8$@T5;Wd z#uf+mfU)OwCWnsw;cd(v-cI=@A)jfhgT-)tgl+-$`}v&M_u=^erq+VS;jp8 zXNopmW8c^$Z^t>W_wigS=DIJ$xyFv)N`Q6yrEy}CroJs`EhSz&w#X=Z<1Ho93h z%<2K`d(CXe;=s05;^~w5I{57^Mt{j6Ru8akD@K3Q2&)G$xlHdqn-JK#VndE9%QkLN zza1Tn`L~3z?P&3xA9Nd7d{+k6&1`+l7q;Dv?P7HZRw+iG$1Q=aWb8DnS6ayB z-`@i}T#R}((%KSqFzQfb+nMcBOY?TptuHa-_l77;`e2)j{d#Er8;T01{;O(j%+tD& zFiXI7y%eS&?r|*@bsCfI{cyhp=KXM6X`d!fdTRE5IPMiVny&pfw^DqF}jcK6MmpJsQI>mZR`Zw*Xj7039Ef?!8-PW25 zliKz)*)r$rhO2$Ob$iq0LAgDoR_?!7onyb(=9dHWiwa*BbQX`tw`Th^Mmp0nT?T7O znPmE%@`A6ffdI8(xdsCR)@)yEOPwdA^>l9{TdRG3eXaJ@#_Q5@vpaG`mu+@mT9&cI zQDON|;@M`~teZMuHruAVe%0^WY+=h>ZGJtMU;l?KWydydwltRp%CJo9zx#4MTVF5P zZEk)xe<+_3-EDod+w<{FPO8j1&kCJTRjL%4stU`zj(WM3g0%VEL+hN!MfZTah`EmA z0J>gc+D(ddY^duv-{+nFg9Ga<#(m-Q#8j1v?&F>xbX`ox{zE$(@Apy{-3M*QZR7IS z{%Xq7c5n{!xY)}>}M0LASTUJo~jUumcn(PdO*kDNwTASWE7|e-U)YDa^L%uvGASq8RCWT#SB@m_F}A z;COqie(#_`+T9c;%`oEGU2H&L$D8i>z!>X}t~M~ny2CCB>;$vDD=_Z6qI)tho^>NF zp9Xf4F*SLG^wC~p+b%HLYiu_Q>{QcjAJ|A^l%H?!X=dyFJmkSB(~Sta(@l3_V55!Q z7}yzRduL#0n(o!W&NAJnfz=xOHLx*e>toMJ-&oUi)Y7-(Y-5`lqn+NZovvdwczl1$ zQ`kVUi*)kvSYXG9F^12_lb}0EjC--?+c60?(sXxKJ+LFKn9FXbptiOc^4a*bZ8bR$3lV8{7~h@33{-?}mVR`NH-$=H(0fn=vn6*a618d|?L~ z^YVoa7hCPlCWZ2)4I^)c$gh`gDWfbS^YSfae*EzGynLe$Mp;JYx)jZ&D2bRVjDC9zupnqWgU!|vA7ZF#ozj;@u3v2Mi2Gbr74 z5z$!fi*~tWd#u^^u{H)lJ%t4r1gmaNy5tPd|)uPs@hT(UmH);<5{Xr1c? z=9+CfWlxo?FVcEWzxnoLzyI+^chlEOKT_)hwa&cVdMZyXIgcut)T-+k$v;jW^AlA& ze~qGj$)*(IIF>p%(h)7~0{%No)wKMysus0*3;nMygv^%pN-I@)A2pktS(kpwYI>eoZK2+0)>=rv=8coC3R;t`Q)jk-Z#@x7APQGZ?ZYd(Zd zq3sH6yB39CQ;0UBMk-=Bf314&oO{2inR^8LYUw)8x6#oTNdZP3ZMo|PDa@GOnOf3b zqkC90V|wRl={l~b@S)SS0^3Vr?qPfs7->MaB(VJy=KfKIw$S6_cr-|?bzldHaUW*| zF&!Ff*!@9AUctyK_pyz!t(AHI6XSXm zTaG)f+u0cB?#^~Gc3WVSCAKwMx^4qw+cc_YXNdhbWqzUQ{;JI9NcZ2A`CLm&Eb}|X zO3VBn(=E}`w}ZM*CB6+zN8gIa$2ePb#{@Re(y}D5{fsd#-EF5E<9gRw4~y^q zz&10sAh0!zH3@mZdp=3a%7Hy#+k0|gKbzmP)PT9)Z;knLv}`ZWv66pXbO>_YMAHol zY`EJ7#@KYya&usOR|fWOU}KGyY3V-pu!L_tY`wpMlZGgb(_ul~QWQmgWB=1k z>B`4zEQ@q2ONT9e8sy8(fpPGIJ*TCoZ?^gPU944!k3WL$dW)~6)ir!fGh6Oaa6UvC zdA{&WqWd_{bnl8$_oD7S)AbOi?~n4}c*7LSyua3o4;|M@^by_@*nVO>$HM-rD3k7T zEsxiFSIus_qr#NO!CHEmdzx#+-1bVd<(|H?E5vv{#jn#y%dz@>p*rB6(9(SjHTH_- zA3FNG_UWzkh3y?}y4iu9Y;2tEzu2B?wx0y1TV-iG_y#Fu9`m$X%+o^u8PDSk35#glk5&1I9B`uorbab9SGxrrNQb-DPZtz~&k|BQWwj#TOW3uwm=!gv;Zb zZj8PaXH$*&y?oNgvuW6V7<9G9dZ}G>TiR-LX9vc8KiC_A9b&Ad>Z;qSt1anv4Q!CH zae?h>?BT$6Hnu!4?w#Scm)c7AQElvmzvPv_v;eOV=HsF!4R6rFM~``0fq5 zBNQGxzao93P*pIs<luXWNMV z5p>;*QUBd`Q)34Q*3+1u7Zcxb&7%}wcjY7dIme$HG~Xk(s+h-joY;3_M~Eq_lWwM# zJ)W${1_s?AvEgF#1KV2ccCqf(zTmg7vFih)4gO3zfA15z0h%{>sv?WuwiqFHhF${w zhL)s{{Nz3P^sQZ@FcaHxsAl@n9s_8C4b=>LUQ4%aC0qKbJ`RlMl;~SqQ;AS8*&b`Q zdx*L1nr3@QVC{`@{Bj**_US`f)yji3Z!AVX+P-3Hc8dD0crMXx$v4u+eFtZoo9!Yo z?bb!M&j%gflBOT+Bvw@t-?~A^dqC*-;(Z5hyR8`gXpE;= z#caLLY(&siOUJuQP8Z{NK2Gx{nt68#?V!iEq3Q6|rbIVT4Bgt|v_rgag<~YsOwC(r z#z&>L7YuVB97mX3$NN^$DVlVD`4BC6-^z07+{a$#W3qHQ)D&#-(M`XxpGO~aN_6-@ z$9~>Pv-@Z-=00{bAD3&X!$pw~%7yFm=;PiJ9X`;}&P5*^g}kCICa=yBV?QT8&#SK5 zFv>joxS>Rc4|J_ceB{J@JGM6;r;5>c8hxy*jH1k=58m+~b@)I>naAx|RSX}b@q77T zOiZo9OysMN_ZhCR>y}H$b6$^^ur$6zOg|@EA2acGU_NGoeh?)w={O$ntR?%tGun2> zmvCR${jQ*VV_eXNa^S3q7|%>GhQ=AsOETu^hrnpV+9=J|8C~?^z0CJ5WoGC+OUEg2I$fw4I@Kx2;teTaJ(e^&AQ|8h3Wv#p4^A+A%+o9^4$_yRx9H7A!-gg5- zM;@SKKZki9Y^fEGZ=(1lrN#UI&|Rc?t{B%Q?B}poHMf)xAL9j^todc>rf9|EyHxCZ zv6qZ-K7T;D-igpw*Q^SogVl)9m-e8-#07g;GySIk*Bv4q@1AH8*ibS0!~EEd?crkd z4}GDq+g@z8jKhd*wtT=Sb8NR##ldfFiLTX}d7ayiSA6ujaqOYYv0b1Uzn=wL#$+&V zy|b2X%lHd)-2-F%1#H{E7zY8H5E%VJypLjLV6_TwCm;S^Vba1l18mo~b_jNbv10?f z(%5l^iZT((xTm-?rJNTRE_~rn}bIT1v})n*Y^F@36AGg4G!7 zCOz@Njx^?d53u8naSiCYQN}zi=*AfHb5R)kGJgA6`v;q9Y;j;$8XISA9lDvu)>mb5 zzc(41AJ`mYL)B=w?lEJ7RVL1!GsZheow5ItzA36y&fYTC!`e>L@^51=2llD46Lmmw z+pmnZQsd(62V*w}_M5SOYH(b~y#~_qeqhawjnv78>vR}PIvz4~#<(AB=LMECwr|V4 zPSq*nU2fOypgswOv4!y-xSs3km=xFuG5UB87E|>o>f<>i=uVc7ewy)O3KsQmoEvnf z>&J)XcS&I5%?E9cinGYaI%1x_spf+|7ZqKRk5hu~PSgEcjAOuonulqo|L=pKyI;B= zwXv?zAK$v#FOHYNkAZa-`&&;Pe{7#2J{UUQ{YQHPW8W`R zee`n>*hcz&_BKkh*=lprxaL=H$&X&+fU1ebQ~Ah4%acB&UI%h zzMEvrcdnE@Nq3ZfC(Somn}aRm;P+En8jJb40LKG#8wXvCPrF=-kN)3hr?sm*}uX=iA0O>NAw)ZL||{&W|nES)`e7kvW?x zHdDGWV%V}TsmVxvLDUmx+6@vrJFqUso)2t8V{PQnZMzyfEU=A?-4<96V?P>er*+PE z=$E=j+e3UX>NTv9_7i7p4{ShSq#rgdFzjI;8dJ2X-(t|i`bMhd0qh9Pu!(^kX^ihB z;TIik1iIZ+A)PH1yXUR4?3%zh2Ee`yY?-lbmFd`0x318(lfE6)2sz{a2kgSYW*B=T zuxpKVuww=BEfwSWfPJ(=9yQlotsRf&1NI2I8r1`Q{L`4sQhylNNA$xpvAuqMM4vMg z%&(8Q=b>m4o2Dh#bj<~vO&8;uZe;b^%v}d53%QDeJXJ@APrDr`Rg1w8*;3AwIR+rSa?Z1OI0A z03Yb~*dVW?9>6$`pZ0z8G_F>goSvQNqb0T%C^Gjk#B3QarroQ^miIzwlZ$Nq*+YC_ zOZu>7--zj>KP38Cu~lB@jQduk`CS=lw<+?wnKptl@2%O>+*2&t&TE^urOY?ge6VKv zv)Mmgx4(QeY1ty%A+Q6)rYT>}2<$-9JrvkJ#`-Dq)J&vp8>uDv$G5H{!*68ANk@CY z`;j+OcsI@UlOoO^y3#)EJkhkGZE&cilH^lPMb1PqrHSKTVIm_m6@FCJOCbH5U_nYq zQ?=%Tv3bVOSx#Y1)%-J-!dgx78*^W2)tD`?v?<5Za0;`|WQp-?sD+s>g;~!xfGq1X zsNRwcafg-|kh2ulYI0;ccbcHv#-)d=iAYmUv$I--nQGI23%Qp(>zfw2{0jdIKi4Kk z-DFczo&7}5dM27rBlkak`?y)^i*?-&`hCmKnr1I(NmM6mzF70$#JH}Cy62bWb^91Ss5aakjIXtWRkGGp;eDm7bb7FPUttaO3^%ukTJTcmZXgfPFx4k3S zR+}x?y!0JK+pPn0TYsM%X{PPL?@Z}9K15sIALYz#=ZJZldzx(z)yuXewmSvpwtI~^sqMl{bp4L+_Ed+n6w+3J>8 z_~qU@@%55J;pF#al^5Ue^yf#=O_XlZu;ztp2^ekO-D2acZosCSj*R2nA?mo-;%TOS z?r>uB^bS|oohbdex>)ZKY)=ros+XQ84UD?Fu?F$)DdzEU&i9?RZOgE2GsN1Q+MLmq z1s&r@umyw^t$2JliM_7;J36pi#o8U*Jlk9cNY^o@1U4+NOT-$By(ZR1 z@w0u@2XsyBJORJ-!=d}980Xnhw@fRX-|wS2Oto27TP?Hv6obyPtlEOOpc-i+SU=^A zisb5PRXz2#Z(muOH>E!Y%}nun)QXAv!?a$0w;`Cz%2h}iuLaIkq@4+>=1}zav>oO3 zG*@SXizTj0GX8a{^Q|E0Q*MTbD$6{%S>+fD?lq*cwm#@>xu^#*uB!GZ!m?&Ub+%VN zg9+L+ygrzVLH|9=)w(vP_SEu>pefeNDps)kC1^BPA8cPyULmu5Mim96g_f0cV5tk&ABA!pQLYrX8iUK+i{uM`ZY8DEiuNxM)#{qF2{F~%Bt znPdBhvFn1aS&MwXC+8}1Q`9HH%L|#b5;aV zz+*m&*=+y?a|AO+#3O<^D=LBs%%UCxiV1T(nEmdn*PLt3?v2lRzcHTi{&@GG>F#UY zbIz*js_N?8NV=Khi{FTHTfN#p`9uEhm#r4l7{e5Uyq#j(4clh=ap#S-&(yNpt}S+- zI_ArR?I5$|nvwe(V(g>fubzJ79PypO-#TKPBc{GI73bJn*-xLv{WaLOl8&++S5R;o!H(hhikuYX) zHbaba3m1rajF>)lPwQy%82%izl98T&X3Rxe8ko+1SXCUEv@kAq=4qjv z`HOL<1?K(+NW)$Vo#(BN3dNcGTg}=pF1S`jIdi`t^@Z)}Gde=u~BttGbbyvpS0po5`{th?A- zZ&#-8He;JJEtCy9=AM>b;&1BYMI)63^#$Dz`u)a}E7NPl>Izf#pyqFhjg~Gl{P{g_ zq*=`>jY~UH*OQ4mSIpy5-jvHbIflQ;=r_m*bqN149~;>=hf{C9y`VDLGso~38TEm3 zekAB%H@;DmVHB28Gi;qHi|Kv;d>3h+mMH^ROQnJD9qn)114ci^y<>j_ zHbx8`_ky_X4#xcanO4)|S#*A{7wmcchriv_xwtL;6>MH$SBqi$pTPQyk>+Q#BXe7> zBk|p)E43k<(cZA#Tstjit1EBlu2-dU#5PixOEIpiD7nejnl=^t zMvS%x+gwviZLdbEWbSWc{Xn_&)DFtoHpV^)tV)b>nWm1)b(}uQEjkCXIR+HKn#$R>uG_DrvX2gZMnO~E-)lpnN3ziiB zs%&1IEuR_1)yp%bQT;>DOn$S!ww$^+yN#ZRtF7|CR>xmkPCYZOCh75gNElVN^jDQs zm6loPuW3kzG%l_c9HtA^TGK+htp6=uakcnUk~$8A+Ni%mIs{4=L<+@)dcII;3)yv`VlehS^g(lO@lsbze`G50n>H&`7ix)EZOZq#iX zbpMt=o&&louy-vjYpBRLR*GrSkhqkV<(8HyV%qIwVw@Fp-1HYpX@>PS zT|u!TLl+tM&g?9IM=G7J`&Ddzu}zgYj<@AL`BVR)n<(bG7U~4}X6elJiaiIqd7Ais z>cwKNYcJhJVr#6QWi!Q&Yg4R4*uJER?^f?D)=;dE$NKB4OTSS! zZ?He(5B813hpK{%(K0b$1Eo85+sb5;jZ0x0n(f8XleTE9%S0vH-e!B0MDA~6v93E- zrr!*Awx#*weoXqI=dL($*WK{v$wofz0o zX3KryYvgPn*LL<8dr9}94mu_%!Or$J+Xk9zSeuEf$4pAPiCXTZhd(y7_DlMX6lT-q{6WOU0%Jc8M5i>81p`?q*}>1g1~-q;dbFhTysbjP0gM>THY{ z<#)UiMjeXfcZF8aRf!MR#5L?_q{bT?X=V*7&f3HvIr*4oyvzE-B_)-!g7vF>7REgy>mYiF#5_0QCgiMuke3e|VmHg^1kzuLym3+x4BO9Pv&dW>y*?c69+Y{ zq?x8^)qfJ^{(htLF8x($DNCr4IilK>BPxp=Q9AOmdge%>rlxV;s&P$??&`~WW(=Pt zTCM)WRib5<3r(A2QntOmKY201QIs%sE!uK)U1 zJ+X$L@p&>pUWR5oX(KZdu4?HEtp_<-;0tHkLgUgxrI9ASp!IZbUX?D0RwZg)spk@D zT-lS$l1UW{=}&9?$)cucbs>bGSg389Gku{_Pihsd6eOwYDNRbWFvx#eU<>ssby*Q{y-F1f$~Unw!#vMCna68b&tug_gyII!=mxn7YPfjQVk|;dnmFZ!T z{Y_Ln@;h4lAZOPY<9m?K$P>DK1FJ9Ju-SoqWV*hpId1!#vC{(MnE`Bn z4Yuo>zr9q*Zrje-Wr1yDwv+6*OhfR5d-9*(ym-w6TNwAYz{Y6V*%UFp*Kyq{*v!Dr zl8$dnT)zr-Lty7i$9FTDs@|vw)3^s|neTcm(|TllHv{Hr!S-4Wps;nuJ)!s;Bc|+S z{B4tC_=81T{9)^icNgOCdNIb{l#8eDw4mc&d&=eboQ@b#hrhI3f-USp#U+M@d+9yb z6Se%hnBN;u+zTx&yQpn({1(%~d4|Y{>*pTa_8a-bR>Pz;hAwF(dkxj`xtQmdXUxg( z$zrW?F}Q~=GGf4@E#-%;vtIJiME8|$r}_WHRLzpZrCX`F%+pZ-BMRaH8wCX(tvJQU^|v-I9s?wNfx z$4E0Q+TJYoLSURn;oTSwm09XlJxy&iVf%Z~oh){i*wdj*j}^OE%&&8^ePN&G*f=rL zOdm_VlG{?6f0Mt+hzs*HkC*l!v0k!uHpKj0Ax2*x{auh__=CCaaP#+IV7>tL)1a_#gv4I_C?7+Yd zH%8fd+#`$~6xfl*4i4-nW0bAi9&KzwV6;o}F)^^oVtvHs1~yKNW1JS6yFdCa*r>pc z({j^MwUSy^_F7H*DVSe}hn-+L(&YY5G)9`7aX$&R#{_n&v10?PHs)gst)_h;wxr4Z zaSoTf`M3n#S;n5wvg^(^_FQ07jlCM!G-JyGJC<-O5wN#yJou{%50PVNgaI5&qa`F0&_ z<3nmPY@@D;bg)VC>$Xjeoe|i&=8tip>k3+4eO&G2?!Y=|8GmbPN9#JCTOfT~1;+D* zJpZvQuwBG96&qN$Y`cTl?<%W(0-Gd8-p;Wx2xWDKSUbJEo%ikNVBbp@SsyX(nYl0c+gyzMcerneGR1Zy(;XVvHl{0B-9-l@ zEs4n+5Qz+cQNim@@G8B@0OYlomWR7tkQe=Hi_k7U7&_%}mZInwr4Y*04Hgo!|Fz%u2p=JI!X7GFR zMr+x1|IsqKMVf1~XLP>=-AdE#E9WZyjP3$4_xH2uz7kWF&gcqOuSg%hiOV~?=&xe> z<^|oardvbxMa7WORaqUv-*2Y7R!rSpM)y+C{cgG*Rv4ilrVivDH>U4`lX6hjkrJ*__D zkK-)-oiE0*U)0SHy4t2&UmK%!PNzo{O568q{dUno^^^6a_ig@-*mGk20{d31-@)}0 zKQ7Zx>G%EqDRxlMeJ_5mSR7;iAojBuV?&Sequ6HS>nAq^_LJBov9|-GKHn?WB-A15 z?tjF%2iE=lEVk){`ibAuC>Lp+ykD$es4vvhuT=A3)GKrxfBtbu{e<^lIvXyw)j#Sd zF9uuc?ho>JbEq#c{K2SK(VtFYmYDnFy0@p9I{wdz^%FnOg)Q~DkC^WVVbsZ5D!(hk z_N5-IsgEPB7q%sgZIox5RWwK$b!D`s&YG5Ys-5f`Y;`!7oI9p|G9mOiurp-~Ti0xN zG~087uBmh*r? zYM6|&ZHW$sF0yW7Bc0)P!d4ADhi_Te3G4jzv+njn8%Wv<%JRetE z-5@ROBk;G4ZC}`?nl4h@w*%W;j2L^W3^-R6V>Hu#(3!{B)Ao({t1{bVRu5q8%ZOV` z9XoX``m2!6nfsd;Y#Cc%`*C1t{Sce1MoGC)7usrC=gW#TKh8RdjS#y?b7$1?Q^c+d ztc&R$4QvC``SB_-s0a9KV09A4HiGF^{!$FenHaqTW6Xu_z`z(Ez&Q8e>7$-vJ2NoG zb?9aVMwy~p6xe2_V+Zg4wlK!C8_xQfZRfx!XJU*FjBN+wUT3!*V76xkHqdnQ0~=&) zQD8&N_S3+Iny#S2^ccg9=}@o4wl&+Kfo*5H>cF-)c2;1c%=U@Eb~4>FfpKh0nR1@X z)3Tcw^@?o@Q*kFd>Ay=is+F7=*v`hT4Qv-<3j^bM=$B>tNnpDfqrdbR>`#eN71$o8 z8ync3rn@+>y^VR@&}zbXj<`Ps-F~LyegKa<+SqP^jWJu^;pRHhK>F?ujPqQuj{-Z` zY@1k_YBd>ey14)4oFKO2gYF+@dwF1-|3mjwVC)ZI{=OxxCY;wJzn!cfhjCsHojXQkPGDR^fN}qqmka0Nu-!DUlT0@@u#=7PjZ(Med>yv;2Bur6 zlaU(OP>1PyP{ml+K?sX^b z1JbRQ(>)lrFYgLLH$ijlLNfl26!W;0;*Qot`bKEQbv>oS-wH8x?-_sp z3A#S!Zw)1G4b!RgT-y)Acz)?1#pT-;9=E?3-$i~ku&vFO@0B;T7$;~> zniKhB|4Tlc#pm${%a;5uQlT_A-Du6Rz0~%#q-BW3Xr+B9`@!gM3)`=v8*cuFs_3tHU z1J*$coV%W`WoMm@QU8d6Kiv+P`kNz0I-;eR zJfoxH%J|diz7lhP&x?8bxCfH_9;G>TE&Ai!9AmSX-$w&;f1H!!Q z#_(^f!*;P4yrY)77GpFKW6U3892l6#ct*_2Wmk)Fkuh!NrDHzl?5~1g`t1e(NgT9L3VVRL3|CfBxKVMct!K z%eo2X?=&TNy_{~a8i)I1T+BPaH^hsi*HxzDRT4o5MIO>UgIOI%kZ%vE@0rdO6!?#G(#c zbj}!~lehY+yE;TFrJ20lBSsyHd25r?kvDYgLyy+vdAn82V{9W%jQ+|Pb0+J_j-$v&WxZm* z7GrRKGj%P-XqD3u108iO#<)t%W2~#~%5~GF(l~2vtV`JDoL56v9oR@M4-(rz70qq8 zH5RW4Z)dD&&e+vWS92ty#fa^vW`!X=j6;Y;LL*1p!VLxl`wi_7ZUF^=f z8e@FwjQ#>!uH8B7X^fqRvyF{$AGEVgjMWOPmofG|uG`cY?`3h;*I50Kx6O?Cv%p$S zHaAu$=ynn3y#mWL=TASC-sSX~mOaL9T5jK@B55xlt77zZ*m6yn_c3v7=ep72ePp|1 zh#Q%*lG;9|eHgYk2HijP+b?4AxGXZ6q_#aRZtqa`=$h!HGPd+}l)(~BJ;hE4>?LF8 z1Y7p|jg;o^{)TDSmBy{s@1(g>@jbun4~VF2<`sTWFc>;qQ{*J(bS|=lcsCM7HCddV4XF+BKAsPU9^mj zbJ(uyYOH=>-ORRAVBJl(b6}i@!{1(kvEL^y$M_y&6Vu%kSZ`zh3T#ueeI~HJrt@6+QT2R6cV>jt)+>9z=Lr0GTlw!P_23T%|=xZl$Awv*}R2eymp z76nGXM!9?%*dAikzaE<7Pn#;aT+{nUS0uLuMt$ZzBeX>{DvHv3Mn1Q7xlNBrc+ZH} zNwimJ!uDm03!^Q-2FsC}b;cj>;!x8}$CMo7;BS(cx}S`0h5TuFkmtzly(4&38U>qG5X19d%Bq0zO3KK$4@Ghj#@rn z)2jZk|DXRVt7~fVq*j`ate?Clsi;9}c&@JLrz&q%IX_R5s%&J{@|v1LUQDaAnUS|jsxwYl;m{)cS6PFU>g`EVa?ZP;fL@nRHnvS*rx-gb zuv5i2zkOL?)yAF+>@>6eE3nf|*Hw+on=9-N?@0o?P{UFX1_!EZ5kN+3D}sxt~A?A0;8`-_k3XV z&9J`$n`yR;p*?*!n9iTEA-^{nyE^D@F{zMjJJ^|YxT9?sWO zSiYWOo3E$n^7Ry5zMjJJ^%UEDJw=zVr?7lI#Wr70(dFwYEMHHt&DT?O`FaY=*Hdis z^%Pycp2G6=6x)0~MVGIquzWqmHeXNC-EA+>a`!VUl8@Dx@sD2(MUs&^fbw$(#8{|_v~Z13%`1}@o(Xh+|JHApC@oym zi;VQa8knu8Pp@4_^Przf=OXqJbKCdLpKo8%a=fz(M#;! z3XFaT#<_cs@sJp4J|pO0q#4G!Ny^64e41>VX+5TSTJT5zLi#S%7`D0Dw$YsJcAo|q z9v2hL`=_>7r&e{7L$vJd7-P*_nhXg(=D|L=W#3Kk9yig(*c?|pMRG!@498ub>FdGa<$bL{P7(c{OuNE@V;Jj z#|QSK7-hAYl{2<$$TxY@YvxKZV6)^;ue>X<5n{hcx0yCL$4i|xO;%a<*tKqQU87<> zrLOLyX*V%{ryeo(lr3>b+A#`@=VS4AT#I5ojsCXKkXAUY`|fYJn3q9w*-}<7h;a@n zmeu^ATSvNYRDOP~hqwi?x=P=k%7pvtVrh9(4U2jj)AF@+952PZ{Sj=xQJHS2m&f#! z!2NNqjxxPbhAQf0CvDUJ#Xp+S|8swX{&&l0Rps-4A;hY}rtE(!_WzcjkkGPA>M!R5 zKUSsf)3$hDrZYMv-V0V+ZC?K}?*;RFE3oBWO5XR?T_P&#zM2l##JBQ#h`GNtrJHe} zuIUHXSd90UaSxK~wh}w5gZ3?A>dKOWrhaO#r*&8VuR7ywYq1-pJ44KE`^&aoUp;pb z82b+LQKiJO?;(8~Y3eFA!1`_Saj`1xIO&35cz%I zVsy9t3T!R0VTyaY82fqHR5{_j<33)2Ei>IM+8C{Kx>;hLx38t63~mo)@DDN4cf7_N z?B8ShP7u@2>6nmhbfg9}e~P)k0s4`&__rtMLNv5UpEu~CW&Rk)_;V);o!X*nCLQCS zKAN+>jwT=fFqU!Vbjc(Pm_V*KunzWXTK`Pf zDbMsyf`T)jpWC1&Ygqg5*hy}d&d;q?T}T&3mGPNH*0>_DlCCUU<RhF&{MT8FoTpsHA6-G_PamhL&Vb^j zq%3NfUDaA3GmAe4qGrTjnQ&0RpY~t5zmlf3{Y!+sP5S4gT)T`^m$PkzUd{ggF4jyJ zXs&%}{L`+2T|@X2QGcR8%aZ!4;_f7)3F%0=H0hsbdsS8@DP`N%i#yrUN>a|Dvskf{ zZ#81+P>359lC^>~Nv{vO3rOQy#f%kMN-V1>X$Bd_Lui@5s+y!+G)Yn{h#HzgyL_xd zp|W(hx}LEm&8zrhzrZGXR8#xSYo+(zIeScOdoe17v&T($NMQ4|jP8WMo-lS%U{7k9 z821MDlZD>lN6`#&!?v6|HKd{$KcT-@m zn{HlUZs2AVqdh=bGK?{&ML*0%eG=7Vx+BwrdnG5q<8ThGjx7(o!%q) zM;o0#({CE$r|cU2$UD>~1b^In_Hu{f^D!Q`hgikd<>N;3wgGX)E)TYAi479_CNS#Q zcrjh3Np}^bKyoa%SC<(y-O_Imb0U8S?RV%Ley35>YpW1A57 zRkOV(Fz)#v?q(tG4q`tjef};L%Cw&tW&gD{kjGsW8z|kHRXRqjU)F7J{`@_1_-i3X zeQBh*`&(Dbr1=Exik-C=WBZ;J*m`1Y-)oF%lP1q<;<><0HOCf49|q&N(iwdiY+7LS zVLW4Ze_-@s=l-W6^GqCl7`l}~M<0f+qtz?o(ubkjG%)(G>K~Ps!05xUJt8prFxdHl z(T8Dsb71sg=pGG>K8(1p2Da4LCxN|bw%!-(r-VKXf8H0v=)>^W(Y6tcK8&<*%;{xH z9|rS#!O+o%;g7oRy7!Eo5ZL?1&I@drv6}3c1(}*Tj@5C} z_p#|Z1@?*Q{QfX>pK2nm-ya71%yc}<<9S;lMt&y;_PMe6tl*boJiF=Vhw%56vH1Mp z*T%TTf*5Mr>3yX?ssr0x%g(5OunB=t|6tbzM*ZvZZAIzZZTO@9J*1nEn<^3RkNSs> zXJ(vH|IqojhOnjnq4T;6qyDY_Q$=!3u%-TCJ1;QmAMCZjsDIdg8W{BtonOl)2KA4) z{_Q{*^$*s?wmFRYhb`YB@_bPLU_OpONBv9l5p>JMNXwMKJ}`E5U>}O%@28}nx* zh(Y~B_g>I_Y;0v<)IZ`j4%?jiNBaE!d;C%V@W-=&o;T_rx?KaK{-HZIurEwEEimdN zac>TcI*Gpr0;5ji@72H^rfiRR8`H*!RZPtt_Yc2VlxV3V#M`lDe(7;>Glu0U&TnXUg1Lj)onZH?qU1e-VVDw#0PbhvLPD8+?N>dL_-Ne*{OX<5t zI?_TPtKnX%^R)2JQS!C5CQplx;YiDD{Z8ISYwr1lT_=B$JtW5WV%`rr?lB@R&*kf< zq)L;=eNJpmt;e|j+$?diC9Xfy4}07Eaecjs)~htRzxTwNYCZaU-?lHd2g-IU`Fl{? zZEdah)AvctjY*z#(8PXWbIsAgs6&iZJ`8L_Ewk^TPjMaTL#Nw= zO02u-S_MXZMz>R7%0kNGIgd@u_V}RdWxCq~>tpQh!1|i4k6*~gW~OVPvhXx-VT@x> zXZ_5UVLG{$?a+;(TP{W`E+P4`n^yPIw!Yrmv< zPt*Cmg0Q_!cSO*sil%kL--(KDf79I=bO)I3fxyO^?#;l)iBZQl)|`B(+NAGq?WBuk zI*cf>C$t^*7Mo_<1KlDmpCtCY=K7b~F4GUZ*I;qb@%xq1HL|$aJ|%X)*lpHtz}Wt; ziOmmedzBk$d8$!4ExU=O_h1FKpBORftCRG6a2=0pnw+#~Apcq|UDNy|=s1ocZ{Kz( z+p=#bZ?k2qFqypFA?7ijmX3Uk4{VVb`6#F(b{+3JgDns29x<-x9nrkl-)psWUH81e z{5stdF@;I(*5#?req__qEj%^SC^>|DEFc_hKk#&eK)vg5{~|bX~{&t)yjx zg33smn3kIZ^R#>gS4Ef|LSYUeP1Yh_OYbp zp^izSFqyRU4b0OrNlY#?y-bq*by8=U z=Hvt2GU<-Fu~z!t1uZ7%Hr0f#r);C{%}zy~s(z|F$8=8w-3M|qPyQrL_c6r4->YI> z#oXVAS|%>zXT~`(u8+~NU9R5`)CpwHkx}o_v5z8s-vxhPX?b1gj+V}2{3u3@gOy2NWY_&t8Ob8FMxE?vuxe$121fsj2fbmFY2u+p^C~7FL$t*^iDf z(&vjRlW&x7*PSg!-uAKjhwfZW*j^vlp+cm&nbkFPM`}7k{`Ls0AlCP#%Ea$mLI>+F zf011)#(R4Gd(!Bx*Yu-wA1Skp@5%2Cnl@34pRAsuyG|4D^X2`7^zHPsyJ+IQwS%nw zq0??QIYIt@Rvn_=<8PLx`^8?idWG(8P3U<4IQ2g2xZl~!>Ne92Qr)25N1dO$#@`@K zlnec@+ioCshu97c%j`fg%Jh-I#*49yYRi$^o+`#R`e$Hgh_THd42N zF#JWfo9X(mS=Pbu=Ztjle0qy>bbqau`8z_>m#RCJr`JtLJ2B94EX;d4=BS=h?cn6c~csD)w`f^@RRV(d#573Q=vFs>ZIvc%&Wu0W zw)?wLI__<*XXQeg@3R=&Y5Qt3Wn#Q0XKu^Ad&hOJmmF*L0NXRnc1_LYGGp6V%x%xq zGWoq;bNYMsHJ)GIQSUn5YfpYJQr)HAPuAq+_kh)B;&PmdzhO!r^*;LRC&v0%P5Wr# zzU>QD$R6WgvZV}~Dzh5?WOV+{A7b$SfxgGoPS#gK+_s0-k+{%D@}ag zV7U_Fy8Wa(M!K8Sh$5SpV>?Pme!ngh`}@iA<@xR3wrsnTbmVu5n53EfJ{fddn7{4Y z75n?>?^-cW%a-P^NBd%bAIqXTGo1HQ421-1mNkmZOe)!#4{$>Kg3v zin8u@Z1udtXF&&>)3bicw3xNx4+I}W68jOLy` z-Vw%g5_?RmrsO?Ay3FVTinSxy&th!fsnS#LyJ$K<6aB$a+BhDgmVW2?hoQk=9Wng<5LjK)wYL70 z7~G>t8Qi=^+2877E0mApgY9NweAD6_>l3lvLX2-(yd2opVm#}xlNvPpoz9vjYg^N{ zb`xu@bv2Vx8{AjS^U+bZsnv6#MR%pd*98JZqjqi%Y>i!{SHb~#!vzdy|C8te^C9K&v_SgyNW zjQ83<8rU3TEv*h=d#~9tc63|z(}RwvmAs)kB=dC4_Lky(uj8K9R$s7v)O3@@B+clK z47$fm_qG^qyqzZZ_gv6DE>7N>1hznoe7tRSh`3K1+tl{8uxB;>K1Sz@#Z*1g`<<&) zpPzkI$Jseu)himWh-otwb?TS-rt&LdD*lwcq&eS^epQU^(?-)$P1R!G2Y)Y!QC5A| zD4xfRc{@qW%XG2nJ{D`C<*0i(=$4pn3uS`i+NkSl^`88`sEM*VD%ien?A=g@J}`EI zGT~|Ay+_#orU1?=#b#6XN*sA5MlaK~39OH?=fvEWcP8QQO6`oC@r(j&A2mv61u`Xy;YXflDuDexk(^yalP7DPzFMyS6x&i?`M5>Zb_E&TQZe^8&vf0CS#^yWT`Muy-Dx^K zGMpX@#JGC~-QA{pOpJX))ZHF*_n3}r!1QZT_hr!CYr6j0pK=Twb)28^^xbE=)5JIi zj=IBx?tatF7voqU>h1`-2TWI28&_RzM)zINJ!m?v<1!|S{`!h}`W`afk8Zjq&V5&?9ypsJ z#<}lWRyW{hXnMS=GHDvvxnjhfE=K!^ac>LEQd`Z5%Q-{O?<6r| zOci776k~9n-I>RDSB$Y!%v*D<@&j;6w zoOuj?UpwV@s3!8EQ*`Or30sfBIbOz7Fpt5r*c>y!JjT$#JjSq4ujogqSN*hoX&>17 zb7y0N?sjp~@~BwBbe@*a1M{@>PzKtW&eL*mV4fD<3+QFaxQP0)x*eNQ1_v4&9N09m zQ5#n#PX|_Q>=$EITGucmsX9jQPuHBktu?jK#QhMPXinTJ&DqX}i=Csns$i;XsX4k6 zHFq8T(W=h)mIWzbK$Z^Xzuy0)hKIOr&You%7I?XtP)+L^AS znERs)CQ8TtgS6tWz3IjU9c6HubaTZ>1G)~TyE*76gBj9&BZhBu9ZmOf(6tepD;;eg z8+4sa*HO&VR}kZV9Nx{&GPLn*zS)rreagO&+`4i5Z<9#H=_(rPfb}SF$ zn)rw<>Lq?12)0selGrn9M4pzxs!yCVS*gn8Ot)#J=U}GU@i?}>i*XKSsVc7Pddn7e zl%2mp*GG)=Uk?Vx`MWz`(fJ!O#%5YgrfEAIvP9=jw1Z+l1DmIbq|`BVU5bHgBa&ByU37!WwNG?HF55HTQRrYP&&%_xxl!d$@X|Ru!a_6wi4&IIt`M> zxK14*?I^~0Lk-_`%`L`u(mCT^6=Lik7~=x+(JPcG;{tRe1AA6w59?va@|3dLrJ^DBJFCX*pUQm#RYMT=lq6H_nwm z&P(rJD7K^1rQJ#s=cUKBE&F4v&w1$s)Sx_lFwRRmqwX_yY(BMKdVh>o)AqprrSBA- z@6%jAr|d}0M~fXPprod3Tg^`sJ5_W3@OP4?t>usHLR=W*&fSl#m-zicu*WU#R$5`7 z3iG(jW$VoS^^w5+&6h1{;oYW`6}Fz189~SRaKE$brS)IUA=ORPoHRGLc8={rOUum) zs%oA|%SbU*)s%S|T(A1)I#1s<(s}xp$RFj`$@&OlyeRh5w0a5mE~&buWq6(#?^8NC z=w7k3tgoFa`y*_LO&Nf|hYez9|3u_RW0ed-}?M=^c%tu3It(sch3YoX<+TN!lMm~Np8 zMa?jy^Y7~6Z>H(qvGx)D{bKD1-HoREMQw)hVbuL9=J~zJba$#Hr6a}~KmGpzXC_rSb&VYL99FaFtWe!_6G`^&$KsgD9 zmKNWhw8agC_tk!3xNgv;RX7_hHsB|HpDM7iVjHS0&IoLx*u-zu$EY&9?O|ev$)BGO zCI;Uq*-AP;-vv8E>{990)3JxT^fWC4OviaA_lFLD=$xHnw%uf?t~z6Tz3m@}feu@A zZhMj0-m89JU2Dd+v7AL6w&>G@#w@$8qnYT}u3%3ytMd)HlSai<2xc?NX# zte+-*^Gr7+Fz$gS?iJQgqkGA0pSC_3_MX@y(tX#s9G81hvHdtO?wf%1wSE=bmyJ!b zV;I;%W8bR-^L#vGY@6m~_PDW=wc~T$BgS4(C++M(V_#~==j?l9!?ojb#<^1J)qSnY z>?6}n)=tiK_Zpj}lNZjo?}@yy51}l-Xs*j%`Vic z%>AJw20CX4h;gldmJB09=S)>3y@xL8P&@UF4#qxhj`F*|=IjF)i*2WgG1WzZ(H=h( zdsTC{eOSwkPxw}knnP;qp%A_k1K!07hKho@zPwN-SBO*c#3m#TS2cdMAkSYo=H#AsX5pT8Rzf3InJUTL9C zucc)eJJWYx&^^{R=7YViiS&Ib#+Wbq`zq+(&~My}Fi!=*u@mK5rT@4W;T^H&#$M8# zdl48zs_Lh@rJ8e&Fw{&fDx;|pA`_OdXiK*&m{Q12X#QofK z$7rK<%<25R4!SQ*H&T5QW4@T*Y1Xfy`^ughKEyME&e+#+o#q!Y$^{o(b343sMRKvVBN*pM zxK?#(V2j1LMzKsx)h&(T*C^fyI?e;~-nILzz2T2@h%ny$>v6v_cC57-be|b}O>Mz- zoLAw!b(5@)qvL!R>~^cCFwUvL>RFwH)iricU>x^Tro&W+Xm7DhM+W9)dWjhA4V{v&6@hsSzvqY;n<{U-gYa|dXm2X+(t8s( zU!z=pyz_+o-XKPMi}{@un5Ttrn$X^2etW4tJM*;kwmME)Hntdls*bnI#h4hF$CxM9 zAs6Gvz&yrJVqOn;zK{CXLK}njM*6(|tu7XI)Ms?g_@)xqsxA)f7O}N;@!&mUd&^%B zO{=M{9Hcq6uWVTt;^NP3`)ir>X|tDDm9d6_4KTKI zVCYC6I`(fdeS?DzTXfj2o6`*sx<01kdd+${9re)D9Cfs<7?*SMQAd99=WJ7pv9;!G zn`lcvy(%5sI_fxQ8+F9MpR>MNCcgtUr`|=|SAuQSZIIKwn$r;je;#8qEwkMgnT|HC zVRJH1?R>cD{*DdR?+c~lo|al#MpvbYK7wRJA|~%6zBVnytCe8 zM8+5sTmQaeN86v1z8f_0ea8>}hP5d@ECrqi*Ax8(z1sN%KaT@Y&UJ7c3O_MtBbiV+IGn4 z4*wf}ZhN-H;GNE^VqNn7f{wn2c67JxL&?Xb#wM#Hc7J)MDx6%biFY&&&>S7?5@SaM zhAp~(1$LR1d8g7Rfn9E_r5w4x>0;P=A4`lGrt`iIc7-P1<-~Z`ZP{+bI5)7XjBzia z>#i0{-!&E3HKzMCuxrJLQAcgnZLc$(zcWViWTr8$L%Z&JF=Ff&*bSyTGO!!Ph;eRU zH<|5qf!%C6&R=+pTg)HV(wxmQ#`y+kx0-DoYv-hSw&~Ujj6Q-i^USE*vJENI;ep+5 zY+PV-#K^}ff!$&3(!l1L?QMb0Gxl^~cN+V5V0Rh&F|fPEh#Q}uzekLGbW-K^eB5iS ze_;0++cU8H#mMhrfjwZl$$>p6M%=3cd&qR$JLYj8HpYEo&U8v8jq!0{kBRXvvEKrF z+*k|sS#CSuST|#urN9wC z2OVt&-L-+yW_bV9BZ1Lo(7hhmOk*nQQrzpsh{3&2o|YR-$2}v?ZWJTNxWH~Q9p|xJ zceAk>fzf7&!TT9pN1Gviyko{0ZH5>>1xA~}ww~2L%7r$A&acbEXfya55p=W}*uH_$ zX0SaXFxm{dvjd~e5SRNSJ$Dj$K}VZO^A;FwhJ5&Q@z~O4U^fRHZ3gCT1|4mN7;gt1^%&i^fzghL zyPAx=Txdt=S_d}Y*d~EJAx4Z*fjuS0J3tN!Y=NB6nMB+GK^pXJuS&8`2OTTlMX`m2{)Z=73i znOiU9*1P1^d*;?R%dJ=C)`#WRN9ES{$gPjgt&h*GACX%>F1KEtTR%IueqnBXMs9s( zZvEEW`n=rw1G)A2x%Fpq>o4Wj-^{Hq%dLNwTmLq<{&Q|!6*^O&>gCoO=hj>1)(g4y zF1hudx%JI*>s7h+VY&5Dx%EAA>!Wk)<8$jrH0rub=WhJnwD60h!`9z54?9!r<5m?(bL;P6x^$TyvsVYk z_48X~ds$$U&EF~3cVf$N8|Ta!v(k5v7QgN?M17MpKc78Wtbyq`uI0MR6M->C=eo<2 z)~^v`jAFdptTJh0eHiRkW4y!1%jGs>tpmGHjAQ#-gY6e$l#5HAJPXP&;Ejf>9&kPlDagupy~T$}K?>r2cvsyD^j zS`7bQ5Z5(a*T&Mf+gfGT&eFH7SchEtMl>liPv7}solNKHTNIe5&!5|;Ztxri+kEv< zR@_HHn|WCqqpSJzYa%a*d759Aj`LS7T9nyRm`<4Y2<%O(LvI>W$n@R{;*Qrc{+!*a zlk$4#AvIrO!sYA z)*WKDJp)_YV)*?zT20?2OpK4LUcuhA@|$375cYww4XiD|R)}$K_}9SbhdAe3W$gnU z?^xp;_oadH{1NP5fqf^&`Rtbh`@z_!fvqd2l}9$?0^8r%xRzyqV~tG=jN={3rJp)K+A7=4&wF1a z=ILA0Ycb z>V6W^w_Is=rmUy7E5y{4GPZvPT^Id!)M$N^+uAhgJ5Uq%R`|Viux^@2^A_3%X*ZQg za~<2)qU)t;sM6x^hJtn1gzZDpsp@BJ9}c!X^c(p&%-T7&8*8Er{wb!an#qSAGbrVE zQ~gE^-c6=znTg@we!qeV`)o%JQ?w$w!28`W>H|79Ebwpy8?C;C{cp_2dqFoyzpbq@*joJy^@%#I zWF_zXkt9{t=iqOMCgN@(Mw^atd2Yk&?r{A^+{?7Vsdq8%idpGE|*Kee6sw&VXrt|G_i}iKX-_z87*r!x$nLky-(ti2~Et5WUS4+n@ z@m?*HHgrBNekd>>=g`h6yHuw+W8j_@Wj0-mvGPV@9^-P0@tByJQYOX=fq9HIlo0xZ z7-Lvq9)o)aJ;sF=gL_j|Ei*9~$2jvC^uKKXOpL%vF~mFuV-(8jbi7xf^F5gL@IROUlGp7MRC)Pt5bdd1qqq zjEi?_vJb(&MJE)C3M zTq5TAxYc8*fIGUa#|W$xL#(swJVs!p7-Amd28+>56_WlyKb6|YI)Ql%-cw3{km@YP z1%Y{t^Tj;IBNl`AQ*Pw8mXG0qd5o!I>~ms_`GI+i$Ha(HkanOZ?k&4eZGpcQnl4tI z_-bt(!-~0X8*y}Biy@7=g3{@_L8fCYOn(q{)j>Ddbkqk`nT&2(&TH_UWP#Ay4`AA=+JH{5i*E0O*n>S%+m8)3Th#i-v==jT8R;@g_; zTj|v0XLRjU0Pb%G{l>dh{d{LZ>!URB&d=+DZbvcR@A+k5JBjh0(k-nm6tvEMns>iW z4r~`8-b4FhV7rR(uG@80$exzn#CU(}5n}WQk|#H4;{C1r1>Npqyl?e&G5P~^vo!Hu zR^AniKgJ03dA!qgyw!1-c3~;|CNScn^W!7NA(J#w|DMstZKvf}&c9lHMt7X)I;x#? z$mw^ct~uR5OxH{NH%;_^)5W@J znLgV0t2YPcZTcfI#s}!8YhoYTOoLcwGsNf<*S7O7#Q0qkF}Poa{vgKSTkp<1#w}vl z#TdNH&Y8#HU3TPGyXNEowNcL9Owh8kW5qbn)j}OaWauLMhuQk~k??o77~>M&<*25a zXtgvhX=rsE-Mtn=uYoJYfDt3IhsC<+MNCIp{loS#)77!M27AE#`8x`n;V-ghrK3zQ zS6$O4Nz>=sZEj#*raWguzag{IcI&J<}UEjvk#J$pNd#eMZT}9hIVs3kl*>()-{)eUzF88Jmex(PjI>0yR65G4m&V2I zEryp>XB#V1F26{}dCYNv{c15L<`^*|O8(ioLYVAFQ1i$30uB z4A^FB+NERNepW7SJHl*<`*&<>IYHM|bJzVHBP~(Ky)`h7Q`~kN^EdeafMFYT1I(6l zdG7D;7`9P2)Y9^wU^~(n@5^$3+|NvY{roBA0>fWqdzx-Vu!W(EY!o4+To%}LB z-d*fa%~xfs=9+5V_9v~Y$z^Qo%Gs)HHB8Fba$le4!{c%v{Hkop7isjkYb&uD!eruh z7IRy~ZiOzT06+gD80C}SJ%Q}wuv`DlaD_8Bo%nT##x zU-D@lq5{?KJ7dfJqTWY%Ssh}19Wg2_ze~lm*)z7Ei}`t0xBYz;w&Uv*`=*%Y6UDR} z&7}D}F;BC{u-xO^>5bKe% z{UO+{E^$}g1i*2g`_rpz(mMX08UlS&^!J_ECOLn#gDw7OABT(e&e?LzN#7L9;2g1@ zrsFs68@@v^oNa3C*Px@{Lg&Y!q_3&|o27x$=4ybR4_&HF*~!LKl@i|9y`k=l9Ij>l zV3hZr>YEPK9AByqX}$VT>{Kn|FK?^nm9f>Ka@t=-+W}&$vPBc)z9pTiLME<4uhN$O zD%x_dy^1SiJ4?*t){!6bOP@o36>Y1;=&xd$_qKimo!h=C#(pc>a*rYXRkU5x+J3Y> zSB(BD+VZYJ`m1RB)GBPNWJG@zZTHa%{Z+K(xg5{$YL;KV(?EX}Z5zvo{wmt?J%YR~ z_na`6ina^H=&z#f`>U|sM;nsD;{k$zYPjh3n%eFaNy=E@$ucGZxYrojC zPh|Tp5bKb$T_)BM|C;EZsn5Ty!j^0KopZKalk1YRoh#;L<#D^I^3i@`eus%|n6n)# zmbYCdMt>D;e;1>_ifL}4w(qt&4V3Jm{EoA69kx0Rl$JqDRc89D=#OXS>93-{9mJwP z%I^g+`m1RBnHYUiwEaVjz6sqHnz)~Oxf+(UEsaf8`keJM_OFoUmP#}I)hjj@#b0}4 zt<SIsQTtBDnpY407*uOMim93g<#&%yBs>x++r-`k~ zmi))Ko2Y-GztW~k>lJbLw>~GIX4a!E*YB~5w!OtXu1-&+`JF39e-&-t6;ttNY~y{+ zZaY~SqrZx_cZ;c5Gq%gb@^N`THvLt!ohn9u71PXjm-4n7tDxwwqV4`-^jFdLTrs!R zDT_3}bycABSJAeQ82weW9V3>veOJtn{k(3hu69m;6>T@OwoeR?>))!2aTznvUq#zB zB*@2|D%MuIXnVg_+U0CN3byR0sn7e%d54_sd14)NwhxJUT({*N8l7{tW5wvNVwx|s zeuMP6?dqyjU30dZi*1;*JxDAc_XDx+IomZ=A?dGT+CzoU3(z^m|+@df55{^3h0)Yfpaf zK8)v_$=iHuzp%Pu*!~sR1F|K}9CUk(N5r^B)jzO*%am^nj#dG?4#st`$hs;9-x$0} z8`gE*#kfYbK#cxM-BIZp)tf=Lp>%v>a3i$^oi0fGiCr}3I@4flALOI2bX?1NQFVj< z3V*XSaV={r)gh0|IYII?P@_L!ads zbttks&9;s@cDKFV;;t9i?_$*FMuoC&r5O3>7#PR8ltHVuW!hPBHvC>uhW_%}ERXPBDKE ziB+1d`+Hc7wDr>D{wk$+=Kc;7bAP9qzpk~@E+&&c?g6I1j{Z&#%>8i<#r>Ub{;pKw z8s^e>l^At7`uiv__qV+g?EWU3zXs|P)pcaj$8}D19T|W72Il@2T7OFUO_9HUTvaQ% zAh7c+#=^SAF&F9cGF>D_9~RTxLjA5Yk8!5;#l$$@VvG!Iy2Y5H0#y^vKgJj));kwt zdSD)-vT3=jxR;2sT5S79;x4ine@M4kF2XwKgbn%MSyFMOruuG?R~^S$dkG?$yqcd>UAi#oo0j!s=dsyoO0 zeHC=0waoXfbz4F@Hlqya{oMql3g zi@@5-mi+RK-*#r}+p?XQ$NfaM=*Ee4$m#wWbnN4a@oHd<57IiWKCH8BW4$^&^lQAE zk9_T7H*J)Q>(7&r zmY&kxdPS}Dz4{xQzwI=q{(T$zHOBXp!84(6>L*6|by2_3+hTY*uO9l6mn?6GYV6JL zF>e>yc$~C+FCF#Z#pdOFz@Ajx$R0F*Uulfa*ev>6%f{pQyG%OT*5w*|Q+Lp9sENGo zY2$HpmrF<9o(qiYeZ+k|FpfX?7V9J%kE;qN+lld<(rA?hW$%ppWMKL^9gF#WGW21t zqmJKuV}oQ5D`#xCmjSkn(bUCcY)=Tb=!lEX{q1bFJ;c<6Gq(Q@x?Rk+p7npk-Ajz; z)m{#aewXLB{JsZtV@!9j^?$HxG15%utSX&}yVCkPbcdQP{iLV)bTP)jjf20(#CT4w zp^RMjxES~6%vN8bU11u-@6YKWoio2b=P)r` z-~0X$V|Ov?K}+ob=o7V>OZU>PW5=e%*wSL0q(XLoFzR1q^e^PMqqS*l2byiekPjI3 zG_pbF?~P!~Jwo`~)!H=vMv0N;6=FTL9@G4J(Cs1}^>3uw{wAjL`ZqB!uN!xW(I?{1 z>))q=dENL-%*%lHG!tWy%B62E#v+xUGmo)a>*BaB#uyNo#~3K)F+NotqP~pOMJ8uF z!wow=FplHtn|9I8x4+V&q$OStb{2EnFU|I%VEdi1BaP7xt2A}gN!x8T#}>9kQ};9V ze4h0=uopE^21khzQ%$FIza!uAapq;fJ&E*_=)9ciOPqNbtY!TRF<`{FLyUeh#&{$! zkMWxrbtTnlPQTGdh3?Gb_7?NJU1Blji8XXvIpDdIdjs=Qk1J}-#TD~>+-WgZh!xz{Vyq0zWAs&j z-_CWKv(1kT%wrrO<}vP*j(l)meMh&o7=H!kF{<=iXV+Pb69V%X$BTK4+bu>NRjRIT zYcU!G<}tPx>t;IlcUEA&JNR>s&WrHp3%luhae@})r>7SMjtU)PSADNZ^VGTVeAa` zL(bM#40MYF0H*WrhXpQsY{XVteC2@X<3~rwwab=SxqwCF5>+xEzc^G6lIom=G z*hb@WjAzbZTgmP~P5w;gg{B)UcC?lATY*%Kmu&3Tc@X*c%%2 zz*YwKY=a`(MwN-QD4FR!LYy<-QOo@G(!@5ozEG?5El`+Wd%8x;s@kc}&o#$uS*PkZ z&NaWNxyP8M<@EZ3wm}`U^%xw>YABof^B5dwI`bF{#N6LG(i4OCyEwbVVsPDF+05i) zrr7Ga7%Kzw7ze7(xxY&-hJO>0vbt6i`QZJS8X{z394tmZ63goTz&r-ei+hagq$eL= zN#|^q#o#-l&2lk1i|J546N7JpIP(}EiMhX9Ee88JXLnePPgHNTi^$~TQ!(uZGBNt9 zE;;iUH;K8wxfbKlz#g<1w`gO~kH&g6ORP;U2H#k8<}nV`M)MdCS&Z(1EwC8ei_<e<irIZeJ)1ZI!l#)3-jlF#Mxr(*J6yN zfq9HUcAkrJ{z4Nm8U^-)7%_%4FMj6%e;#9~Se4dejOl@Sj7l5B5#vWq#8@ny=dD7W zBQaLf4snqA^B8r-2Ipez9+<~iAm;vRnZIMyP>1FG9V<3G=Wjt^?yrX$ulu8~CVgLt zZI|=+wb;m4 z?s)j6Rh=&H<>2q-i-ybJ9{J=4r0Y zSb;PvW2(}r?j+OgDdxJn<*&uZO0)V-Rlzjw0h*JR*nQoP*KjC zTi=9^>szl#=hxa`Tyt0$iW@o0|V=hE7_l(2oju{R*4Y@63(jQv;iUHhDD)4MiN$JTYRHz1$dJomk7 z|K(-8vCn-*=VZ=r?Q_!is_ol``$ph?6ZhRmzOU_b~qqWf4)D+_AOy=R4S0J zHu)a2&sB8!9=Fd)U;erH6x+A6eZiw`oo$M>jMt5K0;$_&6Dw_9zWjfmlUtqU)VwT$a}kZzCdD|NSQBKTo2t88~5-X2`{Iq9z3zEXGDCKOxeDT=j>>l%=5 zp54);Zih{LX6wT3PF3ILxvn_r_Sn8s$M0`7v331zvZ2lMYgyJ7i@s(zMk6{W+a-nl zLi+OOe7oDeg-YVLWw>u4^4(#d<9h&pPWtY&&q?2JY~4uPw@qorn%WwkpKAZ*?f1^^ zxKj6{O)Ru^VRk2NZu30eDf=(aZ>4?ib2=x>SY@A+zWjb3pNqe@J9A6YO|X&A#oyWI zq;89?t=UwspHREJhXN3c4y{uE7x_l|ME7-YM+xj{=5obL+@8+tb@(-T%Ov0`5HRi zJ|}e#Z5^LCW>xw7+$Q_nUv?R(sv)**iusb4vBK{3(${0>lKzoBrtMDLmCDFzi+O!t z+vmE`Ia%K~_BrXB-S#bH`&O=nzRk-hZ~x_GT(9}J?vzdNb)mYwf$K%_=Gw^Dg_pLk zjF;1nSJU?W!Pd!h{6123yNotcN=-8=i&;A1k z4IVPwH)_oI=?ODu&7Qw-@zRy6)~rq3x_$5IbC<4M`_a1p;OX<%zrFwKLz10MjK|ND z!lQaUe*XSm|A2siU{7#DD*x0mX@Wynr1OM%!u-+)XAH>X$>f)5M~&Y9KH#l#)yczPA&ATL@Ctq;Bbp<>H(iCW2&{NPa%2UW&$gfcSBHrRzipP`) zC=psBZ>fONp3(tjQj{rP)~{?MHKMYovbVaYdYKyjG2WOIF<~)LwTsmWtLv>7Qa@XR zTn)XA(>3wN=8J6>=ZW)+3y2Gh3ysSd7ZX=6F0QGkX+YD|%`!A!(Zbtu$rs))JGM>e z;OXG)5YQoC=ddoGE-AWtx_bKs4G;7A`PBHp_zdyth{#c%QGTOBN6i@R8SOvbJHa!- ze?q{7tdl|}O`RGz%{$$HdeHRg34SvJX9mv-o|S%Qw(nnD^SkbU zqp=lz+jGb7j_5$!OVW8K2xT+;*$2OXNN+&Bu;4HyxSBUu_YaE*%vilxrk1H9^9ARxr57v_P_Sc$ zsL)h}(tFCV9BN$Y%3+bU@_A~#^29Lzm`HC-oF^tBveDT!jT0gpC#;Cg=N}vA7aJE4 z8y6mzDj?2oT)S=UW7dbb4YAEvv~QEe+y0WL!+3A!bs;@w`i;>2M@M-^PY)d*;~hW2 zZ@S$?k-;;AJu`#7GlK(W28YZ|@)?OyD`$Gw)Ge?kF~u6YZR`e0^iNC-O60GVMBY+~ z>#}$@b@lFO?Ae<*=|I=IN7@7(Q~ZxddcI$K>E_NJKgQI18tHk(f?g&0|2i}LgU9nVmSZgNHDtq>BtspLOUXk7Cy?!ani_D>L%PLEwgBVrO(gw^+|d1B){-q^S#zqkw~qvEoR@y5jjP3N_@>+bE4 z5ShNCeRNH=JZ&Ej^YqQOF}81&u<8AFWGWS3w6b^nu}prGGYxAsy;gYG^ij5>eas9_ z7&6PVA!GHBf-#LVcnhwa*|>J`<5}8GDpz4} zbZ|_}o@upf^OLc5!hSsKj03;=>Z^cJp;dyy$FEqCkcIz-y)QBUNR}lr(QYlf-4neV z5-)ujwzJ1g=G_~|+u#0Qmk%@S(rm5W&3G&Ex32aZLAz0BD8YHx?x~%?`;7f3HjWE< zNpW#4lgfEcg?FtsJ=<$&LL)|x$uK{31l|wZPrD`g>^G*#soF0*9hTLdIle@re5b3;E0De`HAZRPfsBuc z4iOs@XC33gWex z&0J>#>_Y6fgtDN}%4)psvGb2fFzlJZ?gx$SnPWtxy$0FsFGK$uil+T9{)f@@UkLnN z+5L}Ax`O{&g!-=x5##)d`(cFtzx#g=Q}`A7@2aYbas1J>6m#8w=k-71J-(0P^OwH= z(Fs1C$Hm!mg5!wdUAu{(`2Xxz|ESo}m?YoZVUiUsx`6Q*#SF)tfUN!UCihKnkB1S}vC=lces9tT9 zt!P;7LS6sSrw^;X_@yJ_#j!Mkzwr3{{QRm0*ng{6uP(qB5)kh{Yn1;a`+uWOo~+f| zmnCoIi1cNrcZ|)~FzjWU=Blq+*9|)kzsny`V4VLHm4((yku_dvX(S! z+atLt{1d^L=`=ji<}_dE-le&3}j-=18mU9U;p_v;h4Cnh%LJDR3qpV23IxA9-@HN=*~ z$KSbqbOia5ox|`-#2E3nbdH}2mRcZ$%)=i@!kf0xHUmBPdLs)aT>P$(|$ zFJDaDyOJfF#roDbj{?3%I9}4x$9LCxwDX;C9yNVa|2`&6m@qZO7wkHGVfGOvk4jM$ ze6blKBY*!h`55YZ=R5}cUOSI|zK71ElkdFqXy99teB_=tVZy>3zOwca99%nErX%v; zxyZv8={kJ1T!(L(^9c3H_wf>a@(r#;-zewd|Ih6qbKv;@WgcQ1el{`c5%cA|;Box% z8GhwH{uAo6Z{1ai_~?(XTCGv`pTsp2#GjBXzSq9E?|06d8)@JF6#w~ZN7%R5qHgR= zi2RTww)4ZX*aI!DdR$yA{^yHImu_uhR7}FCq@*Q@i4*J%e@6S(g80MV7VvRns58sH7 zjw+2ZRQD|_FyZ4r5xzzloVN`A&a{fS2^Qnyx57UD<4gEB(~t9@HgRMsYU8u7hvWFW zln{jWIm?I%^Vzp1J}$>mTM_H;7|{LSDkg~AYV<$f#|FRK=(F!aid&HdR~r0fULRS> z=Y5iwXMBxK$LjEZv(*i=@4oR5_YQnE#{RTTw?A1LQca(orB42<&D+}V)pYyy8UFd$ z*Y@9G_FrD$U&*%v_}w0H@Q-Wl!>I7!>7Z9#e`->3V1>b@e<}Mj|H#%pLhVnx__4Xt zW_J4;C!#kEnv(NapR=UD5dHa#h?$Wwm!b!>`Ex?loJ-Lq#c?^> z|NR_0&h_Xt_w!}^`piwzThX~kKWVf(*Zt@j;!@wY&s!g=6nPNMioF-eZ&i2f_#paR zd0)rHhJ9Wfk0{@#(dYPW(6djYp?e<9Yms5&FQj`x`M;z*UPpfzQK&=BjK2~8J0Vja z73xuQ=!BFi;)fDuP)F_?Uhw*&ej!jF zRirYr5A~}$0y~^L$8qzN7lo?Wcx-g>2{x9>_qJOq`_n*v6eF|3zeUl9pYVIF_J^_Oa&m~^|FaL&Bgtn!wjqvC`}qTY*pDWNgMV(z z5Bno(akL`LMA(MVetbn7=?Lw|Uc@1Cw_owr;jbI)XU`K)UOXGw=3F~|4y|U7&~>)e6aoHz_Py6m7fnGZpxKU& z--uU*$X|A)C?%kmDp z?6H>+Pa*%J_h5&U-SZ7>*?;POhj{j*3F4SL2DbfJhd8E%!j2^St}CCv;!VM1CqAPq z-fCAq4PE(6bLG>r2FjD|HO=RYUvndP**-5_<$dxL`f$o;>PYD2_4wr#+F!0PtMVNd z%G#t~H6Qw7WCvsb&nF^&Ya;Rzp5tko_SVdK&hue`eV7dObHyq0CMCxw&DdC;N0>#ET*O>)h~{`QCN) z$KPMUKZ5kV^1+t##i~!>FXx}V{a_a+eHEITWqszYg}<28Y|ZLl4hp55hl{Lq@_S~& zmh;`7*0AOH?&pCm$E&gpb}oh^Zaea^9}5!4j9akFkbNxH6tDOk%#Xp{Oo4J9U2quJ zBb7L7{~Ij{;AK7|UH$jPKEy9Y`gN}U>}NU4-`@CwP?q>P>nG0>eR$GCXa7)s zcG{kwV5cF6A5OuR^YhS^utSIsJdg4evM0pAmhDmBb^Uw0>=1_f z^a|Oh2Y{FD`*0$7IUcgQ_AgP5p_luez83W16z|-x;46}?jY0k8e&gW{=oR8)nmFT? zcg;r+Z#wlq?}II`N6rrDpO-1#?74_1*U#HmQNEmi>O{a_w*O}?yTMWT%k?i$P1v&i zPql_EukTOSoY!l(0$$Dsza+tqru=eOLcUGO{$wb4xj#7J+Ru!4jqi!KkbgM&oBQEk zitN6w{b?Q7_!^Le_K@q-Y*&A~)d%sjQM^ch#Fyh^`wsB3{mZt3E!V%GF0kc#Rr?t1 z+ziJj*5|BzJR!^mFM z0JdCDPTWBGvVT-r3to<=KCNNP`eh#nTaJ&JuKD@NF638|;RxOgTdp^?v%_E3f8Jx* z;iOOd2KmVKCu4oorw8#hA3F6-7b3pw@97JGm;L*%EU;yH`70w{Gm6)2Ab5Gbhj)Z6 zuix^aPCg_KwrszjUDxYsVeqnizd+*=`}~7fkUFyYh*5m3Lr1%FjXi z>n?lq9`JH}56y`3<$7|lKX}<+Ha$oAvcJwd1U@&#-{abEjCJkr(zwRwp>X)i{*(1{ z*s_0o;_7cpvVoWVJI~k1N3J)+(>eLquJK!9Gk96wIj;HfO-fw!C#hl)3yHWsSIAu*9~4G zp6oxvH^2^|c%|n-FZ*lC{ov(({zun*aKvSAajj3;#vq=Yzo)w9|9-CdtHfSsd6ZT% z95{`5x#`TD9B7ZcWY^dWUbbhitgvN&jdsoVXD^{VIbRK)gLp+LUf(OQKO_5>bFe=p z`(AU{1 zda$I1DI&@KFwwO>%$zuYhV?plw(D^!jDj3k?#@!oNc7v^Lgz;Q84JZl51umt^4 zj`xhN`zI$in_MQo`_J)-E8mS@q5Q&}w2v<5VSfsfbvkc~R|?sFEx|{TJ!t}L*&oli z?w4FB?7W^wT>YsQKU-`$D&%lT$TZTQRUvCn0vaJ^rB z28e+N~9zg$1|rU5V4k2YS|a=f04Mm|kt{A=)+^VjYk(98YQi}$eQ z^;qw+_qy8W^;KuQ&MtjPSAU!2>JKUFz+Ya^r>^$8;_s|a>p1A;{CY7DY&qZm>awf4 z`o|&Hey_Ug`mI`ocyd2qzAbDy9%j1yySd_zckS2xT=x%}mqmT#`rJcv#_#XS=gCjt z%P<^SUHj3s5#VM0&(uKtOr$U3D(?%|{{H53_?IXBmp{WloNU9zFLm)vUE_5?MfA5g z@*g(&ka!hDcG=vfcqP|g{}tfn{5IzV_}rxTe*#Rcm zZ_`-ta{iv_vOkP;@`0}FIoPF-t`5Cy@9cSD%l&hjy09}d9N$HLBVNesb#E(pIX^sc z^@k>|{ZF-3s80yRQwkxToL{pJK|Hx0wQs{lca*94TJ$9_hnLNL7?6?^5WdG0O z`uu9J>waA(*Lb;?3I1|FlC%=GoNp7l!Y)Ml*B=O5u1~9)!j|JZb|2~^+h=lK@Us1O zuZAt-f1L|@*}qQQgsm_f6YfJ_mh2P1z?S`gk88Y7a`ER~`KA0B{^cm%Y}b0y=MDG@ z#P`mL@lk{9Jw15Y6?$1eEj{AP_FmxHFGlP}f065FU)T66ejdEs z?|$j}d}F_R|Kh6ux32p^cU|ol-VFK4>v_?&|2%OK^--w)p8l|9|E+NZ{&N2}c^PbZ zy$|JtE&GFS18liof8o;qEs*dw+gMWt4Kg;Kz>GRL_-L_j#&o3l{d=5Z97mztq z#tiAh(uL;El`}{7Y+19ogz#T=Cm)7Uli4^F?m{LfMbYD&reK_$Kve65bcmiZacyM;X^ zN3Aa6MHBGa5Y%5!+9FQ(u9!WMzp!HJ3tPrlI-z`h_Q6tu5BS2tTg2}>8`z8!%7(^* zw+2&u20Z=!y)m57zH|Dk-4Or!p(=+sZ*^?LfmvhV$G+Y!?1(n?n(!B@;^fU<@b~lU zCF-ZuYbo?Hf1?WOf8)C6o*+gp5s=(IjnICx8WuRt39Gdscx^3}Ut*iEXGf+MOTRX* zpRi?qR&SKw&I%NPjOKkEyq+F$3Y`4?IVZGZPG0Q;|C0r-a-@X7gQLi_(V@sW6IqU0og0nTe*BffsK(JJn!R$K=Ex!_IW zw?#yW#FdobwRzx`q3~Z9!hgxcK6a@BB(D>nI`Pkof^hK`@!gyEd;L$mIt=l{!#@o9 zC*B~wOqUAB9Q+~VXH`T04_U5>{H)mNLZ%U~#i9SJmG`yggx=W6D^0<_c)vj`WqLCw zuV>pM;$6GGUF9#77EazG|FwI+%PNH3oV-yT`8~gvVlL;^;Z9z^jQKsSGUEd0^}$YF zwf6GUtY@y$Q5>}a#LuVeHyrJ^akUk~`Q+J@EQwLAi$7qK3U*P$EvEVy8>#sEjKQzm3T))mPK0B_@ z@#+hfbAO|UlV|17el50V74tufck)^dT%Ydi3W)Y)qny0*Im*x3w(18SU+eAUE#iMW ze6l6yt-elP&4K*Bo5KIaPy1-)E@>M;1n zubBKJ=glv{TXg+dJg(1~)Q9~zFR!2EHR4|lDuMNr#;@c};-3x9-SA_7Ilh#dXuqf5 zc~s6Tlb!jo@@W4PPfCBqd26bR&xQO8y~--)ch-)0n!l70$iMHo0%CoV`D?`M#0L-f zF^0!a=H>iA`Q>3S!dzU42paZ80Q=U+7+=I`6_%5YAY55Ze= zF#goy7{9xQekrbxHU!<+`j+@Q2SvOFBa7t`FFq_3V4VZ6jYa)_?65@iUsGQMej#{k z9Qau&ryUi;uhr}c@g$Mq??J>24i zdY*Xl*C_t+1=|(Q>$@nwC5Wp}MEQBT{Dh56DAix?Zz`dEGfmwmuAd_PseFt4yZMTC zM}%{gR9G z)>CJEy%ySk?3Jpwg@1Gc2PXHYtTy;7H>>35=as0@9GDzG+A@^?)!k05_<5}&#*dtT zv8zVKT;Mfgiz9|3;U^eOW=q0MpeWzl~> ztFsOJ>lwsvLHp@ce#2@@(DA7MXvAB@zdM;ZR21yu)eXo${kZA_{)sn;H`bNItu5)F zynn^`t>5&K$lqGx%wOw=`7cWd|K&Y<{#oYam8S6TdpItR^U6vW-yixQknakkDNT)0{_Qno6h9Cde_No#NTgGUEJDLo;Z1v z_<5P{i}q#D!CNwaYQNi!2Q=dGm80ZO^NTVW<7@Su^<_D)QT`V3)>hMCE|iTv6YKO^RM=HdKcMBTqMSEe{wDFtyQCGI zS6sZZo7!hdjg6eQT=8|{Pqj$1f%Cfbr|WM_MgKG6yA~3>&sBf&U-fd|5zZ?zKKZMA zQ2z7ac1=02&Vj$|pL%WdpWi~#ijJx`72A9!=U>(e{de)a!B<55i#`s?yuJ`F-e?8? z^ZN>=H1F#Kv3i>*SR};Gf3S`hxo_EuFm98u7o&T%r}{wE<4v8iVHy{7>n}9 zq`!y@Tg}OlfW zSF9)eySVt>;9s;!*^Kj+=Hd$@ewK}O*9(4#lQ-I-{ac@&Q=apBoRe3^BmXBYcDxn- zy_~#7@l&0T5dD+2cJf+##J~An)luAE8RX`{(`;{X=`B3p?3=FZ>_2>nsMk^_uqI^8MohG3?lzU~d-gXtW+E{N?;%9R&Z= zzyjj_xH@B!gV)<){wOvh2kLjczToBib9My&XEIGHCy3zMPQC;De}B_EoD)_!c=`TA zCq6;7`UuB7PJff)r|gz6oAXLKr$1|e`LA<_h)0~a(mVZ?qsZ?fdnGESq#}Q6AH5^; z%RaN9*#GIpiI?{$$p3iW{8vT%JZm^4-yhZ{qW`WNRY$as-m`jU zlffsq-*M!(ENu~Sp{*`XUL!u_Qpj{3Sg%X*W&WLzf0hU9#6+WYYl`wEk8Z(sUJVoj zRqf&A)md1dQod@0@zcr4>s=7P<1fSS@W4h_@G^h%8s@jg*JCje3=-2s^7~6SZxJv3 z)xwzH#z#C76*GpBzs$co${(0Y{6s#py1Vi_jrQ9&@Ny{6Ps`AiL-PAqwK&oW+Rgv< zHT%ffO@J)lI0OHh{ytF=y+3$){j|AgpKq?dyw4rguMl7Qvx69a3>W3=OBNI&w8VMzCC;G z6zA0g&iKZ6h@WjX#)sb9S%20FdCaeO<5%u4-#;Y3|NkETTT`da!D%Ipvwf__xc&oM z`Ss^KyXI_vo#MAoc|@$=Y8?5~^);>{{&Y{}vfN!UoblN=Xy5(Q3tF7Fd}10;9)Eg& z)W2T*qXwMU27s6In|TfK^R^5w!g=%e_8k89zYhLPhd&1k;t_c1Z_UT`pRqf$=&06@ z;%z*$j-%a_8|c5)cDydh{mo4xjpX=lUYQAA_AfVYE+C%ThiNG1yKW1g@c34Olh+5J z{;BTn`it|L&&eydP`_C#msjDuI;%T}s8{$`PTHedg8$ZP|T*3WJd`r5}o|53as(b3^=5kK)KZ$(b%MVvglivE46J3dI!m&L%J zK3_M859qOEfFR~O=V$dC%AfVgh)ROr&681b?Z<-s+rJ2Q3gX zZ7kYNeGQDNne{a%^z_RGFWXnqk$?Dz@nU?NwU#*fi@1Jw`}KLn38OK#k#0;F*c2WL|DF4iu|0;LO-H7v6=7k)X zM!fYYu79vUZbYfsz{~tB(!G!G7svgq8e*FJ`~CL_)SsoR-<$I+c&q^FuWrHhX*F+w zhZAPQ#SUKo4CS-dzYG*ahm{WAT84Tw@xS#OC(L%>HTrx^-@8ZXOJ8UqZXBE65KsFP zZ6EmC2PTXCp>mkwpQrZO55BeEprt&JA^8j7l>^|zveY@odGiRxKM9^41Rr~4$QjNv z$*%-&)Y~Oar+?Z_ynoluqyK31`HKDx{AZVaU~r+eZidint0{g_^pA{fihLr7G&3E% zM*P;cg~j^F(mHvQ_~DOMd@CG7oxD;E@xT7;W_7`*bMiXz*QQo4E_lVsTg30V@dXy5 z^iEzaj`+{VWW)6hbMgl9XJ$>u`jFYlvl8$>_4*;^_e@S+BYx51cNIi_8J)aI{Peaj zP<|FCuardmE$5?$3jYk?<>z0@Nc8U>siG1%ZxnR;>*T+2^f{5AR)G9h(e=B6_?wjp-i+q5mt6f$H^;|;6G$aO>9gzIC-7;tZQ}Ae(HKBZxOGj zD}R`mV}`JDBwmxBKdRu5om@VG^U6zf6FL8D z*U>(QH|L$rdE=W|9FpU+y=dPWA*sar#;Q#hyfz-!*QEFrPpw4%qR$sC`h1OD#`Sx6 zXL^3_XciY~{2jkB*1sGpwNTEht8g1rJ4pSf67s9lcg2^S*9wbegh}3-h-q!w(Hh4% zuh{?C2S4QfE%gWRi_Gzd_<8G)&LO#crQQxl2Bm^_Ruq`bTX_wN{j$k>0<_^_SM!vJV2qKsJ-Qiuf{r z^DyF9zO-k(Ak1!#^0g!2AN-zAY;3I76rb9M9R;61KAplH%^vWV@eSfTHR>pYI{8ap zJqG{2b(e_uPwX(2Px+gf(LSN`yT9V`^=4E)-5+5qFh4a4e7A=4#_!}$`%8`5CuQF* zKXG2kO8%06kN$gFf7qY%rfff|pMD(q?O4AMZ+yme;j-lGr&dS*9o1srSNy!0*%{xe zjqCHZQL!iI_2N$6%!>N$Nu6h^@UQIT)jIGGe6tG!yQGshh@X4*pqN

      B4gg@5b2 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 z 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 Tl!JvY+;-sq{i$b=uGJb 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

      X*|wE=R!6je5ybvyOy%Jp1&_J|EEg*zPN{ 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

      H7iV$z7Pmj|>kzQxenHZhmbb4d;#AJu_i&$SY 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%0D;dUzDnzn;Lt5%8Z%w$WDWq(m~ef zMQ+f?l_R}Wq#|-}oRZpnk-^AcH*y|YCp{Pi_zvrh93u$Mh`*QWl0=ne*xZbye@gwh z8A-pC>LTHsMfyNvnO!%YfC(jY&xQ)#23~rs{kY>)@ct-^S|;*J_MvGmnh+GwD@ z4gOz#eq33*jbtKjBe#+><(B_uzfntA%eCa@2V6BX{+|FuM$Rwp^8J~az+O@A(dELp2aZj*#OxkzmPcc1t4K9u;u6MKC2$NTDsa;l{dqUAnytosFiMI)-|uxlg+%sFy9 zjETO}d#DTBxY+@q1j~cd_#ffgw7VWvnqHog5SZt|=^}#=yxssD<~)e?Cv~hQ7Wiw) zv?M18=I?O7G5mq()w@UBXP$VD#6LmZrmTky(T4T8Rjx6t&$M`7TqE(@o&q5<{*8}I z#QsTAgzC`hVfLQkE;g3uAYHwI37)y$phOaoJ5hG{8s*6N46SEK-&q9hnYsQ$JR->= z$l0-a0n6LEQg_1oVp6gHPT)3fbo?V1nRqt{zqOE8=}h;gMydMvEg+nZ{9b3wulN&8 zGZAhZ;q|joGRRLcc}aQT1i3YVE^x+;YOdx(6&H_;YEE2Mce3DB!S3L_g>cUkSuDhs zWkf$uvAXJ!J7Ts*T~-CzC%}iGgu&O~`m|UtfN$>HEL@zjZx_yL+^5~!MR22tZWhsM z5edRv_r}%BD&V%oGf9kytWlE0eF4@HA=Vh$wfQ=0Ha6|umYVE7dn^@g*58;fX&S?J zO)}n$%7lA3^Q#yxj5gvtlMj~n+FZXJ=K*ceR~VhrQ}#>xNn1Q+uMtmT?IA&+H_shT zo`9>Rx2ub3;Z|&9B()!njeC!iXz|*+~rg`!*F_rjK3vm+bdMUl>ngE zE%wH3l%U?SKPBw;r-RhWl_wbs;~r`_49V_1BoK0!l*tCx@Vb0bz9z-%^6>TcSBm&c z{cueDWnR2bzb26rm;2WJq+24p1_7r&xGbkhnucH|9%4aF#;?P13RM>HJaUL_i? zGC^KP&^q2LVw@y@SVK8IiWV|M?L9APp}WaV9tV97>UWU=&hzkMm_}2r0>|-YU##+f z7Vn=?H~VsxzevR2RwjoH<1fqjiR+$C&Rv##yDRzjKys*ms~;XpPVROy=_B=Zjn;BC zF{?8{76?iSz0$|d@+Rg8@h5-?usH8p>0U3p8ls0p`e~sa5$a))CxMvXss^fK0@<{u zIsp7ChxC{MrferPpS+?BHn0z7IQkBEObi=|wj%dHWdAJh>z}pXEP6)g3=(3y5y4;; zN_OMz%nt*9i7AqSl_n0=)AxyDfuvnJJ=Gqv#|CSKeJmdND};MF_aXqgm!gdY*2KM- zSznps^#t7@OE=j2+L_;r=x%Ws=JtM@EO&fXcMJTY)JFEqyTx8^Q^t)lI68@-J+)`H zK(Cll^`&8B7`I!<-wOE?V36mjccgxsG^^r9TNm7O4cV~o^GuZfFkBu#!s&FO!F4<_ z#2ui_1Oyt>eIa1t%o#OX&dDS0&m~~&S3pz&M``kgy3Q$@!LV58jOM~j7V=id`iuec zHFK&(-^TRbg>f*^TI?`INkDCpWeK4}GC3&5g(TUy2I+vP!fxwE6Tp-6^g6oQ`3x^oGmsOb;VH zIikt|J{oz@cf76D`6AlXnVQt2&rXhw8{>(AqgBSvg<*-kTi@0>wLPm6=IVL_0I*z` z(;fOG32 z!j)=zS1|T~F0te&OOLXy;|FvnVUc9AW7h)>?B-CQOx@A%*R- z!)%fHbyKbfo{}(Wv`I{P5z)9$i7lQK2opbw_x_V&$kKc2&D4DBSr>V$GXl}UbX?#D zp}5J}Y?V`v0uz>L`W+wK7`pO8q1)9=9Pjiibo>Z}ite}we8?u_^fe~V9xE(;0&ZGJ z%l>br`=GQRkorN{;EDbHgVI3Y-O1Pr4JAL!_+k<7M8}n3M$?4Zw*$?FgIEAmBS1n0 ztv)tm+BI)A#jFHmH9XtAKY$IUJ^b(nR%-y*Y1WpIguVF4+H+y3r8z$Y8fT<@SlSIW3&&OKBh;;28sI-mvhw11j* z&te+bXKVKyojF^p<=Q@1>*X*fB%HWI`uEE8x!PN<3r^f2#1F>90#soI@;y2k4XH|+ z69mP2dba3dv8w=nxz!whf0;W8p(vaKGEoS{`7#3L;ecj^nG*xA>dg>bC%J>7E{B zKlRloe(zVly3+@;{f+!+*rnhakw;m=P6g1kFv{Y;S0?;&j@&iXIBwm4Ub+P**ta5`s0g_C7Y*f#51^&$JZ|74@6o zF^$1GZQ)~-*iuavVBdO(=vwe#K*>n?%Tw|#(z?2TF}PcVWN=K1nPlh-cQM=r{bVAk z*Am^d#)t!BsrjxyS;5O%E8Z?ZLX~fxN$?;aMDKG?3tgSUXb^GsKgu%v+-WVRkY5 zJIImaO>(orC;*|2QRGXEB4U|rjQ7Q*5~@>KDp7)6ZSVo08&`!xRIYHMU0#Bg+0Ldj zf#YFRG%ONbDeV(%d!e2Am>`*QN-nc=Cp(#VUpWJ1^dC(bj_lvg-nQK|9O6?_LLj#`C6L4-W9|mf zr+F)XOM9#8j^0l8mhM(e@SU+X?qL5Qem1eq$#b_#o{Msmr04pOIn~*LitK=t!{L9~ zr)D8@m~nD^j%H@^;54y;`l)kY+UQcp5tuO~j)$Wg2e~j9QG0U)w8ayrnq9L(l2WLF zNpy(-hBPq-^)cBc0Y3!f)f|2n@3XGSpI0-OUQqjt9EAa?odO~}nX$m5dgB9^;tS(? z7wW)TZEKDNRo05E~*O4!ku07GPm^Ufw zPtioLK{@2)L&9+y@LWZ(Pb;M5EQr=_2?_rQ07n~COR?rP*|HnF7!TU#0BfDi6^I2f zQWBmM0M0ctvb~7kJO{CsOEBnk-sJ7H*i$Ea>2usrWDfa}^% z_U0`nC4mwJqXajC!>eJ^;eQkQY)|d#jKSgA{5DblllAu+!wcLg0qs#bEll`X1BJDt zi!i~IKu>d2aTb(-?O|6oJ>)B=(Xh_&i> z_8L4~G{TBjsNPqm2MILEr*Vk$O8`JJ9vQQlQUrnRc*(QhWUQs=4%caV!`tB@PyNpG zSGn8YN-9aQ!L1^?Mc6BZbFHYvXTm!LNf)j*K~7}MOd6*13Xcrba*7__U#F2zImyDc zQ0VK#|U>jv?DOjALQbKBMt{@d;3rS{Xm5o!nLaJhr*#o212f&CcN z_cGNF*1ZC&1Yy8-z!L4Y0+vJ{rJjVdL(wV41H4CiXgZwSwo@nI2GAyL*?|$+4o5JO zJXwh9-iEDcHb%h3WXYpO!Mg#p&Mz(4yy_8QXC!9Naj{8rM|%2D15$_92kG119il!E zYk+e0khMC~0ela5-YN?1i~Xd}TCp5}dsaR>!{Wau93tJvR_5`8HZ8v9#b~XX^Rv* zBh4b#Z+M1^Q zA@&1Pw z)HujE$bS_%8HkW9Ja0>xNo{zAON}!uEZIyw1Fi42YMk1M<=#yBL460Rkb4CtDhWln z%pAjUrpD>5!sdP zuA2BrQ~N7p+#yp-y+4BSPToN{$4~M$hU+-iL_UtgkN$QoSc|L$WC9m+&_|?A@*)o+ zX_t|9HOQ4$Yi7|?sG*)T6P*C3d-7v|*#@r&WVx_DGT^2XAe&(R4mf~?^N{j3hd#}=zQ|X9 zhvSd^6h*Zx&8N=F=P)3|MM)yE;vzah@-TUkIa@`4ZPezpnd*oOFxs|96UQq*)~bzK zYTk!TlYzYnlYhFkxX_kZguDP#gTad!@#}nWSAG~Z4=&Ev&dC>(2LixkXwuWT1eUR-v7h zbyhL>JW72Lr9O$$pGF9-#Jw6-VG0XvT2vtoYn_|*8gjrpN5=cJRD4(?Ba5V$b7+8BY{C&yGl8r0 zL?5tM-vj23V`Hjw%t^&DYYH>g7I6L+-nH=$Ul(THUYN1E(0QHty6>ljo|_6YRu($L z6l%b_$`>lyBi}GPLaKUzr(!oLA*?@>4B5Qe7yrZUuTL7PyxWO2=AUYLLO{8MP#x zi3dyhy~z2KXgn!$PK?w^k<0#%LjNr-KTfCrhJR%4?~(geB;PB#9Zvh`3If$JbTOS8mIjeL3!y@*hJ}rHAbbB?9=N$%lORhmOh1$g;KY4AO61bH7eiEt7PL>VehQWkdok*baAzD z=)w=)d0J%tA_`#!51bK5ZDA&pi&CN5t*-1)Vn?&2oGb~4{i)5_Zv8ehXQ2KrMWen$ z1*uSJ5@)ELR8JcABh&0<+|wY-=>>A=TjOtYwi6%ri}!usift|ZfM+dfAjIN$nOP{M zY|{RDSvPL>;Qh!n`v;Nz*GMhMI%i7t$FTYhP8;c8;xA1wy#26mKLj3bEc^dGZGW21 zy#+T00biJ@>S`)o94W=~aC2jy_3hvL?J(7e#JVk?YHT_Eizoc3eg7MLQbF438~tsQ z7k=LrTQUl)e+qqoyi8+$Y_s{PPmhovpcw8)_1@#S^kZQ95tb0A9+a0={7^EY4S})( zMsp5qH2^`0;X6E>iVXUgOdTEerM9*1Z}{)j`%ex3ojyZ;_gF`MVX+pJtH&#Mk#e8R z_-1;ant?E!sC=?>L7Bdz!iOgGa0=W`Oo2@}l3BN)D#FKf>5Dn0H^d@ovT68cH|jWI z{4SP|-&xkOGP*~z$f3~7z%cku>u;6)+bDH^eU)@l= ze~nV?O#_E$Xfn*iToj5(qWw0%8E_r2clNU^pye<)z|N;d(aGY%J`J907Ij)B787H^ zNH4{a7Ox5GMk?c8t=xFfmfnlx`;mR4nvM`1FFCOaE?#rC#bL5jbeq$?tnwxUB2nKa z6pNVULq7P0{>|UQ4$v zcT(p%@&YIQOQ#nlm@ZpZNpEeu8rNOJeFNMFc7Ul`m!)gxyTN&Gmm!(NNF^t^X#1q_ zZrno^-c=oz?q2C;Q}S|GUEvllH%#HqN%6ayc}kwu`gPnpd0oZI=DxO-Zuus2{j}uz z%}jO7FR0b`gL~i=dI^-E`n^2idn-oz&mQk^u(_$M4>sY9gv_7=GH=R5ez>lJ41K19 z!a8UwdA{q$#szFE&P|?N?K#+6ZgSO~UhWQ$O6-?Z;s8@=7mWbw3GPP;?j|Kr@}BET zh7Uz7>PbqCEfLsa{6{_ctfvzD%zt`4mbFh(B;#&fkw%rOj9!(SDexEytXT*$C}U7K zC_*LC3S;d>|75i0gGqa?L^B=y&J?vgQrVr zRHk6gZ_D{$c5Y6|0^6h!z*#-v{bJ*LMHKpma?R&DCf!E5Oait*(FVy?Ca!nyn4@-< zij9|1!#eRAFPW%=`s(}Rt$YKa~X#f}sH1~-LX2($5- z5Z4n5hXv^-p5518r`|tAWAuQ46z`R+Su^lzg;C4v=>Xu8};lr!>D2j5pxg8 z8b~yb-BZE)#x3a1l;iNqlKpEpm*SBoc%?wc;g`)RN_6>^z^P<5s~a zHa)x%Yf=Gj!K9d& zw~Qm6LnF$2yd;9c#->;Yj=c*3r-lPi;Lf?gdZ+D+zJX}C=kw7@?zRLc@oCj z`jgCXr~~|U#6yfdPELgwzGF7+PO!`CVn}ATq@|}NB61HM4Ua(Fai{J~O)y$OQ;SCp zdID_Zj`~=6f-t(nE&{qAk;IDAGL-YS@fr&bt3fU&9XiZvuA;(1Aon_mijK>W#E-;9 zOu#QKV|1ofniK00c@s}ouL*EOo}!7-%-?8R!@Fg*f~S4pMMVO*80LG&5u-W=Z(iRSu8l+X{xh1^~q?SpS-wAbB)P=BWI zqA)Dg@#;97%+8dJnJVb#+mrekS-FTF5!^}mkFmlg)DumRR9^|T6Obm)!(eTMM^L_r z<-|N2N0$a@a$}5}(@c-iR0GT=obB@VK6E?R8O*`+=%q6y%yuYvlIfpq<1XoryXSJ| zEXLKRBtCc0MMCP7{f4sL-1|!YkreaVm{COWbxfTZ(fyuMe^Khs-|urG|BA{mLvUF$ zs48*A>iu>I4(!`GvrWgfpw85AnGdu6jphX#SUJbzlY_i#k2XY> z!`7IZJ?L0BGKcnpmhH)%_&tf8YL3ls1W+_i8dIQ*byI*u?6wqcz@(NYa*7#+`oKI&iw27O=Iihp6gxz zpjaxY{bDfAF>>XY9=Zb@S>h>d@_3@^xDUy=1EItiLP(AS2Wo@amXpZyBvYq6r?J|3aF^4QNXBC zqk_Feg+z@dQ8XI$m)K%UG$xw-l2{UB5=}Spe%{#!LUQl_-siaw%*@`i=gh3NW|g;m z-|y>=h>mne*`e+*l8w7nu*zPd3cZ=3b_9v*13d)dOxZ{$Rg)y`buFf<5negljG4U7 z)@5x~nJtkWnXTezAsV!`n71KRCN70sFZO9=pQW8z=v`SdOer5@d7%_!SgX z9>-jbDl6K8rR>Z(AU}tGSB-j#HRT>A@`mE5YPbt408kCQw>bo((#bn%rLkz^7-)t9 zZj~jd?>aFV7YB`lS@j?EG3kbjsFS?^rpg?4zv3+bm^Xd*$hAbUnQq_;XrFA&ERgds z5g+0voF~9ilrC~DIdcK%=-3!@G2S`%BGc5dc%C?lG3G*q4{wtj?Lu-9B6KfN zt4YdTsL`e1L!EjX=qGT9XsX$kGn~bC_#2&YoIfbDKk8&whO0%8Gt4S@qwwd|z*9}W zM@$`(%@BkE9^*3oV*pz~(NIu&DEnYc;V;2H;4@x5F988!y_ia5K{&o*YblwzVz(}t z6*SJ=QxFqovkhfSvdy2<1xSV16U>aQw8>Sr83z$YH)gN8>}D#HLZ%BaT@tFNP>xsy zYw@s>G295`EO8lKBUX>U0OXU(_%Jp}gTEpJjrTnO_tQj%=s_+&9D*F0l?Ra-L*f-o z-!0Po$FViAUCe8MK#0|)7$z5vS4uUSQG#jLdER1a+phHv9lMUF>AKXnw2eo;uDv^S ze0z8%_8pnE2(L1!IQiIMHbViBb)`ULeIh|VIBX3xpN^LO*C=-??97R4wf#2Vvf;Pn zl`?tWt3&y`+FZwsS<4KC#gmHJY7UAOT zy->!6JoXdK)LF;&c>nXEL(@3xzeHo7MW0W}@cM--%Lpp#Nmwj*csulVPwnu&qQb*( zDul2=6!EmnT)#ZuNz`Nwr*{;+qsg!%ZwBocoL2q{z7V@uHLO=gwX8r?65udG_-2~d}esUU5A7F~qJ4%2E{bi9b5#J3jtW?Bcd+m=-8 zjPysUVc|?0}$k?LnxEJ;2&^`C+V*eV4nyX>XHDbJ<(=+3mExv)-mbyJgMz&9UmG@>UdBmKh<_xX?kKt@=YfGAPe36pLBMH zep8dX{!{IKrh`v4#8PRlQ^hM>t6Ouebp0ywXYE$4&(fCWVQJKFDJw_A@eNhm5%n-k zciQg?Hu+)1PkxU*%uC=H-KM>Bk)g#w^<016;(HZ+_fS}~79q~BavvnklmhKLJT}$< zgRV7~y3t2fqSriP;+s`$Mzkx^?A|R1ChpToEM13P<^77xyx!Byx=#s|0}cg+b+yX< z!iDlA4g}~X6;%0uw%`lPv7?j3pryW{k}D)?6E%o%%{T_;j!ZHMFbx!cGEwAfp10qr4Iomhu0RbaSTUq2>Vi`PG4}-2${tAB1ifuuV(VJMq!sQ0dyF zh9hN@J@o>X)aU8C5}9j$M0O=zioj#=E)Eu0d|ub~2ikvu{J`Oo;~}b6QOpqNT{b&e zd`B~oxEri#TPT%P2PHhh4B2uoc|UY=6ek`E+NZRLC1ryv9jensun zgbH3%In?je)1AU>Jyi_^>kM1xD+Cr)k?B#!a2WTMmD5 z_x^GjwPaPqAm3mb5=i+X4n3tSTEHcmS#_XXrBHk%UL`zi6z%^D>~6rCi_9*uq)qzN2vSjIx~VFjMrs)PH1H ze@W1a2|jECo(*}#56Q5&_zBs4Sz{d?%!eBk9|~->FbNg9&Z<9i*;)3?yI8Z%bk7=n zramivX7sG!OnGIxxz?7ZWCb%md4T5@i=yG?xdu{>4MD8rTI=&{_ z7&H*6Alh2cipZR{@rHio`A)wgaPC%Si3ZVVTHLQGZzEjtAWLSeg3xa@^On%ldO=ML zfmr3sn*ZV_s8`EyGu(yX=^|+2=ZPbM2GTWkVWWAP#Z7HAH`ws7Fx=OM`wuFo3gMRz zE0^WMFOSE+a8Gm!AL`ntL2A^-%SYB$l`k>*uH4e3^ zi!3256961mLw||_>UHb3nt(qgK&mKkD!K#hTMUm;tm7t;xS2&H!AV(2%X;lDjnWk- zg#&LQh~%<^KGjv9!RvdSGK(U0$vzz+lyVqe{Y)xB%zOS_UFRilU=;~^a3$603Bh=O zlHI={;Fkt3c}?Y)LaIrRijMThM2o4O`ego3@>h3Merrs%=^?>jT&9U&WKT8l41(>0 ze9Q~lA_LMb#WNz{SxtU$sy)({YtOdj^$}hR`PO_eV<6qmbHTuDb>oSs9iHbFC?>fg zdK&ZiXgU@%z31lQkz70-2Th5jZ!eU;xD?1-099@r7g#J^1tf4dFKi-c96wiIz$s5!^Tu=|pEPU}_rSicEk?pACDr@>Yf`I_?E z^DA>5`AsUy9J#UQcCw5XBj!j!ril{K{+e3#vG)<}kg+F0UF^KU5zRIhb4!W2<=B!9XA1 zN&|#&9GH#U!)3&!EolZ2o|Ga~RYo9cRdYX#%cUKWOa1K;wIecYpZ$^H=f`Y#IBK6C^4lXPIE80p z>zmGf*L7T21J*}A#2GAadEti+fZ~*%CG6C;x{PGP?D zOCPk3DCEOLG!wlq4j`m(fb%At3tTv4VoWYP!gjbi8^;f!3$N%G2&z=* z)GuR{FI?t2claal_rn?vMTZHu63NfpXv`dj#DeMEZO~Zh&^>se1XHFXDup>;rjj=_ z))OWNcptU{bHV7W{ZS&8_(+J(l~N>@msfSTVmxWW!?1AwcNUfd=rt^YaFNve>F`+g zZ+4yQgCo2|UwKeuN(6z*%$puJ!7y)V;HF0dg4Uiz;|Y1uv@lm&g^Wg72%~e^mMV z>P;=sda2Yyg6OG5@O;4IL!7Q8lcj8*%P(=Z%872W+=VcG)*pyqA#x8E=;QPRlGBaS zCr55m@r@c&+`0N=l^HJ3{t4&~NMGugN`EKjIK-C76jYCPD95s*^4JaCACO`~ZFTR~ z;o$-zy!h6&#U1Yy{+e+97>wr@!I;G8jBe958zVxKphum=`_)9S2xANw#5ynVO`jc* z)t&hq=7!0|GRh)HtmE{4JvmlRhToHcH_yFC+gTV+D@F8_|khlX*_ySQD1N;<1)qr?`Rm{{xcIpQpo9sipsEWoO4APGW z_K6^!$jY=Ql_v9QWmdgbEE~!G7rug{R9wEt*q&9DSr$&TN0q)qxr@D(qG=z^L-aI# zREoQ`n^Er1(6KH@s#cFFI%=U)YN?*zz}Fbn-KNc=)-9i`T>q|}-oSgAV%Dm9V&^rvCnOH%jGf;6Ng{|eHX zY}LX4Rrg;@Jouiv3t9fZ>poDU{~su0eV@8Nu23(*TK!Nee@u$oN#%Fawf|lD9iBcd zto-Tpf*op>V1x^;KspyWSCF2=`;G7a&L1e6^)#$T99mgW7jbRl$cDffG1F>W;LwVsII;z?o3MNQ??%3!2lI^PZKhL}S{0i9=cQ|&t>e-=swyXDf zLM}X2*|%?3i5+Sf72ct^QKDx^Z;LZ!v{+Yx9{e=i(?{$N^cn?8Dk4s{-8Phst+7Gb zlrUJjNPP@v9g;mE-AQuEf(WJ>qEP0HoNgM5#87a{Ufv};uqX~iu)JOI+O`b$D#D-j z-@gmXduP1&zkYWiK77Z^cVUbF}GTIp* zngApo@}Q?G$Lhqh_%Rcq0o44aqR-2^xt0#~x)l1c{(S1AnM)g(;?-g1EhSD^M(S@B zF4v8kU1ER8rhQl2H16pTtu?l5dm9@buK-sdia z%V~n&Oy4{#(`9GGYUle*#z#xg0KC*Wb2Qz(@6bUybTo`0lHwID8AznB_h9;NuFSMc zLO%nx_mHP<(oPAg?VQ-*jM$=`AM3ibiA5MX1RUw0Bq243HVS)0@|)=UnEKPvqIkt3 zJlW6TLlK>twr>p+GcvB1nprMLouy0wUlpUl;>$#7Zaantysw>$Tv%F}%vlxafWF4v zB*t+1XMl|$s$!%+B~{oSSKUMXzOioeuF}IQp1PF&wsv+&6rkxFPD2!(5%ZjHy7Ta> zn~d`yJ{)=K_e4XF%Tr0U@|fF;EN=a(3thX}ja=;3TK6; zoT>*_9u`F}bDUX}F@pEw8g31(1yiojS`64{pM2RSoc!Br%@L~!pg*;fo_i}&{Ug~# z5HF;`_Sbufx3Up$4*sPivbwSPpfAy3JL1VIY+=%`zpLrRnAzx=;zJ5EDS|J?Am+d} zpCA?#)Pd@f0DTA}g4^}ZK}f4_>#0yGfXdW)Rv zdCPG`drztI?JAzFTUvQOh6sHEbScjX2Jca!T5QDa+>F!zBwWg4d09{j=Y&rGL@68r zDF{i6^zF!&k)<-57ylG|QBWI;_p0!K;a$GN-caG;wnTV%yYlUOI{fxb<=f#~YR+-;S4VLB zZI4HrBI#&fKjcnCBs&V)A%3kc*7YFE}_8#N4=sVKOrr0)1Tb*-`&2y zxxZ57?qgze&@5 zOA^wNhBXJL8M~h;wN4uGQ)Pav^)EHL`V8LU;>3XD&wR{7udCPtL{jA6REa-nO9^Ng z(P70fN~SoqJsvcnXY~0r5t?V>7kYa_?MNIM?nj0Dx^SP{^Z67fzjn<{YBj`s|I(-E zSfGCA-=u!y4<~sD#3wPM>!ahKiLJumUvKKY{Lp&$KsF%r;8+~z3|VZuS?11hxl-I2 zpRrJlCH<>{94|{SG=+Jk<0tmz4)sdMk>UQnRCqW!+#eS1lP`DB_s)cT{D3vJt2@_R zq*mWj<^0k;lQ0UMx&iWcAq7c8y;FX(RQpD$^PSTEdh$<8^XWSSv7x3h4vb12h=0nS zG5Jg54hiN*&v4I#4iBl0#2kR*5ODs?*u;TdgC05*;B4RxGlMkT5{yEVNiPlNS#JrU zge6=(L-YVKw6w(9LqkiOI|joI^HqF;drEptI)VjbLJ)o$HHKrKCDCOBUqujFen10}y~Z_{$D`gJw9ynVe-qJr}z| z<;#Vld`Y^PS!_epm!uoK?;&cKE`rudx;7S%1KH3miRMgmtSvII zqPH+LwBWfzIwC1fi(shNnN#HRVHnsZ>r-RtcvXyRhvUh(mS$VV3*m{c!Z6tnc!&+k zI{8DLf7v{~@Dz#607BLQ-pI%W_44BwXDbd^$-BZi#^{esI4;ju;o*pI|2*S%m6Lx~ zb@U8KchnAe-vhw+JLO!9uUl6ULkKB5_9WN;rcG(}8gXUucTC`S2P3LJP~Fx`1;fnP z)RDzbeSF@{9S%zz=70m4eLImY{sf(iH*YhEs}LMD5)#JGz}#u_x<5vX*p8)Pe zG8@^ZPyvDxS$qN91aU7>s)`ltNcb{D^}kaV>|3-Nr(tZX(?6Eok@P28X{z2|)tV=T zUFBDj7M@_!2@sgX_{(-W)t!Oxh$d)mOBzT<2lZkF_b*gie6`j8Q{~VWejzhCSiSsC z&$%O*$LLObF(mQ42TP1w4et;cN7H`FOAAR$xhQpu&F>= zD^m|Q$Sdc;h^%2d8gGegZ&W)Pd&B+RIy|(8`%kL2HwG92MFwn4KGxVSE!EC+kr(X5-4+yi0zX0!08{&LNB$$-$$(VJ? zrRhexH=YL~vbvs7b&o3;!K;6$?4fU}$e=s$m<@wxV}O`NAYsOv$mBKG8}Pr%e?p}n zS83oxw-fkLgTR6cjfeel&}voq4Cr;$K@qy-J5=?fz@}<}qGC$Kj+ONIyK0Y5q>zsS zEKLLts`TwDfY>34eI=pyCqG=8zgufZw%_Mx@0T#z2mIh${^9U*n1}q}F+cmLe9!SG zUsW!b-l!6HKtYpyR33pe&7NCwlc4Q(HD?n2lwfL>-X=d5#Mo$v1JWDPFh!-O0StuN z{s5Nf->D(hgYDex%t&{2*-jkBso$ts)y3Ls*r;INtt)s{wzG1lp~lAdei|vChU=l1 z1eD5?iqzeX*|O4;j$s93T*{&=Yc0g)Y~z3zY?0aEdBY<2f}|Mh>X+d}f)WEp9$(9o zTAi=-zmz(Q1-S}9f}E~Kh~0DS48M<2s222m*5||ZIrPa~sdbUiJ7+H$|uN?p9yen3I2z++LAG^$Nj&$aw0eW5n1xaAHu> zbIf#M4g<;iKJC!y}WNkJDP zcID6hg323h?1aib<2)Z}13E#93u$l3Rk5{jrMsn20QtNUmCd!C9-n z`MJ;iwB)9if*wFSOUjo&e}jaZY|-|NQm7T9aFyW{PNBlUzN{`F?EPAEN5BsP`lI zS#qyO`*6t#NWn!lZMi<1yDpo)KAXKR+jxC8xjl=yT*~sc=sIcaG8O4DG_o(nu(3;4 zW>1*;JDJ$;rKTiZ4CSr&71KZ(lUQSzdx-Zv@KgOor`kBMHr(gJ{hfYzxI={pv}?Jb zE8NGv=%fXY!h%M`83QnwaKS3@@Z7} zJ(<`gd#b-#)Rg^^X5=;OQ0(>{f;WnwCk-Ph0B^3CexyJ3l9ox19UR3a)&X)TY`MeD zMkT`y6Llxk+PAbhPJbPAZK}T=e~Fa_oZ>eWl|cC+kxHliJ}CnwbpeFqZ|jh7{Cu}^ zNQ8$sqMw)sC%psgMP|cSbp8<5$G+S@RR4!ZA{&+6FlQrijq5h5=!Wkh?z^I0jNZT} zf5WK%{5q!p>&VKl=PBplBUx_=O=R^KoP@{$qwpJ%V>c2chx6N*WYz*h@Wv8OI12Y= zL1zQCICGTs8u~hQ@8Bp3L0wSNy-xz!8S|9Z&+5MKAtUNCOc9r3MD6{K{P4KOcGdS3 zLIt!t*D28UHD#o1Tw*C4W3Q;f%jzs5n9fsnMJ^Zzi;rEN?X=yqb$(SGISav6_u=Vl zrPG2uI1jm0_y?+=P+70=w5p<`Pd?pSYjyhc*s{L+Rm*({Jps{Ufr;U!zEd>}vFiq0 zr|k6#R`7=A$U3>AIry@QUamBA2A*sJP8tf)b>=))V*(`CTdtT8tjeFO2LY?(O=s4a zm1B|_6Q5Hx%B^xy>e4z{BAkSL9F3MRlmgb+=J0Hr?)AHjH-NLzW_PeV1O-jgo)i4B z5zzEiH>mvAl#O+)MU|0(_(K_pRZI-ho#>YJp$b%D=83Cr{elTshX#=xWtnI|LSXW! z=KASeaxk07-B^_MTS6avO+>^*nIgxM>*p!qHWmrI*=@vX{*LmJsov}ye`)l5M>ynlm?_<`_i~+CcCP!k)@)ONmJKH&x=@G!$ zHF~=c!&GvgRQ8eWEIaA9weu!sr8vt+b##R8%BLY7DU{|Jc*Q-MqM~d97;hwu0~<4# zCaeWh-D$YwPb3tR3s6>&T3B}~2>+3Dvd)D0&I}Uf=mKh5Xg41xa-2ZM;~=d$m&buI zhLX*_QO#*^CbTVz4~Y!+7uqY-tikbxz0SdPIv5mR8d(CcahM%9Yk7P~x`KW85CL04 ze=ucfKo+cpZkATBMn3^R<+O!$5h~AF2w21(g28@3Z5ZlI=;R?VEH1Q*tUPGmV3&`2 z;S6U*v-W4lm&TUpS$4LaYa8b+cVSY~2Ni@mLX_p zBhi_pd3fwR0Z8DYbJ52RoC>@*d$3!^+cdWD*Kxymf6JbsFE7LPwXOxd%QlOVE5a%1;&Y1zo!NGMY7WoR`-8sfg>@N zbK~XVjZd}9?Ha4N@hZDguaX-JX7&$YW*0dVMlQ+@iPAnP+9yRPxLlR{+h?_N10>}B znc1b$CH9QenRb0DF)LX<+eLZR=M>4-9=;()dkX^Nq0&Q#VDuR6ZIGWju%~@pFo~>g z1a^y!gz)@XZn?jGR#S-I!?W^_vQzogThyQB~os;s=GO)7PvvX?4b znq8B*Sh<^(y;w0Nr3I2A-3606;STPZ(L7;}ApVdP~=VJtjVdtTP*&V%xl zZI!2NRjF;tUZZT=?Dh<_ZC5Fa{epCH-0Deb*Be#Xu-NwCalS>_!L;oTWkG)IP||Z{ z+!JI4&~(CxMJc-9-mX8lzw0k@UI2dT-%VB`Mj8P_cPo3pvg7A2ckfm9>k6kuK{)uN zPUrB*0TtaAtB~8|og%*o4E5J^fDs~->>UDg`-i|H=f_e|II3lEJ*ezM%08y-ObYsl z0x^z}Q~JR#<)Wu57d@%$Q;Ikxdngx?MH$`oneZY(IK2b5iTAYsqI5WrWiauc=3K7g z{hj4>=l5#722GNd2fm=9FDm=0vd7LjF8;D|Ur`oZz$^cLPuQl~bbIAJO*93!!&@Qm zX%wE_D|t`*vmnX1mO%xvtBdb898|c@3Bi0G|0q3o@S^IlY5NPq$lg3fvjO)!A z%ycR(Tq(@Vy@grkY(~8Be^q(PFIDtc%6_EmnKRFdlVAA*W#3oWBIPL)%3u>mJ6ECg z=vWlOTPX7z(F!;qXTY0%gZu*JxcqXPe1>^UK1E*mA@y zk~9D#S^MV@5XML5VfQi7a&~#Q`a33%=$)S4<((FOnHKJUQ~Bjv zl|$v+1C=kAa5aClV5c|FIr<)5D%afTtq7K9R~)?jYBez+{ZhlEba-r>bdPvmqc!iU z6^AarS*=*Gd`snuQvVgDN!Mv-)#T%XnqYJ=Ig3=bU`UtOsMXT)k}nhWkAPReYOqPw zyrzZ)Lv3kPdANVj&4V!-325;HmZQJ;kT?v=l zTyOe!qUmkX=y4I4x+27TX%7}k9ZQyDQI$>~d+k7pL{}^ zzGZ@kOzn31A^G4A9E{M z7zhMA-5G?S77bEOL4=y0DL3oApkjlP%hXIV2Xq*un%Q25T_3CRZc*OMV1>U`MVCbm zh&RQWlV>Nksu)k3Y^wF2afsgo{ffHL!+nq?KKN>h!wHC~MtJ1dXz$Sh&V$IiDt>6} zW|dq(B#PMa;m=9;A8BzhKwm65k#^wt(J|-fZ>Unf=0xYW>R=X6o3yF=v`s{V+V*@) zLU)obHDl5_<$_%in;<|wgj&ZrPmxrb*02r3C=(I2AI>*I;lY;(jua&dNnT-hRqyGCYzNwOr>%{uK*L(k;*Owm$+FGyczC(640De5awhr@x zyuLG$#3LwzyJd>I&}9b`y*?FroHp;HaR-|}D1Ea2h1M(ZEHx$gyLS59&yhA}B3x!s zIGFle1ezl~-b&W5AzQHv%0;u8Xx-k=Ah~f%2o?rsE^$0{Vw4U)m*cBrOXw?G)k8=_ zkf!x+kqK@53cK7}v1IuX&L$U`6Mq*uM*pGgpXm_lFKWr>s){5~12g?zm-)!Sg2kIH zi?_(1eR_j#+cWRsX>laSvez1)RG>T}D$EoU^8+YSR$4b%&3FA&7@f zsGW=_vOdB{lV#w3QMlz1ff81W%+5gA#kl(Y~BjsON zIRLM!!pT`ClF*K=8aEW&mDjtZr4$4Uj$o?u zu#J>iNG;kM7C~aOmmm>YTkvLDEtWuDXX zhMIU3_C-^O4Ad;x>^l=|awhn%v-QUWi*09fc!deCs^9y$d`x0-&qOoHGE=w{UAFk7 z=rQXT-=dre?TjmgGo0{|8NqZaK5fo^V8f$P`Xd=zbW5}<5~C(5VoYo?QB~___8Dt- zv+}knbB&5D)FVm%6*)$qkT_mX^EP1k2sRjE4rlViMGE8E!HIeGqk{={QiMSX>*|sE z=)_UxxWut~DpR6PkmD&a+ssYODUVK!>ltc>5tP^A4shAx1EFi1K7#3>W?IS0Xp8FF zQbsqnWi7l!GUl+Mb?C2H#@TR$oH(!P4#oSWN41;j`b(-vstO_}Bm2egQM!>775Q{3 zbyl`V_oarp+@sxGg2!bZmd*kW(>IhkiX{*#V!S}%o_Gq-8k~{%;eF56W9GEc=Ki56 zL$rSH=Q4?bB{>FoA>dvlHjKw((O|t#!=nq{q~@r(r?D+$JBF==EjLFx@hQu?PaSsJ zgwuzt>|QnKt7`DI>I8Tx$s5f2ngC{2N>=?sb-$~sA;3!Cf*mGtv#!BGoxZ~DzRWHA zK{WoE8vF-UO@hJNQeFnE47O$T;{DlXvrS@~Tj|Nw1d03Jkp$lk(Id%EcnF`Ss8N-K zqT7t)oPw!#n3>=X@w)9G;!#eJ;y)wBKb);GEOvon|4Ad#S4t^hxD<#D8?5pJ*1V}8 zWNR~3drER5PlwzC6{Zm%b~w3I6TW~OYdqYR;aK{qSZ`O2TRG3!A&{`vj(CGC(+11) zs+`^$&8h3}96V44|!#%k_8=TwJv&v~~28@R53*4L}fsJ}Y zB1wV;!`1-`5!y(au}*ahc%h#fsk z6Z!@WaOpG}%B5%lxI%AK(Je&oKo%y(sBMM;^^V2}6<4P-Rrl&U!~oTT{&pbCS_^8` zFks(|woW}?p900tVv>%#!!fxfXw8E5W7Y8vJvdRsr#D^Si0rJ^(4A7jTbSZWlm54j8EkdFdFf#*>Q`0% zQ8ni=HI3*m7tM)D2Hb>wOO+?lPLsVUdh&RkH4DdJGQ@zSgP-H7hN#Y|<4DxXIYeKu01>%xI3$SLzX!Lg zsZ1L^H)r-WDH8 zj)asM7dvzh74Ucaseq3+ll5I%%uB7%Cw+(IYCnp@ef}j6EbJmWX{W1pxn2A0pVT|u z@y@V|0_P%k|JrmJ-V7|ltP_F9=pBQmh0u?D+@TYKPBNun8q0Wfq&wE#+ztPFfTv~@ z-Sl`nTmlMZ#=cUZ?guez7uYttOa#L#M)P9{Fof&A50j=wn>$I*bZZ37KOD!yH+<(( zA~!@ud%}HJ;(t=%{&MuSdS}?|pwn*&ihdH#%oOxAeZhde-;1}X^3AIL7Pa(d6}v@M z^VxaCm1P|e4$RvCOw-SRFjXI_;s+}Ezbg56CB!23r`mrWgaB-o0o3CXxk8A~OLFC> zs`y8h{5ZT4*(PGm?QYzpE_IXj>01d}F*X8Z8B--dxW;P*6?--LLz3sq#3J+Yd;L)4 z$ujZnuhyGd0=IF8h4#IYzCx10d>bKaHvYkukV-;Wwtdxy8F^1Ni_vnVKDsm#i&hi5 zECSzG-7O;U#l!tf@uUqqkalRIT_QmmCAZQpmG4PExhTD`gh9bwG@KB8A8X`$VXH)? zRX&!w{+0z(ZPUfAI&zsTH?+zp+W-B&ZSohn?$2`F*L3lE9l2U3xz0w;({KXB>k}7i zcawH6zz>`iGnoF1@;_IutLr)|E%8Sedlmy@Km8oHpvrZ)72YQ`pWYyeV+W`vsvlwW z(DB0R?=3y(z)HZ-aF$&^f(5knq}i!<8}+2QzjCMzznpKwL(^_kz=k`sJ!rG-2e-`+ zk8|3dG5sHoaGD3p7((N=D-K=;Tc!ray(l=*o;2t9rtZ3yfeif^lT%Y9QOHNA4&&_# zkn~01$T5qhy0|DHUBsN3P2dl7Yo-)yK)#S!RN^^8Ipus;t=DJpZAwK%8Kv7$52lG% zmX3gKK)AYx{4Dr5_asoQ@vpbHG9E0 z>*`=JYgih|_{z(h82hBL>;p0cEMYZ1L?4ROH#NFnmGOyIvU;FL2&}Gwh6#c;4XR~y zbj)Dm_SjV87y{3WX@Vo0NA_EXH%U<50ySOcx#4=f`o1!U>uF-1#pw#fl2{5olhr}1 zJ6&1APlLqj_q^VP3is_OjgBgT7I{oDB&#Cd`m~j5RX5xGl^slFjhfens6~qsSqsBF z0D~SOdb7+2NeFyGewK$+%m#8l8AhO;L;tUUP&id*-lGGx%Jl7?44ghqB1K#hmkU8l z6WeO%%V1y34e)_-Nu9k=rIO%Wu-?bx&3=ZIhggeB7NHecE_@n!SxYQT1d*O1fO#>N z38Xo|Y zeybAVy`1@Dcy}rBjVh$9foIQzY&9L+@JJ{4P&x0(O=tAqbZ`pZx=xHLH2aXf?Jy_2 z>9s_~$xYwfdsB=s(hS@*x$14j>khVQFstJJ5V9(bj>v+ECxMXr{_n^wWMPc%d4){k z;VYbh=N~=4(w79vcNfAwY(UZ*sxh<>{ZL`(AtJ+?=@f%*7Qrq8rC)OK0Kofcw$qOp z=se3LCVv>kwbM$#HJ0)4-<$CE^iMkAdc#TQLIsBx=a%V-m9BCEjZ)vgr8!P@h$(h{ z=h8s?_czcY#9O8Y*b)2&KjR_pF5FYJ$S4NJ<0O=lMxtT+`%2jIRUsGHM)j|7#J0+? z9lBwf6D%YX$WK)M9hD0AAlvOb3W@V#?c8L@Vvw^n?dKVPGekx9Jd@f)ya%EGUom=< zu@@L~KDBEg`YsC2CucJO4k|B^OO&(P&nMh|llD(^#h$$$cBCoZVY&-M7$N&}Ao06| z9^J=VYKOl-24)`aB8%ceTwzJg7p2ubBn*qYI~pE#RiekzCagC)k|btditL z*{li|t175VE>?-qSCHDQnD;t1tA@~f;D-BRxE~!}V=h)f_*YyX3C{-?D_l*V85HN2 zmG`!ayv8_ZtbPC}zR=!yM5AszyV|&uJ)NEu9SiMM9On9Yd*!?_o z#=1#%2Ce>-=ov92qRA$AROf=ife2U; znC2jGa4~P#WL>oguHBG>xPB26ASo)qsRb#Ct@5xR#+bMnC8DI@94&D}CVW&W4^_t( zSZcgu8zUmJ)wNsP!oLW>406FgbZo0j$msaR)+Q3L}l0b0>dS zp-hXsplqtABE|i)ie)V9@5n9JM$9+0dy2VQtGBf*b;s!AU8c-l7Kp{_`>^u{imyXa zttkVu(P3n|FXJ1I2E)LXF2K&!NYubQHafyk%(FJWfNi^qbtRjiraqDFB9$1EoRvt# z=fo1x`H?72j83lrDKd$$NHmnHO2^<|u&ERQ7ai#a)Eb!l(nYq>oHv+i3mid^(%h%8 zJk*hHj(O`$R-h8wPZjRE;>sT9F3jZCi~G^G8l4-`7^!K4Wk%07iH?Ik{h6l@W?OX3PzPX$ z^Q1gZH%W4WXn{`znDP0jRR5wY=-ElATElr>zTy{M2wHifKCF^TWgHk-ZaZlxVOd)x zHfs%AY~pk$7(k$RIH^Q`q8i>&We73fk+=yj+?#h)?kB449aRjc99%U_JQ7&5=U2`w za()3E+V1u;-}Ruc+3iK2^=RDZyz=v2^f@o`yyt~`^PHFC46$jc7ro+39tqCl;aBe)vvqu zMMi_Ji+$wU*Ie&)H+T{G(yaq7{kj`{h~KjBVySBTna(}vMz?vfD?Pi#v)|FtoV}eN z_-Bp0DxwVSRURsmx66&c=ElPH%KymaDV4R$eB>5BboZ|O&$@|+c+%dx6OF04t^I$w zZT3U-iTuyTUB`dr%N$G#+ClQqeeNbq7)xFM=68 zjXshy@Z6hJA&uaYNEDz5rK3hMlG$J&ULLP1n=h#9OdQcY6%=vKX;UW1akj`HlUZJ6 ziJjv-18d2@SqO>ZAg^#@FwtXsIS6Aq3mzZH)OKYsmFLV?!o?K|Y-mDwk8BBE`P}2@ zsJScIigUUlCTP^r*YG|wh~HF&*RYGga%&Q=tLTqZ@f8J@TE_7wA__ztXDU+0mrQ#l znPHYOTfmNi-xsK5L7zlh75R%_`>}5um>RULv#*+DO{4^X2NC0z;RzUwK<`GC{f&wJ z&LrRG&Z;i8i78s__9T@?-GWKek3le@)0G$h9$Z~RD^)sAW2RwfHM88Gr@X0_^Fo|@ zLpYvd$kIM-yv_hAQj?t^;XJ}7Q0?hkB;vmu?*FdB!@HHk=N$4*aGichb-kztzog!Qi_Cq73f}-1`FW{=oe@9$JYrCV$h8Ah8|uX3I@M z_4XhUN!=0jy@A%(9f$IX8qoszIV`*jruYgJjjzAM%X+NcYe zXC>Cp(e96x*Ty9%*wfr*tUFxTPOcN8L>V2UFifE?sRYYuf`CA?H5)GD?!*_QNwFC5e01m}YSjEB$)M5oXB zf~4eaRtH_I4tG8XkfgQlAUvc!*A~USg@}M7z`xj!Z}#;+yx8Y-$edRb=mxu>>RZgB1*%dXi*VR%zaDIFi#jIRBS zEq)+AoplBTt$g6_j4QNyHIUV;h&fB<>Mw;;^=%ac#``M#R!K=+wa@38@bjQ>zwh~c zc;=t{S-lf{9071!eZ7i)RpkNmNtSZv^NUpKt13cbz(%(L(ya-0eCn)dqrDoxXExeC z)mByM@*sDVWBlcA>m>KGSu+Be6Jt5H(1}IbeH=B?LlD-1%GHGin>1_pgGz%GMqSMCaraXbDhmG zK~l0bv1Gzv9L;3Pax<+L@s1h(L(L$UGbIuP_5X2}8x#g%Q~Zy=%tectuo#-TFSLyh zg}#e3B?FQOANR&ezP;TQSNBzwLvp*O{VxF_lnUi~1i`hN)!49OqaS?BI4{IT;1b1$ zgXyG^CEJ319SW^?G#U%iA4gIjMS>3_`p1#AKZ*!SGW+X@{%IunvoObri!%!DndhRp zm!kHmC|su|^+!z81V0DbZIA{>y!G8cojau-5@OA|+-3N0pu+fPi7j|-Lns*Mf_ z5pD-J+J;;e)^Dl+om+t@-Od{2qI%S0gwQcDp|)dv`UT6*C1J{OW`niF6AKsq1h^6` z49IKEIQK&B93X4ZMzvZ1wQ*7Ksy0+P7)B!)$P?-`XD*CJUhD}Qd7Mag`+`k8ZC$a7 z!M9K_iC96V92t;A@`iKMSU`WR7=%NoNFx!C1nvI&ZjkQuA?YP2W}TDrx(XVu5O63j zdn$j=%kCyhDuf_Tr(8QgXofBk*d}nDw(s+~B$)!e8MS_SCEKS8Ald*Vton`G|AIgt zJVZo4#c9d*!2g}{KgLpHy-{w~9}vkFNpVc?dY;k=Hu2v`}@oj<>KK{Z?tVH;@de$6-*!e;0&3*~IyU^GIb zCL06UM+9`ZRqd!qctBH!Io`j7KwYd3bSv7N{HN$YPvdcp)$Umt*I~a(^>5;O9#dH; zyWzzLGX)2I9d@h>w3-v%{h`X;p?b%tS|_Ohyt`bmPWwC~ii#%B5IeUe|7ku^FD49m zi~s$s6DzX2JnI52F+}pLdv%zR<~{Xvg%7joU3IYIeGhUZC=8`05o(g(QWcnUqzfXkb8Mp?xy$ukE z@~>l2H`!Q?i@jYQaNC{-NIOM<`3+SeuzeV2144opOZkiX9!)k6=Li&&=QR&{QhlO# zE5LZKs_;{5<94YU|I~5dr7m|KdAg?;Zsq9Us8U}9&^Pr|NZE>dtX_H zo>mcR4~GDhVibbsluucDD9hzW@#zf866TBhz52NbcfVJ)pQwe7_rB|Fbfrzx{ku^(DtSfhT<;wO+hM7WW5b zmtZw-|3W+Uv>B5R@E(1rke+K&l_do;Elqne)j1uhQd(BRb$P%cNayog#b91#F&GAuBh*~HwY$u2dUyMW##uBF$%;NfKvOi4qWI&pu~e$S zELDWzqt0*bY9nc2GFGfOj0pfAO4(#RwkW$R)pPqQTy2vT9Qzu(=W=Q-_H8|PXzf<6rk7^LFS z7^|=zAJoP&;Mg{pTB5;9LfI*^{LNAXkTjJdjIa2N$C<-;3$lQ6)d=%07V6}x!_oVD z`}P0Q%JEJ+)A%k1cmg0>J}KygtQi!mv3rLF-8viwv&=YLnX62Qn+{W+$72xan2&vSy%LCn!Ei3p}T{ z=)LUyec|Wg7ENJq(hc2>Usuitsy83arLl!YP(ah+OdZdZvSa9ixGcN3sXVjw;7GMZ z@kj$PFEr|vm6{xDrjnVpfRTQ*{M?Swk&Mm`;bGl~e$;CtsH-m|ds!^p5Bx&ujXLv% zbeJtt00PA>)s1-@7J$Uf;ZiX$h*5yCQh+nMS0>%K-yO-y;vfTHn>_xAO3yfm$1lTe zN#41NBcV=jRM>q4)y!gj6^FS_>!efdvR1Zh)u|}1R$mv7wFg5GlPQ?vNHkKFCZb|M$UVkF5=((LM*0dvn_pxVjbyo| zl&;~LLD3;v)j*P}Q}OTr`>NMeGQwz)clMKh*d-|+#_OZ(05ixemXXxPVt*0CxQ)@9 z!IsmC+LtAccZr|!N){0gbk|^V`?jk%jMFd<6`s_qcWd>ezR~Q~L!8zhS?AZPm%j{5 zSGGBmibq^*5Hw;sNEp0Q_^&d!6H2BI(Yzg&BO8oIsJCVmj&tml@ji60gpZVONHt-i zej!^c34NuX|4AghGg;&hu5`BZHLKUHg8LKOSudE1B0s)tDAg+rvJiv2-AQ?S6T!VYBxp(2Ig z6*e&@2I^~EU=&AJW+RvjbIeor>|i|x>U%;QYOhIS#!i7j0%YN|N@tCg+vucsfKm3( zC&g5_4lIkEy4RkB&jf5Uo=Ey!=slvdx0k(I#oxtoMU`}7BO&(YSasYUQ-rxtpcd$7 zM7WC;LXa0COI=lwb~aa3u#-Zer?TH%QOEW@wIuxclyE;?w650nQ|p$c=$zk(Ip5dK z1v3hd9XJp#hycS&^%e;X1O1waq`jiu@4#vG^OCI+*=GnvFXo4&;gE?~JJFjT4AZp> zXC6{Nf9650U2eK+@PUwp&Ky-ga%Ovd+pOC9@&U>E)}R9c!h+-SVm+~j{$=$|0lB~A zGSTkOb^>4ISlL=Qw&@cqi|x5A>pr5FhI+@xJniGk^!bCzXZe0C+ev1sASE!IxW5LS z+m4k9aa0{^4s`EyLG;xJGyQSV10(gMKdw*COw^}mrRuW>WW=>u+GU=P?=)%`{+aMl z2=}%7>_>#3`*s?7*~eMukM6vYz%((eqh?3f8)R> z^w2L?4n14c1g8~FgdJuI$dAbU47qC z&Zu615fd0?tR2ZrHOAypswP=VRfC-Ag3H(p$YLQCn^!$X1}3$mbm12^q3eHck=95= z%G746syJecjbhWu6szj14o4A^Ic2lPE5M}FCM$EOC5^{q*`|-Ecr^Eb2IoBWHtPxmE-yIrDfEZ+jBTbI7<@%5DK?|JqcN^yy zu)~lGOz2waIz4%$c-{$wE!4_8OgWd)8v5a`Cqg%mC#-*YR14zuWJ z{A)w;9QFBK@aFOR2;gBiYjv539KQ!(^NBjqS^sMxb3Y1ly`j-raPWpV`Kx%BsLlp+ zI?@s+tIhrfKc+}vU#~2fl_c@gMXz1I-`e83kJZ|?b^8zN zZ)|kGW53X9qkEJ3LQi+rZ`NxUuFI}XuS=}8>+06_fw}Y6y&xLcgpOc9Yk}_2kS;W5 zt5d~vwO_ro-#O5Z>tR{;4=Vj`SN3%@j>pGWA`8his6^%C_k*^Xg4?(=rhoSQXPnQoP1RZC;z zv~C^2oH!&Eg_SOU7rtI7Q|rS0W)&VTsvI~s&sqNy>--)s84!w8I!nj`y#1!$T%w96 zS3V~C*TZd+H5}UQkX3&jvDo)1h|x-Vg&wF+7oewg!g+?#h$;}mIa=z#&>l^Vt z_`rS60T+lqc9q+BO~Shxu~VII{4Xf*Syv|PWr;YpwE*m7vxoxn7LP-PJ-s3YjKGt0 zikc&edZW1}TtGdTa*BpdgX#0pR7oswALCbd)Z&|cQ_&S)M4K!ThoX$;v7k)NR{ zxV?XmNB$N^qWj#<|IPLO8V3sZVLbUeoeqBK zYJJPO+Z6KPBnD!dnMGFkR^A_i5u#P#_AnE5Bc0&9z#a+5hl*dM?LUaY{v3NG1j`pQ z9`mB3tJog->1hEDGUJBjJPAV8CNq=lDoF<1Y3@vXa8yU6mRh^PL!oj$73bWS6>dC= zB0|N}l^MArC=A#_m}d5N*ZDwqLtc5KA`e}f9@CMTTzN-FqZWu#EWrm8aGx^wPDe~4 zDm&vI<)tEA)=c>yl2Ex&$sN6c8R!?#Ol zP9fZv!u_XAg>#+kKP<2FXpk_ey&B9=+DTHoWsn9Uw&;(D6zglOFBT|Zc~K_Z%Jf&_ z*r^hp_}hyO{k{Ax16@RSrIVj(rh&U?WPM=}f^zW0`~zjJzR`xAtv`K7DeQ80(DNwI zeN49QG(b3&GL&sGT@y*+mq<`AP(?_hF4BF(=K3G_H%-e8tvqm=X@rkT&(m9#$nVn( z)(=c@(=oxdPwe3xDCc@8;PE+|0TCQwL-bf37uT0SK+dOaOIw3~s4aoo8vG~|9*C@! zZx>Y#-_%=z`A+s5H~~`+n^n1$clv-o(ZHd;svNHmoF~mZ-txDV4`skWh+Q%PK{gWv z))k!w34lsnsS4e(n)v=5(}Mj+OvoZi2WFDaJfLGYXnnP|q+NJGCmz%nig81I!_7VB zRu3x=$JQ~dad_v5(cB7Cy^gPqt+S-B=|pplM2*|R&>x|jE>^M4D$o8>m5F25y+FmT zR8=OehV^0106v|&OhunVDL1cb{f17w30yg4j*k|A;)a|tB{*aFe76ejQKh@pXl_ex z3;aFR$EJ@f9veH!I~MjWBe z#swk}U`af&SqC|PhmDQ}oPjSKvcd#_TVeG{mY|ca9Pc!s-6J6`qmb%N$5SK0W7z2T z$j}|lve^i@qv)i;6XQ;Hx^tUt!s~}m2_6|Ha?KMXqEWY)1Yz&7aBRyEW>j}bz+Lun z?R;*I14Mjtm;pd$+uKBXq;+l}w+A-gxsc6d4{-ivMDE#2#@0}cIes6NhS0uwOsvLv zB*+Jr+N<%#9N( zR-10t$TWCaG1tnR2#1<1TiYwkRymwWu5-gf+fIFwll_b5{M|o{hK%6G5AxA+(kmhc z0^PS~*xI<8Oc6eYgEPo`%MxU@0&imz*(Br~7zGHuYVSO;vUI^J(IK3gJ$fmNgLKd% z)naMg!^|LnD&JFPsC1pjRg6EFM##d=o>W$!g`~Ps|4RhcjXM1WhUn}Y#(5UsMo_PEi;NtPbVW> z!UT4c67+Zn{r5)W?1=pTe3Fg=FC61!mpSi5$QVfcaM%yKd0f~JQ!Zy(3?2!VnJ-tm z;ysl^Wu5seU&cAv>#VbtnQzaGUPGVM%<9!}(wbr_1;vd_?Gl-GQUBB~rI-HueKBQ9 z6@R2KSM(d=WsYB@KTuS4Q&`Ut)blku7N(3#)yooRc4y^qE4GXnQAB?eOrO9en_0qK zDEc%#3JJS+4Ehjqd@$VjSZ%Ei6g+;Xm*10E$+_*tkYNQan;@2kpd(nI__Ge?8DUU>+M z9q^EqC1XdWkf0Eo!<<1Q|1aj=15U20eE7fT+%k7&?)18|yR&_h-E20S-YW?t0g_-s zF9{u_D@_GSARtmqC_gEpL{LCPK!SpRG%1QAh=?dED1rqAL=*&p_xqeXvn2`Y>(BS^ zf9G@WJ$uXP=Q&S*@F^0tspK?Steeymp%5#1C2_*Bi~3mX6mQp3*S;V>6R~hvc}nGD z$y26SN0!U6g6HA<2#3_7Cs(s;^Po!}xS&m8SAeOMV=x4P;iS}9e)Sptft7AHjO&{ap z{h|BV3zc=^_W0GSWb9%)bW`pjx8qwbA&T6GUH98=_rq?#lW(i-;D^F^W~dEbd^jE@ zF;@&XZ>HJpf>fbM$fW7U?vcJY_C^K6`crEBI;Eg!b}j8T>SNhcj>8yh{35m38$;tq zkNTX-enth!9-KuPD1v|^WMAupkPmaS3{&pgO04dcw9g)eJ0~Q(gt}R_!BrdGUn&W1 z^C`8{$J|qvQ&L~^Za-641>-R5EQJC!Uf}F$`>LjxliPkk+weisf^i6=;Px6DV5M`2 zI)&G`y~Nqwev8s}q9Mxx=FO;_(UcV%)p9AMi$aQFA(3?|e!4o%dP*kiA@0FAyE)aA zvL;fV(Lh!L6A2JuI%`iz*#M91+-^tnZlOX@+C>pXQ$z$OZ>Lepnv2xxg_P1uDUHKR zIl}s@2t2oU7vX^qPfyaAwJH*cXGh1k3roW5hH(jUAp1(n=H@8o!4l^Kq96q58Z74s zy6(A&-*TRvsGghnsBbP`QRed1@N#*0DLgw-4Ex@7B41PfA9SSK|C_>*+8J)7%kRgB z4#U-mCPlZ7lq<5o%h7?l2(x z!(tRy_kGrklGHv>P{Vy<9Rn=sL4BeXY+c~W2S7~d)^6Brp=+!a=GqIw5&pjt7=Ktu zyI-T7J@tLYJ=T%xS>-_dEJ-B%3H~(>LS&uJQIYA+XyN$ci;bhP^m{#X>Fw|92$&tR=B)oiMVEio z1KiDpYFz>#v{4^2T|B2a5ies4+V1A%HzG9;W7nWXnrKMRpy5MDo)DlU3w&J9g97%-*|=+r?Vm4h0+|Z|HvFNGi#$v-R*wW z!#s2D@UFZ4pZI7S(RG`p>(+TVPMn3V{WiPqx84`k=j&bfcqIF1B<#BVrRRRu(EUuq zliPI8W_r%_=A^!-8{$`2fKW0Y|53kP68f#{9-M>w8aN(Kx%ctTHoV{dqMQ@(=}~vi zCY|{aoP-zsmg=uVdnu2uPjYME2uw}dM@_GNfWB+91o$>u9;7>H0;}$dUMCT|y*WJNC zNPofAv-OG`g-Cb)9g~e=-APZJ5WUu6r-6_tf=**A&G z!duE*V8kG0IOUTOYZ+QJ;2bf+2~9!Y&P|qdLo!B$@D4b|F1*xo>p?9JYTgnsB#M6- zg5TlL11+s|Cgr=0gawaAQ#0(zHcw!`I!o&UgmY~+n_FwPlIUEWW1|HD)2I#drX~qM z9wdnSTPDhJ1J1UpKN5CEE8>?RKnn@oFj1&*;i-vXWPl)x;3A?{0jET^EL@n>^)@8F zlThr2xiTBd_jK)|OwsH#iy&$za7vc`H4yF;c+*gU=ZGQ$1$G3TwE_ut<~k#bIdiBO z@uo9ssF+bypmPbEhRub1aqx5 z(vrS9Bf4FGM;V-nFywD42eyK= zOj{G8zfh7Mp3$njMAs&QjYy3?7Mwzj?o%qBcnZE1c38=1x!${HNV7#YA@!LN_Uv}( zCEcamrD4zh8p=AXPn=CV;gapklI;a5xKNStV@gF6zZ#zLdhl%fS`}O;kAJRIB=Pd_ z$8_5|>9#~oC9?XYwyuy*?oq+L@(IS2aDAkb%psWqrsIYxY4ks4Lm#3cD~Kjs3@S-V zI_-e6@mIjuh6%ul}f3hY`um+!h26Vw7-iX7i%8*6E9g6k&#%{ zfIw~{LEHoie5FXM3*wHWO3d-=Bf`!jtSU4^4v9cE8H@J?UIghnrhPeQDjfe<$DrEV z+d8b=N>~@IO0;Xb;ZUU_z0xT~`#!?0QOufsQL`B*&Au5=$dNLk=_vq`qk;-hL!5Rm z#X~mX+QQadD){A^{rF}#j^5QJt2*W5-KTy@SsVSbSA9Ez+~O_1PkGI?d>YV8X($yf z>uSg{GAh}v;`Xas@r^{1T6iTIz10J(`~3r?j|m4swH*nvma%hI)wUk;Z4{tcx4gVZ zy+GDHG3a7vJa_)Ur!R9XKz`JI}JNkBxTPzT~uB&)WuGX)IR_cv>hUAyN+%EA+=fRSN$kd`+6uFfrDjtwRcPD<HA4<5|U-Iw;q!bkDD#cD<6GO~) zE>@7?1vQJ?pAtVJ*r?OajfCzp{Gmr+XiuQa9qaD6aMz2dM>g|PDoYIBG8+oPoKs5S zOq2LTEhrn~mnSIM3Lldi7ni<>0&49M2Pb$$inKtCch2pxdt)7Tr`r*ikiBDS+r`t0 zJ@^n1z<%)R?rr6HM0*oHAV+aquN5-2WlbkFHB?p3)hG^W*nlD z)<^?nWudVYS5{a&o_#>t&$HK1KzV1k1Z%}=oe*G9= zh3=aLXvKH^ELmzj4xp3?mr!Kz>6!zBa~1IPadoOVEl6VO^f|@{s{s5&qzFX3%K?d_ zYA|tTE#m{o*!Z=VF>2H+34DtuZ82|ecn&Yi&pPTkCuh#r#?0j`WiC_A`40XWZ6(*7 zuBNV2DAk{c^~33^Yn>W%y7EnU4S#Xn1#r3$p8U*<+xFZH#ZUuEzUg?YxUAL@WzIsG}dt`WY|Vm06FDL+%_e+YVO)y+AaF zrdF0VRL~lkl<$Z&MT7i15~s=Duf+N(Cy|< zgCiml*lN#*{Isctx%ReTX^-pVW11{(W$GklZiVxua=L0+r;rbS8ZXH)w7Y$p5M$^7 z6PX;0SI~|YMd96v!$crQ{xy$m66Hgqa zD`ylzcOfZk{0txxbJeJvgH}MwOE_$E7`qZlA{Q&v(2?H?PhszHn_ul5s1LQLc#+V7 zmTRN-Dp*9#gD+lt!6i7CDE#1#Z0FO;I;a_sI9QH+-^qR#xJMjn)DfaUMpu;DFpi2f zVEmUVg}4t|y2$1Mk%-FlbY@bD1xctp*$rJAq{%uMih*oHUYa^KeoPBxwRAS~m)v+ncusGR)Vu?g;_kc7uyZ6qxgyvQmq4Kp-olWX#+jMWwm1;6M zvzy(EYw6LROB|RY!MccE7tO`G;g%kT!m%B7vnf1?peKaMFi+ENCIT(Gm}f0+E)h>m z4%=|ChChr%E3dbsU|%rBWA%7@llD4XUXk)IgF$^g$d}^uY2cC=gJAuKY#K2)xPkcR zOCxc>UFF?dQPy zZUdav_S+Z2iMlTAL!|ml)Kkn^)HbEG@4MFRPV=sM4|~@fpf+njEf9VMAsr#V#|Y5& zG6%Z*U{tkd)I;u!5o?P-_b7KwM>ctk>aWu3xEX;G>71d<6=Aqq@$vF2zDFZMUGHfaCy+X`5&>0Z}qr;BKSG z;t^98<>;iW0U3w2HIjTP+^wB3BsdjXkw+5WWUY|L$F5VTa9<{;g)HG4)cLm6ij7L% z*Lfs$lwx9_hhg#Z+2&aWBbso8mzsessR9n`J58F|Z1THmZUBX^6VZS^PB+)&Ln>uN{y zjH=rlRR654?z*g{&&XObm^mYBLBM=1vKC)EwbQ`C(mI0|;k#9UBn=dZd5W{X zZUp}l4STMi#3T=b5LX=`7eg2PR7+jjLZs7Hfheq35xLAXB9~4*fXJmstylJbsQYeE zkxmh~;B=+|ogWwq&J6MjY-)L<;BT=Nhc2H)vhxJz#QX`l6L+(YCT=eJxagX@NI@)X zDN8UV34+ksqnrg6zE{LMSPr8QsIK!RkY{Oi8(S1a@ifR-H(=uvCJ9I|PIaNM@`(uzAzN(ba5XTJ$0XrOz|3p_e4g!UH?j{X_E0xVa6?F{JOSQkTIP*JY$5Al5uU^ zOvXc0uy86uqMOXWtz5WNk~z$f8qxirwhklD$-$Iu=J{!rvM%JfoI~Ru`D2d>j{7CY zTpG+d`xtn|%_uO=_wDHRsYTK4Ba75os&DT3x?mhs7h_F3HoAqN_+hKJ%VYi(++48z-Uagiv(Z8pd~<|t?0Om zjDPEevEChf-0gye)#gexS28$_Ckh6w?7iqnz`46j!OY($#Bye0Sqf$=mKp2u!iU3! zO-kaebV2I-IZSJg~d$IOoOhPgWNgJ#?}SLA?h3ezy2c_%pK(#u0>3v-ELj1Al9uL5QJy=~=Ty%NxAKA7UXL;?GWC82t`7q~d!VympQ=6G}XZd!wu1u3FYd;ba#8Q*+@Y*v=$CRaEp>HyYPBH-3{kWcG()e0E+&X>^))D&@E>^`cI8=onRRjy_p3|OgD~Mw+pj0mb zx~j&(FoEx|@N@K}lsje2I6(GzXHEjGVw8Ju$r8gCPy=`{x_XlG<{C`6$*JrwPw_7m z$-0Myxclj%_IHV+4wTt*q%+&@7U!g0C|<5WweC1J;@$Pc6fbu>vz;GFCxBz_BQ*9H z04o~%f~skBOs|Q&r_nJjnDZZF=8`h!6NWtq?*#AZy{zNUR_#;UF2*B6@hLSqJ>|1% z@~Kly>T)%Ct(tO;nw*%DCz#5V&OQ9y-947?F1x;3c4Ybpu?O=zaiP?vj+lBPRw_EV z8bvVl#p49Gw3B<+|2Z%T_mKI>(dt!ndauOFh;H~mW#@)v3p#O8+DL~M$)}VQScQbX zub7SSzwtTYgOkMEoHv13-$fU94cT9*C^9v)d~|Vx@#l%6GuF*@~e{Shf8bs}mRGUl*; z5X6V&;LfP=qM;JZt2PxfuTq)%tLXUQ&!~Kno>wb@2nL})YLu)_O?=#uA}$FV0C3o# z_|h?jR4>tqOLhJdJsl=!g;ZPmY6T|)w#0H=wY$Ycdf#9n+R}pc!{qPQ_oFPzyl4`^ zMW0E$Eo$Ko!ov?S*>(yQt~V%WAN>LMPURo17e*U`acE!ag?Pj1*NvHtDv#FqNob6I zU4fkIkGcsKf4Z7pry>od&i0erie;}vp>v$kx(#-d+MLuUqA{${A?arg5bpuUpM-8m z5M-|c?R~WkS-#Nk1Xd*?IP>6&Vs$Nz0<8w!LN(0hz(IydJER+9r$(nFyNnxajY1MG zP6pGB_$ckbp<;p*#*Hhsz>avilTs-EsGP zp$Wag$%jrsefT-u8l=CZ{m%iP3qJ9wQ1J#AoZ6H`W5fg5!pkYX1z?2h-1ig)tfg4f3Ur|e5!{JT)UyNt&zo;GGRQcO<(_P?8nV-~W(E|$ULgHS9a%BS50PZtU z5r^16P>CnRumX1+$)CXE$7tngLgd79sANZC_o(O{w8Cs>DD`&hH)T&d6inbnk(>Ca z5grh#hb%<1=spF32f+o#c^psoNECvLw3ADXXLm7*Bdz)^Uz~^e*u+RERGb`?#KaSQ zAWUPXu&24;2l=2WUP*Qgx+fp*sys>IvvA}CCmGeL$3vF_mpfOAGT;57zHS(~H9Qy0 zgZPywJs&@Zk@%&}P~27@ib|mx4guTVCVLLnvd@9hqzC*KJT7FDtuQ0HbZer;$5wt7 zjEMk5dMd}ne99%1XC~d$84lG?vAIst?tz+P_KXZq|GIJwMj&)7t&9Uh-32 zxy-J94)yiSow~NfuhI7Bb>b?GuiM1uw8MQFoZGc+bXoOHI&rg3-f5e`xx>y!(us7c z2*L1{km$0k3B2bL_4$7!e z?~^H{(FAD7O(*U)8H!R^zy7mUKR{wLhq3yl&0t+BgOzjF*9WVD>*@;enZgB`h&w^^ zU|I%gsi7zZYr8Cz@qnUDLO1;YUR_uxFCY=EKzuNWU7DSHC$P5vep zoqZVbPLxZ$m+e*@72JXiXN}@G5eVEA5*dA z@I;tM_idvh;+||Rw)?QDZdZFWCu*(U(X{%n%s;qH@U77M$30!~d6kfOFUtL`a!=av zsNhAFF4Wo&jd1xXqQWD*{%Ia))0%C#@gbsHXLN^t#gpHQmtnd{w!XCoAC*DxT z6(yL_(XpABjVwHLW-#8K;EvZ5%86`O4Y_|n!_A9=*w5o&q5J~FNPDrj3Fp)nf{5qE zv;h-2UIE=h0pn1hM;Ib!m5@F=L+55!XRY2-#6nr*aO^)i7r_;j41-1^iWFRL_bcVWY&-=v~kjZP#snJ6eFNuu~f6&3AX>I@Vig z?IlqruzkJNjc#`J9j^Zk9Eo6mN+%rlCTi?6{-#m19rq5bjAEqm@1U16{-X6;dhFkH z8fO@_U=;)#HE}5bHgH{9(Sex)v>vN>u_r|r3JRLB*E`N6%UVEbqWFETG9li^+4H^K zSdU}fg;ww0*0Dp*M+87T6A}!emk~$>cw>1{*6ck8jXM8H;bFEDiX9385eT-|7%pah zuOh!=^Krc?n5nk}`4WV<%-$~w0}gdeqV`ph1tmcgdD4zgK?MCRdMO^mp+Xgz_LhKG zkt6$$SZuuv1HwMqJ}Pol|M8(i5f;!dv3AGFUys#$i+H<+`Ntq3IFK`4D!Lk2?$mWP zAbzFz+d?IZW{9Lvqd?sKv69AP0sW>Tnm1KR>3g&ZKDOeDAuWJ{)!Rya;uupRz`qoW zIe($O9n6H=RQ6uO6?XO0p-w;zMtzJDQUHv4Ni#xtHBpa(ZWqH0k$|78MVA831O#W+ zCg+|_0;cz`OBG9YSvVmDrHDNB1#9KE(!OzoYzjm3~LL z$MjLhy5kuMP1{;`JTuU05oi*ar|bwbxt_S(_lv5t3ok-tNkm5oZiB(Bo4Kur1zwx z5=Udbq%Udf4k_tNI(GetlI~Panf1Mml6D#@>3hl^kVduIFDr+Xlthk{G)#}BB5jgj ze{p?|ww{#IzNLc)q_oR){3CB{0ux0ZkoeT#fFAz1Vgg6B4-0E zZ&CKNuu=4&87pa2RvHC!^3#gl;6XWwGnmnr*j76{H)eu3gV_r`<+8qtHVt5uX%$3?6V!M zRWs_oUq&BqEftNEz9HW)D=C7lXbL(6c!SA1Yox1|(Mz4CxB9Ko-%!??_M{sp-ZMUw zyNG}`HXLL+f3ytjSlC&um?}(_PDt6JjUGF82>>>E%y!mj#5KngEkgG?sR(>q+5Yxb zaG=GOugPA(es`}v*8^(at26iD#boq@u3o4PwN8hXcIc#Wetvd&PB*Ug?1&EvJ0qP+ zWT8aZ660OX5$e!Okv%J`qg%Vf-4S5@9sn zF=4^9V8Fd!;jAly)yY7Vx4M~e*TZMQD!l^;u~dCh;g94{`sCQP%Ctztg6h~_Jd}_A zy8`t?b);OyL5QoTM^dGrnnR9S+b_`FH~Yg{(I%NlW4Yh%{FLrVuDC;1ahw%AdMZf9 zhmd{M6}HqBYNAe{r4MTixr$eIa)qECEoC0i=!kIbBDFw`d#>)R%S*opR0=Z_YW9VY zjE%p7E3DC*HR7=WjZ+!m(7|>>#6hx5FHq!{1GqPac=u`OOdTN)C4A%=8Y$rTE`#fK zy8*av_gJe6h6(R0#B^iFf?XQqQg-?ug**M{xO7RO_Xxaa1rm7TaaK zCc3=@Jk_HK=`&%;_+az|tF_tFO5N{99(3)8+}3;CMw*VG;>cZ&((r{EA|@It=3efx zOO6U+=~R1IcU15@FqC4I2xbjduovsO**Our>n3kMm$wA1JsVW56`a6Eg{%=$Kj!U% zx7cyU(G^k<_WUI(z_Ppl6balq5>@L@So* zwWfx6-RMTY;_6#nfAbLH^_n1F7{I=%$Gs6EUVjzD>lGx(dhDNTh}Vfj$Ws3~Djo^I zU2djHTOdTgR*~noK!^lK{uOxfWUIe z5C_VU!}RT0X{_jMrGUrPnd&i|yY=_(S%y;s z5L#@u*%!(p_lAwte=ACdgo?x6dEHIimvsIb!4yL`aiS4(Z^(6Tc}(wX^<#W?yQu@N zUdTS|vfH)O5^oik&H|DDri5e#0CjRmm(9iclr7~z=OlfW(uYQvMy3v*wACqAKc3?r zx3}Rr?iro`g{jDp=eT}MoZq!aIC%SnonLPcI(U=nz7|%u{W0mXzdNV|NSDnv)eWcK zz1rzygs~)&>f+um)F%$B+o5*|I}FbnFh4Q3I4UAe38mBSv=w5ohKc*SZ@I7&Q{ePkhS`9=`BPfvvnXNRDqFI6=PLmdXF<<>uYMz5dvIZRV-$>;cI*MlKu@C+ zg6#FjN-?3&*6v&%*C0z|<@UfXx?8(X+TL%02W!Oz?A;pA2zcDbG_1kBQX}q5qhxch zw)#MATHgn?>C1M+IvYAVI<++=`&NjtJX6P5o*2Sd-Ub)xJKlie8j`{=+2_#e*;e1r zU2DH70HatkNV!>-nM|s{hZod@;#m^E`#z@Cc$Y571A>;~c?y#nUoU8KY`he-N}Z={9!_yKpbqk`6hy8@ zqf#5a$+_lyPN+(Gi1}xhIk(i$^Q}Jo>HM0&o+;dKw5A=6WhH_OI-%^$Lv~SGYLc@v zt!}H0L|rE5bv9zFwKYSL&nqApVvQ4RW>vvm%d!~{aJ$PJXKmatXjYzsn)e3 zD0xeTfM-*!TF2X`QmZSd)pXP)zU+XNp*dl|Ed|N8g{~mHj81dj&d8~8@wd0t_cYG^ z^n94g4jxl*I8A{mXHmR4TJw4Hdd;~XFk_h>E3vxE%)Cp$)M@l#rcs}z>H1!0ck|DM zVbecsZmlx6+V638l}4xc?&G-A!{UU7KP{U_>a+N4ckGTUZ2yk9bi^fe#5Beypd(NU zX014TAet$yGRa*t9nn=`H*9u*5NK>J7x;UocAizVf_S-?%kZ2e{cwr0&vG4-(hn)S z&-WGEPlWOX;r!Yl!pTyF57URz#}xqJJp`-zlUU30HIzCzibk;l7d*KF~4!n+t_u*Yo^p_yn+0I_&^_~UImkiC?3D>*~~Y+HDL zoxrwyvq4P;x8>(m{y8V)2d z`slN#V6dR`N$3ani@NWw8oy)$K3{)pLrb^C+Ubm~86Fd!($?uh)6a|>lgSx5%w5A73()MBi$YNY3M><5z#=$TThGbsm#F~bbn&VP zi{LqCvA7<^bHAWJH69DQtJJ7&%4JksW<#dkILIP+Wdw_WtcCvlzH8{;ea$&%&Yx7~ z(tVFU*cy1#yH4$VtwLF|eGM8O87%=XK$y_D=?t25Q=>m4Jw4s)_N1#(V)7-L(kNx7 z3%=*46OG#ZCy}W+kn?bDgk>*Y6pHd5&Nk9j1UB__+QhHMju(yTMl{UC=V?CC*1mIF zQ_CnZ#Fb6u+z7CIJ7pYiJ+B2cba?1aE$|OUr>Kp%pw@oQ3kp4m&nf#Q1$V`=-t=&I zWAsf2PDPV2fs^rp+fhk@+R=MDgW7$IL{})}d(6Ow7!GGU>VSKaIC<#Jvp`+lk||BTMDbgNFg+AydqG^sCso#cZ2T7pz+20;b!%8s4I#fXM#0= z$J6gY+T+ayCJpXqZ8sTngSpvx{>*9&4QD_#DMNX>YkVKLEk?SqVM?)dZjgRro-ln1yRiSS4gD9 zBf6Vfon52%&h8W0y|~ArUQ@07hTZdXYCHY;buYWShCBXJ0$gM2OZjHE_w~b+PnD$X zEXrF&b)A&IlJ*~ar?5AKT9VK=a^#PhWese$t@QvGJk@&6N3!TaWKXn@D}E@IXh>#J zG@76%iZk5(^ZV7{`p={XJ{H3DYq5(~ZHN(4_5xJNd866E=pu{x<-yK+ApO)@MQkd9 zN0hv=AljtZOxaj(54j2Fh8IKzds&-U+Bx0qp`?{XO(N>Br5F{9;(00&A0K3KY&iq} z=n<#9LFGSM+iy2%h?_$~wFm5b1UWuTC1H2*yxk%6cNTs5V?bFfYYi3hK#XN%U=HOe zQwX)sK&YY77k>-_b>LXDvE2p6HeWWjrG4{Gb-WVCp=o>E?8NjCTXDHjF0ca(&n{hwwmfSMj3szu6b*{e zFzxf@hWAutt&YB}5@+dBTgI{$0rG5dA0jkumtAx^gij|b=m}%%uwoAUCx3aw8W`W2 zY-uojc_Lc2C!1p~#>Fz9HD=bX@CL}U?tJFlvj2KW7mtY>XD z=y`Or>!Vm2)HzKTDOw~1UNu}A2clt_(?`p~80~BX3ewM)5B4)T9Ygo*WZh+V>3PyU zll$gK_tX~Jai)6=-Ll5?Gxxh3k)?*80m6+=Xu^Q;R_o-BJ%hd2e5ye4yLIqQ;U|k} zF5C^l+kY8y?iE|fG4<%@+xOssfB45h8LBZWU zxvSlP z-r@2@SXd~vSzSyLgl>!neSwfT6gEzx;7#hOW};$QLD`QypvvD;{ST<>w^ZM-^VWB+ zv>#AySF8RnsOr_KZ`e7!bNslQZ0C}#rK`aczk=>@glcw8A}qM5h7wjKL-sxIkUTHT>< zadlDu_SNnB9?%`SYuUKi_+VVX5gQ*f$7Z`F7TII^{;jddUegccywCK5Iqx@p$Gi`> zd(w|J*C+I}pUCw|J!vymYWP}0SD;gOMn^Y^v|;y{+^PS}llp&c`}bGxcKg2RRv&Qt zzU5XQar?jHR=?-=-JMjQbRw5UXT0E5AMyM4h&>vOg)>B~)B51Yg~!PBXy8kA#4%rw z+s6B@@bkEz;hOm;*IBS;W)C|C_-26lBG>zbp5K!UE_7g+Z&|BO-jI7BkAl{>;4VMH z))yX&hNbt`&tSQTm#UGEQ5>%rb=~c`hDQn>O^Q5HdbNXHchYN>;+?CAF1kg|OZXqW zs0B7dKdi+*Y>xWS`|3xzqz^5xKD4>6w9{>=ew4TR(9!BERtx>*YUygH(%mqZs=Ft)p6|w^!OGbyhm2byvDxjEt_1>g%oc^z~K8^!HcC_6u&dMT_TieEtSaQV7$ z(NMt@tI2Y@t|31oso7vxHe#QXGU2)so9!m45lTud@+62|1@n^z)kH1>M}p5BZ0P|^ zO_1!kX>SK$f-`V`M51Fw$itrz`&LBr|9z44r4gI2K@+@06Pm&%LY9B6*i3B3Koo%` zs->cy<-h@mQCEkU)oolW96l%#IKY{L1DvCd$sgNh>FG$oW8N%EJ%rU>bZ1)5^d}?k z46Z80^yywLiq@H)f4Wy(=gkbe2g{$7?iM5v7yCUzi}g6yvz1I|&c~o0 zXW~Bl5NyGUHW68q1Ggz!+B$CZK$$UsDI<1|+cO5YJEz>{#BO&gw>jH~8J`MT7sINk zm*s%i7~A%W4SS)-d56XgeX9GKa*dNLr|&gC_a~q6k?l+jv)M=IA+^T+rEHAd_E_ix zUmTlkiy4`zSkoHrPHXbd|*rDI#C~P|fYMa7h?`g?(;= z21?*FA5=pM5lidmsoUPDE{~B9ZkM9W9QtOhh}|^yK4A&dh#H9Lk~44+9YO@-j!82n z29rt?OP15|Z9U^*9ei7t9@b3aW3X&x`i#v12#djbE`T zdPV5MfoX)?h?-5l*`9He9lO~s-DHzPtaW4t*f4LlM>BLzoekQ=jNv!u`FhahW0T7{HuP{cVugue&Q0F{v$KKngS3DW<@# zY?BhvvfPOj8=WcMWGrE~xQ}bgIrVo5Q0jOSV>3Ezd>YurMRdLZ%|AJGBufXEL?4u$ zq3pZ?1M)nK7t}}S(t%0Lyvn#7dTcCmJ<7>PY6Gwm!+TcPT)+ZjgHGBak!bID8UwtF zR_to6MXdzGKXAF!Ju3E)nu!rztx%kTnL-zXs=4f8rd$auzKUXj(ayjuiuI7dCN&rx z78WuMrck@+&k zSF(+==`=eZ0c{@qNO0$)42jb7m}<40iP>1DDcg{VWk+S&t?iq&*N=_Z&cvAQSAFoL z_ih-7bzoMBY)EBe80oeOv%6bYUC6`^2;LZGh>Zx&V-BI4BJ7f}W4B{x=sBirIn%O% z$+%+efg6w}GHy)H4d%rr4rW-@CU2~F^I+S&xr^F2MT+K2Tu{)Y9`jv2+Q8wY$EkA-@f6pd4c zov|^1w~$+$*gp^v$arUe40(2i)wReQ4<~?`Edsx0Z2oYNif4JN7ldyo2+F12ICnN| zl{v6-*QWm7@LsaV^6su!*I-~}2iRx@_PZ*02Qh${u%m7?m`_o*LhQ!;4q3S8a=T5^0ktTuHfeTyS!gx8#tw8~t4P{@#)gatN|rcpqo^LViw`5*ocO^No}WW2jjIrKQO^d7ym4c zkW9&Nv=kASbZa0!sm7ps*e9=rnQU2*X^JUGnoxV^3_Cavl84IklSbrBBdER9QLKD+-EUt z8=4z34JnAZk@k|cxlx~B1Ztoa!{qNFZYA)ox-H7wxLs0rMwuITL#La$ z@nAIb?Wma>Krkc!0B^8X;IS0wdXqBhunOGN*k zV6Yz(DpLmgxd16Z2ng(F0?T?RZU(!d1_+{&DY8o>epY-h01#YUvObrRU80eS4|Sp} zU*@nA?gj={Q%N)V4|R?%vs~n7pgw2rpC;XsYhnS>S!O*f=&W^UZaBnu!{(?&BsDbN0~4t}Afa>bFA zy9A&3bhF7ctR-79|EIj-U@hZ=nN~wcPNt@1KyD`eF_I3eWe-+M`U6u-f!rK}gLWMiK8LGYe@S?y9yf+IR_!cMkfh<;x50i2pkreOvKgdR(q$slj zkxrmmRZ@gCw&`uR%`88!YQ38a*O+~PUByv0)|9L^L<4_eZ(x#K?^t&f&^W98PyrbB zqp;d9yjy>(ew7tG?AK{8ufK2JXeW%p(68+5U;oZr=lMg=n551T=I(yxu1^OZNB@ab z=$)EphHhuQL(LzzKkGkcw^{yTyClIw9I*&gh{YAbOVM?pg*luyh}o>Ty2fS)wm_Q5 zq5sM?1*ar@ZzgKXmHvyBe|WaN)RIN%1Lu5%^-^C@iO(zbY1It(89#Km^1V=%gX(9% zGBE(ZROK#HDY5=82PJ&r%e_x2T)n5(tMaMl-?LQu6Y|Q5%|YX7=FTbUQ~Cc${y)L| z|Dp7U`Tqd^Kf?TfSo(1O--G}6H~;UKUd{i@_e z^hF@dpEJL7L|9(^*7>rPu8IpUt?aZ<*Y5|Z|F=y)tdljdlxkMW0;-!p_Nn{FNQ+_#342fpl*yvZ&&FNNBZGLCEBi&7El;4}~ zN%xT&>l67WJ%Q9je@c3CYFcHgkv7hP12lVpQQm|-?3H4o*CXM6V@rcryvsy>7!_}| zw(p1fKnJZV=Dntuxr#VAJ%We=YOKL>Rs~s=TeWjzv3T~bk5-o)D zu+!=*0j_-0JoWn&Uh9Aam!*@_`x%G?XF`kds!bMqtm zhIyThc|bk``}Dj;>BU3%n0f7+DnO87Xq!ehngaWWAO!rNL| zX{Vg|)krQWGycvXRw`NMb_%g;sV5bJ0t zzZ+S-8U+~U@P-qtb%hQLD>t%w^&F_)U{+G0TJ>s`+NyekZI>dPLO{%39DHoqd-cr8 z#q^%^n)Kd?>ix(IenErkmHU5DJu~IHy#MQ-+w2E-`E~L$>~k}$h77GY?tjs9a5sX8 zkpCVo60&7xp3iELjE6|o!BH93gZ79XO!{%~sl53G-`HXp1@Eg5mQb=nLZ!lAotk|C zWdi?2VwbAl5$@0by`=sqsh1`7CrP~~slQ0-uaf$kq~3}dTuG>1e(68PYLxC@=MGW2 zZ_I@iKO28?bzCXoH$)P#hG>F~0MQ1zg)Lv6^=wO<6}&LZx-Nj^{gog5z{it~|Aq?Q zR3M_>OI{*`Fz31UxvtImOxHil^>4KSHQpxMzY?7`Klq#HeS;-71aGA0;@*D--gu3d zM*IsRxm#TSt4KXsz4D97e^wO$8HWE+gF6B$D6|fD!YNYh4T(`ent?lU1E504BlPXR z4R`Kvb6<7SPuRKdf-dH$&U%``+rb5Drfpki1o1KMpMCXf^Tyb)d5^sL8)v*4Loj9!C~;{A1(52 z!JpjAQnj?#SPd6ArNE{LD@FO+28%=e7QPtv+aM3k^efa^4ekuzP{J?GS0gr*;UF>R zH+BkfYc|Z0eI&zF|J7l1y)yM@TMr^TEHL`N4{3f=0Mh)n00eod00jAiq+XHKtCIS& zq+XZQ8JuN8M=y*rSkCFb6pKxJnKc`F>D&X1R{x66a zz=oU#Vcku@pTQ3dl&t@k>JKNh;Cc4Z#f~IJ*3mK_L4s6_&`u0NdFy?gA_f`CHyPBi z4&;hFfH!7-!4^e~fF5286|3!@w4^fFif{quC_?y2<{K#@EI{CVk>mYZ5n^}sf<}!f zBIc&Ef+`IIRi=>I+tO7-zkgJSbXC2GIPJ*Ss^iFrkVhB4hM~MDq}C2E9(Go}nD;Lv z$#@K*x=C6uJbx+3*aLdI>pgRc=qkv1-_Sk8g*mI+vR?1lYQ1N`EHd$r3k$93?~~taY_Wn{r&zyl zW$rf>SSvB`11u86=-yPA-g8>BS+Fk=stlt^9DA<4y-+5+@!@ciH7p(05!0pX%znbk z7#anH2!sH*QNex-LI#}B8R5ai87HthELrk0)7;5sQ*k%jU=Z{abtuRbGYqhBvc;br zF(Fb@q~F8cJlCJ%3}5N#`@~(Vtn~F$hF1F9C<*<3;`^-h zQ{lTFdlvSIR)EULE#eM^cYS>QPC3zXx9I4@fyr zkgD&|cz7M+#?tj}hV3}RcAUlm*&HhvXPrH!&MAelc0G<>Va;mh58t!}a&g^Y#&p+F58w z*9$a{NAht8P|m79HrM^)!`Zx@&X-0$K4rw?GWujA>UKH0gTty9z!$zxxSBH1SJk+h zJ=q7T zBntysqEz>B6NJG?bi#@`~b02-S*8XB>vZ`5VSzHd9Ys})@si_ZDLdNj% z=@WSWpz{9e=;9G-P0POOgM~xYKCqq-Hq77yvIp|~1BIZpxA}jM#GYwSE$07S%>T<0 z%To(WvrT&Y^bV<6mB}VOCp|YcsWR52r=+K*`YK%}-Jc#ue%116V-87wRdgt17%q>6 z>+K~a!7TEaujchmSc&#?{jx;2n9nhf08tW@Z0HasG&vyCwl83{tim_K;e$-(GEC+) zOy*`?fys>bGMLO2n9P}6x>(lDCBKquNHtYzOy+WnYA?2_&Xx|3zVO$K%5~jpAfy$bv=%c4rJFQGmhm_1=v&7IaWkfI(&_ zX!`SFjSTm6cQlz=#a_GHdD*a_M{8lH52!|_QyVO3H2zRK*~4g>jJXFEbb2L7cFgN> zVL_Ksi$Q@LwU{~!8h?M;7-})Fpl70tyaWfyXbYih2FJMtwHV z1RUq;)~Ycc^&I3lGbqCKy`{!FU+f$`q$VSpWC!Drv8Elsv8#S4hz9wjuPS2iNozax_qOf>wm6Mci*CLaC54LnubL70dr2LQ{M9VMqbL(}pS<+N+Cm>Mw<_CJ)XXCKBzT zpV^T;|1#}t(!!7(;(AJIs4AwAnj*$f{^=i%zy!n0inILr_JZNn02MpfKP-GYRCI_; zHdHGme_-U>jRtiXDu&eR;ol+X)gzlBPkHO-j`N~3ycuD0{#i3}Z|D()kr}*;BmDu} z;Kw7MNuLh?6%U0$zD47t*X3v!sC4+f|DncR9dT}m3^lGkQvXKd7>|Foai7%o7u5ST zuN-9E^cG_`ylZOdEyga%*vXTTBii`8sPkI1-n@F_{`nN##@PMGnwQPGe%3FK9KV0N zfj0%t?Wj!*7kq?^JY2xF^Hyu@|78P%tcXeeQxo(rN$1^U*uddU`tMFq&#wv*x{XmA ze(ztKqIYJT2QtGYLt!)jyA3S+u+N4!@85==>+;TN{lbCjpPjx|H?>!f4>bxB7(d2YA#rp_kQ7|zgr{CfwX%DW$)9e z^h?Qlzr)4(Sv+_qZtrYgk+MINvVWaPZ>}j-$vcL`|A!b#eYDJ2Jv;(gU=x2I>}2HD zAnIQoKTXAdm`Z!qyJN}QV(IJL+-F?>NgaPw8WTt%jXm+-N7CPogyUuI2nvO;LVopX zz@!q4C2XJE4ChdBmZXK}82;+mO8w0+Q{n5j{wJ{&zwybGzroGXB7CPl3Od`EHH)_= zcZHjNr-rBHZjE$2SZkN5?(IRxk3a{9epK2BWx}?G?Tv4V(in-_k@Xf1U5j(-85vbp zua3@yJrlkcrsH1Qe-fSX8_!Dk?*-LYBgNlE{HxsLXCQ;B1`CcOk*g1yY1A;8Q&^+M zt(zyi{!p{(sSsNmYRnLzsW*G*8N>UZL}>iR+hhJ$W69q~{CWfZD_jP=Xe4_y@KPOr zSli#$xi6u~S^t^cq}Je}ZrBRKN&~muV9BW7eBK#^to8fyG<-vZ(f?5t=e0;9O$~D2 zN2^d5J7o-OP1rfklzwTD^r+R(G*jv_*wBA{T*LmVH+1V})*C5T#`S#>o#CDJuaFtM zpX~4&d&5fCDt^Dy@xox^YBi&A^`^;NbjJHPZbT&jjA0h_Ce|A#5X!&NvAkpW}|aWWCP}e+22L1KMagVekVeMRz!v!oJCw4iob`>k%L9XH1rcWk%)x_{qk$q zL815$2hg2-asXlXk2$$dOX`^c#NI!X)U%R$PEyYgB((c$N&RL3w>`g=)JyX850ZLC zQm;zt&ysq5V7SOU|ac60!qb%xn3#QYqR^DL6{VmyX^Yb>2h z#j?2!jtj+*;vr*5k^Qc=uAh*kJwppYQn{FzmH0*}KokQ4Cm4%H{P3SKdl=5+CLmj= z!u?GR-gtA{j~Cz6)@fxgUSj=v;&?V25wRx+vOWGlUB(hhRYka5mmt@#!vyQ5w+jOa z7vB)T8mUeALkc@6F_zIo_wn=K)WaK++|S-K)Ly7(EY=o70&BUOx?DAkleUHO_E1cj zGlJw$ARbD3n}USvm$xF!fr_E5s0NyeW>L$imK`q)$qGdZid|3HE{&`ebtuC2sf$qS zGp=N$%=KCXUgJOk1;aXo2;XWP?1LJZ*{Tl=<3nDqe@G3gHugh9eNyX%p&Ha*6><8| zj~Zm@1z3Ld=e3${-3uefLF^;yjS5rm(+ds%N-y+MhtgIYg#WMmLBzQK-F^s|YFl$s z{-5?kaHX<0!St1>Q=b=sSCyKuHn)J5gR`Qxk8e3Mx11I15ZhiG4dW1}v(ARm;{H(i zQjcH*l^XsN6Q8=UHk|uKA_WfW^wj2lil}`7vW7->8}TCZ{>L`x=Vz0svWwv8*~M5s zBN_SSLT966b5nG&p2zcj!*k8A&V9BS+WES9*3%27%N7F=OmK)K+eHH-U5=sB><7b| zCM#9C?ilaHcsyK^;YtlPTN?OUR+n!8W5@}p^k#_|gS$@y8iP8-aYP$#P<QZ8-q( z8fX{-1Svz<*8i`8rBF+}X7xpmeFl;Y4S!oToAtNmIn#!)=fiPn+!8dRh(+bh?oz98 zNLFuA`tVVebf3v}sPxv}O7qshV5_p3y+iA1`AXabqc=LKKfq}~-rjms9jb zoZO2gb%~@dmDFb>b%ms^l+-3kT`j3ENa|WiT_>q8OX`N@sGrR0>4;hHI;p914lxSOwfX9ll$0O)T9 z*6FKy*aE`eNc|JJH~h}X|406pFgeKEbsZJl;qx2%&o!oq5(-m((!Sv>9;PHB3L}Tu z7f85v^E2Ht(iU+q=jxGqCL@(tmSNHqHb_E0@C&UH>zXJF9EpcD>^D-0Wr_)wH|+7{ z`1TxDzh391k)Pi_@_7}%L&Lt-!BZojXPq;2@VbhNmFXw3jx+Q0{GdKhFAhX`!M@Lb z#cr|k2ih~8&Ov3E&?>U7)Ux$;z$m+fq{o;v;dZ!+W#t-C zcl&V+oYLP(DfEHI;QnD(4d}GF>Ls;5Q{2 z#Z78si{GATOLrDgV8J90JIN$=l7%s<(@V3;GyOT~+39)B zdb{~3t2C^QJsf#28n>9&_Z}$E*)b>ttS#)_l}< z1Vka-=zDhMkw1^z>&55AJ*r4`5Y$7i?7n zOe5vkATBo@bI^8s30~luIF?y!akXBaiP>n1p1`p82XTC4iceOZsM>A`@AJ4Th$h=% z14anT>rcidg742T=K{XSakaU?nO|J!9F_QWoCrB@#PX?Zq+E?pug+?kSzXXH9bYao zmu~h#%gIY@JeIcU&5FqP6NykZQCw8^I}d96VTp7v&aXR7^_O|JGyog!z)L2O|KKbs zTg>1pS0@Ul0hMaQGGq36u{NfjiT6~eMYLdzo=ZaER-2|5%vD^nMs$k*^Qu6*7g_hK z(N55($Jqmk9#t(g1bU34{4B9FQ$bM9=L!c`56e5rHc)ZV0K%EQ!O!PoG`vJt+=w?l zv_ehWH?XM;mPr`9z$>7!C1%0dXauh`K{C%AucmNn)v(F=zH_CcHaVSFIxUt1H~@$+ zHPHS6u2mKOtg7nIiil}Q&s5Q$sGB=bXlhG$SG!8RaU3M;?B%>A(QC3-pgpJCb6v9P zWbVD~gsXL)K2A^8C+HdagL;A5NpwL)v+OnOB8CdYFIgOafrJ&VMkr8xqu&<0$LX=0 z-Aw-#sFS9Y)Zmq1>CB)MehTFp_OD_Vhy5(~0{nW0SLttsA3V9nYxhbcp2>Gvl;HAQ z<&gJ_93_r|87qbJGg-j$e|Usth4hG zZ(**UXU{DxsLt05g88Y1)$R1c0KK>7ef56MzNs}8oPjy369=dzg`L!al|$5?g?)lU z^km4I2S=)v+1=Dp&Bv+(vxmfw(;sq<3yv>+SRe0vI5<)5n_Z($s(e%( zl|43hVEzzwT>f}r`>QQYV!@N_djO*(!2O>O;gpYQ(+zxvGrLAdz!P~{f{bNs?;T_e7RERtMW#9r^GvFs><1l$m4k;n0#IpzaaS($mcRu zxI$rKjprEhX(694tHRAHeu>UpuAR$t<_e7~zRc%z`rsNT@Sa%62|NNdGkkl#>AF1V zamx1Xz_!6j0Yneb_{6uO3&+Q8Cic7Iry>=w5C{0KfaqwnUCN!gy z4|1xQEvRyHNma59aa<@mO+jO+icjHc(5zasC@xk|T+DXly7MS5=0~aCY>(2YK`qTM zQ9BiPRLcrGs}+Ui>I1o5)T)-1YPZ6!@jWuTJ9}mJboR;YJq`G})_F1V9yo%tBQvpT zW_^98rBm*+Hl=S@ z0M*PLO8r2kpH#U!RsL>?LX!QS3Vy7zKUL}{s)$qR$5iPFrGBmo&nZP{Ln3RLchvK$ z@S-BtRpGZP@|a2uzJtjoyV@UB_En``QQ6lN0hdd!D_~dQuS)$+mH(hr_|D%{90AqzMJ%{HoPmWfzkA{N>rovE4zZJ{<1vx5^+O(-)F1qrE44u}`z zOiM8tb452Ku(ftzNl8SLyu#~ZFA&7zIE*g zhNY8gKFSkW z*Q;;?UaWW1Me(pkEIA^vSk{QTu)guB#1Rl=S-atpbmt49)A^aoE1l}q&a>4kowF?G zD6>s}jC0-|em=$A`QM-4MpKonKg>C4@5Gu2k(spmESk^_(>eCF-n6H;ryHVQ!&mDN z29vE}FloDn*Z6|h{9AVk@_yU4bNSCc`MRyXvF&pHvrlff)t%ce=Rf=8d$!%UNe2<4 zA4NZF`!^Cp-cS1QPStm}UHt!H?>)fms>=Q0{jRlkJ^S=?X3m+JQ|3(XC7JX_0trbV zg%%)`00AiqC`|+*p_f4Dh9aR!4I~JH6ip~%6eOsCpeU&575>r@QA)nwyY@blNkFgn ze)s;L`+VPhX3k!_tiATyYp?SD-uh!nKap|aGZ~6tRsk8x5Ex|W8cBD{Oh}3*?vdgFwe$j09~+#& zmHz6inkxTISg(*d#oC)=rF5vWScia(yTD?BiRncaQ>B^DrfI4RujHv5?vK& zT+x`^(Uu1wxByI`VpxF_$9z*9A31LPS0g9v%h1UDv)GIXK;}oJlM8|*sSkqf_IiK( zX2j3(c?@^SgJ6!}W0~XM)dB>n(!VHLWd`Wl2K?qhw|v0LPK13&zKWWDl&i0f!=j8g zfe@$x5m3{e0g`Y$$HfV)X4Ij}Y0b?ax#vuhEPs5;)EfaBF-4 zTqPqc86vF9R**88ETbTg+-!^}rR;d3CKb!L^+y%IQl~PFReJ~#*h4H9ixJzZ3{MmFREls~sJ=5e|`RZ$hqb;cZekgS;GxD%O})RBOE|6hQ!gZ zV;RO3Hv-jed8Eb_gXVH_nr%E1xWalYvfhHdICv9i#Vkf`fGdJDjfkO4{bYvIfHGq2 zkVBUXD5GYb`uf}!x}LAG7q}n|D6BgDWjJPSKt=Ia>Kel-oJLG^JO27`;qa!DYlhsN7DTS|#Q`Fb}Wkg>{9gZ(m#~32@ zwfvVdN7G4}Q-B~+8bPEqf~dvSm6W}N>=WZB13%=3@k4+OE}$&%!_}0%mJlE%dmX_v zCU*nlhaB)j6=T#R&q^v?!uTO`nZ^%yF%HSDBD#^XH&-#n)l@(^-=XY-6uDlMZxZT8 zQFpUY-x77VZb27MMgnwktXQoO()VhsiY^|H7{+kd2+>8GMi*(bRTFU;yH%r$4A4am zL|g&rA{U~Ic(QpIUF1N_l{7I|MHhw7K^OV0(8U&_EUm22mQt@0 z@Iwj||BF-$j1f@$Kc&>OoG1G{(cJexgC$ZUumtw2SmGTSc^84sLM(B%ikyR4VHitXPz(FsTigIkJeOB9(VQIEaOynyG(J2-rX?{ez=LIm4;g4PZyl zGj7meqDS-$u#n{^gFRb-MBBtpzoWI=?`qvXZ`B|)u46mS91S4mZ-Eg9^e$Bg^&X;D zB3{=hQ|Z6W10jxBT-mQ--{R6?9PyA7;E3mxI0&+bHyKBatx6^a)E}h0S3(HNl8L?b zJA4H=0&f8im%h~+eL^I9fg^e~j>rHmZZ03I*>nNN@i|9Q<}}1s^ry} zx!ufjM3iQ{{7wk4Ge-4z5Yoh8^(}Kwb17S)#ya?H$u`(+sotWSiRI3w;(5eKBIJr) z9Xf_RMjR>*5e1DTLeAJFl7(^Mlflky*7AuutX)~iCsL6jkVFnhVkZzP>+Ii{&6r?l^u{?M{)0(2&`Ok?VWZC{o{t zd(V+b;(V)$BoMi7fw+N@#AyhEx&=y{hR_gOo~fb4bn`p{s>3q@CEUBC>)j3`^JV=y zS-AaYD3K1+IE}+GGg7N*K+aGca zL#2TZ!(W?0p(0e3$5c z$~{Q*0OcMgT1&Za6QE~3^4vlta4B!2+BHOvQTB;yIS)||T8TWL}*n^Zw&_qZZN( z#v3_EGjfn-jKmugfj0($H@Y?6Sm*rETkBu|ABLG_Jfs%mhX)1YiF7zXYV>|rh;iY! z0muBSc2wTyPTGJUcX&Roc3$q()%|M9=UC=i9bhcY;A_>6&c|sCw(hXAPXyk$OXH3H z$0+p#jsF29H`4eYQvAm>4)ehCq@JVH3oKzszf0p@B#x6C$SdBX^as@SYYxN<=|T2Q zD*la9A2Uu!0Vf2qh|QEe4Zb)j1)QMsK*G?VB@DUqg#8YsG(yNB&vKDF176HUy+#N* z1lPJ$&biT-4$a(6K=W3C?R`_QMah6bLia1JJEz&o@Gmprv5Fk6VSHU-r zC|o4y7Li6Y``bkNE)lt0cCV7^8*=a}sjie0ui1h(HiZsDjt4hO{8+FwgYm`_5V`4Z z2WKnefj5GV8Q_g^8gJA9Z=|DL8gFEi#eax58bZ90f;1z?{y@+X>w!0N+u#irt8I%n zav}IF0B@v$H`0)1bOUb;0&h$N-pKrGc;h@3N--`F;zA+M7l?w5E%3%g!d)o@w)zTh z$-6|j7Yjsx46ooiA<_>^F+}4tGk@N^X(l~0^BmeVbCQv{BcLgs;>3|#CqD^J{+A|C zGT?AzSmx4UQl_1*6kfy~kKew=RcfG;XiPBJX#Ok(BSWgj89~+jtLHR;_?-LytIlh{ z@HyrGSDn`Y;d9FWuR1?0bl3tGhJ_BF^H>cOwwy19L}nmx__?eSn(fbj1|&ep@Oc7< zb5-O#h6RDZVYP}}R|N@dB7JK;1P-@)0Z903K~0g*D(j_Tfy02xiMLw}V{b6CnNa?U z#l)ub*%TllyaJFA?g1o(djJXH9za642api%0VITb014q9Kti|&kPz+xB!qha3E|%2 zrvrgQcnFXX>@CqCVIn|6D?mc~F;|WhIBak}O00LFi}f@Q$2tk?yytnZOa4SUYcRG& zqkKfgJ)>beIOD06{k<6h0qyT1QD*)>7s;4V*kNxVIy2z;MD1|XcG=L1s{Pkdd>lzGA z9dSqX&XgFF-LVj=fE^E7{vbLC0Sd7LnyW01#ZeOczQ6Dpu)~V*vlg8BnZV^xGpt`6 zk2N*}=4b{}qWM$eBWD_pR>}zUk8l(lgLv7m$z(fgkljoWdT^Vb4knp!c)tt#_R}iH z`;8LXgO5ol-u9oWBd9?E*LX%|ch5MsfZHR=Si)+amYrIY1=S5|5#czpP*=-}2IFVa zG@g|Rzo`1ZjC;$7N1t6h;=VY9ZB{I+_7RKieY_p&xP+4x>J;NZgD7SmlobImMA>)& zMWL9L9Dov0Iw3f&V?;Yv7~z+PIbY&*S;=HqFHdzvKdBn>gNhVX!NyoLd5-gk-UJMOUS#J>iOl) zBR}GwBw@QRtif~8wpp>zX+4|L=g=rL1dQF3ZN(IGt{^ah49mZOecrn>erJ>%SGVbwxiC^&~L;hj-}nSi4cPDThh2j z^^3Y2slky~k#{AY$RCEQ(|sYLpdy?f!r*;vCFQc_O=RI7U5B$If;gagJ|;C*G|35k zeh$PT9zN_E1}*jaS@#6bO6VtMHgRjLl*YFqId%Og^u%U6OPtyHWL>6!y00X4u$Tvp z!WcqoBf482Q~>lx5w0t?U=1NycH?|R8+;ox2s~+QH0~hndt&6#riuZ6a8+9=ph2r;sLx8F82FYA~ zP+Cb)gZrB@UQ%t~ADQQpy|{pA*5+>@8v7Oaq!>AR1myGxP>6_&z<0MGQ0=c!xcfWY zty>Wg3R4X}(xrr0!YLedW3*323W-@8oRdwoehYLcfZpb+d<1u~M#j(ZeFuasdgKM9 zCUSR2P&>r>>o6WQP2+JBJwCSJB(&E#+-Ujvql}Ga0c5u6m{vDJEGF%9$*g1j4(?5N zbF6KyLw~^II7Hn^awl&8f_RY-032~mU*O@B>FYFJF`>tdD3l1fBfO}YN(m^AL+L3W zzR)s)q%egK+XZli?y)cH^XqDNi{FxQp=BBuSzNzq>uKsZLp3KF;y)ncGOHl$Z<-C) znwSm82KD*^N{OIVYEUiAo6Vw0oJ|rJn}IfP58m+zyj~H%qw(|SV`$$ijBBhM7_RTzIpFE+nP>RJ+TtGNm_ z=#we0SFol=8m-!hZ8nd7KOG@tc0?m{AekJ5?+sA0u1jl$r@h7XkgJaTUx&6W zqLf;s^}5XcMm#qKmKQ%GfqFT^`$0YgImNT#Zhb^q4kBN3X?#~gRr4kAHdjgAZQ{BD z{9Sv{X$x4zUK3#6@`+wNpVOT%xMqxa^E$Lh0RgRRk=7#}kN2NP$83{h46ZJuU2yjT zS}%-S#Q|#EuPFH&62Bn-1+q~on8ja-nITa!%d*vMN#re+nc}oT@YCv0tPOP3Kz4NX zI0Ewn@MQ%o&e4hv2BEczCFh^H|9Iz{D4UCj>mqWaoh_%hlz33ebrfXelCEOud+oM0 zIX-bU>2g|}Rx!ZkgeM{`PP;Cp&AFEN9G7to)%=0duM=Er`mdreFw#m}mzdEtZ$*^Y z;N86H@s?U~57DK8t#`|acY`l&mB~13$hl3wT%!7N-pF$!%Bkk$n%zwDHV7cMYUiAD zDJq$Mta?1+-Qeh)61Q;)w^EHYgh4$S6WIi}Sa6ik>vp`wp&f*I2I|gt(*}RR z_wZKrm>Dzr442q`F#;`Xt+vY*`q}#en|FEhxWwi{-u!_NA91m{ln>WQ47+ogIDiuF zTwa0?)#Xhx_i?^YVzIlA4=%?+(Y+H$PE1}!nIGXWyI=0tB#y|>YXGn1dZt|#h&{zr zZddAUo6tQ&JOqxP*qwj0gNlw_1QqSXq=Us_&_fmnh>Zj?304XGE=$EY(XHR0Ui9pR z>UUs~y$P$smWfeyz|>h!j7m=>2#<}BePAbIT0x(1E#rbtW?0<*uP zkJ7<};X3}j2zhOu=}PF;COnjygapZfZIYvN>m#VAIpb}|O?WfinwoT0)cDz4u5U|S zgkvT|F{q2)ugCs)l`!YkQn^}}l&UkGf>Xw%8Pp{_3MQ`vuFNaRVtz|qT&DmtkDw-c zzh2h^k>iR}3Rg*(L5a>de(;geB_IIn>2-Pvy>ohA6a8+V==b}22kQsKpg*wF=rK|$ zbJUD6)w(1Q=^WGNSO-leW&&sIOxRow(EV1>0c?CKRF1s!sf;3{T~8EF5f5mVoujM2tpeJI|)$(WQn$q61;91L|XZm`)PA zB6~m}?SqV60M)#ToJ)Y3v(-2~i)2LO<ZNfLGsPQ`v}#d}qVQ@2#r{50FY4}* zvHPT0EB$pcDr!{@VZafn^f4KGLW=d$-=NQCpOmqurTC%rH{$E0k&7OV?D{|?@uEz= zB*k;me;)jgJficVu4^K@-xjG+**9e3Z3%9G|2oRxdrC)v#$hFv>r9Yj<1k^JX@X#X zjGZoD7b<@r3qJ)5FcNncOF-O<-Qx}ZURDN!czMEZ4ucN`BjA)IZz`y0(>>nbJu(D?S`qW3XAm?|MZ%AdPsNe~YM_%c zvmjjsV6I8(v9(Wb_u8(yL|)YSd3-SL9N$(eO}fY&t+!XuN^_>6er*}gs9mjF=yat? z-xaX*T7){}l!#1+S)qU`CxWfR2+akOH*E)l5{HVvq9(RK{NZWplk z_yGaNh$$|vb*N5p9)Qi?K?Bnz9AR^vctmJweEeE5+W1t>w9cWs@%${s9#j*}3HGRf zDmbpgMlx&iK@e!J@*Tn}n{Ai{d)h_&l`AaFqa$ zGFGSg4RShcREd3PUj>T++Ca_gIr=+Z?*+44bb`XJQ$_Y3VZx>iYiF(5Af2k+!DAwL z#R5e}VslrRN#~tGXE5*tr%n%T+i~AXv^ninc zZw&B3;FiU%qetXw4uyK)YVwTck_BCY$H+R+^o%Jv&wia@Gj-r+CR)S2E z@K1QweGHO*O6xy_q&Aw#*qh&~e=%TxO<#x6oQDaPDEKhLa&@}MSdy{KEL?)deHiSz zK?7a?TU1Z7QZ#q z{?e3vB({kdlh!`7;V@Uv8;#4 z8vmp$(|pRJ)d&@yzSgqOwt&<`OvPC%gZtc5L<_|xfz5H4jq$NgLYsDj&^pxp14N-7 z?;eXGosPE!?1{}%K8F6(0Nw~MUzxCF!JRUqs}fI#xsvxNoysolgH_8X06N`&E5X!$jlP8dziP=cB*8T_b{#jm)hF1 zO+*((tch=${AOoR>eTdL>d&VAe@p;yDJ92)+Xnk553vz0zm?m}*GsG-x;{ppr&@Fp` z5qltv>cNcIg!1h|&M4o)LTbsrr-q86eN1ZXkSL8yjm7y%sqsTpf=+Hx zbWTfchx5}@Gp5W;?Jy*oW~LOx4Cn?8;z~OfKX~ZSI?;I8(BX{;7*{-I=vY)$^`BTe z8FH;Z%Y{O|A=4QsP?Z7-<#q)y|8@$Siz8r_GA|Q@?1!XQLSf3B?#zSa>P?t!=F~+3 zINO?IS}tzwQ2Rl4M0Y{ius58YdoX5_>~IYPkp5C2nHj2KT2Sr!ip1eX@)px+jRhpDYBM~N~nHsUS|kHDlbfJvca ze#&S)!FWnS4<4&|r=1Lj{SwSGxVH&ZU))ThUtZ_EA6f0ubzW|@x728TPomH5jo+0H zX#Tx0drA;@Sq?ega6VM!ItA?J8&0R}u24(^-9G&1Mz%V-TZX+VDIy!lJ0`dLmW~z^ zk$FdmBP@(!4BM!xLmZQ@!kq!uyFnAP65cNlJyoJ>sb!WkT~*Iq&EamEMxOZw6~3Gs zw>0?J`++WSFa|HO@Vy=Upz>0|$6+~IT6~4}=lSk20>ilzm45>WfLrw78Bp1P!Jp808IR3o*}* znM*NQy)7<4n3qvT>+>K$F`@h5EkG&@bIWiZnu~ro5Rh{V)Na8{q-on%L*#QjwuVDmgZjLd|@t z&z9;^RG%*uQwr)wvxWREt0B$jw7vx=L%{JALN!7Mm ztu?81(QZQ^oK&IJX|GGw7Tq?d)R1aw_1cT6`eLNbE0SAsMdGS7_|dr3q59=x8MO2=^$^VIX_*?m8J(o{yNSgs@k$}n_+x0d`Hy($WD=uo#H!IO-EM+CI+=4-?N@!<@Vua)MjmN|_(~O(3&Kc(R zDY4rOaNK4#Bz@m?66r+Bi6(&YT#@UMy)#r|Kn}W6deAtV4V-|o{q5mv#&!_hv!*8k z$fCc^I)RR~E(Ai~LA-X84uUSP0I{W))<&_$rpbo!HR$(@hNFx732GdpF?}AQ3UZ}T zJ&>~Fb1f?`t86aOvU2z465jE{igAuTaA0CFyXG^+*N+n?(@CAnsCa7aGAv~C@wYRq z+o|b10$ZYK1v_eJfdeYg#rv1Bw710*cR5$@G4R30Z%bja0k9oNYFcn*1KRv5iks^Cs>qzClr) zZl=;Qz>cBiq7?Jqr_^#$JVQ*W_>FLz(_zjrXUBga^AO1ZI^BMw%5@6ebPB6YqPx=^Gp5JMM<)JidQiAY^6#$Se+BLaoO$tD!S!VYs0 zz*2FgNFbjmUN1^Fa2;+$9sDaq>PAt#8G71@p@>WuVh7-ha);e1oLPBxWu^!l|2`=| z;3dLe6ek|vaw5%;1-yBj{R4AJc?W0MjZd0sUe?-3i?@=&T=*R!UWtQ4^=w33DIw&> zL*Y0>++Q(_pMydn5}mlUmcSioLY%86SaLQ&J)-P_V!&78UzyT=6Lk8TVBFReUrDJ} z%+pP2j`__Q(lu?+Hf^e1Np(H&RnSyly)#|xgH=&esf?MXqcWy(|K@Q`{ms#)e%y43 zC{?^Bv=N+2i6Q>*_)Q4YA$pi4=fTP9#qqSXbz;jvYoaB*zu9l$`!|x&USfjdF%k!Y zHvHGnta5`tuvgleL0Rncra8B0-ezEM>~qmO>$>U5EDIPfRanR$efExAED zj6WG?-xom2y)?c&NpJ5CPHB|c-q0A)MPqa8jlq0{;j@KePt zHIu3|CR%i^<40+f*?gFB3Q*=yWQ^$Z`!hqXPW>S{Mx)GaRF0Bn6tEo-zKS%*+LOeP zKgOS!&?(T`Wg*hM-f}O(Zat7Db~VyWey$4Bi1JMHeT#m|X!9A%Ub`*Y{1v0kSGGZ$ zlTn|;+*d&ZdaO#c723Q&fra_c&?eeyE3}!=XtO>55%X4#j5uTuq=D#<4g zGOhtObMMF4z@OF%WON2>7HyqE@{iZr@jwGWq-=v^5;WztDu1*&j$70Yh z2a`{BxIwzrpt)n@pg9djzo1)h8Zl}*8=4}ztV~#@-z1yO8Xh%`^2lr)UnF>9LZ|hO z7&XmqV}+v4jWrdW>-dR!)U+OEoC9+fH8nC#jQ1yGrn)-yr^;z&6PPpG=-5GZW8|=@ z#J96&imCoIe}{xl(e2I)hs`%E_pE?H6U8nMoBHJEl*f#o;bEwU&1*bt{$$zT+jiJI z!@~w#{H>TYqj3MB>{cb|@$LyDnKb7rx$&P48#LBG88&Dx44bgIhKEgOcg^VROeko3 zP~}cjs>N>I!&t||<`A%B4hB2sCX4V6H&g0*O3zH)VAkC8y&7Y5PN?}d zfjjHNg3A}3wFenDV!<(!;d%T8@K>FsxrKE<E0aF>~m|W>&e%*T>U5CMd#xc;)zUf&(`+^Gup_N1>aGX*QyfI zd!dG(iRlt>mu>_8+W+$2)_MQg(U!9RS+1?G{Ri(EId@mz;Xip!Qz=1fR_7UBYqwpa zJ#NXnCAZ{#()eR-EUfW=w*9L2ZTsZlc;uJadOx`DKl!e@&fDDkufKogBIlaeO4uri zAH|Fn^@GrS8UCxT4th-(rWu1(gI61!*RIYpXx-p%ODpgw)_+^t9z7(OjkpDZz3_P| zgXffa3w@t(565L3;}=}PmiL0=k!RB)IGW9Ac)i-{;hFF(jGfUsp~eBDC9XfOkz4(& z;kOxHO~Y2uv*+jU>$x{@P48A$-Ota-XYs@l>pdWA;ujL4$}ISHH^sC}^0E@9J9u5t ze=t$tj~pzp68q@1l~=sgv6nr3yr*Ku$E86_H|5A;QH?6;F}&F8NAuaR5n%nG8&5ak z@JGOr-be1R!Li3V^~b4R4e!JieQh{z*x12G$>@@U{c^Cc{{0U%@)I#%d_-e$$5V+L zS%H(A>z1Iognf}(5n0LW++`8t)k>|-HuAQSjp2m-Ee+4s-0S#dXQS9^uMB&XetoWN zkZU$7VshT(IRa zgeBpn4m=;X7a)d*9IBx9;Yu`5ZJ!p_uY+2+etdm0E?r04Yu1aknwDP2mVEpU^C9Jf z0Cx&h8BQ^bG3uN6c3%JNKF3gt4LG|WK*M=vsCHBW{~3l`EDtT$(tUM9wVLf~>w`H1Lan)Ejo z%}s#X(udTyoVzIN#I%B^k;gAf?fA9Ad;$H#0Lu+La%9nk!#0+zN#K%CustV69{!@Z z2wy73cVP!_VomgeBh5%Pg(c9c=0V}kdC?=z+ zm;>3L6P<(KcCl!5d!6#W7k!CvaD-os?5uf(wIUsJA{MN5RSc~Pr@1UrwtTq{L_HGT zHx{csVRwN2n0bo3m)c|aplgw{r@Kh)HhiM8yR(P8yV@l@;hoa5tFxQCt6H!n$3kZp zccDVKmaxFed}o0>U+om0uuo~(*_r3=d>Ay1?3u&4YUY|dm1dbcW@pttN5zM!u?AYy zU7@)0uXZ4&oFtagA>w^02IM?z47|uJFhgnOpV9ShWXoL%WkqE{yhbkM-JEton(VqN z#`_gWlwFuW!G8_4B%PF-R5kj1)~Ru`3U0!YC-2m`c~!*vKrIEQ=oYS_3SX#cG%F?i zvW>OycfT`h^E_%|6b^*HA*AOJv|QCsO|*SR|0*F@nS?1#w)vk}5RI5I2RL%Ohq$)KKI>=JG4_&jt9P~;F2#vg= zS?H_7ef2gzZtP-F{D3llq2k+=d5bEqP-do=Pt+Yb8!TY%=dXp{Nnccu`RrqLp)vV) zKe2SEpl(sn(7g=|FEnZrO3q-4V*V^bRYO_Whg0>kNW!H$_Tjr4`%x9cKI{%_;%-95 zD+w=NN}0(%gx4u$is?*EF`I$wp$zmu6NxCsOZ6`WD={csdee58>KJPzw4gDS)KsUE zIl(jnO=XzX*v5k+u5TQ%|NMykSEcP)HX>aL1Q6pOV#deP!pFLf-UzfGJ6Gd@>IG#i zQ-z#a%ltA31X1Df!t~;91H>cBib51TAtU1)7Kg0p>qePYIMTFCrvH))V3tZ$LJouHi2 ztAG0;?KY8><$m8oYan9B3sP%DbiE9f1NCddxbQG*?2MoKoF7D?`urKN(pI}*Vunlv zs^Tqbz@wiE_Zg69^jm=mc$P zeH$;OHuK*5LM@j_|1P#K)TE&s5rM8A>n!Ysx4TI~=NNBy6QO&K5@!${4ygt*u*Sl2 zmMp6OX|ZQDvMo-h(~U-YPbkuo`$>K%@C!h*eSu zkoQ%#7T`8L5>JGVkq#VxHH4(%>k?Nu=D=;d&M){ftXtdjcp%~j$XX|brAm)3Rsz&A zmmxJ-!uBq&E+-?_Y&18661>j)KVM(Xl;EmUj2pxt(_>6tgCKE0KQgIaB~8NAk_xtq zP#pP}|J9Qu@DJ7Qk^es>@wxxcvh~^jsQ=Hl!M1IJAq(>eE1{QdrYzt4x?ZP+T1L;+ zpNen$%X;H16ZR4O$HX3{18Ch>iMeWd%E3$#My`V1x(m$+Qz70hetak32JT=AJOD_R zCMLse2;PGuQ2zQFwwzY)=I;tPz*fuEl1!bGYlB&azqsBDkAgCSvcmFoJ@EW6)t(>t zE@mU*uCSD#EPgi5@^)lN!4rZyZB-KI;2o!D%-XL%Xwwu~+d>d+AY_b$rnFd+! zLb)sk*9{3#J|_KD^91XwGA>i5m2~Ru2=oW>XZlRHz{-T~A|O=kuVa69C>v^e#u7Gv zxrkP9O!SK=skaN+lgPt_KnT8>k_Bj@=FDVCH0OL<)|gqRzPVZNrA#71S%a- z&18t^ZE`g#@;cm(%ekn;Omk|Z=-8e~XISgaZe9=&(P#`bh$E(|m5Ylbcu9=Cxu2PR=jZNRk}j0cc=XA(1H^Npv$_Cv&HD~TIy(P%{pAq7 zt<&2XtJ$&7CS`mo;n;`biGp7vT+6bh=eg4Bf{r*`vE(G#O@;bqQ9l8^002}E+^Q`4 zQ&JWn{e@Eti4d#g$tXoy!kT?EbV)K72I1c$S+dGzAHvT~f zKVK&C3LWw?(JM4%#MXbAMj5|Tg&GwvS)M83876M41j4`y$88l2u{aB-y=K+fg35K` z*WzbkpUIu&*3fDbZlEp`5+@64qhv*Kak*R%TYGVY-p1Fn;q%Pymaa_qP}hglo^Ly! zj9blKQESnIZp-~{TG74k&{{Vw;?_8EqG(wm@@GPSIgVu#53}1N++%o0N z7Hd4<#OH=uvc#6**U&C!R1$hvqQSL+vIM1^)hg<{=imx&)N ztzI#ERqa`B%W~IEnD08~I}UF*!!6J_$Ad4b6RnnLf~~Q+9&d$q+GA9o7zK{NsIU(D z=^tXC?|`SX^)uQIE-vv2mVBGQb* zhi9Oh2uA%#3+hkkaD%X_JuUd058!j+L;g5OYF_3pb_tCxj)H%dXKl=ssi@uRG>ZCn ztl}#c+-qSBWBEjN+A*SFGKo4Px(Zj&X}7(I&n|5EldhJ*xc>??YHiggziRcuHd%M5 zG*nl|h;#9Bu%0Xuo&@7|`F*%oql@I>E2X$d9-{Z#^mZ4$ZPwdcNhf>g?f!cE1--4T zM7L2dD%AWA0mtA_94?XSq4Jtl1s?tk+8KyKBHW*l5!{W>b7Y?JSN!OcFWWx|f+kFz0oVWjr|F zPk~{HP*EBBgMO3R%f$Lx+EDwgs7`Wv3kzgEH&1W((cACRh*RIR^uhVTxh4AGWWC)> zZ;#X4_kxl!Ho35KY@OT_+;dxS@|GY0i+;=VUJM?7MQ{!k5*upo3G!X*=zMK@d!*jJ zE_D*r`(Tgv)!3m%$Y8SF}GJ@ zm|zHC0x_SlP#E$2~ZWr#c>70Yuso?Fc+OwXWT? zd5+1u`64M6H4R{|B>p&C1c}X0`q6+t2E8K5@dUJMy_cL2gc6Z4u30@nx#xSIk zxq28$cuwXBd8BB!+9G5H3h;r zX61UK88*Ec!u;xpMir#ZC78}Y?8N8VA~pSKOgf`SMaRHD1@0rFw_jl_i!I=?pm6vTPfejXU<}P$iES^Sx0k;_2zuNI)-7B_fdA{Ww+~N8rd=BIgeA|4_ zu6f%wPx38u(twyL3L8uGg5!#@&pC+;x?xoMgy%m5pGCduj$Q?_+WoHID%#a-tXSYL zqrrMlC+}>$1!iP`1*~Uk@LfOtj&J9CR)AjPWd<%(tO1~dPSJ{Pk${g#d{n0ZKST+q zY$pX`*kX>wx)gsu zsPvGoG^BLfR(gfs=^QKOh^cTV<2encsdju-=6)|P#0!a>-`?bY#YEifCe?dAKAaHa zKCs0bcH&JteY%^-z$Zo;=RS7CUmX7fux?#xK1XIG{sy_0`+fxt1}7QMbtRTHeSVu= z=ys_AH-8IUPzo{O-O%$$VG_oSLi{lwPk?+^jQdcDca;CGDok^x!ia8QK`>*VUj+Z0 zdFTfKs=y^lTAV3psra$Lz|W#qR#T=z7yCCl8K2O4d%W<*rq`C;iwQwL8MJ56Wq3jGUzQ zk1P@IP~vQ=ZLArHZ=cyQc_yXirXPnPf~dV%G=K@b%qe`K_+3$GgS;Yi1p_uHcai0$7rOHx3X#qRqa8ye1Iev#^l1fxSB9eg{_MA|8D_b#kZv5$q${(7t_T|8$|Ct>BDLe?Vxs2T|D2?Fuop!U81efScboy#yhFG2G(S) zgm1*6QXnj-3&lECi2g(S;{Buhp7aN!182(7Eci{pQALXxT>i?ib1rw!th2Jd4FFK1tvuw?t+%?O;Hg41_87S+U`m2++0zdCQdp$<_G z!f&p%vn(hpi4MZF-9pIEKOl4sxLnf1;vIqB?pmGfz2`V#MUZc%`UxQ_62fq72Gu(o zb6W)r16ZyNe_{C70_WQU-RAiu>}YSI5U)u=$%L#VUW+*zXL*{JQCvxlhIgqNtPI2l zlLPnBV0Pdd8q5rwA&u|Dvtun<+XMN4VB1=2$$_x4n24J-UK2!FaH0XJ5m+p6f|$5KK&criPZ+yAv+H~YG&V4FmQqGN%a@& zWi1lujV!{|%xlUV3pw6^i65tGQX9xWbCgO|m|RAu1ZTMHm@g*52 z{f)yqy0BAHpw~_le45SkKgFw`uE5+uEqu$E2}!2vFM;vl7=E|0QyN{!BZtL-n(2`@ zeAn0$9BLlIyW+Jn^Jg0Vcfk!SiZMWg8MX>$^_DM^cDOVdDlmn>89))=qfCbxM{jjE zf{5Kk##gI%L$(*(J(j;o^=_OE?#7_^7IfmVv*vfe;3%(B-~fO;0b_=3jo~C2oDjj& z#9}x-MUuxWS{TPi<2zkPQ#F5MEqE()4Id^wtEhtOm?MFgA(qBaaZnPNH{4yown|{- zb+C;3=G>qW-y@pI6?=&AGVtVM<9r2J#{x!$Ny?gkQX|$p`3T6Gt`qNx)dH>dqzP7G zYbH_2HDyGDx2qc|x59WCa}6p2?h0IWfEWa;ij@&S)IePTVqD=jHj910DP&J_W*W`S zlfx>7m3DH_=6iy{u$<&!)4Em5j(1gAg5y@LzCbwr5x*B zOObU{jKYb{ZkRog%mW__j+(vxo%(7F|BD8=8(0P)73Pn#5Gyrimv%65GLRHw0IVc@ z5@-IP0hgP`WugsqcTz0kIfd=xCSo_kJ2?n-*I@GRH2hBE2F!2pN)B(wjt^Zw33zNU z^Go%gPUwEF;a^O~qnJmW`YqXzxrSYtgQblY>47r|^yu@Up27?{s8Q9Uhr!!S%`*8D zbF-jjvZA+*dOJsNe*^wyaG{Rl=SA>BQPu|I?h~{#z9oC`<1?JH!_$6vAaukoFm$q! z-=_;rV}%4=_&pJMLV!gRMI;)p07p}^QXi1>9IZHTaqr<`L$)o(yh54MYUlrol!vBo`w84A>wxR_(q$yr$n~R{B zaCPNCHvuPFu+VWAc!oVew&8cVfCG_c%xVi^5Q)zEV^VN>H50yiV4dZ*c>Qn=Gf}=p z*7jl&^o4MHt2#nnA=ICcdALRJrBk675pEX`9vR_c&EZyI&xyPrwhVF&z^h2}u$LmV z4to*2Bk&^lAWZ0YG5n`3;{(~tj0|u(otOzN7YJX>=5LXC6Wn8&add^t34X4u>&aY$ zR(3H2TaiP7$CvB?6tU7{xx2W%e5Iks>`ly|X--GbJ0fv=nzfxL8m7sqv1#ViPUMNs zk*@gw;1<|O87rou7*@U;bw$>f5%|28pvfU8@S|p|>k=|olNkf@^PMXQ&VAy$1kL(} zNjq~Zeg#pOs8zixB`)-0#k&BV?sNi?mV~{xg>-j_eP>z;vl9a|fr-TNGGyD9(+W?e zG4S0d!9$&owHYrTn7YrR*Qb;l>8f&;-ZsvyI*QOLAT$6V1-ejgT0TUy=7q z^l){yh}6OA-1>wNvHp)-b13$_N#1hs&oCoaf>N0)7?f&{_=G4mx>c#pugH9Xa;Pn) zElWJFXa=|7x$psqB^&}B2OkR;+u>(rJ?L%3>r-$g0m2~$pYK_SU(na<;m6g3@*n02 z7L^bf?dX%Nq+s)fp_s7SelQRuY>l^&dJ96sw`qL^%7cOTdt}34sGWY z*mpVj&{NqF*dW|wp3H08l=-cOUtji0vyI=F;H*i8Fb% zJI{C?&BpVuqosOrYgkR4#-B{M>V)G*sNPxyX3I{%!9=L#V9CFRj8C_@%wPArN`Kuc zn`xHe&nZVst!>~(2;=~Uz~bQW0Xn4J zoSMXv!)^Yt3YMf@py7kK1#>0*Ld_Dpuy3F;dO15EY|(uaQwhFp9Y{L~l~$@n+;}M- zAQRT80>XeRx8feBUxxP}e-2|5 zn%A?QR`YtsWY0JL0YE{gz%kZ^abu&^yPR^TVG5QfCr*ItkFPHi&SpA9I{~pmI*A7;@gO-5Q1ip&JVXh-MO;4nA-WIEnV&p6n9J@=;Kf1A zeGw{RVqeDG?@G0+xRxRV{#wLh=ZP&R)+dl+imJyfL-3jC(9WQO5IY!;mY5cBi!{}N zh>7cBW@CxuQY;2t$cJbGG6_Ey9F6=ywAw73OCqS+{@7m{xmChJsEjRwqHO{&yBR-D zvr#+28Fq;u$Qg~h9T@qS0+SdV_M%%pX?uu~2Mf!Ejzd6v#O zwH4Lt52{`@_;CU_v38ZEd~2zP0CkS%LC$B1x?e~We4vM<`LHb7J*x1eG;anUD~BG7 zP$~Q5M9E=q(XN8uOuwW|dmq^uopy`|-Cepl2J~=eOx+I7edM;7xGU!0858TE#O&W4 zv+qS3`A$qc7>hg*YrU7|eh*YcMO9vnRo;vBzaMM5lnTuIk>nXA21WM{tM<&Fa_a%|m~MjzRg@7&b^jECNK zUfe~OdC5yX2%q2#2v2eGl-A|&cczZU#PDSdppEQ&H?~36zl^i48279caKZbOtp6zs zNLe-Uf+RRjU_ilQ15BuUm>mVbL1|t#8hNCY#e<;;ZJ}xrn4?ni3(h?RCD29A-q>D7 z_JPjR@W1E`;a6+Vb*3Oa$u1;ji5B+_@-fPeMJ$QvSPWb^!0%II;*iuHpV>csBh`!% zPavdYw#%O8tR>bu7_Z)eivC96bhx(O1B*-!!~alF77xKl9ty%y%~la`xncWB>_;L$ zrC24}pJ|emO%2idx`xs9yEi!XPg5~j07>B2 zq_PvhQi{3t)@*Q_V&)8t!?&%?L3r1zf?%&t2S@h@$q_ov>#u`Le+r_)R`j{u^magR zkJa1nDxIA8mL=Y{(t7{&;KtNjR=eTvhcUA+$fLvUj5ATrSAZ^McxCm}&m|o4{e_Rt z@$H#TXLqq{PvabS8oEbzO&o(G@;dyt4|Y4JS>|#J6HvF;6&IaW;btpyBb;Yu&WX-H zJz8qWMntqT*7&|(e#bAp>wDND5~>h=PG>`fxocpXrx6pwO~Hc~6pPWoPG1gsIxGCr z`TppynMVO=ea-xm17bxEnAugd(J%kO-vlQa2nx2J*iqHTo5t>L4^E0N^`TWVHxsGF zAc5c7jM^VPGQvF)I_hv+k$|`2F{uu(*_migH{14788ym_fy8jlg|R|xU)3--Gm!9Q zj|tD+&TUwMs(-9f2tTyf$aY6u?G~?ai)Hgj^GnEiLfC;{i2~sFV+h_Yfm7fTDlbZ4 z8SMoyurJgjo(OyIG3s=J#JyJaVdjT_F|obrs2-=&ZUf$goOBgI0Mjb#)CuBr#FYUl z=8PBf&^+T}UD00>?U?$h5dCnFacs6PS1K%qd5mq%VhR3u^-CDN?1vs3k^7>@9&TmK zi4ObazuO9s+ zGIW~*mK9HIJ($;);5P%mG5S{$dm{Y`eiPvaY$DR(h-7bCY@gH*W21ecl)?ah4$vo3 zdotL~NF$SBM2$4Q1R{E*=@SrhJ4ROR^ag!gKclSE5}d2Dzj%an>E0*3n3H+wokxS3 zTXHb4PJaKvB{@Tk^=vS;F}&b@&-2nQ_^xC3v-g$znfsdimGKk62;Gjb%lT{YBh8Y znP-!W)#GgP&cT`_;e2!i59w?|R5OGp0?UFQeJyj4@#tj)lGQT1Sz#SKY-0%bKn8-R z&P5j$YyvU%c>6ecym_2?eCasvtLYPTWi~RnE8~TMqo#X@<7FFAn>rU_^y%M*P^$4B zW!|eA?or--i0ozG4f(o$?i>8djfMdP%kP|$kPyJM(8n?PBDk)ru8+b~vsAiO6; zCr*iiAu3+8+iIvvP-ei>0l9LgXf=%a z3XN9*M*JK{v8xCwtg!M$84xAvzMT zg{QZn0}8mO1Y3h@4b}D(!Z8W)GiF)p&zX5nM4uPY=R~bx9Iw!lTi<}%525z3(1VM9 ze91a$GF0oMGV+LYH_C{J|423=<`svztAnXuyHGXu&vfaHFxSRdo#?^ ztWI=vmY59Tl8rc+gWskUnR}=AK9kC%CzC=TKuDqYfCwT;LNAJh5Q?M{1yM$kmtM3xswFJ|MNcY`+1+ab9&o-t-aQ7tra^OCGf^4ls;8w zoU}SrAA;EURzgRHhXo!Ym0%z|lo{j+{tUe{zD=)H%(V{1NB;9FH4QPvdIW%tV@ z2s}eN)0*!@W3t4wBK6HpuZ*DF9AuJGa$6m?HK#Jht5ZBa#rQSV*ujmvaP21wv$~>P zECXrG%}xuGFbD@*Y;3Ku?Q+tyu`x?ARhm-uyHs}%kL}81e^U*m6uw9$Xo3B(SjHX` zuY(w;T6$RZS?+9T9lon+&ckerZ2RCZc4U7LH9eiO&-%7qg`PQSf(bk-{1$EI1n2am z0Sp-XDChl21L!;2|Ek7!!s6qc<2$HZ=eP(%(Dx7)ICXsKB;1D!>9|-?YdceGhqD~X zGC*Y`^f=BOfF9=wrI+g-uZy`3_g4|!{mzCLoFk^W$j#^-8H#L}ZIL|o(dxBc%+a7t z4EK`wCeN<>0OI^qymVNvgE-D%4oUB49>#Ps%sJ^o+JPjDnS*UMRRjw_mt~}RonRHn z!GE4?3h}`P48}N@9Be^Q-fy`phZ~35M^9v^7Dmh&0R%Y`js_$7QG3LUs*(A_4MP{I z(WAHCV2_qZild81+|gqgs$%YKnCo#K0bQd$RXCvxaQ43*z)V6 zI;V72)c&u5Y{KvX?x?AuY7KL_RYmhBfQDP zab)#SeR6Ojx^ZGB61$1O8s1&X-^06Exyy9PdqDa7cy}xJS4vp@QHas!GnTayoe4}J z4*dxVg!pFyM<5)X4uJAGc~DNMP;&F@?Ba#W^&^j)vF+ng;jEn|z)(J{Nkb7hf~^+x zxUS#q>4gfw^91+p1szAY%u@8C?LRZknI1nmsXSkvTsY5lv(x46XGxhdV8%Sk*j!r1F(rYuhnPl>O;1Z3kryIrThOz2Jf{jbD50M?Z-q86uCz@ z9qt;GhukF{@@eKAYp}kYDG6|w#~Acs>D%iS9Xr2PuUomc%W|*O*3AU|gcaSDk=AYB zJ(q#~ar2m7hlt^bX3N--EueE3wnaV>Wf8+NyQul~~K>o4tK;?}`9qqF&s z5E2ao;EAQpa_0|D9XQh3;x+;(a>L*)XX?2iL=7VydJ3J*q=Hmys;6FZD?te@OA4)G z9_97(0sI^pSKi}E<)v^NxJ9jst8iMpo)On0PB&j9{wRWgbW1t_u$={gYT8o zwaiR}mZ*Px2v*T;u+x4I{78yg%PIiw%AZKV7YX7EeXiHrO8qMsnTZ;^5wxu;tj1MCZ?7p7#~ zoSk-<2Z-i(B}pV5eZZ_aQ$jy1=B1Sg*eIO2ZWRimPgk*><@D9uZ*p$pE;>T7J<*N7a^>zJ} zMEBYz%RSz@GUV}j2s(*=CIJ~LLEY!ZYPurnUk1C)8ByCaL91;s*Q7QZwZ+Vf*M;rY zM{hREEO+5(W~2}4(|box*-FKP%4K5`=s^y*QL^mly81n}k=Z=66XbI`%YMWGOM-98 zq%DI7jSNHCLi>~2x-VRKes|`)ZoE&wo=U|+0q-xV28?scdcaM++*Q~*_P-nP_?Kt@ z!>d!PKX+xX4eaX!^IFDx6>+rt)2???&vy`xKXhfEoA}7I@B0uKrW$W2i8|ak9R8t8 zEMZ!Hlu9R(iyx;DwtY8Mr`69Q^=f%$;^;f6DQ^E)i6k@;4>DGTR{=8gZ;i5+O^)hO z)_NSgsyI*LG-ALl+tE-3(^;iBMJ$msJYA}1__)98csw9zzq_Iv&4 z?er^Ui#PgI;AN`>w5WJxf(Bw!0gXe6UKa>?K>_y@t#ez-?Gtn_*A}YT{XPySNN(Rw zlq1`r>67E_r2VG%!tjc)0$$oCf(krd+zO`A3h=n{kWAN8ES389Z^;Qg`IPzzxmcbw z)pD;>gFOSg4DL8!5Be;f19~tu5Dcyum@?Qla4_cQk51*g1&rA8N?+pUvcjz1L4D=m=@7VVR`a}AI z_6EYbq^l*3%EyGv2Smz^?$91Lln4o{&Xe`gfuKT$tIlE>3ws zGw~@fiS?%IC(7}h%GWh^RIuTB%oFH9|C;cXv z!aVq37)&Hhpw_-G77drG(k3+8W_LLI`7Ga5K-DOQc0KD7xcO@;Dw@LLyhNZB-4DzPkc$I$TJX8x5Ln<(ry{Sp1dJT(t1c@6W`}WlW>gyWfiwMOo3|g z+~;~H-t@)M+s;#zh=>EOHr6jt7a@RX1y2Hz%zc9h@u{bk^8-~#$|vpAr^l1r)jwA# z^=JH2nO9T@j0OD&(?LR_NYHW-PXqizA(29U?i7f1!w``c?81Gj^umM)?QUU&cA?Hs zL4#d^4oJFtR1cErxcYY|yszgT;CN;&4jfjZV|H7EYPu#Pe${m8pOe2mC}Pnxx5hKd zvlLRl8O%sR$S@_2zzE36H@r<+U8=|8buM0Cuj0++$z~&)l4b6&>qYUhX6Nh1x&br~ z;fUZG3Cu=$V^9`$n4su1!-M)2x6H5NMwKRV3;d+yY1#fAQ~Vy@IymmDmDtNW!`Jx&zp*QIpZSisMSpr9&q*;qI*U*At?+wF?>lgb{k zg|%L1wy}q^-q6sfcP;B{mEY?9Sz=J3B+BNGfx#oji*R`Z z*5q$$>udCBdy}ewKs`@QzW}kLCPbk4;jnGzTGev180`#Sr|fH0z?yc{3YIt3z??#w z^kUL}1j>pGuc^^gsP>xR^AKMRfW6g-C~Sc2!U(RsOA$@X9T~0-jbb`DW?f@OE{f{1 z@r$F;3+<-g+5-nMNs$-tMwvAs>=tl~Z&}Nco_KIu2nK0?^dwh}0_MQ-Gdq5ziaC)X zgmj$@-_)Kz8_abG8-x^cF;n)y9!H=_WVfT$nDuFuf&CaiCVpsu;ik3z&|)4STMKkM zaLwt0V62coB;bSy18=O=GrBomdr#{_EaaXE^OwJ<6 z(r*#+0U5`uSV5#cNZcf>620cH2~exBiAX@^LJ3FFO@T2Mt=CH-A!AzIZ+Csl&gLDj z@CpKJ`yu$#02Z$=VzuYlq^7>*L7L*u?joHnP z2fCZoXN8*Iq}&@p8$!P8kuj;50=0Fx^_cF=LSO!9wnoJK1HDONLgwAtoo3o?rf@re z1^YJ6rc9J`C1$%+H%`eU(i!{&z;BT#%XEuto#a{~AZ-1VI}Ig#lf*&-19PDwz6o+< zhL{tq-y>plUQ(^UP(z?Y>ijd{t$0E(ZctP+L*{gHH^F?I*Y%B#y2*J`#hb=>oxKr+ zk@;Z0Cl}6NFz*W*s(qHS&b9Z$&s4Kk*XW*)GEY|a4!CCPh9T%gr^sM0F;=6Ul&AW_ z+~@3`2krcnrhInV&IucIi_GipwNWsUz5Vn!IMq3n9%IHFb(onSaGM0?dDVzLcMr_Q z0{aWv?Q!_BOk1v3@r30cKmeJ&R9*#QW)5Oh6JR5;rn2$Qt0EMZGvI|@Mg=PdFqw~T zi>6ypAZERmW+ckC>x^>5kfZ`HYL-Jw~|FwE}^!Vp#fR^1Cgi=>A2_ z4UiF)l$&-)sZhR8CvNek$CPiu!{C|F(H7#o04rykQOgI%23A_%Fbnul_D#F6!RUY3 z>3`bkvrMv|VIR~lR>T@$%-H=V6rioNtb4SIfzA71WirogP&IpspYym_HGTG%Xj)sp z1yEcg?OcvqHD(#u8k~(`0k#I?PumAr=3$h%ahh`V?H7n_VaCA!=5gF0c4M|(f%0_# z6A^rI&I6_a~n+djdxDD}J^p0j__H3?X`m$a0l zO$Ta=nqCDQzf3P$Ko8xCY8%r_XyLly==Mmrb?}gYfL?ViYg-x_bET+Bqx6%z5+vZ* zTeO_JoobkmflAojFx%?m#W_-qTou2bGivqPg-4$U)AnswyxJ>XEORprSvee z57Q@PbSI+_Hb(cw3VOLaeVNC@@x#z1(ZNM)H>gnIm7p1u4PusX&A>Ltj-w12ML`6n zQ7|&899_F)!X4x^>YYm?T-s9xlB4C(Rfim~2K|jpL-(eTJCTTSovGTB(4LYU$qh?<=04<+_NvG#QX3DX1~v}78&uW6%yg{z3b{< zIT)Ujuk6bW^k(k3CH~AYk~>^tk-O;=xtpEj?w~{7yN1uo+YjSmMyvyQ_zW2$9*Upc zXThrRj^u^|`FyX1jx}u`$A<~%Hm@C8A7}*J05$vB>d172axdi(h=mG)PGAbXRizb{*Xz=ZTYb8P=J)M7VFc|2iFgjPtD* z=;$0>xLlVmOU_>+k+?YjFBSbwRnFDX*}AY%M`!861|7Yn3hQh&ul^*KLw6g=}WZJ<(}d6x~JoNbS>Lc;zjmb-K(@v)B$sL&ays5Aa5nE zQVYc4>q0o(6-Ge~U{iZG%2e{DTqEJ|h{ac|RZ8V*HENjM7}aXcrKW0Y)H10(YAbY> zI;!1K*Yw_~r`BKUs}4p3(}$y>+GuH{N+7)9snL|e^wPBIShT}1aXc%8!z;{<<`jtI zSs)-@VNtZOcS*EZxWCD3nPHbE!3XtXoSOHIM|kmg3E3V9g>i;YE`&9r+2LZ)m2bzwwnx5;y(Ktc*ib`=Ygbf3fHd{@AXG1dXeJmP-+WPh;01BcFz|wWattpY zO<@CIfxe*A`jdFEnTF-^)i!|bTOo_N+w6wt?C@LIk%8LvRTN@%Z}Z|Q;NqH{JqX#! zY&V2~YXHQBjgi-BU5^VTLh-hsTUB?o6l@jYo=@`;PZI{}$rrn@kXzgnSa3$19Z_!e?woHE;>jTEsi#flbWyrx_a8~bGWy=z_N&ez>;;5naC(L)MnLtf@fDtb}{xZ8A| zP|-IOmd;;L1byY2cD}BnZ>lJhrh_?8spuIM6f!*dm~12GX%&4>sV7XwH?U`H(B8L9 z;oHXfv5KBk4JO}~X?K36qL)?XGn(E)Gi$+wKK|VYP3jqdDoCMz)`h0f&eoYPX}wS% zr2nSG?@BMTo(Jgj>nOc;O0S91%Tjt(N^gYHBM@e$DIeuj)KS<0z@|e9&H{~@0eony zlN$E5^f}7cyc?n{0Y-%U1d znEvO|lQ&GH=ba_`_N(%R~t#?}AGGLz8+ceNV zmK5A_4>NQeHLwlU4C}vvpor;P%IM+e<>Ast?j@`uvD6^Wu@YCqxREN`ry!Nryp+cfwkk+w2#NdeQtq$D6q? z7zp?sGH9L5vLtFPj3FY75RIicR=6YwRn2jvn(2DGTQ}<|rEuKe!*86N?aSc8Ho96b zaC^Lr@5C%n$sN+p&sFOysu{Fgbe1Y@R1vU1ZO21Go$`E4*>DPxqujR3w0DU{&D?OQ z_8XiQ=XxEzq?+GU9gnEyGV%~%mmYN!+2^r(7Tf_Sk*w|c2kP}&kET3-One|uL2dbz zqt;qhk{QO3B_LhK{1O4GQ5>uTT|s^JOow5~$N$j5P71{sgJ29O-R05=5|L~jeAoAfszz_}bhb!@i zSKg{tfbZJ_Oj8RVos7E%$!V1tuR5~x{Vk_Qr{n_WH&TFT3Sz7B9ZXg2XgVBD$Ip?M z$>iY?^^hheuVv1bMmmqBN>-|DN32)umXd=ngBCq}OmrlugCLs@505^;`moB;tk*;b z<%;#vd$i8s>;PP03ZnC!^e8~*dPbh01d|W&*{WN?h9EA&+7|DRdb5W@y0qCFu+B9L zb<=0;)PuwkL%RJryGg(2etVLhquW1gm+rHfH%WU%!q-5lbm(OeJE$74)M*H3<}eTp zUwkwwup zrF5g|>5qE)dZVtMu>3o z6>>aE-3^grzG61Zr@P+%>2Ln~r{^&AMcCFwIBt)^fBSIqhPS^~bjM#e@66lx73P1l z+WnU8^VJs(_6LhFi}Q4gLR)-oYzHE_`UV5y+j7PG z-<~5*T<84T2M3l%E4x-it4CKwd;i-9-qxyJ1Hn!{DF0e6rzd8 zoY7XlX-`vpZ~1+lM@H{&JSsY-h_EudHac-g4=_k|=xR$_!VA4&Q~NXzUNl1=p?5{t z!*#|$uEP-Vo%k9bp)4DzqB&F%9}z+H*AhW=X_JO3{Ybh7KqQtb6sVw9SbubS(aQQk z{$oz+1}Fb$@hV9=8*WdtzUg@6>AZwxhcVK4Bh1)CFyaG2QxB_b5Jjlt=#2Vg6Wcl0jj2!3_>s z&$v~rD447hGuRYvh6A+`w2AC4{(TL|XMGfSzCM(VY9fDgZg-x6T~zDrp?I)4HkO3~ zft(JUn+Ys4nkw9`I5`M)E+~n5LPo9gWRmKMFN}Uzeb?c1i^*d5zB8{`ug(-#mwU>p z6@Qo6{ZR$YU^&uyOkRpc5chTgG}Cb+eN^kpN~3Se#vIqWe+49Mwg^F!kNmZ+Bv{56 zpLKUZJ+xcm%DWHT25p{kd(j^0Y7O>Gpx;>=jpx};}9%FC7 zPe9+fTq(uedZpPZPCmPm{9_OS>)QI@lG$(hGkAWs^>@ZfdmuHKZL(X#5uP8#4M}IQ z!*my?aWp;ZG5y6E?9D9BLbEVCH)M|%<{6!yUzlW1B_7Yh)S~P(GgjP@b4v>|%56l!E~ zN&j7f+ADp9LIb0Z)`#jv49o+167z6_AykpN#+e0;;_YjRnY-<3jzLz$Wyv~60|ICs zpDE%@x(!5W1A^lWa{2AoO}xFxePZ|o9*4CEA=2@>z!72)_C*#9yTu#jmvblfWM34< z6X#J*y~}=tG#i71WC3X?UrExJ<4Z7@v80fg?Hq{&(L;8K7^eR998XHheU6bb#)zPa z??k+9;)~hs_H%FB-#)b>+1NfM(bkj%TuIU(67V#s5~*d9l6+haIVp#FN}44ly3ItC z%R~xrZ5OATwYcL4UiEGZuDuZhp{B;)WS9rvG!6>mqsm(p=2HksqxlsnXim%zOT5Q~ z^EtdirDuoL_;9WSN|qC2Ve`ZZQoxC+VS93d;=W9!SH}ml0m1+Kp||a-t??FATy5k- zGviw~sfKNb7pvTAdw%>yDkT3ccPt^{SIt&aWX3#zFzQ}V6w?`o2|)+ix)6)QiipFC z7&hV`IaACRa>a;M$u1Tu`EmhBPQEc!%Ql;)Vr#yofVp6?({vQO3tdsK=_&RX`ig^v zf!we`z)%<|PPQlIr=}1vm}#l8!VamKW=3(gnN^%ym=n!6^NQnz1;s^$g}EhWadBy3 z$KuZRPX81*YTxM^}0It7UtQm;Q)nF7i?z<0y5#m%7-qFZF^=o_)C&enQ@L zvlm?9*;jetZ5*X<_rg2mxjQ}YTF+eX%b_3elLwnG}o zwtg1hx~-panDn#wi)23khJgzZw&ypE$?S?~F8bGv;@%_aXH1Qujgw#5Jv}5tYDQ{t~mA#A5-l=H-gubjXTRy>hF1rVKPI1uLrb|ZuIAeaA5v!)| z7c!|=uxk#{0NKNK&8~_1M zdV;r5nBK9t2)dS_fNz|E`nX;94=z}G+EFAPZn6ctfr7R-X#Z>k^xfz(fRgyg<1KodCb*^)Q`^1{LZQ?o7-h`|7u&Z^1d9IZHhbVB|LBO<&mpFk)bW$T7`X(ot z7S95Od9`uQbib)}mv~qcI`CEBvi?DQdE_DE&RW>~xqh5{0CLLh&X9buTR9&_KP^SN z+8?$ypwM>r86EB(E&zf+QoVgSc90Nioq1?kaY@Rs8)W}_I2iY082%z&`#mYYEkmD9 zZyr)xh8Auf!iUuwFN=rITb2JC?Rb>jV14O#uTf^)UWFTzmGG`5v(jF`Hg8s8wLX$6 z`BSZ%^fKM>EtUO&_TPiU4(W|t>X8$dN(22;R{woZ*9%ljw#v2g)hfJBm9AAQuU9Pt{vg*k zsqk`@zf7&VQgxQl@86|rLFq;O`ci)YQ0Em`c@a=qb7I5%G9%n@l9G zmOYRzF*5HtWfmdvo<#a5>tEWLO7S+yBWp05tOU+#Z%4!Y3k#>EnQojLeLy2`^ zwTX8sjn7=SKe$Gv$5X4ayJl7b6)WXe<`ziUvS?LdMHGS`LjZ*=51LE-u747$tIf*a zudTypF{c>iL!LR@cKy5vJtQMbkiR$xsIUo+MMrbYQ_3Dql7iHTC{+H#`e~n+fGzlN z@{%fu5?-W_LqWq zGb@-*&)}@YkT@5C5FYRNYCf(V6du%0gEuU8!OY!uC2^Ok7Xk1AwZOVuea^Nn)jjvB zmituK=V>iM(fN6kAEf{sHKo!RpFlG2O@2TxeN@IO85U zzGjQgzW#bJ5=&#~+&naoe!*L9?T`9!N@2F(?P4^S*83ztu0?41SEF4tCj%&BSXoVK zY5urfO0DR(jwj3m3jcWwo<1XgN;LLk$ivFITckr01mbfb+DKS&pTe5t?cf*=iyt4c zuEOz@ay@rCp-1MLZjXyqGpMhnHueEc+k`)zlVuokziV%H z)fRWzW_PKD5f)0d151_SmlV!vPXhEZuEP>ziXwbnxD*}M{gm!pqnellwN8SPWq{V? zRR)Rf{c4gpVw5)dYiZXA4`S5P2ld$+SQXQMBnv(X;-*<R7`Vl|p5kI#U=R{Kr zhmzzgm36mXsH2&rc}~^OPxVK3{H2P1t@>QGZo1B_ZP7gxa5MfO{;FEd&PE-~*+(I$ z(P5Rg?#@hd`6D{I2nP@VccTzQf;va%K`oqwmf^%6U71Gw$EowkHbcnAbmkQ`**-kU z_+^@&ja3bDRCYExfM4hkH;C1ceog7!^!s@KEp)t0EkB-nKj7su?sNTU2QrG8z-s$$ zAIn(R?@o z94&Ru)|n2l(@D8Ju5mup^n^}-Qwz|}PtVgke-RZ-__%7@NXU_>7JW%)?$M(Y1#-U# zaA#2-piUd;A`SX6l@!V!6^#NnHTn|@$NM|;J|{OfKP?v*#EJIZj=7P7I7jQ96qfsG z6q#vsskmZn3#P-;k!EnSC)17H1^wgg79_meuLk>CX2FL$#6aheYR|q&hXA(SrF#VR zj^+d;#LfbcC4PjBt`iB@_Zt}aV@ zsqUKL0J8!DHOY&8GY}QW+V&{J?U|Sc<=2+hbx6u)lJ8K>A#GPqboY;{hN~1aW(;qo z(_Ser?X|4kL1cF5l!s%GZI8(Sa9Z5|-OXzMEehb1JVV^X82)t{?ofb#?QFh;xNpI} zaqeeH?wL*MtDGCf{bzH$?%r;HSp0#SJ@5-rAh7C`bb^De24%+NKPf^dl+r_~o3*vF zx8JY%8HV12aeR76;fUb9lU?;AcPl*h3AdUlXC0zzV!H+oBmjjmil0T8x(#mlrc?SC z5>)3+XUO#CS_(a0OQ}PpY77FxH{InXgT(IOnvaKT(TAcJ*@<$!RZX}M-QtQKqZxQ^ zpr*jz3=kWZSUU{NII4q$heH9$q{z33aat=&rM?7f$>9)2CwX#++rn$$3IRmBVH0$) zW7rjw0>_b@7Lll%rla%X)^?~a{VmZmVJ_BE14bdp_BthIC(rRAU(rR+DYS_9r zEPJhI($^;8r$xRxZELwUg-*LO&EV4f@pj9pm8|+T8eCaovX|MJ&9^XT;TiwA6Hm ztj>^C`pg9cPC`X`yTT3E8tWAi_WnSZo`wI*BT3Yiyw{MCXxiAaJ*gWWXHd!8>D&SV z_rv>k!I}p)M^!v+N^6^rD&Tg7>T^xpi{CKY_1qVAe9#lGce+vI)8$Bj!0vF@&;okJ zLBnlByHFW}=&S=OFh_Mf0~nDGJvya*>ZvHXmyt9 zdPSVV;rg$kODw&dpDX85yG_IT`UFz;2MXQ!E(n_Xh`~?ec6W-sf-*m{X}%cjyh=6N z!Jl>Qbq$CsbU1!RhgEcoI1cMcwKN)Lq@n4;YJ0w3w$TppKC<4%j`S_c4F5@PZvj`N zcKD`BnbPxW&t$y#t*=%HNhOf$L*gp)6{UZtm;g;<0ykZ+$#9#v9e#^C-<_H)qQK}= zuIX|p8P$Pu2}Qa0&eDk|2*bI0>FCO9`XTRCtzOeD@wyzZ&(iUx7_X0dRSYP`D4$L< z0G7#6{;jyB@l$@fm~xp(5@p!#4t+Foa?Vd>xYr(Td)qw)oC)LnHH8!WxVEZ6Gqu&1 z-XV1w!o)fB8)q;-uzGOvK;K|`Kx55Z7<2}TgSmlC3ajTstgFy0`G2te-`oDa&R)^M zwp3)>ow|C5HudUkT~3IP=UxAC?SD-dU()U;ZT}wIxl2>4omyXE{DuBA^~?TCI`a?P z|EG!kZuv4J zy8k5*-vi97vgeorx-32OUQ@i!IQN?Tbp|KUsmh=2K=??YeZl!$@7`?ETa0FnbHfDk z7hJ&k?1jd;D2c>+naN#l@b1UVwAC#YQ!1q@sQq(4L{eS3mD-63%o`y@k{JRnD<78z zv!8lOnN{dCWGwiz9lj^vMggB6pg#wCf_5_|+%9z&@wow*R>o13LU~_YV-^FK+G2QA z-EthC^8?(rh;%1xOKpEw0gG=QBfuYZo5O@K)tq)xeS}dsP5cs+=U~tzvY6GnuM#x$ zHR5@&aX<%61ww!q+jDK3l-nT@2LPh|#C=$+NA&#d*2^B&hg_bkB>31 zO-4S|j7-fm*V<@+-4QAQWGxORQSwtxa~eecs2=SY?QQ6>dmD9SD45%-SER?o#Vh>1 zQ*OgPt+|eTYg5OudB-V(h?!AU!4$}bkn6ksgr1xMSB{|silE~$06!TIFEjD*a+VVA zZ4|Eh4$ARQ)Qb}TDx^&?rq?>JitR@ORvz&>+26XJ5?>vR*H0uy?wN@PxM|+2xG#2Z zHyA8^U6J9ZHHOYVR7_iE=KX&9*J9soKpa4`tlFX9LNN2F5H_Yk>@2pI6!c(N!@gFq zGq{7yFv`=`Ysl|I(fsEN(+w_<}qJW{38u|~dH9%K~sqK?C=Ach7 z3ScwygibxVJyX~63|!cN(-Jgz7)?m!Ur`T@a+Sh(V;UX$bSC7>#iXJalZxw&W$jo0 z@>+L**hz0o$LqF3D|k^|jVBB66Z^*Nc`rz%o+sk2LXrh
      k17dH4OF|Xd=y4;ND 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

      SSzc>h?CY3r2CUuUWkBaDZ)Fa!Tq?YRf{RAXUTW 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

      A&#gZJzTB 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%0AAnhz6;6Nz_n07E{-xax|jp&D51% zm#pyXOu5VxF(C5n^_*%C{cF{sI{Ma^rmOLE-KoOR-+zT|b=W4twsw<^2JxC>eKVz* z(r$I+u{5Dgqj|JqfI13O$v5>vJ>~g*0@N{^x;^Q}bl{SouPS3TEy)BE2hNVLPteY0 zz`Z2KnX6pHsrCs&nstQi$GjdJt4wARe6tzI#=r6D!6wt2qh3l%A`fYd_0FM_r2G3S z|E4N46Vf+UrEaR~q2^r_k1!Sr?>P=6n>SWftf?Z4&WyxcQc(AXa5}5uL}whVED>q| zS(DJ;CS&W!BMhY1#|4xUTTIB`WL9ki(zU^4Ahd4a_0q#8OLu3LzpF~WU6sAKpf}D5 zE}x@U&I!`?({to~a|-v)fueRJ^(xhqb0CMhXHNNsIdLSuZ~SB=+h_8Ium_r3)=^XK@sV_!p0Z9 zgrav-nNSd!}MEG4Oa z-|js$uARkL4Pu2WdsQePd+40WGRV*ISEk-Aq~9#C?970?Z8*bxF%x%a$s={V0b|CI zWi7zbQ8561XzFes#XZmD7;Ewljc%}yw4S-)4X4BvlFstr|KP&7iv`xJQx|ZLE99Lz zH2J43Cj+whkz;*4^=RpCsrI*4>&L6Jo2xTmjD~%ASk}R#@VCR{zQbaSg#O|%3W6aC zorXYW8oYX}@*s|VrUO5kl({&`%Cd`fb$FWaGWJ?>TI%b=QkP6kZK_T`Qhj*o#+Eu* zXI$fH@-qQ=lI32o`>@p<7vT%$1|B5taboX?&8N&1q+&K%kTUltC`v_GF|vP_Bgt6Zzb-JfHN z=ALR@2@z{SlPD2Zq1C3$Vnkzfbz-5NUz>iUhE2iDvR!sbJL!)H;5c@JRB+>zV23WtY|ZD{IlqE~!mjT3dKy zTJYvHXZy6^^=ZK+wdo6tj5MlPd#@@Ms$rFAW&ej7R$xja)&YfvidfK79OGF9o45Hk%{yP1;I1C=I*{F*R9O*IGS2(=CG1v5Vt^ZCfF~FGKUYmFm|Eltd z@nWp9dzg662es)}YYU|gA^ac4p9XW4rZ$&R7WpX8c;%U=n14oDBmjk!4~?z(%)5+n zm!8pR6>(LroKcN-?(VPk57g@2wTZp8Kb65}wds#*8%sYh8y`=MWnfC_Aqfmzv2fPnHsN(ULMqR=$6?atu-_Hg6AXz`On(mYkE8Wx7y_2Yo~$q zQ!4mZZTdiMXoNcKJtchTT+&+yg2T$=r01i)Xd~b9OGX_486wW)mxhLN;tfOta$-=} z{zHTh6T)^!>BZ%xFQmiwXeW^dA6WOymGHYf7KDyoEQr`JG6P(i&+jcSvH09#NSqMZJ^g)W&C?#g>h>PUO2luQZR&afR8 zwgbYpC2YIC_x$qGzqN&Lkuiu}dZ}xzp4m^j|EP<6Ri~SStLyV$)p^795RKz1>9|g3 zISV*N<}Be7d1Wd+`jzZ^RX)0Ts&4*kbVT#((fE+| zf7a#p)%9vZ?>Qwabrx!(yxk^Ey2qYp4Aj2Fquxgz4Z+EjV4DA1anr*Q@hC&_Q-6sF zs^chf#6oe@Xnj1BRkWqv-&(I5z=%CspL(ZW|GU#CN$1<)#MPq;<0>>O2u3cpE{ghTP(!78z8Q^ymX|Ey1cT#qVjq~F=Sh1Z72>jmqhP8?(08>~b7eEYj~$Yz0$v>I4Mg}%vL zs=V#gTJvs-`0@2tAP+?lK2@li6>E+we#VI^vw4^w_;>N_#;BZ`a&k(%k*|Cw?{6>Y*9-MBST!s4{><6i8!BFGz!zxx?LAcrnT;hY zAc^ACMravyU4P?u6a7muiL|{JEoDIO!ZLYc=4dr#!a--4SFSq=Ni4vlo(vY$!2jEv zl%CD`Ob}s(xTF+FiY+(cq!Yq+SlHHtZF;%s^wp$@&Zg6^ZS>bP>MI*ls~h!s{e5yq z-(((O`+Kb_{!zEu(QR+<&h6Q0RondJCK*X&7Zp?OxKd7As@SP6Z#COk|t>P+e{e5;ms!R~jcVBDt zUvJbeHRiu;)aTSHTu2pvs*&&3I5PiEjeL#A!VXeYecAm_hNuXfIKr+)W_a|A8ub;9 z1W-)m8AbreQ4KmoMu3i>gmw3g312qenuu3qs*?X=iJ~XE}4>m};S2p=qHRQ*Vt1>-XX4 zAx`@7rtHN{wI%WW8;v;9dU3FpgI535$dBsRZ9k=R%M5PnC&+(5;V#~uB?h*Rb^jU64k$h`jy-2&mh_6xcn0Ory^FDH# z?$)QoPm}}fX?i$#@eITl6$t2HhHTV>on|ry_DLMeY+H;1dN}Uz4s=)W%G!R5ooZv(=mL)SHSs zsZ1)Gilnh~OY(Lz{(wyaTR9yjaNdVweJ;O{(A%c zSs))N8}yQ+-*m(qPUJm|ulOy^>6Oj(rPc5|Fpeett6GdvlR#uOlE3E|I!ZKOS*fd? zKL~A53EU*ULB_7ZX)*Vq2O+%#wYjPBDe93_yTpz5ck3M0{Tu)lTlJQm?OE&jPJ`rpl|r7a%2OtL&ksfJn^l)LgsRb7^DsCMu}Nb%>n>~ja^ zdSvK9*P<52=XsIO`;()nwvDY+k^TKiQdC>VI#EKE0Cy1*hg=3+nmSlm%0r+mlXfaV z9d$b0AkebApKcq$f?H(7pqHwFA(vuj+Qm?FERin+A5#mq6Tj2JS5JQ~BrK==ovT$LQy$>m&}>z9i{15;15LUEUW0t|Pe^mA8xF zVC2vLSz#Z1Z-rfN_`5$An5hc#O4^7iMkwQl#I`sphrgN*Ji1qk#gQUSj;UUyCA9j$J%3$w(Do?^sc^iq!9z}k>U^J zu1Q|f3y`13cC^@OkVm=`oq7VQsC0)SuHbU1lV6*8?ifW1CnsQ*4(D0lAQZ^^Gd>Hz z5Qg{*W>MFaG9yfx_xCF(-?JbiB0&Tq-<+;;p`p_yQL_S?!%)8%5VmL^#Kq9h-amqx zkd9sD7bG>&4=FeNA>hx+w2MdLMnf=)5iz330*)XpP% zf&%%Vv%x5k!#9Xdt9Tb?>=F4iT2TTj_zrh_tG}aFztEa~vsE{#HU(@PvxwL#@C71^ z=uT`PRLEvmjo;l^{!nA|LDQ-S8|4Fy{{4;mp++>}D<=S#l=t={i@Ih)ME(LU)w-wc=yS;3n2J1^HD2y#Qnn!!`?O2hc@H4T50@3 z%e-4O+2r>M`D+%#qhfa5tQ+mw)w3?LXV=d9qnuqc>n?Vj1(b8Tw&<@ZdRG>+&lSBV zJG~D(y+3!>T+^vU?8?sC)t!{$xw^AvO{a5hXKZz+x2n?%TYW|60OoA?=QQJV$jD!* zNd^1W_HoMXc#w4J z=vNAjB0?HG>W$~K3AbX5ocZhmQLp7);^PH14|j%(E@u{9T(v*Y8M(jHt5xBp*j(hQ z&c3qWOT{{qCN;rLdR32fQo*HLPxq!lS9En}pVgftCS2B;eCYe{8>imooiVr7{BO1S z--*5dOGjMQ`Jex84b1<2|2+uGzWcvg^M8Z+zbwD`zu&pC^Z)v<#B%i2uqLE;@=WI_3lWAns1f*W`9UR?=rh9hYJE^4+3pw2 z{t-<6HaQDh4Oh0&J?4cu*mmet_H;Jc?9J$yVTj#X`&L{`M zPsVJeDLJH5q;liJz=37%6jh)Oe-S=IP&V~Y>ZRDvJn$@oc|XCoGAjAIdH#j-VpZNJ zbJOxL^RXB%)$g@?vyQE!PIb>(?OhA&z(6_r8a-&~yk>+gU}?flaajRCI)2e?`_kFs z>e()=eE^$1&+f}vDpt%kKKMsjZel;+0(Y(}6bEAvxW0H%#W8CHQ z>Q~N-9_=lXM|;QQWcktdB6xrQa)kc!h}hBID+}~rj}Vv7ufA%&i5*icg(G!@H=klP zHe{UyIHn)!Evnjo1T_Z#wBpu@fpq|(5iwPc6AO8-Q+5Lts^TBx#2cvXK|uB-AkBuf%>+h%!FQTXrO$%A!)$K& zji$@f&|xYGpy5Y2QZ95S1kVb23_o8sD1C!S)n-qXw+LveDsqJ{h5T>Sp7UW1Xmp!T zmy}$wf7Ivr2DhGTZpDtcm=YUitA@*+cwL!2g0!7BcUCkONd`i05|MWtih5__cM<@h z6Be-A$TS)hTP@0Mr2ciHtg$>&cA<=?Vx8&w)LcmSGaMpcox4b84H0ey+yibZV@yO~ zx#yQ$O!0Lg`;M^wzK{({j%X&FDEoHw`Zq|v4I#m2;27hrCUq}+Ha72edy}zwE5bIu zNe1{IK)fsjMS=& zaXPZ3mMQyd`CB<0X1)x=6c}jE>=~`rtw*I{({GVM0;y9(VkHP?nh4p$_A7?Auljo} z(K7ieY?tQ!zOTr3Yx7afl^(8A2^oypHTO9aO)hep@7{R!MlESV%hOku^m8 zjHq5DPgP13KoF_0k?9)ZbCs$_)i{|7?1jrZ(n~wqOSb?`Yom#I%pq@1l9oP2o(h*k zjnBu;U<#kboiH&R*etcMj9yItAHbEpzc;u`?B-r+-LMGP;^!Uy-VQ^Znf$yXwXefS zFH^_>Jm~iWy-x6#j`W8e!~iCuXw1h;XM(%D%)?CCCQg$OyBODEHPiMYW&o%)i_)QZk5H=9tws?PLGkIKMxqf5)3klBL8k`QifMd z70ai>W)$Y?smk^`y|z?C>Z$I`L*0F_5z>Nvuu(VM!m~spk@NsDikj~L$b63&orb0i z)x{ttMJ)vS0f{<(WZZKU)vd5rqc1hbUTbE2gir?@%j^RnoW`SRRJ_o2>~&k-F7A_o zNgN8ch1=zbg1>aq1L5CBWs5q3iz$bD|$JYsJs zEi_iY5U9|=KQKo!`d64s-GHkwE7&d(!P5iPr)==YQ&#ZQ6l~8}&NS9>gCPDB!qrKz z$hXNmMUa+v66^mzMg8RR?KZD8C-dkjSg4-uqJ>$CU&X{vaTERT{@M8lW{2*d?LRa- zv2eB+(6(tdJX^2(?so6Vc6YEnQQk@BU1)RgI+hFN<@>Y!PiLd<84W(QF^C2e0N4%hAHf)P7JblrZTLD47Ly>HujXNx}4=e(lSgzfgmhqbHPrw#~8n#3q+ z;!>v|a?_Dbz21O{!|^P%uxeIQs<#XGNqyS8MPaMR)kHIJj!5DJD#Uw`syPB%r4xLd z^*Zl*z)Lo-;z05J@T@bG+>S8W<(BZK%Th@7@m<2ra6E#n`Z?oR`*q96qN5Y%AMHT| ztb@rKy-pBrmmO|RPX|=YqO5gQVS+kCS zF?7?-qT^vb0u&8aK(lP<|L=ce~!R3w{t^@4*7)$3gNO47% zvz~l#&%!O&!S*pU7?Wi)PPPuW8?14nQGaPh5NGGkpDT>Z=TsZVLG!wXpJC1q^_`id z(t8tU7MxX^ngl~dH*rsMkhWJcUhMm-PQA`q#MFVs1}s5SgV0P@d#oCMzM1ed z$Q1;bcji#=0@>G68GJ`(w6_&SaE?wrf`YWuQzM#Yqp~LihZ$9PW`(Z( z=YT|v#W(mVVU->UWl49FeNj}3%a?^XRbvt*)Km^eTlz{td~}A6{E=td|14zIPcYUW zr*jJtsn(}EnAL_h>Lf~mST#F!u{7Vn9`#7OVT5eZM#z3V$~^LcL2|G*NCHs{^w$4) zTqAue1g=ZUVniJ29cv}AA%HfB9$M;&E&^pL^k`QNUQYD6Idw12$ zU>+s@Sqs@;_o;3$9bEwxtA7ybh#71}%;>@b_cbH~#RB*DB6!+ReaZxX)CSvcs&8$o zJ}s+0om>4@b&toY?^XXeEcnu&s&73fzjKBe9e+1Bi^{`d2ZA^##Hi9am<5I0uN z9gn4ru;E)nLaz_Oe*No^)VV{s{~yQPPh#$m-Q`prkA)tMY0IaUDp2h~ZemI2_^<}W zLs_p`!hY25c}>}gZ#$~8qRQtS+{S?heyRf zIZ8#vcgOi>&lL;j`itj^MRVil&K2j(_0OLx&YPQ9I#(>2oA~Uwd380>9{Hnaq5vkyB(&9dQdB^BDLjZYmWzquNoFBSUVIjUJ$0=C$ z{U;6Rq}kO^!2arGZBy*#xu`Ty*~3hQlQE5BFP?kiIsf&Z{zOwezTc<%H%ZNX-}!&~ zdsBD%#UX_4wTtDA%8QJ8d#qQ9OUF0o5_c?!)|O>tw?p||8TEt2{mUAk`61*-b5hwVikQ~>I@Z9 zY5NuZ&^YX*uFxYGCn3&9V=x1(z3p8&Yag98TE%x=ApFi`%!5=LK`@2%yo4unY{ThD3R|3Q zI2)nTNQ!MZAIb5GEzIzOmr7%>Y8Uh8>vZDhDsXC^dV($LX7$D=^YR@Q%fIu~u+Y=P ztS!S*uMe|)yfDJie*EC0G*zpG-oe~UI5-NIPbJb>?<}0Zox^gQhv6~nF?p>J!!cY7 zq(qi@(9?L$039aB;W!?wt`g!0RZUvYe2Y2sdtSjgT3J_*-d*;0awiIQcKv^C7umrd zE5%M5ul8%tSbaQj=Rb#qJ|AZ78J7BTnA_v__uX{7;M(y#11P=IY>^YG1iU5hJf1Hn z%1-$jGwA0pn_W&BNr0e^MQ9f8dpy4kPKL8U+})f0Xc#?0ccp8!W;Y2o-SQJjhsuhx zV%CQq)S<)bb`x*mt<^p&sOexnE9Py}rjqBU$&K19njaSX1@P6- zXT>So*zw}|wZEMwSI#qkJ1^c>bu$kzX04b9bLE10usauu^p(fUd*?JiIwwW|D(rY! zFBHCJ9xS@`^CTRogju+19=QeoQ=(|uJX}3}D41R%^v(7U{6Plp zvg%U9;hvnI#}FhBkbBr~=kaxK9#8TvK~sx?jb1Z&rKJw|-lq6Wr;%_&4pJkiNTlJL z9%yrU#3tUJpmH;(OJ#wgYY-mrI6^JdvgG=)K9DerJ9K zP{=b|s(bIp-W;t9^ERg6BU?$%()*5Jr3}wb8lTTkdqsp~5JEJJ7P9q`bp?+3dlin! z1aQoMwxnULM{y+jf)-Ob$v1fktv-$LZ z8b6!MI#~@WXv5*YzAEJxF%ogq2XoTxR4XT0$p4M59ymjODFv_AL&wm+)^VV5{$)6K zDN!~$C_i+WK(8`ytiB8%7+DFu2{NuY#TCN1_A;i&)~W)DL}Fo>Zt1}gY-5`CT8C#i zC$J^vpVe+`x{TKBM<6|pNl0^c$P_b0R=?DxCw^gU*1x5>f*VQR%oxvK#^Bl@wBE%i z#Ng%7Ow?Ijf)m_GN~)^(8Ox*xPxkKnqK~E z-t4ftsj|ffL)8!ji(s-DSFa83$nE6E1*cZJO;0={C#1(u4IJ;SV#1K|b0^s2+l(95 z;`DhvR{xX~yJqxI>(|L{+O3%8u%UGG?bZ5@xbAcCCfNZ8O7%fnadOoqo}=i6g2%w_1uH z=$|`M{haBfosPu^ZDns?vo9CcLK=%_^0b{EK8<|7mg5Fj$(q@qyX+tW6$Rk+dWR44 zm=RYnIP}dN#2BlATaGFWWrrhXhq2%a#?%VEVSJ7p+s{~e1ufcEZ8wRxMf`;cnD5bE zb!vw0`{tE8-*SbygX9<{tc%o2S$B!dt(5W-`IBIK%1Sx%5_ycV{t9srHf_m0gm`#( zAZefY)Algg+dfR=D0P8N!%}$1{OCjToxA7Do91VGVZGise~?yXD{e)VE%L|tAudzW z2*pSN>x#)OMI9y91oLBr8a`SL{wL!(yO_a5NL#6<4_DKG*58C5=*p>>y;!Pi%mkgY z<@@>jYr8tB&ei>1TKl?XIiEVE^CD-;BmAV@t>@X%Y6)ZbT0klmMM-RR5Nldggor=? z1VHH&=(avzCPBbdB4Hk5+;W8$8t!krc_sR4kO)D?h*ldNUB*T0cn8WM#oIKTxk?4& z{(xXx4z{(ymYDwtc&xT@`#RCj)fMrWqy(y`A1)R7kCqDaeas(W>Q}(vrX54e-%dhx zS$KhnrFkbTKj5>!E){r;Olan3OGTp7Dq9h+)oa$k!B8k*&GlAEzurqa?f_5Rdx7x( z^IgSvQTFFkwc!F$H@+cPw|%Kdt-e5ni|*G;Mf&ljoMO=1{vTYD7unQH@(q1S?LSg0g;}%@ zWI4`+_-qRI-Z1vz_u;ZdxnWJ>ZSCl;7pJY$c6cb*9==Y`!52wm(|WxWpv_Tq(R_+| z-r>3wo?a04qYIo|oiZn&4SopPe00hFWB+}o$E-wUVIe| z6=iCw!C&{f3ccyBHp&RdQU?Yb6H9;Yb-hZ4Gof_SYeDZmlrEL3zY9@llH6B}lXLK= zXwb3nV5h6QCGo3@Mn&=vtjVOL^o?O0#%F2LaA_BOFaVNh&vVd+kZBP;X_i~3)BQOH)m(5IZhm*yHU}CJ1YHVdt+6)*Nt&ReN9f?OxK-f5h52iRv z4v$C4yR$?mydbg^0RnY6Ey{||>_ZHnZ}^czsK}u&X zF+=@^8aO%!9DNEJIYZT`c6+iFv$ry)L&iJTk}mhbwOTw0J+pHJEu7+!=TU=Bv@kxo zR-}kZ`-JUE7-b2tdxCyGHL?xkexWeHQp`RyR8U9}9^>ES9vuOjy$3azj-ASQ^g7X6 zQn@gb0C7XGX)g+2Cz<{OUCyL1=T5Xq_o^hXsNr;Oa-q-8w1pND4D%F$-$+&N{?(7uLXf zEt@E5VoBFBx!qd@_x?;SfO2?hn^wbpfOV7fn)fZ^>tMQF-%tR4(>3`T zK+l+A@p3=wOUfCq$I>)7b%VP(Sy*%Gd;u&un-y1+}YOmH$v-6=^HUp7NZDIqo6=&s$!=+pL{?H1bS0&vm{#Xd_yPKNvMnv zKI!BDaNI~RC=22XXaao;M>8!U96MMq{s&O+LQaQNXr-A}8@;j^ ziRh%|N29jS_jFMWXdVX!K3XgHa+27jC+7o$5qnd0V8T%+2)jfXo39tW%6!9x*!gEy z?sN;n`bt<|2yd6G$#a&6XyP8*I^QwR1BA8#cEBhecV$r50OJ06P8bg z;QUg@3#SXCs{IhVFomwo5Ej?K&!O6F$voNS{B=$eJN1GLpCq2+qO=iXamrdlf*=d1 zy4EL`gz;G>VSUG0ZuR}VL~xVys7B~XXi?zjesn#S%#`jXQH86wTDaq^@*$2!GM=*RAd#J6#g>h)JQB3#ZZpIDW%+2^(qbq zdbv)A@EAk~s*~Wv>!wz~P|L8Nv@$KBGD_>>q5PDeUN3H_qCnNvCmZB(EHRC%Z_snI zu(Fm9tP4XWCY#g(^x#t-WT5Ex1*Kor)kABz`5nxddPz{92s1~H1nV6+y>c-&mE0SX zZu-x(c*i{@Gd{7D)MZe-{+5O=lQ!YfWa2GE!tj@s@FdeQM5il$YY;!nC6Y8asD>UuSRT;2`B zWcX?RGzE8zdGbW;w?U%Exb(*0r#?k3VvnBtt~G-vdynpam)gdf8^yTadDg2zpW8$d zgL=^2fG~pjswi%DJ$w@Nd(XMmL$qnPgK(!?9eRaV9r>0MdB=h9Bu6~srk{7M=iFPw z4%d6bv7gkvDwzCrGfsxxasW+vAl6JbXFXKx$IS}5B1M+35+oAvdfxZF z(v>gL^y3(~ETqKKH!w)iC5-_&<-Efg){)RO#;T=m5vIs{5S!hEpFn6zTcuTQ4Xr=vV%Pbt zJLpok-L9#HE~Cw$UK)Lk5R>Kar656p3!13sO5N){QkAIflrV?bUT9?GV-e;%Iso|b>V>Xc73{a4acqIENC3o}el%2;#u9+MV|Q62 zjh_S2f{~zKHa6JJ)&N$fI%y7QMmZX^pn(l&*uiON$P_IYed}@3D;gv_nWzLNA0mEHmaZ7vaUSoDk5bb;#56 zQ~JShB>bsuH#t+*hk8+fu_750qGhX|MAnNV11oQ_SjV#6czVi9=Tqr4xO@6=<7@_5 zilLZ7(K+-^#M>RoN%3|h{cgm3FA{zOB26-qvplECFgEHiK63N5MDjya|Gt3<+z7Y8N zk4a)?G-zI3C*X43#2ELc?@uT*kLG3LWx{xzWG%y(1dW5gCm4U06Et7edcj_f@V*sa z&J@vjg=4%*_7jR*+)ZEZ4;HN}#*9Mjme>J0Y|Z9g_@0QFG19>;d3LRvU0hMtd%n_mzA}$<8ql=EB(vm@U`-wmqqd=v6O;7 zvtJVTuy0~5$^qw_2SS6Ea$GrA%&?LWWf=@BV8{sAjxjW>ympJgy)Qz~33G=iMB8JN z`*~VUUb>y-?byjpJ484dE7`?(DPPngm-0rYR=UzH;xZ8_$qDr95d+MDz6-HNQ_YJF z*HBS798{T4G$)&!4cwcuNM+Lf>`r&EAIi$c&dgvplvU)|;QJM2?Z+ZP_0VbyUhc9` zzGYSg01i`=vF%5aN+Ay*e(ctWY>IS%2!RZnLwIa(M8P5?USuuXACBVny4&&^N{|ULrzE>L)~R|5=$f4|mQq#<1AQQNd5k|28%6F89V>_#zru{3lA9cx64U8po?#@2 zgWyqc?azwS1H11N4BAG%wbC@!h*|(u?eB9E*xAbQqD=gb6(I{*ixtAtjS?FV2UU#f ziPw5w!pcIV)7nWSQ<^Nhn#*fjUaq~NIz->^OEx;1nff3SP^uctwNP|BnXXq*(~erH zukyevH(ukhltBCIJnXP>T-dO46{p2DHdqAm7D?xP>FOG*jz)8$r#x*2473iz-X;RJ zu6L8zhyHn!IQ>TPQ{!Cyh~3BudKtrjtdd^6byh--xYDxLqN33)N3OQ;g~Ms^ zqF`d#o8?8T&sCUQG@(CCr}Xg#>+mR8O2+HLf+ckXF`2-I<6DjJ{;o3B7{l16>6%)q z*MgUTDZ~VGtshJ)L57UPdKIvU<$&9=H65iMZ_ZkmcTAW$oTW3%M9CncLKyV6qQ0**D1ji2K2! zMLgB_6FhX{M7(dZKUp?~M%lh;U8#E0cC2)#8gU;hP)rR(HBbLfJ*DdY>sTZIf5$3u zEWhtq^EuWyeXMKMSd#j{Zq_okT^i0^iYLOPtf$8xi9;Er8jhU-=e5eag`~z9XweI2 zyZlawk#Yj4V3Oxn7WxBuO^NWM~Wf7J6$g7OGqutqa$3g2OSImnGGBs4^5| z01=qY`7aa#u~f^PWsk6KLHJNv2ib9vGRGTsgK@QuQj$=Hoi8PdMdKE3l6t~QJZX9K zXG3$DiiSPG*u?uqD!EIK`9+tJtr$SgM>M2M!oF2B^ce5hq=(HZ9rq`|>~rk&x#T_$zTftmMbkZEvz@+z#P?gp zR`T2W1e&imF}J&EK#lDThwhJEaNqV8RheNQyJ zOH#@WPF|*L#96`)JhSwJcHKR8_HMgjqn$PL)e%?0h&hY73IA>e_L;*P?SNPF>9LHu zECt!gZNXxH4vQTv9w?Gz5dCLcXV@*JVi7{<15Sfff3b_NqpGhXqL!>_aBX6Dp>CzK;ww@&c8+QbV2p6GlD;E z@`I;Juw7K$;V;#vDZzVP!L~Wrw*1%Y>O24EmLu(D*gvmCTg3UI>pbzD0z+6NS{94i zro+nX$3b_+__#eBaPuVx*A*%P52!DhjV|^^# z&*2j{ej!Yz2)caeYY|=zYyblp=mP9oiW|Zi+rBy6lW3_KBEwO@@6eD4P$gC~iRkhN zN(Qbp%$kl)l%CUZdr(L5KM4ixELOK;aH=?F#r~Aazj{**J}nEK?`*D z-i1P(B3nd*+6>U{PQU{>Q?-OAMbeTPs#8v(L8fr|#E_-{ahQkNzpTxbZx{7Wd9V5e z;9yJf3@26Ts2yD%TYsH$_~CZO$;HG8=jbT~LO>VkE#xz{xV5rD*Z&am3E_8>ezVC; z)+9>lRO&f1TgqG`^Tpg+hYs8GBZh6LKdUYE+g~SAz=D;y0`W}i7T>P*48GKrzja$LCgmuX^EFjO zd&&RqD{VZO1uCuj$*Hp2X@(@q$HbOQT}}24L6ln4`E<3sQ|=ZR9;v=ZC@?~pftueD zq1`a3jRldiRNtu3x5{R|K{d)wA{mb#V2?7>PTKL(VJD;&ipd+0!*D4Qx)p0-tKOm6 z5SW5G^O^&J;ArMthR5$Tl9S~T|6h+L!#?dD;q4aIJ0ibZphA2tKaQxUiGY*J-e`GO zTh>)p{#IzhArd#kx)6v4>1mq;$ZNt$K(kB48mlewif##}U?PZz%ef}7aIHGQd>YTq zFivAp)B*`w=~&Yy#klC$WOeNuX}n4WboGUw_==q3EVw%BUo(WgHpVoLFtSCEOxP&|@3ukQK<4>F6Ws-0y#q`#svQ#}i`cYV=u7?-LFC8rR0g zNb|4Ulg`)Nt}miK3+R2~t7!cD@YzR#fjodQ+y|5#LZG{z_3;QfGQ6)2b-QvYi^F(1 zNpz8Zrd>LU!4V4;ztTAhrL(xat<-3X)lw`?=dR|218Qw@`W3UbnzCDwGc_hvOIatr zIc^Rus(GdHv8>uEgYEqPdR=|z0};ISZuRN8 z>QhJXUi){{JhM;UNI+Bg8-;&|s06RSl<$b*Zt*W!YA=rW{w+fHdd7nI!SE{+cgDO2 zV*b4`|Grq|-k7&Jc4++9bkN8hW@#hIYh~G5)Am@X_&hWfi9qmEZ$=$-uGvc4s_NBewkVs;C&B=4%crZK2%XHTtgpJ?9AJceqe;)4& zy1@0i77A^u6%E_55x_OgQTATp18nB)%0;%AH4^yEU3pr$xO zXM;F^$@xJfw&JDXazsdqk-#paFyZvXTUxlJvNOQ``N@(td6;~U=P;+N z($m&*y@~Ni@Q9u~(6D#FV`_R=Tt&&)1l`pRMKthh7OWcRQOx6HL0A@56Q~e$ccSTm z1T*aTxRp#sGt5-F@14od{*cFBRjl>|aGn-o@D5cQ+rS6dt5%JW#Kn#cDhM^{pL!sf zW-if&;GH26*Uop$@FSUFsaQQ;A*bd1oilF?*>)&0oS` z&!+~UvNwScDe2F!>_HlGgY0n9O8_*){e-Sh)=$=5BZfXHvQNNs|C_i$xMk98Gt|_5 zifByiX{Pje$aUPLjj4-Uj{1@pa`EF!_ltcV(#fP_5^5=4l zoFk8w$$E~f6<2qJ4Fkocp&($0%#5P1|I*&aYO?Re8>hx#BoOBK)clj&ql-Ldf^D_b zV{h>KLMwR6?O}emPh2gmRib@08RjAsyxu~Wt$$bi)iQ2KYn4Wy#mgxJd$j= za3aJ}DikZ)Bng{5!gxH9Ww)KRNwW>N2qfn@cSg1@WaS^wWt^SS@NrDV;7}!0)bFPw zK?RY6nZ?UmT@(@|qv;y$n(Hxqz2qu6&uQ8j2aq0P)iR9vuokztQJraK6{GhH0hR}7 z>P>nk( zq(0W)`6%706vXep zzDl=NshI=R{`#ABP_d^O@m}NKEQTZz($M3M4(t`}edmpMLo%H>(^v_1t^Od=8$mQ{ zuyJFd8eI}aw+6}%SdWI$!-yY=G&z`iS_gs&Z#-3vYwWB(T`V3nDIocD^{;&J$4%Au zR#%^{;Hln-4+WmMQH0`X1$W*kCfy|b00ClqdVmH|fPJCxu2FiMuWrs2-cVzctT2U= zrY61=AzX15{?0G)V+OiZ4)DLklykok{^v~cjC>Ngo;98kOpYMCn#0@(qnKsw4}GE~2QdytA$dXZ0(mf#`nuD{E8Lk9lrvkM+v>R4{(x<~hF3k`%Z~IngO55vD=j+B%&u%>BY$ zD4Z9C_mK!46Im$2d6suSA3s;bhH{6E2e5!OI77;Y^RE4!EfzQzJHgYz!8R3aGr>0Y zU)$EEi^AoRcg3N97jw6n&1$bl&7_-?qe7iEx$~e+ zhR+qLPgQvj*)lFm6p>bZv5=Q~L*(8T=={s_W>tPzVGk170f8b2dmVO5)~k5hCy2Z0 zRJKTY5+}P~_R4VReqCfjFBGg>jZB9ruy}6tJ^F56*r&2Mo19lIwT~BehMa1hE!?35 zP)?=Fxf)D}p0Ee$jiHmhmdNbPS^2}IS0I_r)~eND_vSXRX&hru36-l4nC&7j`@s+;HHmZ)v3%fR)VM! zqlZ3&?3MO4_3AN^3A~v($TO@La;USv_mj{eqye5GC+hf& zo#LC?gnI$x<`F>%1TX``5Uiht2pfV-FiYt4(FKHvF_S`V)yz@A**C;(8kU7l(a)%~ zm`U}CFm7?l?|ViipH&H$Io~4~+(%hHgPy31e{rl+W@bp+!;@J57-MRWLwI06r3k{rdoTqiVFb2NAUCQzEc zN;wtU5bVe%>s76&eXLQLZhY=er^&`$BgWETy^epJb$H~6&cj0#5$R`K?A6NRH!dlv zv#sYtk>^64J3^uDq4@L2LPMtu^)=#Ltk%9Z9L3;s)IJ(#(Yn}R6-F=DVKFIo6335Y zpMv^z_2B*t<*d*_2K z;eQT-FvhhWL`ASr&&I;Tk{OSpf5B?1nu#{WF_~ItReN!_!XufbXIEXx4z03#ynT%u zc<7^lRqZq{X`LT^UZ{d_`2)BYQ5otPq-E-(j*s*M@!hZ#Z#ZNZSI_u0XzJcReT_j- zDi|@N=}SKmgJBZ!fo_Wh^wF0nuBk6bHv>O;MfHLv2Nx6#F6ejCSP`yXkiHz~=1#%W zqbVobbP)_aGk?+d6W!!K#o_jKe1AoNZ7Tts@Dy$o2Xq^i5x=VZ5*4+_(aelQIErVl zq5=+=$B?nl59{2sRM@kiS?I&wss%m32U@ktrKRS{%ktI_63$;sSM;4H7T4?f`#KZbvn_aT( zRcf2iz41QRy4RH(Im@7pUg#6_?FV$$2rVTCyBg9#mUwGaHdEU^qlQKzT23HO9Bel< zQHn7L(@yKVZV}JW&!Le~4S`#JKB*(&fU3z*;-?TvOPN9F1`Nrw4|s|!(4v%#eiXF7 zuVi%gS#znm%@og?56j>wzKsH`mF`*o%)ztP$eHFA_=g`57!+p+T zTQ(6E++Y3@XMduY#atZ7f=(d%+hg4zRjvArt`g!a-N2o%;|_IWq79~Do)l&t20WF> z=*~zH0{mmpTrD+pQ)!;HTg)6~d_~b3SE$`#2$)zSjV!jL;5+-j8m?mz=S0Wf?Lm+tFNj(Ma$Z-VoItE!YUc_$!-GUB#y9|2iwrVepFJ~65>^;ky**nX@ zc)DE7^k?8W==2``*@fGLIY)2yj%Ul^gcJK(n}eEycCa^4rbbeX0?WJ8(wke zeWw3SV7XjMsrH#WH386L=}NGKEvi~oE%cwjgPw!3 zP05CaFbUJ=SOTWDuEy4=#!&e~JS=3d9)%$c7EPG+D4pdX#!1$TPZ-Bl7YTC2n7;P} z(|7GGFydJ&#LT0N%YCSqKq@br)(hXCv})>AkIVSJRIlF~{>A^y-xK@JPnQu}&Jmk7pw2)@t}!T2_* z;#72N80Sw3#}p@*8j8hIrFc^5WzTpvIv|}7=Wmk#Tf1c=v$VLxDPHPS zcH24h@ytjgoynAiSCOX4@q*q*ksY!i;r+m5izUotH@5lUu&z~AzzWMlRz=UfZtK+ zKw{G3fm(-eMU_9&ZZ_NCGx&aAg!8kA2*R0v7V58_JX}{27=U-O2tWN8OsoIMr|xW%cPrWTpA**TMF{V7ti;o>t4?X-{>B=c`Y1zOz^X zH{12gMfq$==ynw@+-ezJCF_FixAtn;wMzP{<;Yd!Q?HhCm5i>It*fw%SIhpZULry7+N6rJycL_Scg6=@k!^2#s;eq@2Eyyr=mBhrhhm;dsutqcZIYm6sH|J zE{=>`9y!6Z-PBbPYgy!O;YaY}E>cqdP#x5K)=QD-tK>SBo{L0agKvn!C5tp;>~+bW zspd2!Ue6KcxllUIl#7*Vxn0!i@>PMckthUJKoM6+a_$Kns|Z1Fa$RJ9586<{9qSy0 z;h|dP1bN`ie%GrJ|CLB`JLgot0~94ca$)2IeQg(p<+5<}f-wF6Z^C2#{|8gCy;#a~ zb0hy1{_$;5|KH4q*<11>mqbpuw#_tIf48;i{xxt2Mu+w|UPZ@4zNb|YD1B5%hi=7x zXw}N*b2zCX_$>V)XVwOBmfvE%YXjv(H4Te*s(jDHQVFjV(ckzpqu)unSs=XeSG^t= zu?;?u;mbv|y*L|5Jbz5|YT*x!ULv@2T|U3vi>G=gVQ>WZe6fMzFl2T@VZ#y4Gsb@! znHTPjM*XJv&txGnIXyCUwm>Wocg@N@AZwz9I?77O;bG zmW#z$C$(A;nRfwwH_LODwd8yHE-}g~efQE>^1_%a{BvWhqT0pSo3(u)!L3tp0AJK4 z$Vc+V(CW%?7OT*{=*Sgez?9`&I4u*x10vH@Qh&KZ4S-Qpf4LXK2PQbQsNs<47AWx1 zj0W)wyR5&NJ1w!x8WwD$J1P2H`OzksCo)D7%sTP2--&DRkI80JTSayY5q;yn#0+|< zc-PN=;Ct`;);4-2g>CMOV;loRB(`|+QBOVMWw&A|Iyk(8!o5_LqNC^zR?nh42PZEL zchsl<_!tlxneusPHkeP$LX(+U502%cUenpIOTc)wcEXQ zv+i!S%@xnO@5$ilk7n?+)7pkNQ&|JIl`cM2_3je+onqoHk=ZHUCFSdcogyB{4ZOu4 zKMwwIcajv@t{xS*s-2?8d_a*~99L%=uP27fw1<5-xv;mUSYqow7`GmZyLZH=ZlqKO zgqXiX^RGoMoQ3#v(aiJFm*9&$6-}PS^uRQqJeMxmV4Ezw>3gE_2c!Oz(e3Q<0(kW=84`B6G=Fa!P7t zqpY_rCe#}J3MGY~V^eGS{u)RDX-TCsGavWDkwTwYyGiwVjOt$yqU3l)jBV{&=hb~0 zkbcPhNIvL_humB1gQr-q{YpHDPg2=vZWS$CU@w@1)U3rKLTfD+=|w`CJ?brCcEfEL zpf0OI5|it*WHuXzTMo=?pi(zu+6>_*&r(EhTS((n7{5P33s8i z{!JHgNQZ}1umm2dS^*_A^mPIs=&mHP=jSBD4<$(o?PqO~)`v0mveqe)?s3-fa=tg5 zVs!2MQM(PrAGpEEZr8W!Ek%(^?SIF>EoHKi_lWlS+oiP?tRI#U#z36}Amp8=Nf?PC zG7wGcE364UA7!E;{aA%QjdrG*U9l=tvj#~7N#iV~)CwfNCDP{A66r35i_vm{wBAZK zFUZKhipcBCOEY(h*gL|xM!MIM-0D(7qMIE19#vO%pOMMiB_V6|j*z>BS|O9|CMzFp=i&|I6cHq0lBY_a~RC%$cDMfgkQ_p<) zM4!gt#|XTeC3QTtJBO%03S#WU`-)xzkDEnkf;T)g$ooYInTyfkL%bh>Q;fAI(T51D z%y(-NMI3}y(JygO_Q&R(A~7Q0mODAW*vw7JAD&CqOoi$9^U?r-&~}+^n2L(EY;ECe z20)k2Soa8~(GT(R(G|jeH%(8xAc=txmK+pHqXgwd%y1X}fQqJ3$?l20C6e8VXnH{E zGLdb{OwMO>2`ZD#FPX(()mgRiI=X3nPh+~Fv7D}V%i;Q5S=B#nHj|st60ZoH-f-*m zj+*wP`ZafMH=83(vN___bxoq|t=SXp|F}6YGoUiKebBU_`62uDCWZ|kQ9pd#sOZSQ zh;BN26VniQ{xzD#qM3L7POir%(2H#eAYfCfoxniMD}d)U!Kr}!7q*mGl@tR?PbWQ1 zx6@L$Dz2ul7f7A>oo2Q6*zFn7>i`7{+Gp%ajO!S88|YY!K38=4}_w4y~88 zMaZq9d5hR@hp@Jbp*zGW+xhLAar2sc^C%Fr1JRaso(|A5tOKb-|4g&+K6c|GnVi<%} zh})h_1Y>gb5_e01xn>v>)G;JkX7RCqAe_(vdJU?PXPZXl1mnqkRmQJ!r13m21HHcN zF7tYGrzv)s!-MURVA~dKGr{%?5j-v7X}XSl1h!BPbU?A%P-2`BlV$ah?wG}*v`9Q= z?h+^M6zN?ev=i}&*YZbkt_h?I;?HF=&u6SHasSyk8GBoDu{U$-jhuQjXKl}El;AVv zz8n`X#jRK4;)M(-o^9>OxZ5*w2U)}Z65(DX61KQR7wOPAJM-9Qi8A*+Cd(v@x2yI- z_Ck@L{}2@aXEOg6BPw@KCjDS0bXSI~TWumQ)L%2xnB*0b&)bAz0ZN4e;;P9}r}Yad{1bYs7%`xq0Ef$lJawWdTZ8 zPj*ibceBiCoMCyrsLvS$#*AAajEBhY&w~~_u*6;X2>B3{KRPUhb@Z5QCI-?15~;%u zv}!wSkg`T!dO%;EIqm0UCOy%Gc|?Opld-x4 zx0$nTu=^wJ9HSU<%!-+f)kb_po7uRZ!_<-HsaTq~C$2JYONiSO_sZaDiyJ)Ug6+&; zn+~=O!S)~3y>_YKugk=L?Qml7dW#i2Jy8AR8TKPcw#}(;EbkEHuKm$oEL`wV?8UnL zRib>g$X&$^xLQp9{*OhDTXwz)85>LEp^QyuB|o99jJ|XXx+mz0f)PqM`|W7v%oe=ESzgaB5QOvzr{2W0K`yAd+WEv(j|79+To0J11osI-QsLub6x?e}53(z9z zV8qc0`yQ?w@=v==@WVZrd1TIA#Rhru-IRgWv8aq1kO(Iwk7Hz}Hr%X}8cHa&QIIhG zHKVBO-wdY|BoOTH%;{jz+WI&IWcUpoZ|n!@FGj_t1P=nlgGklNOLSH8^8OHx^~*Yo zp_UmjDk%2cM-H1VPn5qVO?;BuV(w=@DS&l;#i{s!F&7DcbaaaRiTpDJ+OiDCxM z#);8Nrdb`4#(hgPMUS-y;@uCx83fTfq;`0DgluX!sJWrlSEp5G5bO+hrMll1YCRRH zWudFHXSwJ1iQIizJZvgxLrnX1Es30P{w_wUf@}DskEWZLl-${!24yz34x#K_%102+=h5D z>VP-sg(U~>vQ;azu&#_leRm@4nBny5L%n879^^4t07n7cpCr7?blHI|vy==s>os7EPNdb)&Hm@_c?iMPD>uxRC%JN$Cf%p;bm$4sm{8mPDj=% zZUgfxGqw(Gseuh-F;vgvAG&hdkLhZh$5Co1k(+s{1yPc29ja|6IpkcaSScrgx{qUQ zBj`n}-FUrzU!(E^R$%4t2C%0lM`jtT#VB z3tZ@)~Pxjdi6f zpG>$aFaSNH&LIeI}&XjzSSK~40c8ftqCa(k>*H5R*nov=PhSQq}!m#P%I!bfnU zqe9o3NXY$U13k{71kzw2<~AfRv!mjRlKJ-%^c+2OpEbpP_-c9(xecosKyDnNjWS1W`lP zMc5Ar5FYRjA-2)5UT`N$TSUL$HH0KyAG1p|>=e1c8lPfpZWun#o$F3l8MW zr&&HJC4OH|^0~CWs*g{WQ($j;%_{kBgU*wAK)l`Hz@Ku%W2AVjK{Q<>K5eKYyJ$dT zrGB0~RK>^Qk$8B>Ui@!0-g`CfyEUZ`Y5;BUnib0o`f?xEcz>@!ar^z663+x4f#qP} zmI-*^i*2i?>S0aj*7^vRw)Ok^(6aiz=+p0XTHRnCf7Tq3Z!HnTqK;SdC=6MKyjCJ@ zX(>s`Zpj@ZXNE^v>2xR9ca$^{tfu0?IwGA7GTzYL+)vc2Y^W0jBD)yGuzKXTaMoG9 zNcuAu2`WwLa`w)2fd6Ym_^@cje@>EH;F6o$51OH$EG3Rn%!oMhAzU+}0K-paF8GP@ za$}uNnb31VojQckx1N-#bpp+;Ot3`|hpA^JkT^84>i9rf?d>LV3~?L^gjp(oD8M1oRLeURqrU`HZCt4+U6jF3eWc~1Qty+um zxsnT_zenjMoFznTF+Id1MFv)-WvlSFi225f<~rs4uF1c&iMg1$9-W+UTKmHtv^MjL z*3J2qCS>{SEVG}=+teN@K9z+%QhqA06?-I|@vu?$$oQ!E$lYR8%}6!M9l6;wUThx9 zs?6f`mnQqwruYj@@z0xBBS3+pQHa1LFK@Mbj`*&z=G#W~uSWN)M&xI>NZT&TU&xG8 z>@LfR#C)P5tG77JGPzZHTs}?I6FVu7QbV;1oPqDqs%FswjcyOt!;89L#6B^0?}p-8 zwt8&Jdl-kY*6K=hPhedUT?O*SVRNmQg*w$tq1d+%Lu`TdF^RI&3L6t_pD}}{al!WI zx^7tIL&tcaWw_nrwn=NJ+-sNYu*Xsfw?6HMd-?GW<%^?b;yiQj^UYR!e2RhpwcP99 zvbB@;)Fv3?vn=1$DA1{*0c(xF`d9Da0?0&6@k?RdS^eDMavrG_HP9|YwUMkmGROBJ z=E-|-kErIbmw4P%dz+`(ds&mYCkxbC>pPv+^@RBy@>!K%jPirKajyzGT5E8pYqn}u z;=J$QiEj~&!PI<)o~f%6k75;on{B@`CsUR*w=n^c}4Dc9H#lulPmv z{u{(G+0Wu7vCd$>7PQax{z6 zIIGv@mKeXFb8>UVZ`847nJ7TmKGeEiFnwCM;^fUaFvpR}@sR;+P+9oHt#&-bYzGqy zHa4O(q#G=)RGDMHg<~RDhylwrqjgGsO*vg%#LvT(t*}B~P^Om9vN8tKPE>)Hi1RCX z84fd1<6C&CzV(#8S;pQD^s9aZ(^Ok&`>^gn)(x`@wFZE(};R#|Nsk5`6s*7WTLG}L9MO4wPu9{H{U>xX3@LU%4JldB)A^`2FscCeMQ z5O=7~5FDzJ+?8oCKTBF>Ay9rgNNqt>MgB}HMfFql@)>13tuLPPT8qtXx{TKL>QinT zvSgJP9b-Z37zj|c>L`5ohX^=C_rec7hEaMpMOB0)lBqr*1#e+2smlZz9~C$mW2=bD z<3f#-8%;rqYfi%_W7KNLK(=H!$c0NI8;e`BvWNGj%QSU#KayF}vzbtTX{>K$f&(Wu85xxSOh&0%V5Loua?23r9`KOhCA1IFFKL_;jNX^((_w2zQAPqbN2wpsVKIS)W( zutF8GVOoezP)gMA{ho=$plst*`%Kwsa*C`}jabVh5!X04@VOmu9t%HrFLPhx&34^Y z#w`$IvDxwKzig+P3HHAgsvbKQp-`>zQhg?SCx;(cg*JM~$BW`Dge*iFv_kK2HMvSn zvAD3|+=KPzIp#V|No`yQ98;MA|Ar(sZ5+7hxLw_`H!G=mL3?sVyR*Dqt!TFvwp)vl z*LO)VLbS;9oT-@WWi##0)oflpp6HA@22S+?Plt?jC|$Kyj8@|{adrqM$))78&VX_2 zFk+drw5azD9lA$6WZn-?N<3ul7i?P|G~12JJSPQh#G|w!)mfcJce64+?-U-X6Y&;ZC2k0Y*EP1*UrTX= zJu#Q-ic`p)v)j*}^PDQ<29&9JQv zZJyIm9fB9?sh|b`?_V7ct%`fA~Kx7(CiL7qVX^qD)$!5WG2E#566t5?*$r``Zeeqh| z8Vk*8Upz_ugske#*mG)tj*;rFcr&idoW5>|I(ZbHv4}H)PVuAQI@Ys}uajA$ z@=sx`?pINhx#2j;!NZhYXx;byUK7hK8C}8Ho=rB?@w#y;ilTUQh(RQ=R}L_ib)_*% zppWS3rI&rVBQ1b%0i5~&@%A22auiqJ_f&OtoV+``GdsI88?<>xyDRM~t#U#Vl0bmS z0tqBUMgoHYCy5|L5J+SYK|+XNl4OH1!H?wL+gU0rqS*1iAxzf4Bad7kn@ou}(vhr9QyH$OuVPs_U@LlPZLeM(fM=?zV9jS`iJ4-d+FL{YV)&hV+T>JU$Oxj@D zxTtf*+ieJSSd`NAQR&nD@T}PGjrPBA7EQdu?tHCn{{-eO=H=a=wUwT3V_1<2zC^NN z&Q*f9*_p#=3?pPtzdV@X@l$2K%s>g{o4!u@b+JVnX6uGzF;x_>>r4X&z(lVUS(hEP_y7zyMcC z_KY9+ku!TXVmxC0pTP;cpWgFo(|Pa6;J%UWcSfe}8R=bUyo*fYN;1_}JNwf<%$kyW zRtX!h_7hz*?CAi13k%$7V?DB80_^TiGe5xI$I(hl-QF70z=AAqduyd$ttMi-W#}GJ zQQ=2zD@Z!%b_tzYs)^an*yiB+Lray@Cv+jpL{&TxywtwDGhxa5k#z7_IFtiybLS41$SYqB?mm$h4DYtL@w{vhNXnAO`5h`Go`J@cvM2kiUx4qH87 z-(!cHWVk*}?Xb}n=4{m7l{yu!QRu_E_BQI&m3qSR_+ff^?67CCpKwaWM!o1teKuoS z@0`CEhgthpN zo;E*axxWJPFSCQ{H(l=yxAk?G)P+g(6nPDwX-s%cRQ-OuhcvZ5iSIS)B;BZHYB*{` zml3+@0>X{Hr0>yiEi)`04u^9^0G1`nZAOrg>H;kDbLh~LBu^lp<+qSh4M;frc^DL9 zAVq9U0=EBc-1T6r7O6?W0F>aZ{-NQ3aD5s4JU-NR7#1+Y>>p}7w)X=ad8>D_&Og&* zKigyftjB)1hY%}=AsAR1CP~qFT>FuB>&14s!eV4B!Q%a^b~0C5!@L?Zrnap-R^23; z&^JYAWT0AV<`4>8=Y7rPXfx&fklwsMy;;VaFGKz2(;sa6Uf4T&8Cw{#ZYY7|D{mUZA2p#}@fj=f+Q`Y|KDoU^Kiui4c9EB!kKTks1;~G$ zGuj+dJ3$ytu2$g6bsui2ytt+M%_Qq>Wlj;Mbub>*g;wPBK00+`M2?MC7 zq0UTn`X#P92Xm%lveuVH*Cl|6DT8Dh$by8li7^T=`ewrx^bSf-f@mW1xR_d>>npx| z9B>fPj)H(j+=LP?mf9$x@-R}G;EWYajHO0*p_xoztnWqy&~^u~@Ga8&*oeKN7>q)v z=_IBbOL3Au$kPc`29_G;QF6C2CKw9GSp|q~F#L(+^VTa23xUFCR|yt~!T zKkQu!Gh@&-)?$yVt?xi{xT}9U;=Hy%Ae2N(8~*|@G4kw(e){?hHe*Bwi7f~`O7 z_CM;5m+WhLB(g;CDLbY2PV0ps(_tEPD(SsbxAnwt?J2y|T@95ES`SYjvk-*1nrrlT zRmQKYEY#9gQ#r5DSggnfzv#<8+h?BXGtXj?W1xO|iz89TmXx}HZn0ad-ezi?51?85%+Mg8eIdxZT-pZ8H8K&7jC zI^O6;-w-joR;xwG#PBqVZBEZnhhicDmi0?{1b2|?4zd* z&o%6tIy$`|wZG)S9uE`KqZPuMBZOKKe_zC0P~qGo+D}{`Mzi_4N)d@(u(!}?P);R@ zz3tzv$cIM29}FCJ^i!2+j9+f03dvY1o229T1d(?Ow057!)BOch53))PDOm|n=EErz!mG&? z=~v<$U%80BoLxcN{1$90qlU=?n=qVK1lXzNIvaz(xmgHWg!uCU6=}62kB+h_+mq_{ za!~KU6Jm%cgrU7h4vsWW=*W|!_STvE`|a=b+qd`I+xx+z5H}DvoLLgvi*R~@k7Ac zm610_wL-Mt9RFdni{B5#V+z>p>m#e)AmSK!b~2SoMITfzjI166%~pK@nyq?rWa^ob z-nzt|_cYU+MNeMH`2PWBc99l)LHe^;szXoJ4gPVwPCrI|fHINCa1M6rpKG;JOrmkM zJDA=N6s+?_HIWIXr}hk`%VyqZ_(l_w^saRZGpi(ZhT-+x(IuVvOTYPRzYSYgzx`G} z!w-$u(**DeThBy2T#&kv`@3^irhFlqigOQ z<=!>Q-!>}#?NNDgo5_1UxIA-_sZguD)fOV2`65{-Bmpj{gXNL!qnDRYF7f0d=4dx< zczu}sWDwU31Z02ujxuL7FJ~J_L-{@{#d~=i-y*7-7o$F7{Cx6h~ z^|RjkM|)FMpzx(y(I6TS#O-LQ;w`~U%6x*pBnGhA1V3WDBo~8l^^2qAe%i!5#%cUk zEzZeymsjs%^s0)yGa4icW-*br&izD;>;WVfQUmZeahK4e_eamE_NoB5fbeaV>cX#V zyg&7OpZ4dXKor5@Tg2AH0_bQz?2rGgzf-wM$P!EsxpWwAMdF-_u*p%#v|0eXcoagW zje>{j98UA6v?gbc7^~)BL zlkPh|R2)P3G{VdR+ad8)+v)h*6oJx5ZX+kzjf&h1r3Rgdr5o~u#V0Wfh<~Lz>Z5NH zcaNX97W-h3MUR(zem3akM60b6-(A5RL3^pj3?c)1UOh+If+>^n_*GAy$n6_8D`5Ec zW|i8cmPR&P5P)87+t=9kUv%mt2+0ySUqe%&X1);`2m7#x93p(=Y3xA>4KSraIxR{x z-bB;8m@zcYQew%l`1}d5y!!}Cft?=XB*nK9q<|0tZ9ET7RV|wDca?D@BZ%;_nch9Q zZhUwT9p0;nd;Cd7-m)4Pl8J2ucZ>mtk56PP%JG#}u$giu;MO4wDiV2yhmS-y3vt9O zs&olSUDcBK;Iek;M|AN>?%N7=(WR=u$v#{AGG$*XAOpni8oV;tcBq^5CUr{WTGQY- zJG6O_GAGv>XfDi8wfz%qKd#MMlRR5!80>_bAcZLYaz~rtmm7V7vClW@D~!uHz_cAb zrrJrk(P6xqrGV;A)w2LRhp%aX2<}d>gtU8JSb@OSvZc+SSghg2f*ecRXcwk;88uVI z5~K9zsmRlSV~0}@q6RT(bE?zSz?#AOJOu*y%E)YLiZ3%G2jD7V%Hsl6!H*M1E7Z4gwf)9mENju!!0p#tJ-2B8&y+akF_VqNS1DU(B~5O zlEG0rgZLZ_=s@ucyduyFP{u!`yuYi|C&0#poUT$YFzy3RdIy|sF6T)sn-{YPNgJlQ z`tO-0C-qqdgaKiJo}O2cgRu)&LZ`PsA>1rcAV2np{ftPUM=6M%=M~gt6CU&N*Hz=;#7?K z091MwB|6QMG<{NO{symjj_=8}89NVYU@Tc5bK$^U4YmhCg9`eFLI>sBp?W!!+#YTx z7LPwiL-R(>6GRi;qCT*ORWxUYMVq(i?P~EhWYl)GWE)8(wyT4-scFMV;~BZy!j%M@ z^vsHi^bwh)DHW}H66zJb`e6-z0rbdKGC9v&tl>x

      d7IZ3HaIQB?d0mf_njo)L} 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 z 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

      5c_Wk*Tpm+gF#bm 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
      klcBNO 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±HJ1 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%0A|-nk3IH`p1kt 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
      V_7u--K=myHDVA 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

      2mC;=9k7wcLg@`CYlD)+wC6|_@4M7xO6e& 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 z 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

      _4og2I~zEurvHzBcXn%gZV^H; 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�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…*;I`^O%$eazk<3rxl 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 z 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 z

      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 这是HOJ数据库的创建文件、数据库数据文件、服务配置文件 \ No newline at end of file diff --git a/src/sqlAndsetting/hoj-update.sql b/src/sqlAndsetting/hoj-update.sql new file mode 100644 index 0000000..b846015 --- /dev/null +++ b/src/sqlAndsetting/hoj-update.sql @@ -0,0 +1,922 @@ +USE `hoj`; + +/* +* 2021.08.07 修改OI题目得分在OI排行榜新计分字段 分数计算为:OI题目总得分*0.1+2*题目难度 +*/ +DROP PROCEDURE +IF EXISTS judge_Add_oi_rank_score; +DELIMITER $$ + +CREATE PROCEDURE judge_Add_oi_rank_score () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'judge' + AND column_name = 'oi_rank' +) THEN + ALTER TABLE judge ADD COLUMN oi_rank INT(11) NULL COMMENT '该题在OI排行榜的分数'; +END +IF ; END$$ + +DELIMITER ; +CALL judge_Add_oi_rank_score ; + +DROP PROCEDURE judge_Add_oi_rank_score; + +/* +* 2021.08.08 增加vjudge_submit_id在vjudge判题获取提交id后存储,当等待结果超时,下次重判时可用该提交id直接获取结果。 + 同时vjudge_username、vjudge_password分别记录提交账号密码 +*/ +DROP PROCEDURE +IF EXISTS judge_Add_vjudge_submit_id; +DELIMITER $$ + +CREATE PROCEDURE judge_Add_vjudge_submit_id () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'judge' + AND column_name = 'vjudge_submit_id' +) THEN + ALTER TABLE judge ADD COLUMN vjudge_submit_id BIGINT UNSIGNED NULL COMMENT 'vjudge判题在其它oj的提交id'; + ALTER TABLE judge ADD COLUMN vjudge_username VARCHAR(255) NULL COMMENT 'vjudge判题在其它oj的提交用户名'; + ALTER TABLE judge ADD COLUMN vjudge_password VARCHAR(255) NULL COMMENT 'vjudge判题在其它oj的提交账号密码'; +END +IF ; END$$ + +DELIMITER ; +CALL judge_Add_vjudge_submit_id ; + +DROP PROCEDURE judge_Add_vjudge_submit_id; + + +/* +* 2021.09.21 比赛增加打印、账号限制的功能,增大真实姓名长度 +*/ + +DROP PROCEDURE +IF EXISTS contest_Add_print_and_limit; +DELIMITER $$ + +CREATE PROCEDURE contest_Add_print_and_limit () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'contest' + AND column_name = 'open_print' +) THEN + ALTER TABLE contest ADD COLUMN open_print tinyint(1) DEFAULT '0' COMMENT '是否打开打印功能'; + ALTER TABLE contest ADD COLUMN open_account_limit tinyint(1) DEFAULT '0' COMMENT '是否开启账号限制'; + ALTER TABLE contest ADD COLUMN account_limit_rule mediumtext COMMENT '账号限制规则'; + ALTER TABLE `hoj`.`user_info` CHANGE `realname` `realname` VARCHAR(100) CHARSET utf8 COLLATE utf8_general_ci NULL COMMENT '真实姓名'; +END +IF ; END$$ + +DELIMITER ; +CALL contest_Add_print_and_limit ; + +DROP PROCEDURE contest_Add_print_and_limit; + + + +DROP PROCEDURE +IF EXISTS Add_contest_print; +DELIMITER $$ + +CREATE PROCEDURE Add_contest_print () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'contest_print' +) THEN + CREATE TABLE `contest_print` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(100) DEFAULT NULL, + `realname` varchar(100) DEFAULT NULL, + `cid` bigint(20) unsigned DEFAULT NULL, + `content` longtext NOT NULL, + `status` int(11) DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `cid` (`cid`), + KEY `username` (`username`), + CONSTRAINT `contest_print_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `contest` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_print_ibfk_2` FOREIGN KEY (`username`) REFERENCES `user_info` (`username`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +END +IF ; END$$ + +DELIMITER ; +CALL Add_contest_print ; + +DROP PROCEDURE Add_contest_print; + + +/* +* 2021.10.04 增加站内消息系统,包括评论我的、收到的赞、回复我的、系统通知、我的消息五个模块 +*/ + +DROP PROCEDURE +IF EXISTS Add_msg_table; +DELIMITER $$ + +CREATE PROCEDURE Add_msg_table () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'msg_remind' +) THEN + CREATE TABLE `admin_sys_notice` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) DEFAULT NULL COMMENT '标题', + `content` longtext COMMENT '内容', + `type` varchar(255) DEFAULT NULL COMMENT '发给哪些用户类型', + `state` tinyint(1) DEFAULT '0' COMMENT '是否已拉取给用户', + `recipient_id` varchar(32) DEFAULT NULL COMMENT '接受通知的用户id', + `admin_id` varchar(32) DEFAULT NULL COMMENT '发送通知的管理员id', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + KEY `recipient_id` (`recipient_id`), + KEY `admin_id` (`admin_id`), + CONSTRAINT `admin_sys_notice_ibfk_1` FOREIGN KEY (`recipient_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `admin_sys_notice_ibfk_2` FOREIGN KEY (`admin_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + CREATE TABLE `msg_remind` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `action` varchar(255) NOT NULL COMMENT '动作类型,如点赞讨论帖Like_Post、点赞评论Like_Discuss、评论Discuss、回复Reply等', + `source_id` int(10) unsigned DEFAULT NULL COMMENT '消息来源id,讨论id或比赛id', + `source_type` varchar(255) DEFAULT NULL COMMENT '事件源类型:''Discussion''、''Contest''等', + `source_content` varchar(255) DEFAULT NULL COMMENT '事件源的内容,比如回复的内容,评论的帖子标题等等', + `quote_id` int(10) unsigned DEFAULT NULL COMMENT '事件引用上一级评论或回复id', + `quote_type` varchar(255) DEFAULT NULL COMMENT '事件引用上一级的类型:Comment、Reply', + `url` varchar(255) DEFAULT NULL COMMENT '事件所发生的地点链接 url', + `state` tinyint(1) DEFAULT '0' COMMENT '是否已读', + `sender_id` varchar(32) DEFAULT NULL COMMENT '操作者的id', + `recipient_id` varchar(32) DEFAULT NULL COMMENT '接受消息的用户id', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + KEY `sender_id` (`sender_id`), + KEY `recipient_id` (`recipient_id`), + CONSTRAINT `msg_remind_ibfk_1` FOREIGN KEY (`sender_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `msg_remind_ibfk_2` FOREIGN KEY (`recipient_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + CREATE TABLE `user_sys_notice` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `sys_notice_id` bigint(20) unsigned DEFAULT NULL COMMENT '系统通知的id', + `recipient_id` varchar(32) DEFAULT NULL COMMENT '接受通知的用户id', + `type` varchar(255) DEFAULT NULL COMMENT '消息类型,系统通知sys、我的信息mine', + `state` tinyint(1) DEFAULT '0' COMMENT '是否已读', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '读取时间', + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `sys_notice_id` (`sys_notice_id`), + KEY `recipient_id` (`recipient_id`), + CONSTRAINT `user_sys_notice_ibfk_1` FOREIGN KEY (`sys_notice_id`) REFERENCES `admin_sys_notice` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `user_sys_notice_ibfk_2` FOREIGN KEY (`recipient_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +END +IF ; END$$ + +DELIMITER ; +CALL Add_msg_table; + +DROP PROCEDURE Add_msg_table; + + + + +/* +* 2021.10.06 user_info增加性别列gender 比赛榜单用户名称显示可选 + +*/ +DROP PROCEDURE +IF EXISTS user_info_Add_gender; +DELIMITER $$ + +CREATE PROCEDURE user_info_Add_gender () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'user_info' + AND column_name = 'gender' +) THEN + ALTER TABLE user_info ADD COLUMN gender varchar(20) DEFAULT 'secrecy' NOT NULL COMMENT '性别'; +END +IF ; END$$ + +DELIMITER ; +CALL user_info_Add_gender ; + +DROP PROCEDURE user_info_Add_gender; + + +DROP PROCEDURE +IF EXISTS contest_Add_rank_show_name; +DELIMITER $$ + +CREATE PROCEDURE contest_Add_rank_show_name () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'contest' + AND column_name = 'rank_show_name' +) THEN + ALTER TABLE contest ADD COLUMN rank_show_name varchar(20) DEFAULT 'username' COMMENT '排行榜显示(username、nickname、realname)'; +END +IF ; END$$ + +DELIMITER ; +CALL contest_Add_rank_show_name ; + +DROP PROCEDURE contest_Add_rank_show_name; + +/* +* 2021.10.08 user_info增加性别列gender 比赛榜单用户名称显示可选 + +*/ +DROP PROCEDURE +IF EXISTS contest_problem_Add_color; +DELIMITER $$ + +CREATE PROCEDURE contest_problem_Add_color () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'contest_problem' + AND column_name = 'color' +) THEN + ALTER TABLE contest_problem ADD COLUMN `color` VARCHAR(255) NULL COMMENT '气球颜色'; + ALTER TABLE user_info ADD COLUMN `title_name` VARCHAR(255) NULL COMMENT '头衔、称号'; + ALTER TABLE user_info ADD COLUMN `title_color` VARCHAR(255) NULL COMMENT '头衔、称号的颜色'; +END +IF ; END$$ + +DELIMITER ; +CALL contest_problem_Add_color ; + +DROP PROCEDURE contest_problem_Add_color; + + +/* +* 2021.11.17 judge_server增加cf_submittable控制单台判题机只能一个账号提交CF + +*/ +DROP PROCEDURE +IF EXISTS judge_server_Add_cf_submittable; +DELIMITER $$ + +CREATE PROCEDURE judge_serverm_Add_cf_submittable () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'judge_server' + AND column_name = 'cf_submittable' +) THEN + ALTER TABLE `hoj`.`judge_server` ADD COLUMN `cf_submittable` BOOLEAN DEFAULT 1 NULL COMMENT '是否可提交CF'; +END +IF ; END$$ + +DELIMITER ; +CALL judge_serverm_Add_cf_submittable ; + +DROP PROCEDURE judge_serverm_Add_cf_submittable; + + + +/* +* 2021.11.29 增加训练模块 +*/ + +DROP PROCEDURE +IF EXISTS Add_training_table; +DELIMITER $$ + +CREATE PROCEDURE Add_training_table () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'training' +) THEN + + CREATE TABLE `training` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) DEFAULT NULL COMMENT '训练题单名称', + `description` longtext COMMENT '训练题单简介', + `author` varchar(255) NOT NULL COMMENT '训练题单创建者用户名', + `auth` varchar(255) NOT NULL COMMENT '训练题单权限类型:Public、Private', + `private_pwd` varchar(255) DEFAULT NULL COMMENT '训练题单权限为Private时的密码', + `rank` int DEFAULT '0' COMMENT '编号,升序', + `status` tinyint(1) DEFAULT '1' COMMENT '是否可用', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + + CREATE TABLE `training_category` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `color` varchar(255) DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + CREATE TABLE `training_problem` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL COMMENT '训练id', + `pid` bigint unsigned NOT NULL COMMENT '题目id', + `rank` int DEFAULT '0', + `display_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `pid` (`pid`), + KEY `display_id` (`display_id`), + CONSTRAINT `training_problem_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_problem_ibfk_2` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_problem_ibfk_3` FOREIGN KEY (`display_id`) REFERENCES `problem` (`problem_id`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + CREATE TABLE `training_record` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL, + `tpid` bigint unsigned NOT NULL, + `pid` bigint unsigned NOT NULL, + `uid` varchar(255) NOT NULL, + `submit_id` bigint unsigned NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `tpid` (`tpid`), + KEY `pid` (`pid`), + KEY `uid` (`uid`), + KEY `submit_id` (`submit_id`), + CONSTRAINT `training_record_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_2` FOREIGN KEY (`tpid`) REFERENCES `training_problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_3` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_4` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_5` FOREIGN KEY (`submit_id`) REFERENCES `judge` (`submit_id`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + + CREATE TABLE `training_register` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL COMMENT '训练id', + `uid` varchar(255) NOT NULL COMMENT '用户id', + `status` tinyint(1) DEFAULT '1' COMMENT '是否可用', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `uid` (`uid`), + CONSTRAINT `training_register_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_register_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + + CREATE TABLE `mapping_training_category` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL, + `cid` bigint unsigned NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `cid` (`cid`), + CONSTRAINT `mapping_training_category_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `mapping_training_category_ibfk_2` FOREIGN KEY (`cid`) REFERENCES `training_category` (`id`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + ALTER TABLE `hoj`.`judge` ADD COLUMN `tid` BIGINT UNSIGNED NULL AFTER `cpid`, + ADD FOREIGN KEY (`tid`) REFERENCES `hoj`.`training`(`id`) ON UPDATE CASCADE ON DELETE CASCADE; +END +IF ; END$$ + +DELIMITER ; +CALL Add_training_table; + +DROP PROCEDURE Add_training_table; + + +/* +* 2021.12.05 contest增加auto_real_rank比赛结束是否自动解除封榜,自动转换成真实榜单 + +*/ +DROP PROCEDURE +IF EXISTS contest_Add_auto_real_rank; +DELIMITER $$ + +CREATE PROCEDURE contest_Add_auto_real_rank() +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'contest' + AND column_name = 'auto_real_rank' +) THEN + ALTER TABLE `hoj`.`contest` ADD COLUMN `auto_real_rank` BOOLEAN DEFAULT 1 NULL COMMENT '比赛结束是否自动解除封榜,自动转换成真实榜单'; + DROP TABLE `hoj`.`training_problem`; + DROP TABLE `hoj`.`training_record`; + CREATE TABLE `training_problem` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL COMMENT '训练id', + `pid` bigint unsigned NOT NULL COMMENT '题目id', + `rank` int DEFAULT '0', + `display_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `pid` (`pid`), + KEY `display_id` (`display_id`), + CONSTRAINT `training_problem_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_problem_ibfk_2` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_problem_ibfk_3` FOREIGN KEY (`display_id`) REFERENCES `problem` (`problem_id`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + CREATE TABLE `training_record` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL, + `tpid` bigint unsigned NOT NULL, + `pid` bigint unsigned NOT NULL, + `uid` varchar(255) NOT NULL, + `submit_id` bigint unsigned NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `tpid` (`tpid`), + KEY `pid` (`pid`), + KEY `uid` (`uid`), + KEY `submit_id` (`submit_id`), + CONSTRAINT `training_record_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_2` FOREIGN KEY (`tpid`) REFERENCES `training_problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_3` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_4` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_5` FOREIGN KEY (`submit_id`) REFERENCES `judge` (`submit_id`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +END +IF ; END$$ + +DELIMITER ; +CALL contest_Add_auto_real_rank; + +DROP PROCEDURE contest_Add_auto_real_rank; + + + + +/* +* 2021.12.07 contest增加打星账号列表、是否开放榜单 + +*/ +DROP PROCEDURE +IF EXISTS contest_Add_star_account_And_open_rank; +DELIMITER $$ + +CREATE PROCEDURE contest_Add_star_account_And_open_rank () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'contest' + AND column_name = 'star_account' +) THEN + ALTER TABLE `hoj`.`contest` ADD COLUMN `star_account` mediumtext COMMENT '打星用户列表'; + ALTER TABLE `hoj`.`contest` ADD COLUMN `open_rank` BOOLEAN DEFAULT 0 NULL COMMENT '是否开放赛外榜单'; +END +IF ; END$$ + +DELIMITER ; +CALL contest_Add_star_account_And_open_rank ; + +DROP PROCEDURE contest_Add_star_account_And_open_rank; + + + +/* +* 2021.12.19 judge表删除tid + +*/ +DROP PROCEDURE +IF EXISTS judge_Delete_tid; +DELIMITER $$ + +CREATE PROCEDURE judge_Delete_tid () +BEGIN + +IF EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'judge' + AND column_name = 'tid' +) THEN + ALTER TABLE `hoj`.`judge` DROP foreign key `judge_ibfk_4`; + ALTER TABLE `hoj`.`judge` DROP COLUMN `tid`; +END +IF ; END$$ + +DELIMITER ; +CALL judge_Delete_tid ; + +DROP PROCEDURE judge_Delete_tid; + + +/* +* 2022.01.03 problem表增加mode,user_extra_file,judge_extra_file用于区别普通判题、特殊判题、交互判题 + +*/ +DROP PROCEDURE +IF EXISTS problem_Add_judge_mode; +DELIMITER $$ + +CREATE PROCEDURE problem_Add_judge_mode () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'problem' + AND column_name = 'judge_mode' +) THEN + ALTER TABLE `hoj`.`problem` ADD COLUMN `judge_mode` varchar(255) DEFAULT 'default' COMMENT '题目评测模式,default、spj、interactive'; + ALTER TABLE `hoj`.`problem` ADD COLUMN `user_extra_file` mediumtext DEFAULT NULL COMMENT '题目评测时用户程序的额外额外文件 json key:name value:content'; + ALTER TABLE `hoj`.`problem` ADD COLUMN `judge_extra_file` mediumtext DEFAULT NULL COMMENT '题目评测时交互或特殊程序的额外额外文件 json key:name value:content'; +END +IF ; END$$ + +DELIMITER ; +CALL problem_Add_judge_mode ; + +DROP PROCEDURE problem_Add_judge_mode; + + +/* +* 2022.03.02 contest表增加oi_rank_score_type + +*/ +DROP PROCEDURE +IF EXISTS contest_Add_oi_rank_score_type; +DELIMITER $$ + +CREATE PROCEDURE contest_Add_oi_rank_score_type () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'contest' + AND column_name = 'oi_rank_score_type' +) THEN + ALTER TABLE `hoj`.`contest` ADD COLUMN `oi_rank_score_type` varchar(255) DEFAULT 'Recent' COMMENT 'oi排行榜得分方式,Recent、Highest'; +END +IF ; END$$ + +DELIMITER ; +CALL contest_Add_oi_rank_score_type ; + +DROP PROCEDURE contest_Add_oi_rank_score_type; + + +/* +* 2022.03.28 增加团队模块 + +*/ +DROP PROCEDURE +IF EXISTS add_group; +DELIMITER $$ + +CREATE PROCEDURE add_group () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'group' +) THEN + CREATE TABLE `group` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `avatar` varchar(255) DEFAULT NULL COMMENT '头像地址', + `name` varchar(25) DEFAULT NULL COMMENT '团队名称', + `short_name` varchar(10) DEFAULT NULL COMMENT '团队简称,创建题目时题号自动添加的前缀', + `brief` varchar(50) COMMENT '团队简介', + `description` longtext COMMENT '团队介绍', + `owner` varchar(255) NOT NULL COMMENT '团队拥有者用户名', + `uid` varchar(32) NOT NULL COMMENT '团队拥有者用户id', + `auth` int(11) NOT NULL COMMENT '0为Public,1为Protected,2为Private', + `visible` tinyint(1) DEFAULT '1' COMMENT '是否可见', + `status` tinyint(1) DEFAULT '0' COMMENT '是否封禁', + `code` varchar(6) DEFAULT NULL COMMENT '邀请码', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `NAME_UNIQUE` (`name`), + UNIQUE KEY `short_name` (`short_name`), + CONSTRAINT `group_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8; + + CREATE TABLE `group_member` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `gid` bigint unsigned NOT NULL COMMENT '团队id', + `uid` varchar(32) NOT NULL COMMENT '用户id', + `auth` int(11) DEFAULT '1' COMMENT '1未审批,2拒绝,3普通成员,4团队管理员,5团队拥有者', + `reason` varchar(100) DEFAULT NULL COMMENT '申请理由', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `gid_uid_unique` (`gid`, `uid`), + KEY `gid` (`gid`), + KEY `uid` (`uid`), + CONSTRAINT `group_member_ibfk_1` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `group_member_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + ALTER TABLE `hoj`.`announcement` ADD COLUMN `gid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`announcement` ADD CONSTRAINT `announcement_ibfk_2` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + + + ALTER TABLE `hoj`.`contest` ADD COLUMN `is_group` tinyint(1) DEFAULT '0'; + ALTER TABLE `hoj`.`contest` ADD COLUMN `gid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`contest` ADD CONSTRAINT `contest_ibfk_2` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + + ALTER TABLE `hoj`.`judge` ADD COLUMN `gid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`judge` ADD CONSTRAINT `judge_ibfk_4` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + + + ALTER TABLE `hoj`.`discussion` ADD COLUMN `gid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`discussion` ADD CONSTRAINT `discussion_ibfk_3` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + + ALTER TABLE `hoj`.`file` ADD COLUMN `gid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`file` ADD CONSTRAINT `file_ibfk_2` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE SET NULL ON UPDATE CASCADE; + + ALTER TABLE `hoj`.`problem` ADD COLUMN `is_group` tinyint(1) DEFAULT '0'; + ALTER TABLE `hoj`.`problem` ADD COLUMN `gid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`problem` ADD CONSTRAINT `problem_ibfk_2` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + + ALTER TABLE `hoj`.`tag` ADD COLUMN `gid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`tag` ADD CONSTRAINT `tag_ibfk_1` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + + + ALTER TABLE `hoj`.`training` ADD COLUMN `is_group` tinyint(1) DEFAULT '0'; + ALTER TABLE `hoj`.`training` ADD COLUMN `gid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`training` ADD CONSTRAINT `training_ibfk_1` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + + ALTER TABLE `hoj`.`training_category` ADD COLUMN `gid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`training_category` ADD CONSTRAINT `training_category_ibfk_1` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; + + insert into `auth`(`id`,`name`,`permission`,`status`,`gmt_create`,`gmt_modified`) values (13,'group','group_add',0,'2022-03-11 13:36:55','2022-03-11 13:36:55'), + (14,'group','group_del',0,'2022-03-11 13:36:55','2022-03-11 13:36:55'); + + insert into `role_auth`(`auth_id`,`role_id`,`gmt_create`,`gmt_modified`) values (13,1000,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(13,1001,'2021-06-12 23:16:58','2021-06-12 23:16:58'), + (13,1002,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(13,1008,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(14,1000,'2021-06-12 23:16:58','2021-06-12 23:16:58'), + (14,1001,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(14,1002,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(14,1008,'2021-06-12 23:16:58','2021-06-12 23:16:58'); + +END +IF ; END$$ + +DELIMITER ; +CALL add_group ; + +DROP PROCEDURE add_group; + + + +/* +* 2022.04.13 problem表增加apply_public_progress + +*/ +DROP PROCEDURE +IF EXISTS problem_Add_apply_public_progress; +DELIMITER $$ + +CREATE PROCEDURE problem_Add_apply_public_progress () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'problem' + AND column_name = 'apply_public_progress' +) THEN + ALTER TABLE `hoj`.`problem` ADD COLUMN `apply_public_progress` int(11) DEFAULT NULL COMMENT '申请公开的进度:null为未申请,1为申请中,2为申请通过,3为申请拒绝'; +END +IF ; END$$ + +DELIMITER ; +CALL problem_Add_apply_public_progress ; + +DROP PROCEDURE problem_Add_apply_public_progress; + + + +/* +* 2022.06.26 给指定表的字段修改字符集为utf8mb4 + +*/ +DROP PROCEDURE +IF EXISTS table_Change_utf8mb4; +DELIMITER $$ + +CREATE PROCEDURE table_Change_utf8mb4 () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'problem' + AND column_name = 'input' AND CHARACTER_SET_NAME = 'utf8mb4' +) THEN + ALTER TABLE hoj.admin_sys_notice MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.admin_sys_notice MODIFY COLUMN `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.contest MODIFY COLUMN `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.contest MODIFY COLUMN `description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.contest_explanation MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.contest_problem MODIFY COLUMN `display_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.contest_print MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.discussion MODIFY COLUMN `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.discussion MODIFY COLUMN `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.discussion MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.discussion_report MODIFY COLUMN `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.group MODIFY COLUMN `description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.group_member MODIFY COLUMN `reason` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.language MODIFY COLUMN `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.msg_remind MODIFY COLUMN `source_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.problem MODIFY COLUMN `source` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.problem MODIFY COLUMN `input` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.problem MODIFY COLUMN `output` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.problem MODIFY COLUMN `description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.problem MODIFY COLUMN `hint` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.problem MODIFY COLUMN `spj_code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.problem MODIFY COLUMN `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.reply MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.training MODIFY COLUMN `description` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.training MODIFY COLUMN `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.user_info MODIFY COLUMN `signature` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.judge MODIFY COLUMN `code` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + ALTER TABLE hoj.comment MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +END +IF ; END$$ + +DELIMITER ; +CALL table_Change_utf8mb4 ; + +DROP PROCEDURE table_Change_utf8mb4; + + +/* +* 2022.08.05 题目标签添加分类 + +*/ +DROP PROCEDURE +IF EXISTS problem_tag_Add_classification; +DELIMITER $$ + +CREATE PROCEDURE problem_tag_Add_classification () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'tag' + AND column_name = 'tcid' +) THEN + CREATE TABLE `tag_classification` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签分类名称', + `oj` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签分类所属oj', + `gmt_create` datetime NULL DEFAULT NULL, + `gmt_modified` datetime NULL DEFAULT NULL, + `rank` int(10) UNSIGNED ZEROFILL NULL DEFAULT NULL COMMENT '标签分类优先级 越小越高', + PRIMARY KEY (`id`) USING BTREE + ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + + ALTER TABLE `hoj`.`tag` ADD COLUMN `tcid` bigint(20) unsigned DEFAULT NULL; + ALTER TABLE `hoj`.`tag` ADD CONSTRAINT `tag_ibfk_2` FOREIGN KEY (`tcid`) REFERENCES `tag_classification` (`id`) ON DELETE SET NULL ON UPDATE CASCADE; + +END +IF ; END$$ + +DELIMITER ; +CALL problem_tag_Add_classification ; + +DROP PROCEDURE problem_tag_Add_classification; + + +/* +* 2022.08.21 提交评测增加人工评测标记 + +*/ +DROP PROCEDURE +IF EXISTS judge_tag_Add_is_manual; +DELIMITER $$ + +CREATE PROCEDURE judge_tag_Add_is_manual () +BEGIN + +IF NOT EXISTS ( + SELECT + 1 + FROM + information_schema.`COLUMNS` + WHERE + table_name = 'judge' + AND column_name = 'is_manual' +) THEN + + ALTER TABLE `hoj`.`judge` ADD COLUMN `is_manual` tinyint(1) DEFAULT '0' COMMENT '是否为人工评测'; + +END +IF ; END$$ + +DELIMITER ; +CALL judge_tag_Add_is_manual ; + +DROP PROCEDURE judge_tag_Add_is_manual; \ No newline at end of file diff --git a/src/sqlAndsetting/hoj.sql b/src/sqlAndsetting/hoj.sql new file mode 100644 index 0000000..6aa5bd0 --- /dev/null +++ b/src/sqlAndsetting/hoj.sql @@ -0,0 +1,1156 @@ +/* +SQLyog Professional v12.09 (64 bit) +MySQL - 5.7.34 : Database - hoj +********************************************************************* +*/ + + +/*!40101 SET NAMES utf8 */; + +/*!40101 SET SQL_MODE=''*/; + +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +CREATE DATABASE IF NOT EXISTS`hoj` DEFAULT CHARACTER SET utf8; + +USE `hoj`; + +/*Table structure for table `announcement` */ + +DROP TABLE IF EXISTS `announcement`; + +CREATE TABLE `announcement` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `content` longtext, + `uid` varchar(255) DEFAULT NULL, + `status` int(11) DEFAULT '0' COMMENT '0可见,1不可见', + `gid` bigint(20) unsigned DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + CONSTRAINT `announcement_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `announcement_ibfk_2` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `auth` */ + +DROP TABLE IF EXISTS `auth`; + +CREATE TABLE `auth` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) DEFAULT NULL COMMENT '权限名称', + `permission` varchar(100) DEFAULT NULL COMMENT '权限字符串', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0可用,1不可用', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `category` */ + +DROP TABLE IF EXISTS `category`; + +CREATE TABLE `category` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `code_template` */ + +DROP TABLE IF EXISTS `code_template`; + +CREATE TABLE `code_template` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `pid` bigint(20) unsigned NOT NULL, + `lid` bigint(20) unsigned NOT NULL, + `code` longtext NOT NULL, + `status` tinyint(1) DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `pid` (`pid`), + KEY `lid` (`lid`), + CONSTRAINT `code_template_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `code_template_ibfk_2` FOREIGN KEY (`lid`) REFERENCES `language` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `comment` */ + +DROP TABLE IF EXISTS `comment`; + +CREATE TABLE `comment` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `cid` bigint(20) unsigned DEFAULT NULL COMMENT 'null表示无引用比赛', + `did` int(11) DEFAULT NULL COMMENT 'null表示无引用讨论', + `content` longtext COMMENT '评论内容', + `from_uid` varchar(32) NOT NULL COMMENT '评论者id', + `from_name` varchar(255) DEFAULT NULL COMMENT '评论者用户名', + `from_avatar` varchar(255) DEFAULT NULL COMMENT '评论组头像地址', + `from_role` varchar(20) DEFAULT NULL COMMENT '评论者角色', + `like_num` int(11) DEFAULT '0' COMMENT '点赞数量', + `status` int(11) DEFAULT '0' COMMENT '是否封禁或逻辑删除该评论', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `uid` (`from_uid`), + KEY `from_avatar` (`from_avatar`), + KEY `comment_ibfk_7` (`did`), + KEY `cid` (`cid`), + CONSTRAINT `comment_ibfk_6` FOREIGN KEY (`from_avatar`) REFERENCES `user_info` (`avatar`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `comment_ibfk_7` FOREIGN KEY (`did`) REFERENCES `discussion` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `comment_ibfk_8` FOREIGN KEY (`cid`) REFERENCES `contest` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `comment_like` */ + +DROP TABLE IF EXISTS `comment_like`; + +CREATE TABLE `comment_like` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` varchar(255) NOT NULL, + `cid` int(11) NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `cid` (`cid`), + CONSTRAINT `comment_like_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `comment_like_ibfk_2` FOREIGN KEY (`cid`) REFERENCES `comment` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `contest` */ + +DROP TABLE IF EXISTS `contest`; + +CREATE TABLE `contest` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `uid` varchar(32) NOT NULL COMMENT '比赛创建者id', + `author` varchar(255) DEFAULT NULL COMMENT '比赛创建者的用户名', + `title` varchar(255) DEFAULT NULL COMMENT '比赛标题', + `type` int(11) NOT NULL DEFAULT '0' COMMENT '0为acm赛制,1为比分赛制', + `description` longtext COMMENT '比赛说明', + `source` int(11) DEFAULT '0' COMMENT '比赛来源,原创为0,克隆赛为比赛id', + `auth` int(11) NOT NULL COMMENT '0为公开赛,1为私有赛(访问有密码),2为保护赛(提交有密码)', + `pwd` varchar(255) DEFAULT NULL COMMENT '比赛密码', + `start_time` datetime DEFAULT NULL COMMENT '开始时间', + `end_time` datetime DEFAULT NULL COMMENT '结束时间', + `duration` bigint(20) DEFAULT NULL COMMENT '比赛时长(s)', + `seal_rank` tinyint(1) DEFAULT '0' COMMENT '是否开启封榜', + `seal_rank_time` datetime DEFAULT NULL COMMENT '封榜起始时间,一直到比赛结束,不刷新榜单', + `auto_real_rank` tinyint(1) DEFAULT '1' COMMENT '比赛结束是否自动解除封榜,自动转换成真实榜单', + `status` int(11) DEFAULT NULL COMMENT '-1为未开始,0为进行中,1为已结束', + `visible` tinyint(1) DEFAULT '1' COMMENT '是否可见', + `open_print` tinyint(1) DEFAULT '0' COMMENT '是否打开打印功能', + `open_account_limit` tinyint(1) DEFAULT '0' COMMENT '是否开启账号限制', + `account_limit_rule` mediumtext COMMENT '账号限制规则', + `rank_show_name` varchar(20) DEFAULT 'username' COMMENT '排行榜显示(username、nickname、realname)', + `open_rank` tinyint(1) DEFAULT '0' COMMENT '是否开放比赛榜单', + `star_account` mediumtext COMMENT '打星用户列表', + `oi_rank_score_type` varchar(255) DEFAULT 'Recent' COMMENT 'oi排行榜得分方式,Recent、Highest', + `is_group` tinyint(1) DEFAULT '0', + `gid` bigint(20) unsigned DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`,`uid`), + KEY `uid` (`uid`), + CONSTRAINT `contest_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_ibfk_2` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8; + +/*Table structure for table `contest_announcement` */ + +DROP TABLE IF EXISTS `contest_announcement`; + +CREATE TABLE `contest_announcement` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `aid` bigint(20) unsigned NOT NULL COMMENT '公告id', + `cid` bigint(20) unsigned NOT NULL COMMENT '比赛id', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `contest_announcement_ibfk_1` (`cid`), + KEY `contest_announcement_ibfk_2` (`aid`), + CONSTRAINT `contest_announcement_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `contest` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_announcement_ibfk_2` FOREIGN KEY (`aid`) REFERENCES `announcement` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `contest_explanation` */ + +DROP TABLE IF EXISTS `contest_explanation`; + +CREATE TABLE `contest_explanation` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `cid` bigint(20) unsigned NOT NULL, + `uid` varchar(32) NOT NULL COMMENT '发布者(必须为比赛创建者或者超级管理员才能)', + `content` longtext COMMENT '内容(支持markdown)', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `contest_explanation_ibfk_1` (`cid`), + CONSTRAINT `contest_explanation_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `contest` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_explanation_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `contest_problem` */ + +DROP TABLE IF EXISTS `contest_print`; + +CREATE TABLE `contest_print` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(100) DEFAULT NULL, + `realname` varchar(100) DEFAULT NULL, + `cid` bigint(20) unsigned DEFAULT NULL, + `content` longtext NOT NULL, + `status` int(11) DEFAULT '0', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `cid` (`cid`), + KEY `username` (`username`), + CONSTRAINT `contest_print_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `contest` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_print_ibfk_2` FOREIGN KEY (`username`) REFERENCES `user_info` (`username`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + +DROP TABLE IF EXISTS `contest_problem`; + +CREATE TABLE `contest_problem` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `display_id` varchar(255) NOT NULL COMMENT '该题目在比赛中的顺序id', + `cid` bigint(20) unsigned NOT NULL COMMENT '比赛id', + `pid` bigint(20) unsigned NOT NULL COMMENT '题目id', + `display_title` varchar(255) NOT NULL COMMENT '该题目在比赛中的标题,默认为原名字', + `color` varchar(255) DEFAULT NULL COMMENT '气球颜色', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`,`cid`,`pid`), + UNIQUE KEY `display_id` (`display_id`,`cid`,`pid`), + KEY `contest_problem_ibfk_1` (`cid`), + KEY `contest_problem_ibfk_2` (`pid`), + CONSTRAINT `contest_problem_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `contest` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_problem_ibfk_2` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `contest_record` */ + +DROP TABLE IF EXISTS `contest_record`; + +CREATE TABLE `contest_record` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `cid` bigint(20) unsigned DEFAULT NULL COMMENT '比赛id', + `uid` varchar(255) NOT NULL COMMENT '用户id', + `pid` bigint(20) unsigned DEFAULT NULL COMMENT '题目id', + `cpid` bigint(20) unsigned DEFAULT NULL COMMENT '比赛中的题目的id', + `username` varchar(255) DEFAULT NULL COMMENT '用户名', + `realname` varchar(255) DEFAULT NULL COMMENT '真实姓名', + `display_id` varchar(255) DEFAULT NULL COMMENT '比赛中展示的id', + `submit_id` bigint(20) unsigned NOT NULL COMMENT '提交id,用于可重判', + `status` int(11) DEFAULT NULL COMMENT '提交结果,0表示未AC通过不罚时,1表示AC通过,-1为未AC通过算罚时', + `submit_time` datetime NOT NULL COMMENT '具体提交时间', + `time` bigint(20) unsigned DEFAULT NULL COMMENT '提交时间,为提交时间减去比赛时间', + `score` int(11) DEFAULT NULL COMMENT 'OI比赛的得分', + `use_time` int(11) DEFAULT NULL COMMENT '运行耗时', + `first_blood` tinyint(1) DEFAULT '0' COMMENT '是否为一血AC(废弃)', + `checked` tinyint(1) DEFAULT '0' COMMENT 'AC是否已校验', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`,`submit_id`), + KEY `uid` (`uid`), + KEY `pid` (`pid`), + KEY `cpid` (`cpid`), + KEY `submit_id` (`submit_id`), + KEY `index_cid` (`cid`), + KEY `index_time` (`time`), + CONSTRAINT `contest_record_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `contest` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_record_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_record_ibfk_3` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_record_ibfk_4` FOREIGN KEY (`cpid`) REFERENCES `contest_problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_record_ibfk_5` FOREIGN KEY (`submit_id`) REFERENCES `judge` (`submit_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `contest_register` */ + +DROP TABLE IF EXISTS `contest_register`; + +CREATE TABLE `contest_register` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `cid` bigint(20) unsigned NOT NULL COMMENT '比赛id', + `uid` varchar(32) NOT NULL COMMENT '用户id', + `status` int(11) DEFAULT '0' COMMENT '默认为0表示正常,1为失效。', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`,`cid`,`uid`), + UNIQUE KEY `cid_uid_unique` (`cid`,`uid`), + KEY `contest_register_ibfk_2` (`uid`), + CONSTRAINT `contest_register_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `contest` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `contest_register_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `contest_score` */ + +DROP TABLE IF EXISTS `contest_score`; + +CREATE TABLE `contest_score` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `cid` bigint(20) unsigned NOT NULL, + `last` int(11) DEFAULT NULL COMMENT '比赛前的score得分', + `change` int(11) DEFAULT NULL COMMENT 'Score比分变化', + `now` int(11) DEFAULT NULL COMMENT '现在的score', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`,`cid`), + KEY `contest_score_ibfk_1` (`cid`), + CONSTRAINT `contest_score_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `contest` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `discussion` */ + +DROP TABLE IF EXISTS `discussion`; + +CREATE TABLE `discussion` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `category_id` int(11) NOT NULL COMMENT '分类id', + `title` varchar(255) DEFAULT NULL COMMENT '讨论标题', + `description` varchar(255) DEFAULT NULL COMMENT '讨论简介', + `content` longtext COMMENT '讨论内容', + `pid` varchar(255) DEFAULT NULL COMMENT '关联题目id', + `uid` varchar(32) NOT NULL COMMENT '发表者id', + `author` varchar(255) NOT NULL COMMENT '发表者用户名', + `avatar` varchar(255) DEFAULT NULL COMMENT '发表讨论者头像', + `role` varchar(25) DEFAULT 'user' COMMENT '发表者角色', + `view_num` int(11) DEFAULT '0' COMMENT '浏览数量', + `like_num` int(11) DEFAULT '0' COMMENT '点赞数量', + `top_priority` tinyint(1) DEFAULT '0' COMMENT '优先级,是否置顶', + `comment_num` int(11) DEFAULT '0' COMMENT '评论数量', + `status` int(1) DEFAULT '0' COMMENT '是否封禁该讨论', + `gid` bigint(20) unsigned DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `category_id` (`category_id`), + KEY `discussion_ibfk_4` (`avatar`), + KEY `discussion_ibfk_1` (`uid`), + KEY `pid` (`pid`), + CONSTRAINT `discussion_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE NO ACTION ON UPDATE CASCADE, + CONSTRAINT `discussion_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE, + CONSTRAINT `discussion_ibfk_4` FOREIGN KEY (`avatar`) REFERENCES `user_info` (`avatar`) ON DELETE NO ACTION ON UPDATE CASCADE, + CONSTRAINT `discussion_ibfk_6` FOREIGN KEY (`pid`) REFERENCES `problem` (`problem_id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `discussion_ibfk_3` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `discussion_like` */ + +DROP TABLE IF EXISTS `discussion_like`; + +CREATE TABLE `discussion_like` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `uid` varchar(255) NOT NULL, + `did` int(11) NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `did` (`did`), + KEY `uid` (`uid`), + CONSTRAINT `discussion_like_ibfk_1` FOREIGN KEY (`did`) REFERENCES `discussion` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `discussion_like_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `discussion_report` */ + +DROP TABLE IF EXISTS `discussion_report`; + +CREATE TABLE `discussion_report` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `did` int(11) DEFAULT NULL COMMENT '讨论id', + `reporter` varchar(255) DEFAULT NULL COMMENT '举报者的用户名', + `content` varchar(255) NOT NULL COMMENT '举报内容', + `status` tinyint(1) DEFAULT '0' COMMENT '是否已读', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `did` (`did`), + KEY `reporter` (`reporter`), + CONSTRAINT `discussion_report_ibfk_1` FOREIGN KEY (`did`) REFERENCES `discussion` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `discussion_report_ibfk_2` FOREIGN KEY (`reporter`) REFERENCES `user_info` (`username`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `file` */ + +DROP TABLE IF EXISTS `file`; + +CREATE TABLE `file` ( + `id` bigint(32) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `uid` varchar(32) DEFAULT NULL COMMENT '用户id', + `name` varchar(255) NOT NULL COMMENT '文件名', + `suffix` varchar(255) NOT NULL COMMENT '文件后缀格式', + `folder_path` varchar(255) NOT NULL COMMENT '文件所在文件夹的路径', + `file_path` varchar(255) DEFAULT NULL COMMENT '文件绝对路径', + `type` varchar(255) DEFAULT NULL COMMENT '文件所属类型,例如avatar', + `delete` tinyint(1) DEFAULT '0' COMMENT '是否删除', + `gid` bigint(20) unsigned DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + CONSTRAINT `file_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `file_ibfk_2` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `judge` */ + +DROP TABLE IF EXISTS `judge`; + +CREATE TABLE `judge` ( + `submit_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `pid` bigint(20) unsigned NOT NULL COMMENT '题目id', + `display_pid` varchar(255) NOT NULL COMMENT '题目展示id', + `uid` varchar(32) NOT NULL COMMENT '用户id', + `username` varchar(255) DEFAULT NULL COMMENT '用户名', + `submit_time` datetime NOT NULL COMMENT '提交的时间', + `status` int(11) DEFAULT NULL COMMENT '结果码具体参考文档', + `share` tinyint(1) DEFAULT '0' COMMENT '0为仅自己可见,1为全部人可见。', + `error_message` mediumtext COMMENT '错误提醒(编译错误,或者vj提醒)', + `time` int(11) DEFAULT NULL COMMENT '运行时间(ms)', + `memory` int(11) DEFAULT NULL COMMENT '运行内存(kb)', + `score` int(11) DEFAULT NULL COMMENT 'IO判题则不为空', + `length` int(11) DEFAULT NULL COMMENT '代码长度', + `code` longtext NOT NULL COMMENT '代码', + `language` varchar(255) DEFAULT NULL COMMENT '代码语言', + `gid` bigint(20) unsigned DEFAULT NULL COMMENT '团队id,不为团队内提交则为null', + `cid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '比赛id,非比赛题目默认为0', + `cpid` bigint(20) unsigned DEFAULT '0' COMMENT '比赛中题目排序id,非比赛题目默认为0', + `judger` varchar(20) DEFAULT NULL COMMENT '判题机ip', + `ip` varchar(20) DEFAULT NULL COMMENT '提交者所在ip', + `version` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', + `oi_rank_score` int(11) NULL DEFAULT '0' COMMENT 'oi排行榜得分', + `vjudge_submit_id` bigint(20) unsigned NULL COMMENT 'vjudge判题在其它oj的提交id', + `vjudge_username` varchar(255) NULL COMMENT 'vjudge判题在其它oj的提交用户名', + `vjudge_password` varchar(255) NULL COMMENT 'vjudge判题在其它oj的提交账号密码', + `is_manual` tinyint(1) DEFAULT '0' COMMENT '是否为人工评测', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`submit_id`,`pid`,`display_pid`,`uid`,`cid`), + KEY `pid` (`pid`), + KEY `uid` (`uid`), + KEY `username` (`username`), + CONSTRAINT `judge_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `judge_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `judge_ibfk_3` FOREIGN KEY (`username`) REFERENCES `user_info` (`username`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `judge_ibfk_4` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `judge_case` */ + +DROP TABLE IF EXISTS `judge_case`; + +CREATE TABLE `judge_case` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `submit_id` bigint(20) unsigned NOT NULL COMMENT '提交判题id', + `uid` varchar(32) NOT NULL COMMENT '用户id', + `pid` bigint(20) unsigned NOT NULL COMMENT '题目id', + `case_id` bigint(20) DEFAULT NULL COMMENT '测试样例id', + `status` int(11) DEFAULT NULL COMMENT '具体看结果码', + `time` int(11) DEFAULT NULL COMMENT '测试该样例所用时间ms', + `memory` int(11) DEFAULT NULL COMMENT '测试该样例所用空间KB', + `score` int(11) DEFAULT NULL COMMENT 'IO得分', + `input_data` longtext COMMENT '样例输入,比赛不可看', + `output_data` longtext COMMENT '样例输出,比赛不可看', + `user_output` longtext COMMENT '用户样例输出,比赛不可看', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`,`submit_id`,`uid`,`pid`), + KEY `case_id` (`case_id`), + KEY `judge_case_ibfk_1` (`uid`), + KEY `judge_case_ibfk_2` (`pid`), + KEY `judge_case_ibfk_3` (`submit_id`), + CONSTRAINT `judge_case_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `judge_case_ibfk_2` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `judge_case_ibfk_3` FOREIGN KEY (`submit_id`) REFERENCES `judge` (`submit_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `judge_server` */ + +DROP TABLE IF EXISTS `judge_server`; + +CREATE TABLE `judge_server` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL COMMENT '判题服务名字', + `ip` varchar(255) NOT NULL COMMENT '判题机ip', + `port` int(11) NOT NULL COMMENT '判题机端口号', + `url` varchar(255) DEFAULT NULL COMMENT 'ip:port', + `cpu_core` int(11) DEFAULT '0' COMMENT '判题机所在服务器cpu核心数', + `task_number` int(11) NOT NULL DEFAULT '0' COMMENT '当前判题数', + `max_task_number` int(11) NOT NULL COMMENT '判题并发最大数', + `status` int(11) DEFAULT '0' COMMENT '0可用,1不可用', + `is_remote` tinyint(1) DEFAULT NULL COMMENT '是否开启远程判题vj', + `cf_submittable` tinyint(1) DEFAULT 1 NULL COMMENT '是否可提交CF', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `index_judge_remote` (`is_remote`), + KEY `index_judge_url` (`url`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `language` */ + +DROP TABLE IF EXISTS `language`; + +CREATE TABLE `language` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `content_type` varchar(255) DEFAULT NULL COMMENT '语言类型', + `description` varchar(255) DEFAULT NULL COMMENT '语言描述', + `name` varchar(255) DEFAULT NULL COMMENT '语言名字', + `compile_command` mediumtext COMMENT '编译指令', + `template` longtext COMMENT '模板', + `code_template` longtext COMMENT '语言默认代码模板', + `is_spj` tinyint(1) DEFAULT '0' COMMENT '是否可作为特殊判题的一种语言', + `oj` varchar(255) DEFAULT NULL COMMENT '该语言属于哪个oj,自身oj用ME', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `problem` */ + +DROP TABLE IF EXISTS `problem`; + +CREATE TABLE `problem` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `problem_id` varchar(255) NOT NULL COMMENT '问题的自定义ID 例如(HOJ-1000)', + `title` varchar(255) NOT NULL COMMENT '题目', + `author` varchar(255) DEFAULT '未知' COMMENT '作者', + `type` int(11) NOT NULL DEFAULT '0' COMMENT '0为ACM,1为OI', + `time_limit` int(11) DEFAULT '1000' COMMENT '单位ms', + `memory_limit` int(11) DEFAULT '65535' COMMENT '单位kb', + `stack_limit` int(11) DEFAULT '128' COMMENT '单位mb', + `description` longtext COMMENT '描述', + `input` longtext COMMENT '输入描述', + `output` longtext COMMENT '输出描述', + `examples` longtext COMMENT '题面样例', + `is_remote` tinyint(1) DEFAULT '0' COMMENT '是否为vj判题', + `source` text COMMENT '题目来源', + `difficulty` int(11) DEFAULT '0' COMMENT '题目难度,0简单,1中等,2困难', + `hint` longtext COMMENT '备注,提醒', + `auth` int(11) DEFAULT '1' COMMENT '默认为1公开,2为私有,3为比赛题目', + `io_score` int(11) DEFAULT '100' COMMENT '当该题目为io题目时的分数', + `code_share` tinyint(1) DEFAULT '1' COMMENT '该题目对应的相关提交代码,用户是否可用分享', + `judge_mode` varchar(255) DEFAULT 'default' COMMENT '题目评测模式,default、spj、interactive', + `user_extra_file` mediumtext DEFAULT NULL COMMENT '题目评测时用户程序的额外文件 json key:name value:content', + `judge_extra_file` mediumtext DEFAULT NULL COMMENT '题目评测时交互或特殊程序的额外文件 json key:name value:content', + `spj_code` longtext COMMENT '特判程序或交互程序代码', + `spj_language` varchar(255) DEFAULT NULL COMMENT '特判程序或交互程序代码的语言', + `is_remove_end_blank` tinyint(1) DEFAULT '1' COMMENT '是否默认去除用户代码的文末空格', + `open_case_result` tinyint(1) DEFAULT '1' COMMENT '是否默认开启该题目的测试样例结果查看', + `is_upload_case` tinyint(1) DEFAULT '1' COMMENT '题目测试数据是否是上传文件的', + `case_version` varchar(40) DEFAULT '0' COMMENT '题目测试数据的版本号', + `modified_user` varchar(255) DEFAULT NULL COMMENT '修改题目的管理员用户名', + `is_group` tinyint(1) DEFAULT '0', + `gid` bigint(20) unsigned DEFAULT NULL, + `apply_public_progress` int(11) DEFAULT NULL COMMENT '申请公开的进度:null为未申请,1为申请中,2为申请通过,3为申请拒绝', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `author` (`author`), + KEY `problem_id` (`problem_id`), + CONSTRAINT `problem_ibfk_1` FOREIGN KEY (`author`) REFERENCES `user_info` (`username`) ON DELETE NO ACTION ON UPDATE CASCADE, + CONSTRAINT `problem_ibfk_2` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8; + +/*Table structure for table `problem_case` */ + +DROP TABLE IF EXISTS `problem_case`; + +CREATE TABLE `problem_case` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', + `pid` bigint(20) unsigned NOT NULL COMMENT '题目id', + `input` longtext COMMENT '测试样例的输入', + `output` longtext COMMENT '测试样例的输出', + `score` int(11) DEFAULT NULL COMMENT '该测试样例的IO得分', + `status` int(11) DEFAULT '0' COMMENT '0可用,1不可用', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `pid` (`pid`), + CONSTRAINT `problem_case_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + + +/*Table structure for table `problem_language` */ + +DROP TABLE IF EXISTS `problem_language`; + +CREATE TABLE `problem_language` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `pid` bigint(20) unsigned NOT NULL, + `lid` bigint(20) unsigned NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `pid` (`pid`), + KEY `lid` (`lid`), + CONSTRAINT `problem_language_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `problem_language_ibfk_2` FOREIGN KEY (`lid`) REFERENCES `language` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `problem_tag` */ + +DROP TABLE IF EXISTS `problem_tag`; + +CREATE TABLE `problem_tag` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `pid` bigint(20) unsigned NOT NULL, + `tid` bigint(20) unsigned NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `pid` (`pid`), + KEY `tid` (`tid`), + CONSTRAINT `problem_tag_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `problem_tag_ibfk_2` FOREIGN KEY (`tid`) REFERENCES `tag` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `reply` */ + +DROP TABLE IF EXISTS `reply`; + +CREATE TABLE `reply` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `comment_id` int(11) NOT NULL COMMENT '被回复的评论id', + `from_uid` varchar(255) NOT NULL COMMENT '发起回复的用户id', + `from_name` varchar(255) NOT NULL COMMENT '发起回复的用户名', + `from_avatar` varchar(255) DEFAULT NULL COMMENT '发起回复的用户头像地址', + `from_role` varchar(255) DEFAULT NULL COMMENT '发起回复的用户角色', + `to_uid` varchar(255) NOT NULL COMMENT '被回复的用户id', + `to_name` varchar(255) NOT NULL COMMENT '被回复的用户名', + `to_avatar` varchar(255) DEFAULT NULL COMMENT '被回复的用户头像地址', + `content` longtext COMMENT '回复的内容', + `status` int(11) DEFAULT '0' COMMENT '是否封禁或逻辑删除该回复', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `comment_id` (`comment_id`), + KEY `from_avatar` (`from_avatar`), + KEY `to_avatar` (`to_avatar`), + CONSTRAINT `reply_ibfk_1` FOREIGN KEY (`comment_id`) REFERENCES `comment` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `reply_ibfk_2` FOREIGN KEY (`from_avatar`) REFERENCES `user_info` (`avatar`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `reply_ibfk_3` FOREIGN KEY (`to_avatar`) REFERENCES `user_info` (`avatar`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `role` */ + +DROP TABLE IF EXISTS `role`; + +CREATE TABLE `role` ( + `id` bigint(20) unsigned zerofill NOT NULL, + `role` varchar(50) NOT NULL COMMENT '角色', + `description` varchar(100) DEFAULT NULL COMMENT '描述', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '默认0可用,1不可用', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `role_auth` */ + +DROP TABLE IF EXISTS `role_auth`; + +CREATE TABLE `role_auth` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `auth_id` bigint(20) unsigned NOT NULL, + `role_id` bigint(20) unsigned NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `auth_id` (`auth_id`) USING BTREE, + KEY `role_id` (`role_id`) USING BTREE, + CONSTRAINT `role_auth_ibfk_1` FOREIGN KEY (`auth_id`) REFERENCES `auth` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `role_auth_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `session` */ + +DROP TABLE IF EXISTS `session`; + +CREATE TABLE `session` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `uid` varchar(255) NOT NULL, + `user_agent` varchar(512) DEFAULT NULL, + `ip` varchar(255) DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `uid` (`uid`), + CONSTRAINT `session_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +DROP TABLE IF EXISTS `tag_classification`; +CREATE TABLE `tag_classification` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签分类名称', + `oj` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签分类所属oj', + `gmt_create` datetime NULL DEFAULT NULL, + `gmt_modified` datetime NULL DEFAULT NULL, + `rank` int(10) UNSIGNED ZEROFILL NULL DEFAULT NULL COMMENT '标签分类优先级 越小越高', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `tag` */ + +DROP TABLE IF EXISTS `tag`; + +CREATE TABLE `tag` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL COMMENT '标签名字', + `color` varchar(10) DEFAULT NULL COMMENT '标签颜色', + `oj` varchar(255) DEFAULT 'ME' COMMENT '标签所属oj', + `gid` bigint(20) unsigned DEFAULT NULL, + `tcid` bigint(20) unsigned DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`,`oj`, `gid`), + CONSTRAINT `tag_ibfk_1` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `tag_ibfk_2` FOREIGN KEY (`tcid`) REFERENCES `tag_classification` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + + +/*Table structure for table `user_acproblem` */ + +DROP TABLE IF EXISTS `user_acproblem`; + +CREATE TABLE `user_acproblem` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `uid` varchar(32) NOT NULL COMMENT '用户id', + `pid` bigint(20) unsigned NOT NULL COMMENT 'ac的题目id', + `submit_id` bigint(20) unsigned NOT NULL COMMENT '提交id', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `submit_id` (`submit_id`), + KEY `uid` (`uid`), + KEY `pid` (`pid`), + CONSTRAINT `user_acproblem_ibfk_2` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `user_acproblem_ibfk_3` FOREIGN KEY (`submit_id`) REFERENCES `judge` (`submit_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `user_info` */ + +DROP TABLE IF EXISTS `user_info`; + +CREATE TABLE `user_info` ( + `uuid` varchar(32) NOT NULL, + `username` varchar(100) NOT NULL COMMENT '用户名', + `password` varchar(100) NOT NULL COMMENT '密码', + `nickname` varchar(100) DEFAULT NULL COMMENT '昵称', + `school` varchar(100) DEFAULT NULL COMMENT '学校', + `course` varchar(100) DEFAULT NULL COMMENT '专业', + `number` varchar(20) DEFAULT NULL COMMENT '学号', + `realname` varchar(100) DEFAULT NULL COMMENT '真实姓名', + `gender` varchar(20) DEFAULT 'secrecy' NOT NULL COMMENT '性别', + `github` varchar(255) DEFAULT NULL COMMENT 'github地址', + `blog` varchar(255) DEFAULT NULL COMMENT '博客地址', + `cf_username` varchar(255) DEFAULT NULL COMMENT 'cf的username', + `email` varchar(320) DEFAULT NULL COMMENT '邮箱', + `avatar` varchar(255) DEFAULT NULL COMMENT '头像地址', + `signature` mediumtext COMMENT '个性签名', + `title_name` varchar(255) DEFAULT NULL COMMENT '头衔、称号', + `title_color` varchar(255) DEFAULT NULL COMMENT '头衔、称号的颜色', + `status` int(11) NOT NULL DEFAULT '0' COMMENT '0可用,1不可用', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`uuid`), + UNIQUE KEY `USERNAME_UNIQUE` (`username`), + UNIQUE KEY `EMAIL_UNIQUE` (`email`), + UNIQUE KEY `avatar` (`avatar`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `user_record` */ + +DROP TABLE IF EXISTS `user_record`; + +CREATE TABLE `user_record` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `uid` varchar(32) NOT NULL COMMENT '用户id', + `rating` int(11) DEFAULT NULL COMMENT 'cf得分', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`,`uid`), + KEY `uid` (`uid`), + CONSTRAINT `user_record_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `user_role` */ + +DROP TABLE IF EXISTS `user_role`; + +CREATE TABLE `user_role` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `uid` varchar(32) NOT NULL, + `role_id` bigint(20) unsigned NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `uid` (`uid`) USING BTREE, + KEY `role_id` (`role_id`) USING BTREE, + CONSTRAINT `user_role_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `user_role_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; + +/*Table structure for table `remote_judge_account` */ + +DROP TABLE IF EXISTS `remote_judge_account`; + +CREATE TABLE `remote_judge_account` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `oj` varchar(50) NOT NULL COMMENT '远程oj名字', + `username` varchar(255) NOT NULL COMMENT '账号', + `password` varchar(255) NOT NULL COMMENT '密码', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否可用', + `version` bigint(20) DEFAULT '0' COMMENT '版本控制', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + +DROP TABLE IF EXISTS `admin_sys_notice`; + +CREATE TABLE `admin_sys_notice` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) DEFAULT NULL COMMENT '标题', + `content` longtext COMMENT '内容', + `type` varchar(255) DEFAULT NULL COMMENT '发给哪些用户类型', + `state` tinyint(1) DEFAULT '0' COMMENT '是否已拉取给用户', + `recipient_id` varchar(32) DEFAULT NULL COMMENT '接受通知的用户id', + `admin_id` varchar(32) DEFAULT NULL COMMENT '发送通知的管理员id', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + KEY `recipient_id` (`recipient_id`), + KEY `admin_id` (`admin_id`), + CONSTRAINT `admin_sys_notice_ibfk_1` FOREIGN KEY (`recipient_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `admin_sys_notice_ibfk_2` FOREIGN KEY (`admin_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `msg_remind` */ + +DROP TABLE IF EXISTS `msg_remind`; + +CREATE TABLE `msg_remind` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `action` varchar(255) NOT NULL COMMENT '动作类型,如点赞讨论帖Like_Post、点赞评论Like_Discuss、评论Discuss、回复Reply等', + `source_id` int(10) unsigned DEFAULT NULL COMMENT '消息来源id,讨论id或比赛id', + `source_type` varchar(255) DEFAULT NULL COMMENT '事件源类型:''Discussion''、''Contest''等', + `source_content` varchar(255) DEFAULT NULL COMMENT '事件源的内容,比如回复的内容,评论的帖子标题等等', + `quote_id` int(10) unsigned DEFAULT NULL COMMENT '事件引用上一级评论或回复id', + `quote_type` varchar(255) DEFAULT NULL COMMENT '事件引用上一级的类型:Comment、Reply', + `url` varchar(255) DEFAULT NULL COMMENT '事件所发生的地点链接 url', + `state` tinyint(1) DEFAULT '0' COMMENT '是否已读', + `sender_id` varchar(32) DEFAULT NULL COMMENT '操作者的id', + `recipient_id` varchar(32) DEFAULT NULL COMMENT '接受消息的用户id', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + KEY `sender_id` (`sender_id`), + KEY `recipient_id` (`recipient_id`), + CONSTRAINT `msg_remind_ibfk_1` FOREIGN KEY (`sender_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `msg_remind_ibfk_2` FOREIGN KEY (`recipient_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `user_sys_notice` */ + +DROP TABLE IF EXISTS `user_sys_notice`; + +CREATE TABLE `user_sys_notice` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `sys_notice_id` bigint(20) unsigned DEFAULT NULL COMMENT '系统通知的id', + `recipient_id` varchar(32) DEFAULT NULL COMMENT '接受通知的用户id', + `type` varchar(255) DEFAULT NULL COMMENT '消息类型,系统通知sys、我的信息mine', + `state` tinyint(1) DEFAULT '0' COMMENT '是否已读', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '读取时间', + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `sys_notice_id` (`sys_notice_id`), + KEY `recipient_id` (`recipient_id`), + CONSTRAINT `user_sys_notice_ibfk_1` FOREIGN KEY (`sys_notice_id`) REFERENCES `admin_sys_notice` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `user_sys_notice_ibfk_2` FOREIGN KEY (`recipient_id`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + +/*Table structure for table `training` */ + +DROP TABLE IF EXISTS `training`; + +CREATE TABLE `training` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) DEFAULT NULL COMMENT '训练题单名称', + `description` longtext COMMENT '训练题单简介', + `author` varchar(255) NOT NULL COMMENT '训练题单创建者用户名', + `auth` varchar(255) NOT NULL COMMENT '训练题单权限类型:Public、Private', + `private_pwd` varchar(255) DEFAULT NULL COMMENT '训练题单权限为Private时的密码', + `rank` int DEFAULT '0' COMMENT '编号,升序', + `status` tinyint(1) DEFAULT '1' COMMENT '是否可用', + `is_group` tinyint(1) DEFAULT '0', + `gid` bigint(20) unsigned DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + CONSTRAINT `training_ibfk_1` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `training_category` */ + +DROP TABLE IF EXISTS `training_category`; + +CREATE TABLE `training_category` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `color` varchar(255) DEFAULT NULL, + `gid` bigint(20) unsigned DEFAULT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + CONSTRAINT `training_category_ibfk_1` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `training_problem` */ + +DROP TABLE IF EXISTS `training_problem`; + +CREATE TABLE `training_problem` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL COMMENT '训练id', + `pid` bigint unsigned NOT NULL COMMENT '题目id', + `rank` int DEFAULT '0', + `display_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `pid` (`pid`), + KEY `display_id` (`display_id`), + CONSTRAINT `training_problem_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_problem_ibfk_2` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_problem_ibfk_3` FOREIGN KEY (`display_id`) REFERENCES `problem` (`problem_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `training_record` */ + +DROP TABLE IF EXISTS `training_record`; + +CREATE TABLE `training_record` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL, + `tpid` bigint unsigned NOT NULL, + `pid` bigint unsigned NOT NULL, + `uid` varchar(255) NOT NULL, + `submit_id` bigint unsigned NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `tpid` (`tpid`), + KEY `pid` (`pid`), + KEY `uid` (`uid`), + KEY `submit_id` (`submit_id`), + CONSTRAINT `training_record_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_2` FOREIGN KEY (`tpid`) REFERENCES `training_problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_3` FOREIGN KEY (`pid`) REFERENCES `problem` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_4` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_record_ibfk_5` FOREIGN KEY (`submit_id`) REFERENCES `judge` (`submit_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `training_register` */ + +DROP TABLE IF EXISTS `training_register`; + +CREATE TABLE `training_register` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL COMMENT '训练id', + `uid` varchar(255) NOT NULL COMMENT '用户id', + `status` tinyint(1) DEFAULT '1' COMMENT '是否可用', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `uid` (`uid`), + CONSTRAINT `training_register_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `training_register_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + +DROP TABLE IF EXISTS `mapping_training_category`; + +CREATE TABLE `mapping_training_category` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `tid` bigint unsigned NOT NULL, + `cid` bigint unsigned NOT NULL, + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tid` (`tid`), + KEY `cid` (`cid`), + CONSTRAINT `mapping_training_category_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `training` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `mapping_training_category_ibfk_2` FOREIGN KEY (`cid`) REFERENCES `training_category` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +/*Table structure for table `group` */ + +DROP TABLE IF EXISTS `group`; + +CREATE TABLE `group` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `avatar` varchar(255) DEFAULT NULL COMMENT '头像地址', + `name` varchar(25) DEFAULT NULL COMMENT '团队名称', + `short_name` varchar(10) DEFAULT NULL COMMENT '团队简称,创建题目时题号自动添加的前缀', + `brief` varchar(50) COMMENT '团队简介', + `description` longtext COMMENT '团队介绍', + `owner` varchar(255) NOT NULL COMMENT '团队拥有者用户名', + `uid` varchar(32) NOT NULL COMMENT '团队拥有者用户id', + `auth` int(11) NOT NULL COMMENT '0为Public,1为Protected,2为Private', + `visible` tinyint(1) DEFAULT '1' COMMENT '是否可见', + `status` tinyint(1) DEFAULT '0' COMMENT '是否封禁', + `code` varchar(6) DEFAULT NULL COMMENT '邀请码', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `NAME_UNIQUE` (`name`), + UNIQUE KEY `short_name` (`short_name`), + CONSTRAINT `group_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8; + +/*Table structure for table `group_member` */ + +DROP TABLE IF EXISTS `group_member`; + +CREATE TABLE `group_member` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `gid` bigint unsigned NOT NULL COMMENT '团队id', + `uid` varchar(32) NOT NULL COMMENT '用户id', + `auth` int(11) DEFAULT '1' COMMENT '1未审批,2拒绝,3普通成员,4团队管理员,5团队拥有者', + `reason` varchar(100) DEFAULT NULL COMMENT '申请理由', + `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `gid_uid_unique` (`gid`, `uid`), + KEY `gid` (`gid`), + KEY `uid` (`uid`), + CONSTRAINT `group_member_ibfk_1` FOREIGN KEY (`gid`) REFERENCES `group` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `group_member_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `user_info` (`uuid`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + +/* Trigger structure for table `contest` */ + +DELIMITER $$ + +/*!50003 DROP TRIGGER*//*!50032 IF EXISTS */ /*!50003 `contest_trigger` */$$ + +/*!50003 CREATE */ /*!50017 DEFINER = 'root'@'localhost' */ /*!50003 TRIGGER `contest_trigger` BEFORE INSERT ON `contest` FOR EACH ROW BEGIN +set new.status=( + CASE + WHEN NOW() < new.start_time THEN -1 + WHEN NOW() >= new.start_time AND NOW()= new.end_time THEN 1 + END); +END */$$ + + +DELIMITER ; + +/*!50106 set global event_scheduler = 1*/; + +/* Event structure for event `contest_event` */ + +/*!50106 DROP EVENT IF EXISTS `contest_event`*/; + +DELIMITER $$ + +/*!50106 CREATE DEFINER=`root`@`localhost` EVENT `contest_event` ON SCHEDULE EVERY 1 SECOND STARTS '2021-04-18 19:04:49' ON COMPLETION PRESERVE ENABLE DO CALL contest_status() */$$ +DELIMITER ; + +/* Procedure structure for procedure `contest_status` */ + +/*!50003 DROP PROCEDURE IF EXISTS `contest_status` */; + +DELIMITER $$ + +/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `contest_status`() +BEGIN + UPDATE contest + SET STATUS = ( + CASE + WHEN NOW() < start_time THEN -1 + WHEN NOW() >= start_time AND NOW()= end_time THEN 1 + END); + END */$$ +DELIMITER ; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + + + +/*!40101 SET NAMES utf8 */; + +/*!40101 SET SQL_MODE=''*/; + +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +USE `hoj`; + +delete from `auth`; + +delete from `category`; + +delete from `language`; + +delete from `role`; + +delete from `role_auth`; + +delete from `user_record`; + +delete from `user_role`; + +delete from `user_info`; + +/*Data for the table `auth` */ + +insert into `auth`(`id`,`name`,`permission`,`status`,`gmt_create`,`gmt_modified`) values (1,'problem','problem_admin',0,'2020-10-25 00:17:17','2021-05-15 06:51:23'),(2,'submit','submit',0,'2020-10-25 00:17:22','2021-05-15 06:41:59'),(3,'contest','contest_admin',0,'2020-10-25 00:17:33','2021-05-15 06:51:28'),(4,'rejudge','rejudge',0,'2020-10-25 00:17:49','2021-05-15 06:50:55'),(5,'announcement','announcement_admin',0,'2021-05-15 06:54:28','2021-05-15 06:54:31'),(6,'user','user_admin',0,'2021-05-15 06:54:30','2021-05-15 06:55:04'),(7,'system_info','system_info_admin',0,'2021-05-15 06:57:34','2021-05-15 06:57:41'),(8,'dicussion','discussion_add',0,'2021-05-15 06:57:36','2021-05-15 07:50:45'),(9,'dicussion','discussion_del',0,'2021-05-15 07:01:02','2021-05-15 07:51:31'),(10,'dicussion','discussion_edit',0,'2021-05-15 07:02:15','2021-05-15 07:51:34'),(11,'comment','comment_add',0,'2021-05-15 07:03:48','2021-05-15 07:03:48'),(12,'reply','reply_add',0,'2021-05-15 07:04:55','2021-05-15 07:04:55'),(13,'group','group_add',0,'2022-03-11 13:36:55','2022-03-11 13:36:55'),(14,'group','group_del',0,'2022-03-11 13:36:55','2022-03-11 13:36:55'); + +/*Data for the table `category` */ + +insert into `category`(`id`,`name`,`gmt_create`,`gmt_modified`) values (1,'闲聊','2021-05-06 11:25:24','2021-05-06 16:43:42'),(2,'题解','2021-05-06 11:25:36','2021-05-06 16:43:47'),(3,'求助','2021-05-06 11:25:40','2021-05-06 11:25:40'),(4,'建议','2021-05-06 11:25:56','2021-05-06 11:25:56'),(5,'记录','2021-05-06 11:26:02','2021-05-06 16:43:51'); + +/*Data for the table `language` */ + +insert into `language`(`id`,`content_type`,`description`,`name`,`compile_command`,`template`,`code_template`,`is_spj`,`oj`,`gmt_create`,`gmt_modified`) values (1,'text/x-csrc','GCC 7.5.0','C','/usr/bin/gcc -DONLINE_JUDGE -w -fmax-errors=3 -std=c11 {src_path} -lm -o {exe_path}','#include \r\nint main() {\r\n int a,b;\r\n scanf(\"%d %d\",&a,&b);\r\n printf(\"%d\",a+b);\r\n return 0;\r\n}','//PREPEND BEGIN\r\n#include \r\n//PREPEND END\r\n\r\n//TEMPLATE BEGIN\r\nint add(int a, int b) {\r\n // Please fill this blank\r\n return ___________;\r\n}\r\n//TEMPLATE END\r\n\r\n//APPEND BEGIN\r\nint main() {\r\n printf(\"%d\", add(1, 2));\r\n return 0;\r\n}\r\n//APPEND END',1,'ME','2020-12-12 23:11:44','2021-06-14 21:40:28'),(2,'text/x-csrc','GCC 7.5.0','C With O2','/usr/bin/gcc -DONLINE_JUDGE -O2 -w -fmax-errors=3 -std=c11 {src_path} -lm -o {exe_path}','#include \r\nint main() {\r\n int a,b;\r\n scanf(\"%d %d\",&a,&b);\r\n printf(\"%d\",a+b);\r\n return 0;\r\n}','//PREPEND BEGIN\r\n#include \r\n//PREPEND END\r\n\r\n//TEMPLATE BEGIN\r\nint add(int a, int b) {\r\n // Please fill this blank\r\n return ___________;\r\n}\r\n//TEMPLATE END\r\n\r\n//APPEND BEGIN\r\nint main() {\r\n printf(\"%d\", add(1, 2));\r\n return 0;\r\n}\r\n//APPEND END',0,'ME','2021-06-14 21:05:57','2021-06-14 21:20:08'),(3,'text/x-c++src','G++ 7.5.0','C++','/usr/bin/g++ -DONLINE_JUDGE -w -fmax-errors=3 -std=c++14 {src_path} -lm -o {exe_path}','#include\r\nusing namespace std;\r\nint main()\r\n{\r\n int a,b;\r\n cin >> a >> b;\r\n cout << a + b;\r\n return 0;\r\n}','//PREPEND BEGIN\r\n#include \r\nusing namespace std;\r\n//PREPEND END\r\n\r\n//TEMPLATE BEGIN\r\nint add(int a, int b) {\r\n // Please fill this blank\r\n return ___________;\r\n}\r\n//TEMPLATE END\r\n\r\n//APPEND BEGIN\r\nint main() {\r\n cout << add(1, 2);\r\n return 0;\r\n}\r\n//APPEND END',1,'ME','2020-12-12 23:12:44','2021-06-14 21:40:36'),(4,'text/x-c++src','G++ 7.5.0','C++ With O2','/usr/bin/g++ -DONLINE_JUDGE -O2 -w -fmax-errors=3 -std=c++14 {src_path} -lm -o {exe_path}','#include\r\nusing namespace std;\r\nint main()\r\n{\r\n int a,b;\r\n cin >> a >> b;\r\n cout << a + b;\r\n return 0;\r\n}','//PREPEND BEGIN\r\n#include \r\nusing namespace std;\r\n//PREPEND END\r\n\r\n//TEMPLATE BEGIN\r\nint add(int a, int b) {\r\n // Please fill this blank\r\n return ___________;\r\n}\r\n//TEMPLATE END\r\n\r\n//APPEND BEGIN\r\nint main() {\r\n cout << add(1, 2);\r\n return 0;\r\n}\r\n//APPEND END',0,'ME','2021-06-14 21:09:35','2021-06-14 21:20:19'),(5,'text/x-java','OpenJDK 1.8','Java','/usr/bin/javac {src_path} -d {exe_dir} -encoding UTF8','import java.util.Scanner;\r\npublic class Main{\r\n public static void main(String[] args){\r\n Scanner in=new Scanner(System.in);\r\n int a=in.nextInt();\r\n int b=in.nextInt();\r\n System.out.println((a+b));\r\n }\r\n}','//PREPEND BEGIN\r\nimport java.util.Scanner;\r\n//PREPEND END\r\n\r\npublic class Main{\r\n //TEMPLATE BEGIN\r\n public static Integer add(int a,int b){\r\n return _______;\r\n }\r\n //TEMPLATE END\r\n\r\n //APPEND BEGIN\r\n public static void main(String[] args){\r\n System.out.println(add(a,b));\r\n }\r\n //APPEND END\r\n}\r\n',0,'ME','2020-12-12 23:12:51','2021-06-14 21:19:52'),(6,'text/x-python','Python 3.7.5','Python3','/usr/bin/python3 -m py_compile {src_path}','a, b = map(int, input().split())\r\nprint(a + b)','//PREPEND BEGIN\r\n//PREPEND END\r\n\r\n//TEMPLATE BEGIN\r\ndef add(a, b):\r\n return a + b\r\n//TEMPLATE END\r\n\r\n\r\nif __name__ == \'__main__\': \r\n //APPEND BEGIN\r\n a, b = 1, 1\r\n print(add(a, b))\r\n //APPEND END',0,'ME','2020-12-12 23:14:23','2021-06-14 21:19:50'),(7,'text/x-python','Python 2.7.17','Python2','/usr/bin/python -m py_compile {src_path}','a, b = map(int, raw_input().split())\r\nprint a+b','//PREPEND BEGIN\r\n//PREPEND END\r\n\r\n//TEMPLATE BEGIN\r\ndef add(a, b):\r\n return a + b\r\n//TEMPLATE END\r\n\r\n\r\nif __name__ == \'__main__\': \r\n //APPEND BEGIN\r\n a, b = 1, 1\r\n print add(a, b)\r\n //APPEND END',0,'ME','2021-01-26 11:11:44','2021-06-14 21:19:45'),(8,'text/x-go','Golang 1.16','Golang','/usr/bin/go build -o {exe_path} {src_path}','package main\r\nimport \"fmt\"\r\n\r\nfunc main(){\r\n var x int\r\n var y int\r\n fmt.Scanln(&x,&y)\r\n fmt.Printf(\"%d\",x+y) \r\n}\r\n','\r\npackage main\r\n\r\n//PREPEND BEGIN\r\nimport \"fmt\"\r\n//PREPEND END\r\n\r\n\r\n//TEMPLATE BEGIN\r\nfunc add(a,b int)int{\r\n return ______\r\n}\r\n//TEMPLATE END\r\n\r\n//APPEND BEGIN\r\nfunc main(){\r\n var x int\r\n var y int\r\n fmt.Printf(\"%d\",add(x,y)) \r\n}\r\n//APPEND END\r\n',0,'ME','2021-03-28 23:15:54','2021-06-14 21:20:26'),(9,'text/x-csharp','C# Mono 4.6.2','C#','/usr/bin/mcs -optimize+ -out:{exe_path} {src_path}','using System;\r\nusing System.Linq;\r\n\r\nclass Program {\r\n public static void Main(string[] args) {\r\n Console.WriteLine(Console.ReadLine().Split().Select(int.Parse).Sum());\r\n }\r\n}','//PREPEND BEGIN\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\n//PREPEND END\r\n\r\nclass Solution\r\n{\r\n //TEMPLATE BEGIN\r\n static int add(int a,int b){\r\n return _______;\r\n }\r\n //TEMPLATE END\r\n\r\n //APPEND BEGIN\r\n static void Main(string[] args)\r\n {\r\n int a ;\r\n int b ;\r\n Console.WriteLine(add(a,b));\r\n }\r\n //APPEND END\r\n}',0,'ME','2021-04-13 16:10:03','2021-06-14 21:20:36'),(11,'text/x-csrc','GCC','GCC',NULL,NULL,NULL,0,'HDU','2021-02-18 21:32:34','2021-06-14 21:19:08'),(12,'text/x-c++src','G++','G++',NULL,NULL,NULL,0,'HDU','2021-02-18 21:32:58','2021-06-14 21:19:05'),(13,'text/x-c++src','C++','C++',NULL,NULL,NULL,0,'HDU','2021-02-18 21:33:11','2021-06-14 21:19:03'),(14,'text/x-csrc','C','C',NULL,NULL,NULL,0,'HDU','2021-02-18 21:33:41','2021-06-14 21:18:58'),(15,'text/x-pascal','Pascal','Pascal',NULL,NULL,NULL,0,'HDU','2021-02-18 21:34:33','2021-06-14 21:18:56'),(16,'text/x-csrc','GNU GCC C11 5.1.0','GNU GCC C11 5.1.0',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:55'),(17,'text/x-c++src','Clang++17 Diagnostics','Clang++17 Diagnostics',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:54'),(19,'text/x-c++src','GNU G++14 6.4.0','GNU G++14 6.4.0',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:46'),(20,'text/x-c++src','GNU G++17 7.3.0','GNU G++17 7.3.0',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:45'),(21,'text/x-c++src','GNU G++20 11.2.0 (64 bit, winlibs)','GNU G++20 11.2.0 (64 bit, winlibs)',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:43'),(22,'text/x-c++src','Microsoft Visual C++ 2017','Microsoft Visual C++ 2017',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:40'),(23,'text/x-csharp','C# Mono 6.8','C# Mono 6.8',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:36'),(24,'text/x-d','D DMD32 v2.091.0','D DMD32 v2.091.0',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:34'),(25,'text/x-go','Go 1.15.6','Go 1.15.6',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:32'),(26,'text/x-haskell','Haskell GHC 8.10.1','Haskell GHC 8.10.1',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:31'),(27,'text/x-java','Java 1.8.0_241','Java 1.8.0_241',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:26'),(28,'text/x-java','Kotlin 1.4.0','Kotlin 1.4.0',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:24'),(29,'text/x-ocaml','OCaml 4.02.1','OCaml 4.02.1',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:23'),(30,'text/x-pascal','Delphi 7','Delphi 7',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:20'),(31,'text/x-pascal','Free Pascal 3.0.2','Free Pascal 3.0.2',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:18'),(32,'text/x-pascal','PascalABC.NET 3.4.2','PascalABC.NET 3.4.2',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:16'),(33,'text/x-perl','Perl 5.20.1','Perl 5.20.1',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:15'),(34,'text/x-php','PHP 7.2.13','PHP 7.2.13',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:12'),(35,'text/x-python','Python 2.7.18','Python 2.7.18',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:06'),(36,'text/x-python','Python 3.9.1','Python 3.9.1',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:04'),(37,'text/x-python','PyPy 2.7 (7.3.0)','PyPy 2.7 (7.3.0)',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:02'),(38,'text/x-python','PyPy 3.7 (7.3.0)','PyPy 3.7 (7.3.0)',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:18:00'),(39,'text/x-ruby','Ruby 3.0.0','Ruby 3.0.0',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:17:58'),(40,'text/x-rustsrc','Rust 1.49.0','Rust 1.49.0',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:17:56'),(41,'text/x-scala','Scala 2.12.8','Scala 2.12.8',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:17:54'),(42,'text/javascript','JavaScript V8 4.8.0','JavaScript V8 4.8.0',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:17:52'),(43,'text/javascript','Node.js 12.6.3','Node.js 12.6.3',NULL,NULL,NULL,0,'CF','2021-03-03 19:46:24','2021-06-14 21:17:50'),(44,'text/x-csharp','C# 8, .NET Core 3.1','C# 8, .NET Core 3.1',NULL,NULL,NULL,0,'CF','2021-03-25 21:17:39','2021-06-14 21:17:47'),(45,'text/x-java','Java 11.0.6','Java 11.0.6',NULL,NULL,NULL,0,'CF','2021-03-25 21:20:03','2021-06-14 21:17:46'),(46,'text/x-c++src','G++','G++',NULL,NULL,NULL,0,'POJ','2021-06-24 22:50:50','2021-06-24 22:50:50'),(47,'text/x-csrc','GCC','GCC',NULL,NULL,NULL,0,'POJ','2021-06-24 22:51:04','2021-06-24 22:51:12'),(48,'text/x-java','Java','Java',NULL,NULL,NULL,0,'POJ','2021-06-24 22:51:29','2021-06-24 22:51:44'),(49,'text/x-pascal','Pascal','Pascal',NULL,NULL,NULL,0,'POJ','2021-06-24 22:51:50','2021-06-24 22:52:02'),(50,'text/x-c++src','C++','C++',NULL,NULL,NULL,0,'POJ','2021-06-24 22:52:15','2021-06-24 22:52:27'),(51,'text/x-csrc','C','C',NULL,NULL,NULL,0,'POJ','2021-06-24 22:52:38','2021-06-24 22:52:38'),(52,'text/x-fortran','Fortran','Fortran',NULL,NULL,NULL,0,'POJ','2021-06-24 22:55:15','2021-06-24 22:55:15'); + +/*Data for the table `role` */ + +insert into `role`(`id`,`role`,`description`,`status`,`gmt_create`,`gmt_modified`) values (00000000000000001000,'root','超级管理员',0,'2020-10-25 00:16:30','2020-10-25 00:16:30'),(00000000000000001001,'admin','管理员',0,'2020-10-25 00:16:41','2020-10-25 00:16:41'),(00000000000000001002,'default_user','默认用户',0,'2020-10-25 00:16:52','2021-05-15 07:39:05'),(00000000000000001003,'no_subimit_user','禁止提交用户',0,'2021-05-15 07:10:14','2021-05-15 07:39:14'),(00000000000000001004,'no_discuss_user','禁止发贴讨论用户',0,'2021-05-15 07:11:28','2021-05-15 07:39:16'),(00000000000000001005,'mute_user','禁言包括回复讨论发帖用户',0,'2021-05-15 07:12:51','2021-05-15 07:39:19'),(00000000000000001006,'no_submit_no_discuss_user','禁止提交同时禁止发帖用户',0,'2021-05-15 07:38:08','2021-05-15 07:39:34'),(00000000000000001007,'no_submit_mute_user','禁言禁提交用户',0,'2021-05-15 07:39:00','2021-05-15 07:39:26'),(00000000000000001008,'problem_admin','题目管理员',0,'2021-06-12 23:15:06','2021-06-12 23:15:06'); + +/*Data for the table `role_auth` */ + +insert into `role_auth`(`id`,`auth_id`,`role_id`,`gmt_create`,`gmt_modified`) values (1,1,1000,'2020-10-25 00:18:17','2020-10-25 00:18:17'),(2,2,1000,'2020-10-25 00:18:38','2021-05-15 07:17:35'),(3,3,1000,'2020-10-25 00:18:48','2021-05-15 07:17:44'),(4,4,1000,'2021-05-15 07:17:56','2021-05-15 07:17:56'),(5,5,1000,'2021-05-15 07:18:20','2021-05-15 07:18:20'),(6,6,1000,'2021-05-15 07:18:29','2021-05-15 07:18:29'),(7,7,1000,'2021-05-15 07:18:42','2021-05-15 07:18:42'),(8,8,1000,'2021-05-15 07:18:59','2021-05-15 07:18:59'),(9,9,1000,'2021-05-15 07:19:07','2021-05-15 07:19:07'),(10,10,1000,'2021-05-15 07:19:10','2021-05-15 07:19:10'),(11,11,1000,'2021-05-15 07:19:13','2021-05-15 07:19:13'),(12,12,1000,'2021-05-15 07:19:18','2021-05-15 07:19:30'),(13,1,1001,'2021-05-15 07:19:29','2021-05-15 07:20:02'),(14,2,1001,'2021-05-15 07:20:25','2021-05-15 07:20:25'),(15,3,1001,'2021-05-15 07:20:33','2021-05-15 07:20:33'),(16,8,1001,'2021-05-15 07:21:56','2021-05-15 07:21:56'),(17,9,1001,'2021-05-15 07:22:03','2021-05-15 07:22:03'),(18,10,1001,'2021-05-15 07:22:10','2021-05-15 07:22:10'),(19,11,1001,'2021-05-15 07:22:17','2021-05-15 07:22:17'),(20,12,1001,'2021-05-15 07:22:21','2021-05-15 07:22:21'),(21,2,1002,'2021-05-15 07:22:40','2021-05-15 07:22:40'),(22,8,1002,'2021-05-15 07:23:49','2021-05-15 07:23:49'),(23,9,1002,'2021-05-15 07:24:10','2021-05-15 07:24:10'),(24,10,1002,'2021-05-15 07:24:14','2021-05-15 07:24:14'),(25,11,1002,'2021-05-15 07:24:19','2021-05-15 07:24:19'),(26,12,1002,'2021-05-15 07:24:23','2021-05-15 07:24:23'),(27,8,1003,'2021-05-15 07:32:56','2021-05-15 07:32:56'),(28,9,1003,'2021-05-15 07:33:01','2021-05-15 07:33:01'),(29,10,1003,'2021-05-15 07:33:05','2021-05-15 07:33:05'),(30,11,1003,'2021-05-15 07:33:09','2021-05-15 07:33:09'),(31,12,1003,'2021-05-15 07:33:22','2021-05-15 07:33:22'),(32,2,1004,'2021-05-15 07:33:38','2021-05-15 07:33:38'),(33,9,1004,'2021-05-15 07:34:27','2021-05-15 07:34:27'),(34,10,1004,'2021-05-15 07:34:31','2021-05-15 07:34:31'),(35,11,1004,'2021-05-15 07:34:42','2021-05-15 07:34:42'),(36,12,1004,'2021-05-15 07:34:47','2021-05-15 07:34:47'),(37,2,1005,'2021-05-15 07:35:11','2021-05-15 07:35:11'),(38,9,1005,'2021-05-15 07:35:46','2021-05-15 07:35:46'),(39,10,1005,'2021-05-15 07:36:01','2021-05-15 07:36:01'),(40,9,1006,'2021-05-15 07:40:09','2021-05-15 07:40:09'),(41,10,1006,'2021-05-15 07:40:16','2021-05-15 07:40:16'),(42,11,1006,'2021-05-15 07:40:30','2021-05-15 07:40:30'),(43,12,1006,'2021-05-15 07:40:37','2021-05-15 07:40:37'),(44,9,1007,'2021-05-15 07:40:54','2021-05-15 07:40:54'),(45,10,1007,'2021-05-15 07:41:04','2021-05-15 07:41:04'),(46,1,1008,'2021-06-12 23:16:10','2021-06-12 23:16:10'),(47,2,1008,'2021-06-12 23:16:15','2021-06-12 23:16:15'),(48,3,1008,'2021-06-12 23:16:19','2021-06-12 23:16:19'),(49,8,1008,'2021-06-12 23:16:24','2021-06-12 23:16:24'),(50,9,1008,'2021-06-12 23:16:45','2021-06-12 23:16:45'),(51,10,1008,'2021-06-12 23:16:48','2021-06-12 23:16:48'),(52,11,1008,'2021-06-12 23:16:52','2021-06-12 23:16:52'),(53,12,1008,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(54,13,1000,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(55,13,1001,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(56,13,1002,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(57,13,1008,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(58,14,1000,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(59,14,1001,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(60,14,1002,'2021-06-12 23:16:58','2021-06-12 23:16:58'),(61,14,1008,'2021-06-12 23:16:58','2021-06-12 23:16:58'); + +insert into `user_info`(`uuid`,`username`,`password`,`gmt_create`,`gmt_modified`) values('1','root','9f09812f6e5165b85e258c48901d4d74',NOW(),NOW()); + +insert into `user_record`(`uid`,`gmt_create`,`gmt_modified`) values('1',NOW(),NOW()); + +insert into `user_role`(`uid`,`role_id`,`gmt_create`,`gmt_modified`) values('1',00000000000000001000,NOW(),NOW()); \ No newline at end of file diff --git a/src/sqlAndsetting/nacos.sql b/src/sqlAndsetting/nacos.sql new file mode 100644 index 0000000..d026702 --- /dev/null +++ b/src/sqlAndsetting/nacos.sql @@ -0,0 +1,222 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info */ +/******************************************/ +CREATE DATABASE `nacos` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; + +use `nacos`; + +CREATE TABLE `config_info` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(255) DEFAULT NULL, + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', + `app_name` varchar(128) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `c_desc` varchar(256) DEFAULT NULL, + `c_use` varchar(64) DEFAULT NULL, + `effect` varchar(64) DEFAULT NULL, + `type` varchar(64) DEFAULT NULL, + `c_schema` text, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_aggr */ +/******************************************/ +CREATE TABLE `config_info_aggr` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(255) NOT NULL COMMENT 'group_id', + `datum_id` varchar(255) NOT NULL COMMENT 'datum_id', + `content` longtext NOT NULL COMMENT '内容', + `gmt_modified` datetime NOT NULL COMMENT '修改时间', + `app_name` varchar(128) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段'; + + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_beta */ +/******************************************/ +CREATE TABLE `config_info_beta` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL COMMENT 'content', + `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_tag */ +/******************************************/ +CREATE TABLE `config_info_tag` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `tag_id` varchar(128) NOT NULL COMMENT 'tag_id', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_tags_relation */ +/******************************************/ +CREATE TABLE `config_tags_relation` ( + `id` bigint(20) NOT NULL COMMENT 'id', + `tag_name` varchar(128) NOT NULL COMMENT 'tag_name', + `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `nid` bigint(20) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`nid`), + UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = group_capacity */ +/******************************************/ +CREATE TABLE `group_capacity` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', + `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值', + `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_group_id` (`group_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = his_config_info */ +/******************************************/ +CREATE TABLE `his_config_info` ( + `id` bigint(64) unsigned NOT NULL, + `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `data_id` varchar(255) NOT NULL, + `group_id` varchar(128) NOT NULL, + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL, + `md5` varchar(32) DEFAULT NULL, + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `src_user` text, + `src_ip` varchar(50) DEFAULT NULL, + `op_type` char(10) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + PRIMARY KEY (`nid`), + KEY `idx_gmt_create` (`gmt_create`), + KEY `idx_gmt_modified` (`gmt_modified`), + KEY `idx_did` (`data_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造'; + + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = tenant_capacity */ +/******************************************/ +CREATE TABLE `tenant_capacity` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID', + `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数', + `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表'; + + +CREATE TABLE `tenant_info` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `kp` varchar(128) NOT NULL COMMENT 'kp', + `tenant_id` varchar(128) default '' COMMENT 'tenant_id', + `tenant_name` varchar(128) default '' COMMENT 'tenant_name', + `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc', + `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source', + `gmt_create` bigint(20) NOT NULL COMMENT '创建时间', + `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info'; + +CREATE TABLE `users` ( + `username` varchar(50) NOT NULL PRIMARY KEY, + `password` varchar(500) NOT NULL, + `enabled` boolean NOT NULL +); + +CREATE TABLE `roles` ( + `username` varchar(50) NOT NULL, + `role` varchar(50) NOT NULL, + UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE +); + +CREATE TABLE `permissions` ( + `role` varchar(50) NOT NULL, + `resource` varchar(255) NOT NULL, + `action` varchar(8) NOT NULL, + UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE +); + +insert into `config_info`(`id`,`data_id`,`group_id`,`content`,`md5`,`gmt_create`,`gmt_modified`,`src_user`,`src_ip`,`app_name`,`tenant_id`,`c_desc`,`c_use`,`effect`,`type`,`c_schema`) values (1,'hoj-prod.yml','DEFAULT_GROUP','hoj:\n jwt:\n # 加密秘钥\n secret: hoj-secret-init\n # token默认为24小时 86400s\n expire: 86400\n checkRefreshExpire: 43200\n header: token\n judge:\n # 调用判题服务器的token\n token: hoj-judge-token-init\n db:\n host: 172.20.0.3\n public-host: 172.20.0.3\n port: 3306\n name: hoj\n username: root\n password: hoj123456\n mail:\n ssl: true\n username: your_email_username\n password: your_email_password\n host: smtp.qq.com\n port: 465\n background-img: https://cdn.jsdelivr.net/gh/HimitZH/CDN/images/HCODE.png\n redis:\n host: 172.20.0.2\n port: 6379\n password: hoj123456\n web-config:\n base-url: your_web_url\n name: Hcode Online Judge\n short-name: HOJ\n description: Hcode Online Judge\n register: true\n footer:\n record:\n name: 2020-2021\n url: your_record_url\n project:\n name: HOJ\n url: https://gitee.com/himitzh0730/hoj\n hdu:\n account:\n username: \n password: \n cf:\n account:\n username: \n password: \n poj:\n account:\n username: \n password: \n atcoder:\n account:\n username: \n password: \n spoj:\n account:\n username: \n password: \n switch:\n judge:\n public: true\n group: true\n contest: true\n hide-non-contest-code: false\n submit-interval: 8\n discussion:\n public: true\n group: true\n ac-initial-value: 10\n create-daily: 5\n comment:\n contest: true\n ac-initial-value: 10\n group:\n ac-initial-value: 20\n create-daily: 2\n create-total: 5','11e994dc89522e140d7e3a6c0d08262a','2021-05-18 11:29:38','2021-05-18 11:40:41',NULL,'14.211.16.41','','','hoj生产配置','','','yaml',''); + +insert into `config_info`(`id`,`data_id`,`group_id`,`content`,`md5`,`gmt_create`,`gmt_modified`,`src_user`,`src_ip`,`app_name`,`tenant_id`,`c_desc`,`c_use`,`effect`,`type`,`c_schema`) values (2, 'hoj-dev.yml', 'DEFAULT_GROUP', 'hoj:\r\n jwt:\r\n # 加密秘钥\r\n secret: hoj-secret-init\r\n # token默认为24小时 86400s\r\n expire: 86400\r\n checkRefreshExpire: 43200\r\n header: token\r\n judge:\r\n # 调用判题服务器的token\r\n token: hoj-judge-token-init\r\n db:\r\n host: 172.20.0.3\r\n public-host: 172.20.0.3\r\n port: 3306\r\n name: hoj\r\n username: root\r\n password: hoj123456\r\n mail:\r\n ssl: true\r\n username: your_email_username\r\n password: your_email_password\r\n host: smtp.qq.com\r\n port: 465\r\n background-img: https://cdn.jsdelivr.net/gh/HimitZH/CDN/images/HCODE.png\r\n redis:\r\n host: 172.20.0.2\r\n port: 6379\r\n password: hoj123456\r\n web-config:\r\n base-url: your_web_url\r\n name: Hcode Online Judge\r\n short-name: HOJ\r\n description: Hcode Online Judge\r\n register: true\r\n footer:\r\n record:\r\n name: 2020-2021\r\n url: your_record_url\r\n project:\r\n name: HOJ\r\n url: https://gitee.com/himitzh0730/hoj\r\n hdu:\r\n account:\r\n username: \r\n password: \r\n cf:\r\n account:\r\n username: \r\n password: \r\n poj:\r\n account:\r\n username: \r\n password: \r\n atcoder:\r\n account:\r\n username: \r\n password: \r\n spoj:\r\n account:\r\n username: \r\n password: \r\n switch:\r\n judge:\r\n public: true\r\n group: true\r\n contest: true\r\n hide-non-contest-code: false\r\n submit-interval: 8\r\n discussion:\r\n public: true\r\n group: true\r\n ac-initial-value: 10\r\n create-daily: 5\r\n comment:\r\n contest: true\r\n ac-initial-value: 10\r\n group:\r\n ac-initial-value: 20\r\n create-daily: 2\r\n create-total: 5', 'efe68f135e2908a791259b91c88a17c9', '2022-06-06 03:35:55', '2022-06-06 03:35:55',NULL,'14.211.16.41','','','hoj开发配置','','','yaml','');

      s-K99QG`l#f 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ȟ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