diff --git a/golang_learn/data_func/go_to_icon/ico2png/main.go b/golang_learn/data_func/go_to_icon/ico2png/main.go new file mode 100644 index 0000000..4f80dce --- /dev/null +++ b/golang_learn/data_func/go_to_icon/ico2png/main.go @@ -0,0 +1,38 @@ +package main + +import ( + "fmt" + "image/png" + "os" + + ico "github.com/biessek/golang-ico" +) + +func main() { + // 打开 .ico 文件 + icoFile, err := os.Open("E:\\VivimanZhang\\Pictures\\favicon.ico") + if err != nil { + panic(err) + } + defer icoFile.Close() + + // 解码 .ico 文件 + img, err := ico.Decode(icoFile) + if err != nil { + panic(err) + } + + // 创建 .png 文件 + pngFile, err := os.Create("E:\\VivimanZhang\\Pictures\\favicon1.png") + if err != nil { + panic(err) + } + defer pngFile.Close() + + // 将图像编码为 .png 格式并保存 + if err := png.Encode(pngFile, img); err != nil { + panic(err) + } + + fmt.Println("转换成功,输出文件为 favicon.png") +} diff --git a/golang_learn/data_office/get_hy_jctj/main.go b/golang_learn/data_office/get_hy_jctj/main.go index 192d10c..0114ce2 100644 --- a/golang_learn/data_office/get_hy_jctj/main.go +++ b/golang_learn/data_office/get_hy_jctj/main.go @@ -8,16 +8,106 @@ package main import ( "database/sql" "fmt" - "github.com/xuri/excelize/v2" + excelize "github.com/xuri/excelize/v2" "strings" "time" _ "github.com/go-sql-driver/mysql" ) -var SQLJck = "select ifnull(A0184,'') IDNumber, ifnull(A0101,'') Name, ifnull(substr(a0107, 1, 6),'') BirthDate, ifnull(A0101,'') Gender, ifnull(A0117,'') Ethnicity, ifnull(substr(a0134, 1, 6),'') WorkStartDate, ifnull(A0141,'') PoliticalStatus, ifnull((select MIN(A0801B) from A08 where A0831=1 and A01.A0000=A08.A0000), '') FullTimeEducation, ifnull((select MIN(A0801B) from A08 where A0834=1 and A01.A0000=A08.A0000), '') HighestEducation, ifnull((select MIN(A0901B) from A08 where A0835=1 and A01.A0000=A08.A0000), '') HighestDegree, ifnull(A0123,'') JobCategory, ifnull((select A0501B from A05 where A0531=1 and A0524=1 and A01.A0000=A05.A0000), '') CurrentPositionLevel, ifnull((select substr(A0504, 1, 6) from A05 where A0531=1 and A0524=1 and A01.A0000=A05.A0000), '') CurrentPositionStartDate, ifnull((select A0501B from A05 where A0531=0 and A0524=1 and A01.A0000=A05.A0000), '') CurrentRankLevel, ifnull((select DATE_FORMAT(DATE_SUB(STR_TO_DATE(substr(A0504, 1, 6), '%Y%m'), INTERVAL ifnull(A0532, 0) MONTH), '%Y%m') from A05 where A0531=1 and A0524=1 and A01.A0000=A05.A0000), '') CurrentRankStartDate, ifnull(A0197,'0') Has2YearsGrassrootsExp, ifnull((select MIN(A1517) from A15 where A1521='2023' and A01.A0000=A15.A0000), '') AnnualAssessment2023, ifnull(A0160,'') PersonCategory, ifnull((select 1 from A99Z1 where A99Z101=1 and A99Z103=1 and A99Z102 like '2024%' and A01.A0000=A99Z1.A0000), 0) SelectedFor2024 from A01 where A0163='1'" -var SQLZjk = "select ifnull(M0203,'') IDNumber, ifnull(M0201,'') Name, ifnull(M0204,'') BirthDate, ifnull(M0202,'') Gender, ifnull(M0205,'') Ethnicity, ifnull(M0216,'') WorkStartDate, ifnull(M0206,'') PoliticalStatus, ifnull(M0242,'') FullTimeEducation, ifnull(M0212,'') HighestEducation, ifnull(M0213,'') HighestDegree, ifnull(M0246,'') JobCategory, ifnull(M0208,'') CurrentPositionLevel, ifnull(M0233,'') CurrentPositionStartDate, ifnull(M0243,'') CurrentRankLevel, ifnull(M0244,'') CurrentRankStartDate, ifnull(M0215,'') Has2YearsGrassrootsExp, ifnull(M0201,'') AnnualAssessment2023, ifnull((select case M0104 when 2 then 5 when 3 then 6 else 1 end from M_M01 where M_M01.UNID=M_M02.UNID),'') PersonCategory, ifnull((select 1 from M_M05 where M0503=M0203 and rpt='2024'),0) SelectedFor2024 from M_M02 where rpt='2024'" -var SQLGzk = "select ifnull(S0203,'') IDNumber, ifnull(S0201,'') Name, '' BirthDate, '' Gender, '' Ethnicity, '' WorkStartDate, '' PoliticalStatus, '' FullTimeEducation, ifnull(S0225,'') HighestEducation, '' HighestDegree, '' JobCategory, ifnull(S0204,'') CurrentPositionLevel, '' CurrentPositionStartDate, ifnull(S0205,'') CurrentRankLevel, '' CurrentRankStartDate, '' Has2YearsGrassrootsExp, '' AnnualAssessment2023, '' PersonCategory, '' SelectedFor2024 from m_s02 where rpt='2024' union all select ifnull(S0403,'') IDNumber, ifnull(S0401,'') Name, '' BirthDate, '' Gender, '' Ethnicity, '' WorkStartDate, '' PoliticalStatus, '' FullTimeEducation, ifnull(S0425,'') HighestEducation, '' HighestDegree, '' JobCategory, ifnull(S0404,'') CurrentPositionLevel, '' CurrentPositionStartDate, ifnull(S0405,'') CurrentRankLevel, '' CurrentRankStartDate, '' Has2YearsGrassrootsExp, '' AnnualAssessment2023, '' PersonCategory, '' SelectedFor2024 from m_s04 where rpt='2024'" +var SQLJck = ` +select ifnull(A0184,'')IDNumber, + ifnull(A0101,'') Name, + ifnull(substr(a0107, 1, 6),'') BirthDate, + IF(A0104 = 1, '男', '女') Gender, + ifnull((select min(code_name) from code_value where A0117=code_value and code_type='GB3304'),'') Ethnicity, + ifnull(substr(a0134, 1, 6),'') WorkStartDate, + ifnull((select min(code_name) from code_value where A0141=code_value and code_type='GB4762'),'') PoliticalStatus, + ifnull((select case when A0831 like '1%' then '研究生' when A0831 like '1%' then '大学本科' when A0831 like '3%' then '大学专科' else '中专及以下' end + from A08 where A0831=1 and A01.A0000=A08.A0000), '') FullTimeEducation, + ifnull((select case when A0831 like '1%' then '研究生' when A0831 like '1%' then '大学本科' when A0831 like '3%' then '大学专科' else '中专及以下' end + from A08 where A0834=1 and A01.A0000=A08.A0000), '') HighestEducation, + ifnull((select case when A0831 like '3%' then '硕士' when A0831 like '4%' then '学士' else '博士' end from A08 where A0835=1 and A01.A0000=A08.A0000), '') HighestDegree, + ifnull((select min(code_name) from code_value where A0123=code_value and code_type='XZ93'),'') JobCategory, + ifnull((select min(code_name) from A05, code_value where A0501B=code_value and code_type='ZB09' and A0531=0 and A0524=1 and A01.A0000=A05.A0000), '') CurrentPositionLevel, + ifnull((select substr(A0504, 1, 6) from A05 where A0531=0 and A0524=1 and A01.A0000=A05.A0000), '') CurrentPositionStartDate, + ifnull((select min(code_name) from A05, code_value where A0501B=code_value and code_type='ZB148' and A0531=1 and A0524=1 and A01.A0000=A05.A0000), '') CurrentRankLevel, + (select ifnull(DATE_FORMAT(DATE_SUB(STR_TO_DATE(substr(A0530, 1, 6), '%Y%m'), INTERVAL ifnull(A0532, 0) MONTH), '%Y%m'), A0504) + from A05 where A0531=1 and A0524=1 and A01.A0000=A05.A0000) CurrentRankStartDate, + IF(A0197 = 1, '是', '否') Has2YearsGrassrootsExp, + ifnull((select min(code_name) from A15, code_value where A1517=code_value and code_type='ZB18' and A1521='2023' and A01.A0000=A15.A0000), '') AnnualAssessment2023, + ifnull((select min(code_name) from code_value where A0160=code_value and code_type='ZB125'),'') PersonCategory, + ifnull((select '是' from A99Z1 where A99Z101=1 and A99Z103=1 and A99Z102 like '2024%' and A01.A0000=A99Z1.A0000), '否') SelectedFor2024 +from A01 +where A0163 = '1' +` +var SQLZjk = ` +select ifnull(M0203,'') IDNumber, + ifnull(M0201,'') Name, + ifnull(substr(M0204, 1, 6) ,'') BirthDate, + IF(M0202 = 1, '男', '女') Gender, + ifnull((select min(code_name) from code_value where M0205=code_value and code_type='M_D_CM16'),'') Ethnicity, + ifnull(substr(M0216, 1, 6),'') WorkStartDate, + ifnull((select min(code_name) from code_value where M0206=code_value and code_type='M_D_CD17'),'') PoliticalStatus, + ifnull((select min(code_name) from code_value where M0242=code_value and code_type='M_D_C11'),'') FullTimeEducation, + ifnull((select min(code_name) from code_value where M0212=code_value and code_type='M_D_C11'),'') HighestEducation, + ifnull((select min(code_name) from code_value where M0213=code_value and code_type='M_D_C12'),'') HighestDegree, + ifnull((select min(code_name) from code_value where M0246=code_value and code_type='M_D_M0246_1'),'') JobCategory, + ifnull((select min(code_name) from code_value where M0208=code_value and code_type='M_D_C32_2019'),'') CurrentPositionLevel, + ifnull(substr(M0233, 1, 6),'') CurrentPositionStartDate, + ifnull((select min(code_name) from code_value where M0243=code_value and code_type='M_D_C31_2019'),'') CurrentRankLevel, + ifnull(substr(M0244, 1, 6),'') CurrentRankStartDate, + IF(M0215 = 1, '是', '否') Has2YearsGrassrootsExp, + ifnull((select min(code_name) from M_M09, code_value where M0905=code_value and code_type='M_D_CM16' and M0902=M0203),'') AnnualAssessment2023, + ifnull((select case M0104 when 2 then '参照管理机关工作人员' when 3 then '参照管理事业单位人员' else '公务员' end from M_M01 where M_M01.UNID=M_M02.UNID),'') PersonCategory, + ifnull((select '是' from M_M05 where M0503=M0203 and rpt='2024'),'否') SelectedFor2024 +from M_M02 +where rpt = '2024' +` +var SQLGzk = ` +select + ifnull(S0203,'') IDNumber, + ifnull(S0201,'') Name, + '-' BirthDate, + '-' Gender, + '-' Ethnicity, + '-' WorkStartDate, + '-' PoliticalStatus, + '-' FullTimeEducation, + ifnull((select min(code_name) from code_value where S0225=code_value and code_type='M_D_C11'),'') HighestEducation, + '-' HighestDegree, + '-' JobCategory, + ifnull((select min(code_name) from code_value where S0204=code_value and code_type='M_D_S0204'),'') CurrentPositionLevel, + '-' CurrentPositionStartDate, + ifnull((select min(code_name) from code_value where S0205=code_value and code_type='ZB148'),'') CurrentRankLevel, + '-' CurrentRankStartDate, + '-' Has2YearsGrassrootsExp, + '-' AnnualAssessment2023, + '-' PersonCategory, + '-' SelectedFor2024 +from m_s02 where rpt='2024' union all +select + ifnull(S0403,'') IDNumber, + ifnull(S0401,'') Name, + '-' BirthDate, + '-' Gender, + '-' Ethnicity, + '-' WorkStartDate, + '-' PoliticalStatus, + '-' FullTimeEducation, + ifnull((select min(code_name) from code_value where S0425=code_value and code_type='M_D_C11'),'') HighestEducation, + '-' HighestDegree, + '-' JobCategory, + ifnull((select min(code_name) from code_value where S0404=code_value and code_type='M_D_S0204'),'') CurrentPositionLevel, + '-' CurrentPositionStartDate, + ifnull((select min(code_name) from code_value where S0405=code_value and code_type='ZB148'),'') CurrentRankLevel, + '-' CurrentRankStartDate, + '-' Has2YearsGrassrootsExp, + '-' AnnualAssessment2023, + '-' PersonCategory, + '-' SelectedFor2024 +from m_s04 where rpt='2024' +` // 存在所有对象信息 - 集合 func main() { @@ -143,18 +233,35 @@ func mergeResults(peoplesJck, peoplesZjk, peoplesGzk []Person) []Diff { if colName == "身份证号" || colName == "姓名" { continue } - if jckMap[key][colName] != zjkMap[key][colName] || - jckMap[key][colName] != gzkMap[key][colName] || - zjkMap[key][colName] != gzkMap[key][colName] { - diff := Diff{ - IDNumber: idNumber, - Name: name, - ColName: colName, - Jck: jckMap[key][colName], - Zjk: zjkMap[key][colName], - Gzk: gzkMap[key][colName], + var diff Diff + if gzMap[colName] { + // 指定需要注意工资部分 + if jckMap[key][colName] != zjkMap[key][colName] || + jckMap[key][colName] != gzkMap[key][colName] || + zjkMap[key][colName] != gzkMap[key][colName] { + diff = Diff{ + IDNumber: idNumber, + Name: name, + ColName: colName, + Jck: jckMap[key][colName], + Zjk: zjkMap[key][colName], + Gzk: gzkMap[key][colName], + } + diffs = append(diffs, diff) + } + } else { + // 需要公共比较 + if jckMap[key][colName] != zjkMap[key][colName] { + diff = Diff{ + IDNumber: idNumber, + Name: name, + ColName: colName, + Jck: jckMap[key][colName], + Zjk: zjkMap[key][colName], + Gzk: gzkMap[key][colName], + } + diffs = append(diffs, diff) } - diffs = append(diffs, diff) } } } @@ -162,6 +269,18 @@ func mergeResults(peoplesJck, peoplesZjk, peoplesGzk []Person) []Diff { return diffs } +// 示例数组 +var gzMap map[string]bool + +func init() { + ArrGz := []string{"身份证号", "姓名", "最高学历", "现职务层次", "现职级层次"} + // 将数组转换为 map + gzMap = make(map[string]bool) + for _, item := range ArrGz { + gzMap[item] = true + } +} + func mapPersonToDiff(people []Person, source string) map[string]map[string]string { result := make(map[string]map[string]string) for _, person := range people { diff --git a/golang_learn/data_office/get_hy_jctj/脚本.sql b/golang_learn/data_office/get_hy_jctj/脚本.sql new file mode 100644 index 0000000..88a09d6 --- /dev/null +++ b/golang_learn/data_office/get_hy_jctj/脚本.sql @@ -0,0 +1,97 @@ +-- 工资部分数据 +select + ifnull(S0203,'') 身份证号, + ifnull(S0201,'') 姓名, + '-' 出生时间, + '-' 性别, + '-' 民族, + '-' 参加工作时间, + '-' 政治面貌, + '-' 全日制学历, + ifnull((select min(code_name) from code_value where S0225=code_value and code_type='M_D_C11'),'') 最高学历, + '-' 最高学位, + '-' 职位类别, + ifnull((select min(code_name) from code_value where S0204=code_value and code_type='M_D_S0204'),'') 现职务层次, + '-' 任现职务层次时间, + ifnull((select min(code_name) from code_value where S0205=code_value and code_type='ZB148'),'') 现职级层次, + '-' 任现职级层次时间, + '-' 是否具有2年以上基层经验, + '-' 2023年度考核结果, + '-' 人员类别, + '-' 2024年考录选调生 +from m_s02 where rpt='2024' union all +select + ifnull(S0403,'') 身份证号, + ifnull(S0401,'') 姓名, + '-' 出生时间, + '-' 性别, + '-' 民族, + '-' 参加工作时间, + '-' 政治面貌, + '-' 全日制学历, + ifnull((select min(code_name) from code_value where S0425=code_value and code_type='M_D_C11'),'') 最高学历, + '-' 最高学位, + '-' 职位类别, + ifnull((select min(code_name) from code_value where S0404=code_value and code_type='M_D_S0204'),'') 现职务层次, + '-' 任现职务层次时间, + ifnull((select min(code_name) from code_value where S0405=code_value and code_type='ZB148'),'') 现职级层次, + '-' 任现职级层次时间, + '-' 是否具有2年以上基层经验, + '-' 2023年度考核结果, + '-' 人员类别, + '-' 2024年考录选调生 +from m_s04 where rpt='2024'; + + +-- 中间部分数据 +select + ifnull(M0203,'') 身份证号, + ifnull(M0201,'') 姓名, + ifnull(substr(M0204, 1, 6) ,'') 出生时间, + IF(M0202 = 1, '男', '女') 性别, + ifnull((select min(code_name) from code_value where M0205=code_value and code_type='M_D_CM16'),'') 民族, + ifnull(substr(M0216, 1, 6) ,'') 参加工作时间, + ifnull((select min(code_name) from code_value where M0206=code_value and code_type='M_D_CD17'),'') 政治面貌, + ifnull((select min(code_name) from code_value where M0242=code_value and code_type='M_D_C11'),'') 全日制学历, + ifnull((select min(code_name) from code_value where M0212=code_value and code_type='M_D_C11'),'') 最高学历, + ifnull((select min(code_name) from code_value where M0213=code_value and code_type='M_D_C12'),'') 最高学位, + ifnull((select min(code_name) from code_value where M0246=code_value and code_type='M_D_M0246_1'),'') 职位类别, + ifnull((select min(code_name) from code_value where M0208=code_value and code_type='M_D_C32_2019'),'') 现职务层次, + ifnull(substr(M0233, 1, 6) ,'') 任现职务层次时间, + ifnull((select min(code_name) from code_value where M0243=code_value and code_type='M_D_C31_2019'),'') 现职级层次, + ifnull(substr(M0244, 1, 6) ,'') 任现职级层次时间, + IF(M0215 = 1, '是', '否') 是否具有2年以上基层经验, + ifnull((select min(code_name) from M_M09, code_value where M0905=code_value and code_type='M_D_CM16' and M0902=M0203),'') 2023年度考核结果, + ifnull((select case M0104 when 2 then '参照管理机关工作人员' when 3 then '参照管理事业单位人员' else '公务员' end from M_M01 where M_M01.UNID=M_M02.UNID),'') 人员类别, + ifnull((select '是' from M_M05 where M0503=M0203 and rpt='2024'),'否') 2024年考录选调生 +from M_M02 where rpt='2024'; + + + + +-- 基础部分数据 +select + ifnull(A0184,'') 身份证号, + ifnull(A0101,'') 姓名, + ifnull(substr(a0107, 1, 6),'') 出生时间, + IF(A0104 = 1, '男', '女') 性别, + ifnull((select min(code_name) from code_value where A0117=code_value and code_type='GB3304'),'') 民族, + ifnull(substr(a0134, 1, 6),'') 参加工作时间, + ifnull((select min(code_name) from code_value where A0141=code_value and code_type='GB4762'),'') 政治面貌, + ifnull((select case when A0831 like '1%' then '研究生' when A0831 like '1%' then '大学本科' when A0831 like '3%' then '大学专科' else '中专及以下' end + from A08 where A0831=1 and A01.A0000=A08.A0000), '') 全日制学历, + ifnull((select case when A0831 like '1%' then '研究生' when A0831 like '1%' then '大学本科' when A0831 like '3%' then '大学专科' else '中专及以下' end + from A08 where A0834=1 and A01.A0000=A08.A0000), '') 最高学历, + ifnull((select case when A0831 like '3%' then '硕士' when A0831 like '4%' then '学士' else '博士' end from A08 where A0835=1 and A01.A0000=A08.A0000), '') 最高学位, + ifnull((select min(code_name) from code_value where A0123=code_value and code_type='XZ93'),'') 职位类别, + ifnull((select min(code_name) from A05, code_value where A0501B=code_value and code_type='ZB09' and A0531=0 and A0524=1 and A01.A0000=A05.A0000), '') 现职务层次, + ifnull((select substr(A0504, 1, 6) from A05 where A0531=0 and A0524=1 and A01.A0000=A05.A0000), '') 任现职务层次时间, + ifnull((select min(code_name) from A05, code_value where A0501B=code_value and code_type='ZB148' and A0531=1 and A0524=1 and A01.A0000=A05.A0000), '') 现职级层次, + (select ifnull(DATE_FORMAT(DATE_SUB(STR_TO_DATE(substr(A0530, 1, 6), '%Y%m'), INTERVAL ifnull(A0532, 0) MONTH), '%Y%m'), A0504) + from A05 where A0531=1 and A0524=1 and A01.A0000=A05.A0000) 任现职级层次时间, + IF(A0197 = 1, '是', '否') 是否具有2年以上基层经验, + ifnull((select min(code_name) from A15, code_value where A1517=code_value and code_type='ZB18' and A1521='2023' and A01.A0000=A15.A0000), '') 2023年度考核结果, + ifnull((select min(code_name) from code_value where A0160=code_value and code_type='ZB125'),'') 人员类别, + ifnull((select '是' from A99Z1 where A99Z101=1 and A99Z103=1 and A99Z102 like '2024%' and A01.A0000=A99Z1.A0000), '否') 2024年考录选调生 +from A01 where A0163='1'; + diff --git a/golang_learn/go.mod b/golang_learn/go.mod index ef7530e..abc8d5b 100644 --- a/golang_learn/go.mod +++ b/golang_learn/go.mod @@ -10,6 +10,7 @@ require ( github.com/andlabs/ui v0.0.0-20200610043537-70a69d6ae31e github.com/astaxie/beego v1.12.3 github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 + github.com/biessek/golang-ico v0.0.0-20180326222316-d348d9ea4670 github.com/bitly/go-simplejson v0.5.0 github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 github.com/braintree/manners v0.0.0-20160418043613-82a8879fc5fd @@ -45,9 +46,9 @@ require ( github.com/yeka/zip v0.0.0-20180914125537-d046722c6feb golang.org/x/crypto v0.18.0 golang.org/x/exp/errors v0.0.0-20210715201039-d37aa40e8013 - golang.org/x/image v0.15.0 + golang.org/x/image v0.23.0 golang.org/x/sys v0.16.0 - golang.org/x/text v0.14.0 + golang.org/x/text v0.21.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 nuxui.org/nuxui v0.1.1 @@ -84,6 +85,7 @@ require ( github.com/hhrutter/lzw v1.0.0 // indirect github.com/hhrutter/tiff v1.0.1 // indirect github.com/jezek/xgb v0.0.0-20210312150743-0e0f116e1240 // indirect + github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25 // indirect github.com/kennygrant/sanitize v1.2.4 // indirect github.com/kr/pretty v0.3.0 // indirect github.com/kr/text v0.2.0 // indirect diff --git a/golang_learn/go.sum b/golang_learn/go.sum index 7ccf66b..a1d933f 100644 --- a/golang_learn/go.sum +++ b/golang_learn/go.sum @@ -87,6 +87,8 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/biessek/golang-ico v0.0.0-20180326222316-d348d9ea4670 h1:FQPKKjDhzG0T4ew6dm6MGrXb4PRAi8ZmTuYuxcF62BM= +github.com/biessek/golang-ico v0.0.0-20180326222316-d348d9ea4670/go.mod h1:iRWAFbKXMMkVQyxZ1PfGlkBr1TjATx1zy2MRprV7A3Q= github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= @@ -301,6 +303,8 @@ github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/ github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25 h1:YLvr1eE6cdCqjOe972w/cYF+FjW34v27+9Vo5106B4M= +github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25/go.mod h1:kLgvv7o6UM+0QSf0QjAse3wReFDsb9qbZJdfexWlrQw= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= @@ -568,8 +572,8 @@ golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMx golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.15.0 h1:kOELfmgrmJlw4Cdb7g/QGuB3CvDrXbqEIww/pNtNBm8= -golang.org/x/image v0.15.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= +golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68= +golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -739,8 +743,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -799,8 +803,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=