From 1d0a93fe7d6a7e539ac32f957d4b1c6bace52fae Mon Sep 17 00:00:00 2001 From: liwen Date: Sat, 27 Jan 2024 08:39:07 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E5=9F=B9=E8=AE=AD=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hnac/hzims/safeproduct/entity/TestEntity.java | 3 ++ .../hzims/safeproduct/enums/TestMethodEnum.java | 31 +++++++++++++++++++++ .../safeproduct/controller/TrainController.java | 14 ++++++---- .../hnac/hzims/safeproduct/mapper/TestMapper.java | 10 +++++++ .../hnac/hzims/safeproduct/mapper/TestMapper.xml | 23 +++++++++++++++ .../safeproduct/mapper/TrainRecordMapper.java | 10 +++++++ .../hzims/safeproduct/mapper/TrainRecordMapper.xml | 20 +++++++++++++ .../hzims/safeproduct/service/ITestService.java | 11 ++++++++ .../safeproduct/service/ITrainRecordService.java | 11 ++++++++ .../safeproduct/service/impl/TestServiceImpl.java | 13 +++++++++ .../service/impl/TrainRecordServiceImpl.java | 12 ++++++++ .../main/resources/template/培训记录表.docx | Bin 11871 -> 11997 bytes 12 files changed, 152 insertions(+), 6 deletions(-) create mode 100644 hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/TestMethodEnum.java diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/TestEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/TestEntity.java index 0736f88..354920b 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/TestEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/TestEntity.java @@ -74,4 +74,7 @@ public class TestEntity extends BaseEntity { @Size(max = 1000, message = "考试附件字段长度不能超过1000") @ApiModelProperty("考试附件") private String filePath; + + @ApiModelProperty("考试方式") + private String testMethod; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/TestMethodEnum.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/TestMethodEnum.java new file mode 100644 index 0000000..0e39487 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/TestMethodEnum.java @@ -0,0 +1,31 @@ +package com.hnac.hzims.safeproduct.enums; + +/** + * 考试方式枚举类 + * + * @author liwen + * @date 2024-01-25 + */ +public enum TestMethodEnum { + + ONLINE("ONLINE", "线上"), + OFFLINE("OFFLINE", "线下"), + MIXED("MIXED", "线上+线下"); + + private final String value; + + private final String desc; + + TestMethodEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + public String getValue() { + return value; + } + + public String getDesc() { + return desc; + } +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java index 28b8043..8bbf0ea 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java @@ -124,13 +124,14 @@ public class TrainController extends BladeController { @GetMapping("/trainRecordPage") @ApiImplicitParams({ - @ApiImplicitParam(name = "trainPlanId", value = "培训计划id", dataType = "query", paramType = "string") + @ApiImplicitParam(name = "trainPlanId", value = "培训计划id", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "startTime", value = "计划开始时间", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "endTime", value = "计划结束时间", dataType = "query", paramType = "string") }) @ApiOperation(value = "培训记录分页") @ApiOperationSupport(order = 10) public R> trainRecordPage(@ApiIgnore @RequestParam Map param, Query query) { - IPage page = trainRecordService.page(Condition.getPage(query), Condition.getQueryWrapper( - param, TrainRecordEntity.class).lambda().orderByDesc(TrainRecordEntity::getCreateTime)); + IPage page = trainRecordService.trainRecordPage(param, query); return R.data(page); } @@ -173,13 +174,14 @@ public class TrainController extends BladeController { @GetMapping("/testPage") @ApiImplicitParams({ @ApiImplicitParam(name = "trainPlanId", value = "培训计划id", dataType = "query", paramType = "string"), - @ApiImplicitParam(name = "trainRecordId", value = "培训记录id", dataType = "query", paramType = "string") + @ApiImplicitParam(name = "trainRecordId", value = "培训记录id", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "testName", value = "考试名称", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string") }) @ApiOperation(value = "考试记录分页") @ApiOperationSupport(order = 16) public R> testPage(@ApiIgnore @RequestParam Map param, Query query) { - IPage page = testService.page(Condition.getPage(query), Condition.getQueryWrapper(param, TestEntity.class) - .lambda().orderByDesc(TestEntity::getCreateTime)); + IPage page = testService.testPage(param, query); return R.data(page); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.java index 6d65b66..9441e30 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.java @@ -1,11 +1,13 @@ package com.hnac.hzims.safeproduct.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.safeproduct.dto.TestDTO; import com.hnac.hzims.safeproduct.entity.TestEntity; import org.apache.ibatis.annotations.Mapper; import java.util.List; +import java.util.Map; /** * 考试记录Mapper类 @@ -22,4 +24,12 @@ public interface TestMapper extends BaseMapper { * @return 考试记录名称列表 */ List getTestNameList(String trainPlanId); + + /** + * 考试记录分页 + * @param param 入参 + * @param page 分页类 + * @return 考试记录数据 + */ + IPage testPage(IPage page, Map param); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.xml index 7b1556d..65649d1 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TestMapper.xml @@ -15,4 +15,27 @@ ORDER BY create_time DESC + + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainRecordMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainRecordMapper.java index a268688..5586ec0 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainRecordMapper.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainRecordMapper.java @@ -1,12 +1,14 @@ package com.hnac.hzims.safeproduct.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.safeproduct.dto.TrainRecordDTO; import com.hnac.hzims.safeproduct.entity.TrainRecordEntity; import com.hnac.hzims.safeproduct.vo.TrainRecordDetailVO; import org.apache.ibatis.annotations.Mapper; import java.util.List; +import java.util.Map; /** * 培训记录Mapper类 @@ -30,4 +32,12 @@ public interface TrainRecordMapper extends BaseMapper { * @return 培训记录表VO类 */ TrainRecordDetailVO getTrainRecordDetailById(Long id); + + /** + * 培训记录分页 + * @param param 入参 + * @param page 分页类 + * @return 培训记录数据 + */ + IPage trainRecordPage(IPage page, Map param); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainRecordMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainRecordMapper.xml index e4f15af..b4052fe 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainRecordMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainRecordMapper.xml @@ -27,4 +27,24 @@ t1.is_deleted = 0 AND t1.id = #{id} + + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITestService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITestService.java index 83eeeeb..4a59b6e 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITestService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITestService.java @@ -1,11 +1,14 @@ package com.hnac.hzims.safeproduct.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.hnac.hzims.safeproduct.dto.TestDTO; import com.hnac.hzims.safeproduct.entity.TestEntity; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import java.util.List; +import java.util.Map; /** * 考试记录服务类 @@ -63,4 +66,12 @@ public interface ITestService extends IService { * @return true-成功,false-失败 */ boolean updateTest(TestEntity testEntity); + + /** + * 考试记录分页 + * @param param 入参 + * @param query 分页类 + * @return 考试记录数据 + */ + IPage testPage(Map param, Query query); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainRecordService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainRecordService.java index 13d443a..57d5d62 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainRecordService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainRecordService.java @@ -1,12 +1,15 @@ package com.hnac.hzims.safeproduct.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.hnac.hzims.safeproduct.dto.TrainRecordDTO; import com.hnac.hzims.safeproduct.entity.TrainRecordEntity; import com.hnac.hzims.safeproduct.vo.TrainRecordDetailVO; +import org.springblade.core.mp.support.Query; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; /** * 培训记录服务类 @@ -64,4 +67,12 @@ public interface ITrainRecordService extends IService { * @return 培训记录表VO类 */ TrainRecordDetailVO getTrainRecordDetailById(Long id); + + /** + * 培训记录分页 + * @param param 入参 + * @param query 分页类 + * @return 培训记录数据 + */ + IPage trainRecordPage(Map param, Query query); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TestServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TestServiceImpl.java index 5573afa..c40c905 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TestServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TestServiceImpl.java @@ -3,6 +3,8 @@ package com.hnac.hzims.safeproduct.service.impl; import cn.hutool.core.date.DatePattern; import com.alibaba.excel.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hnac.hzims.safeproduct.constants.SafeProductConstant; import com.hnac.hzims.safeproduct.dto.TestDTO; @@ -14,6 +16,7 @@ import com.hnac.hzims.safeproduct.mapper.TrainPlanMapper; import com.hnac.hzims.safeproduct.service.ITestScoreService; import com.hnac.hzims.safeproduct.service.ITestService; import com.hnac.hzims.safeproduct.utils.BaseUtil; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,6 +26,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -175,6 +179,15 @@ public class TestServiceImpl extends ServiceImpl impleme } /** + * 考试记录分页 + */ + @Override + public IPage testPage(Map param, Query query) { + IPage page = new Page<>(query.getCurrent(), query.getSize()); + return baseMapper.testPage(page, param); + } + + /** * 获取成绩列表 * @param testEntity 考试记录实体类 * @param person 参考人员 diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TrainRecordServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TrainRecordServiceImpl.java index a065735..8311679 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TrainRecordServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TrainRecordServiceImpl.java @@ -4,6 +4,8 @@ import cn.afterturn.easypoi.entity.ImageEntity; import cn.hutool.core.date.DatePattern; import com.alibaba.excel.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hnac.hzims.common.logs.utils.StringUtils; import com.hnac.hzims.safeproduct.constants.SafeProductConstant; @@ -18,6 +20,7 @@ import com.hnac.hzims.safeproduct.service.ITestService; import com.hnac.hzims.safeproduct.service.ITrainRecordService; import com.hnac.hzims.safeproduct.utils.BaseUtil; import com.hnac.hzims.safeproduct.vo.TrainRecordDetailVO; +import org.springblade.core.mp.support.Query; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -180,6 +183,15 @@ public class TrainRecordServiceImpl extends ServiceImpl trainRecordPage(Map param, Query query) { + IPage page = new Page<>(query.getCurrent(), query.getSize()); + return baseMapper.trainRecordPage(page, param); + } + + /** * 查询是否存在同月编号 * @param currentMonth 当月 * @return 存在则返回上一编号,否则返回null diff --git a/hzims-service/safeproduct/src/main/resources/template/培训记录表.docx b/hzims-service/safeproduct/src/main/resources/template/培训记录表.docx index 803c5329fb305527c241bb1800dee99359a991af..371a227dd3b90e7dd1775ca22e4ee7266dbda9c5 100644 GIT binary patch delta 5018 zcmZ9QRa6v?w#H|OA^y|=fLn9@P zbTh#9oO{Tqa(JZ<^03Z+x0009302_B}9WQqe zZ+>fcFI&Ch`#mm`8rF;j; zyjP0*OVaE?>wfK8Ek$CgLwRe1*Q4gQ@F|ns&02|kA?glSSR3x9;!~gk=^wWHaK-{hO{JlN^W@FF`i!$xZfwrc##m79;2+`I5|K5@!tnKi*4}Toq1Rhas13{O zrWs3Lyb7;MwpDg7@df)yahX{~PsMTw;B6|YMT=m**~T!namM?xnY*pW%?@bDNsVwin;bX1~{haEosV$=d0QW+Usd9rCb@+}xb;gEhb;ELGg1BPG z4r=)juvh-O*@Q|v4Wn=~AWgKO_L+03=(nbEr#59GcJ(VS z(0!Dtk&oW>b&jcXmT&}y#)HSc4p1ppenH=>2~a6@QH*3O2Bm$4kBlV0WgW4i5OM)| zY>OWM4tV>la*IQ&i6f`|YgD#|f#N^z&|%BEDX6jtrw$0pzMDtl;v%VwtI}@9G|V8R zEF!gwuRo%T7Sc{a_& zCjv+EwSZ~HJma+H?^$dk&S5JT`t6X2`bRBd4}Q>mWB8ccOT4UY`lv$B56QA$ z)~@Mo6am<-QE>V2TCA^&X`8^hpfB7W319=T&clPJ(Iro5aTa)1T5?s=Wf1N=U7@tV zC+uGr$FEko4knjuN+b9*CnD7ZIy~sxBVN*+4)3TD@0`OpdUt)XSc1u4kdC{+yK;T) zZ!<^lf+s`X!Nt0lPi+rISo%J_i^^hkY;! zSr46gy5m}t#G<>qi3eQ9r9^O6GNX)8R3?7cHMfu@%=%ZT_6Xp0@mV^v2l&AF&v@r} zv}CCeT(Fi?Mp?zmO5XfNIf;hyG!YfuMQ34n{`~X4XotmUgnVxmT*odIcW3hz&OW#p z)tfTy-*le>atCo!(>azQ{N5B3(-B+v8h*l}Oi4Q;Rw$9Cxlz*L;>uZ;S{n<3HK>#; zzU~ozvH2K;Bc`bpP`Ik)$Q2wMYjKbLFLi2crtkm}ramO(2oeAQj=@NN8d^B*;CZLQ z!`oT^*y5+ULSQKmn?b>39Muhxq<#-cXzQ;f(|wZW3<99mcoS!MzCaw5H0wxt9j-y(9Je4I;9uWVrW@w`e=8d zdhhD4<^0zN@fpABXMM5DtbFiO#|5eUl=B<3<^5XoC$#OwSdm<<0!8Rl9Co`au>|Q0 zw37{KIjqq4XT362J%eTIdt=+qTy~?bB1EbuFSqcNsKeFNENX)f1`MdX}G6 zB}C(MLTyL)oN%8ep_4xgfHq;+>{*&c4$cDoZy6@;JJk1sYC`!*b`vY^Q#tt?@Me_B zdyO<{a-8_=1wS{WZhiCpdiP;}cZZ7FQD7n5ZH5JrM^rugRA0lecGS!O7b20Yo@u6U zo!8z%i}gj{92BM}kE;lGi*|Vo?Ip;`o1W)=aGRideL>DrC0bTW#f$z*d2mRqrhr_< z89xwM8)?^;P@hj+50E7(^j$EHghqv&k8;VN3>vs{mp-E}P1U6MMtEz)xjaLv!tr05 zEG}*u>$h$U!@2*QBFx0RAvz4>Y?#D@){meJ7_h#e7UeQjB5Tp)7UO9$ zQP`|pCeN|hybjaO{9@STZhAMEAQ)l)Sj9TmO1_EJ1m=bG`qxeZa=I{iMzM5b4m^m&kfPz8V9njuC88+#Tn5s(xci}i>ge$^L!rTkhsN`1;TXB;=Y@@dF z-u4xSUWKZW2U^7LP<-RQNi#SmV#aHVf7*imZ0Txle0Va3zw7E~V;wIXX^wpy_}K)x zv%@aNVf|iJ8>uNeLNsh(TbpIW2iyMM1{xAW&W0`=E|CXfJqKVL$Bj(EszQOFUL#V=qo_YmK={LT&a)Jwb zaFT8$Domr+k9Cw9!m;MY`~yJg->g|DjuIww{83^^i^p$g5s&-+_*@*2g$OQG-CVGodpD_wA^tNwtIHHLYW^w5b(ZeX&ARiyqHHtCct^AtId>9 zj!nj3&3u*mn4gHQYl&VNs!5CNg;8$F`MsT2e!jixRwY!iZjM-V-?{UE{%N|`8eElp zi=+LRKq;>3_ktRyJYQ8^BEo`G(&(q^(1SO)S3z_+hr>Z9gffQs7qk-Ir)@K^@ZfAM5-B z-N06o72cW61eTw?d(@9edegKKQ2e|o4%|AzWE%SH9~L)==l6GJ)N6MAuQe3{DdjP} zr-Kip9)s!RtqJCTB@vzvZaHFTtq7*!2vSm#COtW`)v1=ja(J_zC{A9=ChRtFV`91? zitS%y;MamaQx(EXViWJ@G8c_cP$qQXe;~n{Cxsl;mxtM55+>WqsML!K+aNU_ZCK6c zBMG8B$Rnc6qODJ7Vm9ZaE3+l(V*nk46STrjuFl_g8~-LK3%*3$8M9|BfE0#SL@bYf z&`Jp>*C{2PlN993!`1oafM3I(gIGP(*21J8zeEl`E)@ur%ExJ_SCZ@IUB#QSCeqt! z{>W`CR@Zu;9N$HVj0g=4K#>yEAN!7=xo$=*d{78g>2Km&Q+rSPe_WsTnt~5gBq<9v0I>2806_lN3;Mfz+3?%ByZIPc zy>|Jx@$Sr6cAFQV95`hELtnVqS`SxdpA!k z@F5rarA&i48k!mIhml0zZ}jgOZ#7=1#pwkJSZ<5`l)5kGiT5Mhc2SZXFM~JaV_6`I z*NP+aoaj6X<(|hQHBZ9RT)ui4{fHnd$mmilA{l0ev1E*k3uSw8J(HH#5s69A+a};X z6I$3$b`h?Kj!K1~X)Z>*Gm|LTj2u0hknb8b)p=nXoGxr0+=QB3S%{Ro0q^B?)7w8L zYAPVfy6n}VE|aiRJ6A;s9C$6HY(5BP|0`%Xwho(+xw!Q4z+!U8dJ&l%@05ZTWw#~% zGPAtE`vwACR7Ta?p(t2nWAK**uIw2EzsY;8jAPouEYqy)qPfQwn&$xDUF{K;)ZK#?5vs5Mf*H04Qz|==A&|`6^v9*MQxLSbdD^Dz?waSR#!M)BDUq+ z>LP#ETJ8-~6;_ccCWk?%j7wi;!c7_~DEmqiNT{Du`=E^V@O4Sg$mXyFRmi6wfocl# z?KPb**8~(_0>h8K!FM2BxB_QP z`nt+QaLA2ZD;QD3DBj?L0FV0_6UajQ-7J&ZRZCQ+d=u~BZjR7>y45Jz!slLMI@PM+ z3fJuECknL9e7bXTN&W;JhcG@Mv1q~?i+PXFs%xeI@O0lh_Ex_2;UH8NgCX?ORW8C4 zA;Q(CJXAl;dAmRgmVST_L$wfE1hJ9Nu^%Dnc({P^NEnY077Yh7h({btnFG1X&cLms0mPyN z{7)|Pm(c&XpZ`wA{z3`>0vP{RdgL7sl=lA<{GWaZQihk6_J0E%!v8-HKnC;50c()$ YyfVO6b%7 delta 4907 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