Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package tcping for openSUSE:Factory checked 
in at 2023-04-09 18:41:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tcping (Old)
 and      /work/SRC/openSUSE:Factory/.tcping.new.19717 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tcping"

Sun Apr  9 18:41:29 2023 rev:3 rq:1078158 version:1.19.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/tcping/tcping.changes    2023-03-06 
18:55:20.360599801 +0100
+++ /work/SRC/openSUSE:Factory/.tcping.new.19717/tcping.changes 2023-04-09 
18:43:26.766575984 +0200
@@ -1,0 +2,6 @@
+Fri Apr  7 19:00:45 UTC 2023 - Martin Hauke <[email protected]>
+
+- Update to version 1.19.2
+  * display stats even if all the probes had failed update version
+
+-------------------------------------------------------------------

Old:
----
  tcping-1.19.1.tar.gz

New:
----
  tcping-1.19.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tcping.spec ++++++
--- /var/tmp/diff_new_pack.CgAUsx/_old  2023-04-09 18:43:27.258578767 +0200
+++ /var/tmp/diff_new_pack.CgAUsx/_new  2023-04-09 18:43:27.262578791 +0200
@@ -18,7 +18,7 @@
 
 
 Name:           tcping
-Version:        1.19.1
+Version:        1.19.2
 Release:        0
 Summary:        A ping program for TCP ports
 License:        MIT

++++++ tcping-1.19.1.tar.gz -> tcping-1.19.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tcping-1.19.1/CHANGELOG.md 
new/tcping-1.19.2/CHANGELOG.md
--- old/tcping-1.19.1/CHANGELOG.md      2023-03-04 17:28:54.000000000 +0100
+++ new/tcping-1.19.2/CHANGELOG.md      2023-04-07 18:44:43.000000000 +0200
@@ -1,8 +1,18 @@
 # Changelog
 
+## v1.19.2 - 2023-4-7
+
+- display stats even if all the probes had failed update version
+- update version
+- incorporate sha256sum into Makefile
+
+## v1.19.1 - 2023-3-4
+
+- close `TCP` connections faster to lessen the resource utilization on target
+
 ## v1.19.0 - 2023-2-26
 
-- implmenet sub-millisecond timing report to make it suitable for Data center 
and Cloud environments
+- implement sub-millisecond timing report to make it suitable for Data center 
and Cloud environments
 - refactor `tcping` function and simplify it
 - fix downtime report miscalculation
 - fix picking of go version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tcping-1.19.1/Makefile new/tcping-1.19.2/Makefile
--- old/tcping-1.19.1/Makefile  2023-03-04 17:28:54.000000000 +0100
+++ new/tcping-1.19.2/Makefile  2023-04-07 18:44:43.000000000 +0200
@@ -14,16 +14,28 @@
 
        @echo "[+] Packaging the Linux version"
        @tar -czvf $(EXEC_DIR)tcping_Linux.tar.gz -C $(EXEC_DIR) tcping > 
/dev/null
+       @sha256sum $(EXEC_DIR)tcping_Linux.tar.gz
 
        @echo "[+] Removing the Linux binary"
        @rm $(EXEC_DIR)tcping
 
+       @echo "[+] Building the static Linux version"
+       @env GOOS=linux CGO_ENABLED=0 go build -ldflags "-s -w" -o 
$(EXEC_DIR)tcping $(SOURCE_FILES)
+
+       @echo "[+] Packaging the static Linux version"
+       @tar -czvf $(EXEC_DIR)tcping_Linux_static.tar.gz -C $(EXEC_DIR) tcping 
> /dev/null
+       @sha256sum $(EXEC_DIR)tcping_Linux_static.tar.gz
+
+       @echo "[+] Removing the static Linux binary"
+       @rm $(EXEC_DIR)tcping
+
        @echo
        @echo "[+] Building the Windows version"
        @env GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o 
$(EXEC_DIR)tcping.exe $(SOURCE_FILES)
 
        @echo "[+] Packaging the Windows version"
        @zip -j $(EXEC_DIR)tcping_Windows.zip $(EXEC_DIR)tcping.exe > /dev/null
+       @sha256sum  $(EXEC_DIR)tcping_Windows.zip
 
        @echo "[+] Removing the Windows binary"
        @rm $(EXEC_DIR)tcping.exe
@@ -34,6 +46,7 @@
 
        @echo "[+] Packaging the MacOS version"
        @tar -czvf $(EXEC_DIR)tcping_MacOS.tar.gz -C $(EXEC_DIR) tcping > 
/dev/null
+       @sha256sum $(EXEC_DIR)tcping_MacOS.tar.gz
 
        @echo "[+] Removing the MacOS binary"
        @rm $(EXEC_DIR)tcping
@@ -44,6 +57,7 @@
        
        @echo "[+] Packaging the MacOS ARM version"
        @tar -czvf $(EXEC_DIR)tcping_MacOS_ARM.tar.gz -C $(EXEC_DIR) tcping > 
/dev/null
+       @sha256sum $(EXEC_DIR)tcping_MacOS_ARM.tar.gz
 
        @echo "[+] Removing the MacOS ARM binary"
        @rm $(EXEC_DIR)tcping
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tcping-1.19.1/go.mod new/tcping-1.19.2/go.mod
--- old/tcping-1.19.1/go.mod    2023-03-04 17:28:54.000000000 +0100
+++ new/tcping-1.19.2/go.mod    2023-04-07 18:44:43.000000000 +0200
@@ -4,7 +4,7 @@
 
 require (
        github.com/google/go-github/v45 v45.2.0
-       github.com/gookit/color v1.5.2
+       github.com/gookit/color v1.5.3
        github.com/stretchr/testify v1.8.0
 )
 
@@ -13,7 +13,7 @@
        github.com/google/go-querystring v1.1.0 // indirect
        github.com/pmezard/go-difflib v1.0.0 // indirect
        github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
-       golang.org/x/crypto v0.6.0 // indirect
-       golang.org/x/sys v0.5.0 // indirect
+       golang.org/x/crypto v0.8.0 // indirect
+       golang.org/x/sys v0.7.0 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tcping-1.19.1/go.sum new/tcping-1.19.2/go.sum
--- old/tcping-1.19.1/go.sum    2023-03-04 17:28:54.000000000 +0100
+++ new/tcping-1.19.2/go.sum    2023-04-07 18:44:43.000000000 +0200
@@ -9,6 +9,8 @@
 github.com/google/go-querystring v1.1.0/go.mod 
h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
 github.com/gookit/color v1.5.2 h1:uLnfXcaFjlrDnQDT+NCBcfhrXqYTx/rcCa6xn01Y8yI=
 github.com/gookit/color v1.5.2/go.mod 
h1:w8h4bGiHeeBpvQVePTutdbERIUf3oJE5lZ8HM0UgXyg=
+github.com/gookit/color v1.5.3 h1:twfIhZs4QLCtimkP7MOxlF3A0U/5cDPseRT9M/+2SCE=
+github.com/gookit/color v1.5.3/go.mod 
h1:NUzwzeehUfl7GIb36pqId+UGmRfQcU/WiiyTTeNjHtE=
 github.com/pmezard/go-difflib v1.0.0 
h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -19,12 +21,16 @@
 github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod 
h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs=
 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e 
h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod 
h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
-golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc=
-golang.org/x/crypto v0.6.0/go.mod 
h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
+golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A=
+golang.org/x/crypto v0.7.0/go.mod 
h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
+golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ=
+golang.org/x/crypto v0.8.0/go.mod 
h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
 golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561 
h1:MDc5xs78ZrZr3HMQugiXOAkSZtfTpbJLDr/lwfgO53E=
 golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
+golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 
h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tcping-1.19.1/statsprinter.go 
new/tcping-1.19.2/statsprinter.go
--- old/tcping-1.19.1/statsprinter.go   2023-03-04 17:28:54.000000000 +0100
+++ new/tcping-1.19.2/statsprinter.go   2023-04-07 18:44:43.000000000 +0200
@@ -90,13 +90,23 @@
        colorYellow("duration (HH:MM:SS): %v\n\n", duration.Format(hourFormat))
 }
 
+func (p *statsPlanePrinter) printRttResults(rtt *rttResults) {
+       colorYellow("rtt ")
+       colorGreen("min")
+       colorYellow("/")
+       colorCyan("avg")
+       colorYellow("/")
+       colorRed("max: ")
+       colorGreen("%.3f", rtt.min)
+       colorYellow("/")
+       colorCyan("%.3f", rtt.average)
+       colorYellow("/")
+       colorRed("%.3f", rtt.max)
+       colorYellow(" ms\n")
+}
+
 /* Print statistics when program exits */
 func (p *statsPlanePrinter) printStatistics() {
-       rttResults := findMinAvgMaxRttTime(p.rtt)
-
-       if !rttResults.hasResults {
-               return
-       }
 
        totalPackets := p.totalSuccessfulPkts + p.totalUnsuccessfulPkts
        totalUptime := calcTime(uint(p.totalUptime.Seconds()))
@@ -153,20 +163,11 @@
                p.printRetryResolveStats()
        }
 
-       /*TODO: see if formatted string would suit better */
-       /* latency stats.*/
-       colorYellow("rtt ")
-       colorGreen("min")
-       colorYellow("/")
-       colorCyan("avg")
-       colorYellow("/")
-       colorRed("max: ")
-       colorGreen("%.3f", rttResults.min)
-       colorYellow("/")
-       colorCyan("%.3f", rttResults.average)
-       colorYellow("/")
-       colorRed("%.3f", rttResults.max)
-       colorYellow(" ms\n")
+       rttResults := findMinAvgMaxRttTime(p.rtt)
+
+       if rttResults.hasResults {
+               p.printRttResults(&rttResults)
+       }
 
        /* duration stats */
        p.printDurationStats()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tcping-1.19.1/tcping.go new/tcping-1.19.2/tcping.go
--- old/tcping-1.19.1/tcping.go 2023-03-04 17:28:54.000000000 +0100
+++ new/tcping-1.19.2/tcping.go 2023-04-07 18:44:43.000000000 +0200
@@ -66,7 +66,7 @@
 type calculatedTimeString = string
 
 const (
-       version             = "1.19.0"
+       version             = "1.19.2"
        owner               = "pouriyajamshidi"
        repo                = "tcping"
        thousandMilliSecond = 1000 * time.Millisecond

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/README.md 
new/vendor/github.com/gookit/color/README.md
--- old/vendor/github.com/gookit/color/README.md        2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/github.com/gookit/color/README.md        2023-04-07 
21:03:48.000000000 +0200
@@ -570,6 +570,7 @@
   - [xo/terminfo](https://github.com/xo/terminfo)
   - [beego/bee](https://github.com/beego/bee)
   - [issue9/term](https://github.com/issue9/term)
+  - [muesli/termenv](https://github.com/muesli/termenv)
   - [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code)
   - [Standard ANSI color 
map](https://conemu.github.io/en/AnsiEscapeCodes.html#Standard_ANSI_color_map)
   - [Terminal Colors](https://gist.github.com/XVilka/8346728)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/README.zh-CN.md 
new/vendor/github.com/gookit/color/README.zh-CN.md
--- old/vendor/github.com/gookit/color/README.zh-CN.md  2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/github.com/gookit/color/README.zh-CN.md  2023-04-07 
21:03:48.000000000 +0200
@@ -578,6 +578,7 @@
 ## 参考项目
 
   - [inhere/console](https://github.com/inhere/php-console)
+  - [muesli/termenv](https://github.com/muesli/termenv)
   - [xo/terminfo](https://github.com/xo/terminfo)
   - [beego/bee](https://github.com/beego/bee)
   - [issue9/term](https://github.com/issue9/term)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/any.go 
new/vendor/github.com/gookit/color/any.go
--- old/vendor/github.com/gookit/color/any.go   1970-01-01 01:00:00.000000000 
+0100
+++ new/vendor/github.com/gookit/color/any.go   2023-04-07 21:03:48.000000000 
+0200
@@ -0,0 +1,6 @@
+//go:build !go1.18
+// +build !go1.18
+
+package color
+
+type any = interface{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/color.go 
new/vendor/github.com/gookit/color/color.go
--- old/vendor/github.com/gookit/color/color.go 2023-03-04 17:53:29.000000000 
+0100
+++ new/vendor/github.com/gookit/color/color.go 2023-04-07 21:03:48.000000000 
+0200
@@ -183,7 +183,7 @@
 // Usage:
 //
 //     msg := RenderCode("3;32;45", "some", "message")
-func RenderCode(code string, args ...interface{}) string {
+func RenderCode(code string, args ...any) string {
        var message string
        if ln := len(args); ln == 0 {
                return ""
@@ -205,7 +205,7 @@
 
 // RenderWithSpaces Render code with spaces.
 // If the number of args is > 1, a space will be added between the args
-func RenderWithSpaces(code string, args ...interface{}) string {
+func RenderWithSpaces(code string, args ...any) string {
        msg := formatArgsForPrintln(args)
        if len(code) == 0 {
                return msg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/color_16.go 
new/vendor/github.com/gookit/color/color_16.go
--- old/vendor/github.com/gookit/color/color_16.go      2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/github.com/gookit/color/color_16.go      2023-04-07 
21:03:48.000000000 +0200
@@ -188,57 +188,65 @@
 // Render messages by color setting
 //
 // Usage:
-//             green := color.FgGreen.Render
-//             fmt.Println(green("message"))
-func (c Color) Render(a ...interface{}) string { return RenderCode(c.String(), 
a...) }
+//
+//     green := color.FgGreen.Render
+//     fmt.Println(green("message"))
+func (c Color) Render(a ...any) string { return RenderCode(c.String(), a...) }
 
 // Renderln messages by color setting.
 // like Println, will add spaces for each argument
 //
 // Usage:
-//             green := color.FgGreen.Renderln
-//             fmt.Println(green("message"))
-func (c Color) Renderln(a ...interface{}) string { return 
RenderWithSpaces(c.String(), a...) }
+//
+//     green := color.FgGreen.Renderln
+//     fmt.Println(green("message"))
+func (c Color) Renderln(a ...any) string { return RenderWithSpaces(c.String(), 
a...) }
 
 // Sprint render messages by color setting. is alias of the Render()
-func (c Color) Sprint(a ...interface{}) string { return RenderCode(c.String(), 
a...) }
+func (c Color) Sprint(a ...any) string { return RenderCode(c.String(), a...) }
 
 // Sprintf format and render message.
 //
 // Usage:
-//     green := color.Green.Sprintf
-//  colored := green("message")
-func (c Color) Sprintf(format string, args ...interface{}) string {
+//
+//             green := color.Green.Sprintf
+//      colored := green("message")
+func (c Color) Sprintf(format string, args ...any) string {
        return RenderString(c.String(), fmt.Sprintf(format, args...))
 }
 
 // Print messages.
 //
 // Usage:
-//             color.Green.Print("message")
+//
+//     color.Green.Print("message")
+//
 // OR:
-//             green := color.FgGreen.Print
-//             green("message")
-func (c Color) Print(args ...interface{}) {
+//
+//     green := color.FgGreen.Print
+//     green("message")
+func (c Color) Print(args ...any) {
        doPrintV2(c.Code(), fmt.Sprint(args...))
 }
 
 // Printf format and print messages.
 //
 // Usage:
-//             color.Cyan.Printf("string %s", "arg0")
-func (c Color) Printf(format string, a ...interface{}) {
+//
+//     color.Cyan.Printf("string %s", "arg0")
+func (c Color) Printf(format string, a ...any) {
        doPrintV2(c.Code(), fmt.Sprintf(format, a...))
 }
 
 // Println messages with new line
-func (c Color) Println(a ...interface{}) { doPrintlnV2(c.String(), a) }
+func (c Color) Println(a ...any) { doPrintlnV2(c.String(), a) }
 
 // Light current color. eg: 36(FgCyan) -> 96(FgLightCyan).
 //
 // Usage:
-//     lightCyan := Cyan.Light()
-//     lightCyan.Print("message")
+//
+//     lightCyan := Cyan.Light()
+//     lightCyan.Print("message")
 func (c Color) Light() Color {
        val := int(c)
        if val >= 30 && val <= 47 {
@@ -252,8 +260,9 @@
 // Darken current color. eg. 96(FgLightCyan) -> 36(FgCyan)
 //
 // Usage:
-//     cyan := LightCyan.Darken()
-//     cyan.Print("message")
+//
+//     cyan := LightCyan.Darken()
+//     cyan.Print("message")
 func (c Color) Darken() Color {
        val := int(c)
        if val >= 90 && val <= 107 {
@@ -461,9 +470,7 @@
 }
 
 // Basic2nameMap data
-func Basic2nameMap() map[uint8]string {
-       return basic2nameMap
-}
+func Basic2nameMap() map[uint8]string { return basic2nameMap }
 
 // func initName2basicMap() map[string]uint8 {
 //     n2b := make(map[string]uint8, len(basic2nameMap))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/color_256.go 
new/vendor/github.com/gookit/color/color_256.go
--- old/vendor/github.com/gookit/color/color_256.go     2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/github.com/gookit/color/color_256.go     2023-04-07 
21:03:48.000000000 +0200
@@ -19,16 +19,19 @@
 // tpl for 8 bit 256 color(`2^8`)
 //
 // format:
-//     ESC[ … 38;5;<n> … m // 选择前景色
-//  ESC[ … 48;5;<n> … m // 选择背景色
+//
+//             ESC[ … 38;5;<n> … m // 选择前景色
+//      ESC[ … 48;5;<n> … m // 选择背景色
 //
 // example:
-//  fg "\x1b[38;5;242m"
-//  bg "\x1b[48;5;208m"
-//  both "\x1b[38;5;242;48;5;208m"
+//
+//     fg "\x1b[38;5;242m"
+//     bg "\x1b[48;5;208m"
+//     both "\x1b[38;5;242;48;5;208m"
 //
 // links:
-//     
https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#8位
+//
+//     
https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#8位
 const (
        TplFg256 = "38;5;%d"
        TplBg256 = "48;5;%d"
@@ -45,12 +48,14 @@
 // 颜色值使用10进制和16进制都可 0x98 = 152
 //
 // The color consists of two uint8:
-//     0: color value
-//     1: color type; Fg=0, Bg=1, >1: unset value
+//
+//     0: color value
+//     1: color type; Fg=0, Bg=1, >1: unset value
 //
 // example:
-//     fg color: [152, 0]
-//  bg color: [152, 1]
+//
+//             fg color: [152, 0]
+//      bg color: [152, 1]
 //
 // NOTICE: now support 256 color on windows CMD, PowerShell
 // lint warn - Name starts with package name
@@ -87,27 +92,27 @@
 }
 
 // Print print message
-func (c Color256) Print(a ...interface{}) {
+func (c Color256) Print(a ...any) {
        doPrintV2(c.String(), fmt.Sprint(a...))
 }
 
 // Printf format and print message
-func (c Color256) Printf(format string, a ...interface{}) {
+func (c Color256) Printf(format string, a ...any) {
        doPrintV2(c.String(), fmt.Sprintf(format, a...))
 }
 
 // Println print message with newline
-func (c Color256) Println(a ...interface{}) {
+func (c Color256) Println(a ...any) {
        doPrintlnV2(c.String(), a)
 }
 
 // Sprint returns rendered message
-func (c Color256) Sprint(a ...interface{}) string {
+func (c Color256) Sprint(a ...any) string {
        return RenderCode(c.String(), a...)
 }
 
 // Sprintf returns format and rendered message
-func (c Color256) Sprintf(format string, a ...interface{}) string {
+func (c Color256) Sprintf(format string, a ...any) string {
        return RenderString(c.String(), fmt.Sprintf(format, a...))
 }
 
@@ -206,9 +211,10 @@
 // S256 create a color256 style
 //
 // Usage:
-//     s := color.S256()
-//     s := color.S256(132) // fg
-//     s := color.S256(132, 203) // fg and bg
+//
+//     s := color.S256()
+//     s := color.S256(132) // fg
+//     s := color.S256(132, 203) // fg and bg
 func S256(fgAndBg ...uint8) *Style256 {
        s := &Style256{}
        vl := len(fgAndBg)
@@ -256,27 +262,27 @@
 }
 
 // Print message
-func (s *Style256) Print(a ...interface{}) {
+func (s *Style256) Print(a ...any) {
        doPrintV2(s.String(), fmt.Sprint(a...))
 }
 
 // Printf format and print message
-func (s *Style256) Printf(format string, a ...interface{}) {
+func (s *Style256) Printf(format string, a ...any) {
        doPrintV2(s.String(), fmt.Sprintf(format, a...))
 }
 
 // Println print message with newline
-func (s *Style256) Println(a ...interface{}) {
+func (s *Style256) Println(a ...any) {
        doPrintlnV2(s.String(), a)
 }
 
 // Sprint returns rendered message
-func (s *Style256) Sprint(a ...interface{}) string {
+func (s *Style256) Sprint(a ...any) string {
        return RenderCode(s.Code(), a...)
 }
 
 // Sprintf returns format and rendered message
-func (s *Style256) Sprintf(format string, a ...interface{}) string {
+func (s *Style256) Sprintf(format string, a ...any) string {
        return RenderString(s.Code(), fmt.Sprintf(format, a...))
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/color_rgb.go 
new/vendor/github.com/gookit/color/color_rgb.go
--- old/vendor/github.com/gookit/color/color_rgb.go     2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/github.com/gookit/color/color_rgb.go     2023-04-07 
21:03:48.000000000 +0200
@@ -8,20 +8,24 @@
 
 // 24 bit RGB color
 // RGB:
-//     R 0-255 G 0-255 B 0-255
-//     R 00-FF G 00-FF B 00-FF (16进制)
+//
+//     R 0-255 G 0-255 B 0-255
+//     R 00-FF G 00-FF B 00-FF (16进制)
 //
 // Format:
-//     ESC[ … 38;2;<r>;<g>;<b> … m // Select RGB foreground color
-//     ESC[ … 48;2;<r>;<g>;<b> … m // Choose RGB background color
+//
+//     ESC[ … 38;2;<r>;<g>;<b> … m // Select RGB foreground color
+//     ESC[ … 48;2;<r>;<g>;<b> … m // Choose RGB background color
 //
 // links:
-//     
https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#24位
+//
+//     
https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#24位
 //
 // example:
-//     fg: \x1b[38;2;30;144;255mMESSAGE\x1b[0m
-//     bg: \x1b[48;2;30;144;255mMESSAGE\x1b[0m
-//     both: \x1b[38;2;233;90;203;48;2;30;144;255mMESSAGE\x1b[0m
+//
+//     fg: \x1b[38;2;30;144;255mMESSAGE\x1b[0m
+//     bg: \x1b[48;2;30;144;255mMESSAGE\x1b[0m
+//     both: \x1b[38;2;233;90;203;48;2;30;144;255mMESSAGE\x1b[0m
 const (
        TplFgRGB = "38;2;%d;%d;%d"
        TplBgRGB = "48;2;%d;%d;%d"
@@ -45,10 +49,11 @@
 // The last digit represents the foreground(0), background(1), >1 is unset 
value
 //
 // Usage:
-//     // 0, 1, 2 is R,G,B.
-//     // 3rd: Fg=0, Bg=1, >1: unset value
-//     RGBColor{30,144,255, 0}
-//     RGBColor{30,144,255, 1}
+//
+//     // 0, 1, 2 is R,G,B.
+//     // 3rd: Fg=0, Bg=1, >1: unset value
+//     RGBColor{30,144,255, 0}
+//     RGBColor{30,144,255, 1}
 //
 // NOTICE: now support RGB color on Windows CMD, PowerShell
 type RGBColor [4]uint8
@@ -59,9 +64,10 @@
 // RGB color create.
 //
 // Usage:
-//     c := RGB(30,144,255)
-//     c := RGB(30,144,255, true)
-//     c.Print("message")
+//
+//     c := RGB(30,144,255)
+//     c := RGB(30,144,255, true)
+//     c.Print("message")
 func RGB(r, g, b uint8, isBg ...bool) RGBColor {
        rgb := RGBColor{r, g, b}
        if len(isBg) > 0 && isBg[0] {
@@ -90,11 +96,12 @@
 // HEX create RGB color from a HEX color string.
 //
 // Usage:
-//     c := HEX("ccc") // rgb: [204 204 204]
-//     c := HEX("aabbcc") // rgb: [170 187 204]
-//     c := HEX("#aabbcc")
-//     c := HEX("0xaabbcc")
-//     c.Print("message")
+//
+//     c := HEX("ccc") // rgb: [204 204 204]
+//     c := HEX("aabbcc") // rgb: [170 187 204]
+//     c := HEX("#aabbcc")
+//     c := HEX("0xaabbcc")
+//     c.Print("message")
 func HEX(hex string, isBg ...bool) RGBColor {
        if rgb := HexToRgb(hex); len(rgb) > 0 {
                return RGB(uint8(rgb[0]), uint8(rgb[1]), uint8(rgb[2]), isBg...)
@@ -139,11 +146,12 @@
 // Support use color name in the {namedRgbMap}
 //
 // Usage:
-//     c := RGBFromString("170,187,204")
-//     c.Print("message")
 //
-//     c := RGBFromString("brown")
-//     c.Print("message with color brown")
+//     c := RGBFromString("170,187,204")
+//     c.Print("message")
+//
+//     c := RGBFromString("brown")
+//     c.Print("message with color brown")
 func RGBFromString(rgb string, isBg ...bool) RGBColor {
        // use color name in the {namedRgbMap}
        if rgbVal, ok := namedRgbMap[rgb]; ok {
@@ -180,27 +188,27 @@
 }
 
 // Print print message
-func (c RGBColor) Print(a ...interface{}) {
+func (c RGBColor) Print(a ...any) {
        doPrintV2(c.String(), fmt.Sprint(a...))
 }
 
 // Printf format and print message
-func (c RGBColor) Printf(format string, a ...interface{}) {
+func (c RGBColor) Printf(format string, a ...any) {
        doPrintV2(c.String(), fmt.Sprintf(format, a...))
 }
 
 // Println print message with newline
-func (c RGBColor) Println(a ...interface{}) {
+func (c RGBColor) Println(a ...any) {
        doPrintlnV2(c.String(), a)
 }
 
 // Sprint returns rendered message
-func (c RGBColor) Sprint(a ...interface{}) string {
+func (c RGBColor) Sprint(a ...any) string {
        return RenderCode(c.String(), a...)
 }
 
 // Sprintf returns format and rendered message
-func (c RGBColor) Sprintf(format string, a ...interface{}) string {
+func (c RGBColor) Sprintf(format string, a ...any) string {
        return RenderString(c.String(), fmt.Sprintf(format, a...))
 }
 
@@ -279,8 +287,8 @@
 // All are composed of 4 digits uint8, the first three digits are the color 
value;
 // The last bit is different from RGBColor, here it indicates whether the 
value is set.
 //
-//     1    Has been set
-//     ^1   Not set
+//     1    Has been set
+//     ^1   Not set
 type RGBStyle struct {
        // Name of the style
        Name string
@@ -303,8 +311,9 @@
 // HEXStyle create a RGBStyle from HEX color string.
 //
 // Usage:
-//     s := HEXStyle("aabbcc", "eee")
-//     s.Print("message")
+//
+//     s := HEXStyle("aabbcc", "eee")
+//     s.Print("message")
 func HEXStyle(fg string, bg ...string) *RGBStyle {
        s := &RGBStyle{}
        if len(bg) > 0 {
@@ -320,8 +329,9 @@
 // RGBStyleFromString create a RGBStyle from color value string.
 //
 // Usage:
-//     s := RGBStyleFromString("170,187,204", "70,87,4")
-//     s.Print("message")
+//
+//     s := RGBStyleFromString("170,187,204", "70,87,4")
+//     s.Print("message")
 func RGBStyleFromString(fg string, bg ...string) *RGBStyle {
        s := &RGBStyle{}
        if len(bg) > 0 {
@@ -363,27 +373,27 @@
 }
 
 // Print print message
-func (s *RGBStyle) Print(a ...interface{}) {
+func (s *RGBStyle) Print(a ...any) {
        doPrintV2(s.String(), fmt.Sprint(a...))
 }
 
 // Printf format and print message
-func (s *RGBStyle) Printf(format string, a ...interface{}) {
+func (s *RGBStyle) Printf(format string, a ...any) {
        doPrintV2(s.String(), fmt.Sprintf(format, a...))
 }
 
 // Println print message with newline
-func (s *RGBStyle) Println(a ...interface{}) {
+func (s *RGBStyle) Println(a ...any) {
        doPrintlnV2(s.String(), a)
 }
 
 // Sprint returns rendered message
-func (s *RGBStyle) Sprint(a ...interface{}) string {
+func (s *RGBStyle) Sprint(a ...any) string {
        return RenderCode(s.String(), a...)
 }
 
 // Sprintf returns format and rendered message
-func (s *RGBStyle) Sprintf(format string, a ...interface{}) string {
+func (s *RGBStyle) Sprintf(format string, a ...any) string {
        return RenderString(s.String(), fmt.Sprintf(format, a...))
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/color_tag.go 
new/vendor/github.com/gookit/color/color_tag.go
--- old/vendor/github.com/gookit/color/color_tag.go     2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/github.com/gookit/color/color_tag.go     2023-04-07 
21:03:48.000000000 +0200
@@ -41,7 +41,8 @@
 // There are internal defined fg color tags
 //
 // Usage:
-//     <tag>content text</>
+//
+//     <tag>content text</>
 //
 // @notice 加 0 在前面是为了防止之前的影响到现在的设置
 var colorTags = map[string]string{
@@ -324,15 +325,17 @@
        return tp.Parse(str)
 }
 
-// Parse parse given string, replace color tag and return rendered string
+// Parse given string, replace color tag and return rendered string
 //
 // Use built in tags:
-//     <TAG_NAME>CONTENT</>
-//     // e.g: `<info>message</>`
+//
+//     <TAG_NAME>CONTENT</>
+//     // e.g: `<info>message</>`
 //
 // Custom tag attributes:
-//     `<fg=VALUE;bg=VALUE;op=VALUES>CONTENT</>`
-//     // e.g: `<fg=167;bg=232>wel</>`
+//
+//     `<fg=VALUE;bg=VALUE;op=VALUES>CONTENT</>`
+//     // e.g: `<fg=167;bg=232>wel</>`
 func (tp *TagParser) Parse(str string) string {
        // not contains color tag
        if !strings.Contains(str, "</>") {
@@ -376,26 +379,30 @@
 // ParseCodeFromAttr parse color attributes.
 //
 // attr format:
-//     // VALUE please see var: FgColors, BgColors, AllOptions
-//     "fg=VALUE;bg=VALUE;op=VALUE"
+//
+//     // VALUE please see var: FgColors, BgColors, AllOptions
+//     "fg=VALUE;bg=VALUE;op=VALUE"
 //
 // 16 color:
-//     "fg=yellow"
-//     "bg=red"
-//     "op=bold,underscore" // option is allow multi value
-//     "fg=white;bg=blue;op=bold"
-//     "fg=white;op=bold,underscore"
+//
+//     "fg=yellow"
+//     "bg=red"
+//     "op=bold,underscore" // option is allow multi value
+//     "fg=white;bg=blue;op=bold"
+//     "fg=white;op=bold,underscore"
 //
 // 256 color:
+//
 //     "fg=167"
 //     "fg=167;bg=23"
 //     "fg=167;bg=23;op=bold"
 //
 // True color:
-//     // hex
+//
+//     // hex
 //     "fg=fc1cac"
 //     "fg=fc1cac;bg=c2c3c4"
-//     // r,g,b
+//     // r,g,b
 //     "fg=23,45,214"
 //     "fg=23,45,214;bg=109,99,88"
 func ParseCodeFromAttr(attr string) (code string) {
@@ -476,12 +483,10 @@
  *************************************************************/
 
 // GetTagCode get color code by tag name
-func GetTagCode(name string) string {
-       return colorTags[name]
-}
+func GetTagCode(name string) string { return colorTags[name] }
 
 // ApplyTag for messages
-func ApplyTag(tag string, a ...interface{}) string {
+func ApplyTag(tag string, a ...any) string {
        return RenderCode(GetTagCode(tag), a...)
 }
 
@@ -510,11 +515,12 @@
 
 // Tag value is a defined style name
 // Usage:
-//     Tag("info").Println("message")
+//
+//     Tag("info").Println("message")
 type Tag string
 
 // Print messages
-func (tg Tag) Print(a ...interface{}) {
+func (tg Tag) Print(a ...any) {
        name := string(tg)
        str := fmt.Sprint(a...)
 
@@ -526,7 +532,7 @@
 }
 
 // Printf format and print messages
-func (tg Tag) Printf(format string, a ...interface{}) {
+func (tg Tag) Printf(format string, a ...any) {
        name := string(tg)
        str := fmt.Sprintf(format, a...)
 
@@ -538,7 +544,7 @@
 }
 
 // Println messages line
-func (tg Tag) Println(a ...interface{}) {
+func (tg Tag) Println(a ...any) {
        name := string(tg)
        if stl := GetStyle(name); !stl.IsEmpty() {
                stl.Println(a...)
@@ -548,12 +554,12 @@
 }
 
 // Sprint render messages
-func (tg Tag) Sprint(a ...interface{}) string {
+func (tg Tag) Sprint(a ...any) string {
        return RenderCode(GetTagCode(string(tg)), a...)
 }
 
 // Sprintf format and render messages
-func (tg Tag) Sprintf(format string, a ...interface{}) string {
+func (tg Tag) Sprintf(format string, a ...any) string {
        tag := string(tg)
        str := fmt.Sprintf(format, a...)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/printer.go 
new/vendor/github.com/gookit/color/printer.go
--- old/vendor/github.com/gookit/color/printer.go       2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/github.com/gookit/color/printer.go       2023-04-07 
21:03:48.000000000 +0200
@@ -9,18 +9,19 @@
 // PrinterFace interface
 type PrinterFace interface {
        fmt.Stringer
-       Sprint(a ...interface{}) string
-       Sprintf(format string, a ...interface{}) string
-       Print(a ...interface{})
-       Printf(format string, a ...interface{})
-       Println(a ...interface{})
+       Sprint(a ...any) string
+       Sprintf(format string, a ...any) string
+       Print(a ...any)
+       Printf(format string, a ...any)
+       Println(a ...any)
 }
 
 // Printer a generic color message printer.
 //
 // Usage:
-//     p := &Printer{Code: "32;45;3"}
-//     p.Print("message")
+//
+//     p := &Printer{Code: "32;45;3"}
+//     p.Print("message")
 type Printer struct {
        // NoColor disable color.
        NoColor bool
@@ -40,27 +41,27 @@
 }
 
 // Sprint returns rendering colored messages
-func (p *Printer) Sprint(a ...interface{}) string {
+func (p *Printer) Sprint(a ...any) string {
        return RenderCode(p.String(), a...)
 }
 
 // Sprintf returns format and rendering colored messages
-func (p *Printer) Sprintf(format string, a ...interface{}) string {
+func (p *Printer) Sprintf(format string, a ...any) string {
        return RenderString(p.String(), fmt.Sprintf(format, a...))
 }
 
 // Print rendering colored messages
-func (p *Printer) Print(a ...interface{}) {
+func (p *Printer) Print(a ...any) {
        doPrintV2(p.String(), fmt.Sprint(a...))
 }
 
 // Printf format and rendering colored messages
-func (p *Printer) Printf(format string, a ...interface{}) {
+func (p *Printer) Printf(format string, a ...any) {
        doPrintV2(p.String(), fmt.Sprintf(format, a...))
 }
 
 // Println rendering colored messages with newline
-func (p *Printer) Println(a ...interface{}) {
+func (p *Printer) Println(a ...any) {
        doPrintlnV2(p.Code, a)
 }
 
@@ -77,46 +78,56 @@
 type SimplePrinter struct{}
 
 // Print message
-func (s *SimplePrinter) Print(v ...interface{}) {
+func (s *SimplePrinter) Print(v ...any) {
        Print(v...)
 }
 
 // Printf message
-func (s *SimplePrinter) Printf(format string, v ...interface{}) {
+func (s *SimplePrinter) Printf(format string, v ...any) {
        Printf(format, v...)
 }
 
 // Println message
-func (s *SimplePrinter) Println(v ...interface{}) {
+func (s *SimplePrinter) Println(v ...any) {
        Println(v...)
 }
 
+// Successf message
+func (s *SimplePrinter) Successf(format string, a ...any) {
+       Success.Printf(format, a...)
+}
+
+// Successln message
+func (s *SimplePrinter) Successln(a ...any) {
+       Success.Println(a...)
+}
+
 // Infof message
-func (s *SimplePrinter) Infof(format string, a ...interface{}) {
+func (s *SimplePrinter) Infof(format string, a ...any) {
        Info.Printf(format, a...)
 }
 
 // Infoln message
-func (s *SimplePrinter) Infoln(a ...interface{}) {
+func (s *SimplePrinter) Infoln(a ...any) {
        Info.Println(a...)
 }
 
 // Warnf message
-func (s *SimplePrinter) Warnf(format string, a ...interface{}) {
+func (s *SimplePrinter) Warnf(format string, a ...any) {
        Warn.Printf(format, a...)
 }
 
 // Warnln message
-func (s *SimplePrinter) Warnln(a ...interface{}) {
+func (s *SimplePrinter) Warnln(a ...any) {
        Warn.Println(a...)
 }
 
 // Errorf message
-func (s *SimplePrinter) Errorf(format string, a ...interface{}) {
+func (s *SimplePrinter) Errorf(format string, a ...any) {
        Error.Printf(format, a...)
 }
 
 // Errorln message
-func (s *SimplePrinter) Errorln(a ...interface{}) {
+func (s *SimplePrinter) Errorln(a ...any) {
        Error.Println(a...)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/quickstart.go 
new/vendor/github.com/gookit/color/quickstart.go
--- old/vendor/github.com/gookit/color/quickstart.go    2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/github.com/gookit/color/quickstart.go    2023-04-07 
21:03:48.000000000 +0200
@@ -5,104 +5,104 @@
  *************************************************************/
 
 // Redp print message with Red color
-func Redp(a ...interface{}) { Red.Print(a...) }
+func Redp(a ...any) { Red.Print(a...) }
 
 // Redf print message with Red color
-func Redf(format string, a ...interface{}) { Red.Printf(format, a...) }
+func Redf(format string, a ...any) { Red.Printf(format, a...) }
 
 // Redln print message line with Red color
-func Redln(a ...interface{}) { Red.Println(a...) }
+func Redln(a ...any) { Red.Println(a...) }
 
 // Bluep print message with Blue color
-func Bluep(a ...interface{}) { Blue.Print(a...) }
+func Bluep(a ...any) { Blue.Print(a...) }
 
 // Bluef print message with Blue color
-func Bluef(format string, a ...interface{}) { Blue.Printf(format, a...) }
+func Bluef(format string, a ...any) { Blue.Printf(format, a...) }
 
 // Blueln print message line with Blue color
-func Blueln(a ...interface{}) { Blue.Println(a...) }
+func Blueln(a ...any) { Blue.Println(a...) }
 
 // Cyanp print message with Cyan color
-func Cyanp(a ...interface{}) { Cyan.Print(a...) }
+func Cyanp(a ...any) { Cyan.Print(a...) }
 
 // Cyanf print message with Cyan color
-func Cyanf(format string, a ...interface{}) { Cyan.Printf(format, a...) }
+func Cyanf(format string, a ...any) { Cyan.Printf(format, a...) }
 
 // Cyanln print message line with Cyan color
-func Cyanln(a ...interface{}) { Cyan.Println(a...) }
+func Cyanln(a ...any) { Cyan.Println(a...) }
 
 // Grayp print message with Gray color
-func Grayp(a ...interface{}) { Gray.Print(a...) }
+func Grayp(a ...any) { Gray.Print(a...) }
 
 // Grayf print message with Gray color
-func Grayf(format string, a ...interface{}) { Gray.Printf(format, a...) }
+func Grayf(format string, a ...any) { Gray.Printf(format, a...) }
 
 // Grayln print message line with Gray color
-func Grayln(a ...interface{}) { Gray.Println(a...) }
+func Grayln(a ...any) { Gray.Println(a...) }
 
 // Greenp print message with Green color
-func Greenp(a ...interface{}) { Green.Print(a...) }
+func Greenp(a ...any) { Green.Print(a...) }
 
 // Greenf print message with Green color
-func Greenf(format string, a ...interface{}) { Green.Printf(format, a...) }
+func Greenf(format string, a ...any) { Green.Printf(format, a...) }
 
 // Greenln print message line with Green color
-func Greenln(a ...interface{}) { Green.Println(a...) }
+func Greenln(a ...any) { Green.Println(a...) }
 
 // Yellowp print message with Yellow color
-func Yellowp(a ...interface{}) { Yellow.Print(a...) }
+func Yellowp(a ...any) { Yellow.Print(a...) }
 
 // Yellowf print message with Yellow color
-func Yellowf(format string, a ...interface{}) { Yellow.Printf(format, a...) }
+func Yellowf(format string, a ...any) { Yellow.Printf(format, a...) }
 
 // Yellowln print message line with Yellow color
-func Yellowln(a ...interface{}) { Yellow.Println(a...) }
+func Yellowln(a ...any) { Yellow.Println(a...) }
 
 // Magentap print message with Magenta color
-func Magentap(a ...interface{}) { Magenta.Print(a...) }
+func Magentap(a ...any) { Magenta.Print(a...) }
 
 // Magentaf print message with Magenta color
-func Magentaf(format string, a ...interface{}) { Magenta.Printf(format, a...) }
+func Magentaf(format string, a ...any) { Magenta.Printf(format, a...) }
 
 // Magentaln print message line with Magenta color
-func Magentaln(a ...interface{}) { Magenta.Println(a...) }
+func Magentaln(a ...any) { Magenta.Println(a...) }
 
 /*************************************************************
  * quick use style print message
  *************************************************************/
 
 // Infop print message with Info color
-func Infop(a ...interface{}) { Info.Print(a...) }
+func Infop(a ...any) { Info.Print(a...) }
 
 // Infof print message with Info style
-func Infof(format string, a ...interface{}) { Info.Printf(format, a...) }
+func Infof(format string, a ...any) { Info.Printf(format, a...) }
 
 // Infoln print message with Info style
-func Infoln(a ...interface{}) { Info.Println(a...) }
+func Infoln(a ...any) { Info.Println(a...) }
 
 // Successp print message with success color
-func Successp(a ...interface{}) { Success.Print(a...) }
+func Successp(a ...any) { Success.Print(a...) }
 
 // Successf print message with success style
-func Successf(format string, a ...interface{}) { Success.Printf(format, a...) }
+func Successf(format string, a ...any) { Success.Printf(format, a...) }
 
 // Successln print message with success style
-func Successln(a ...interface{}) { Success.Println(a...) }
+func Successln(a ...any) { Success.Println(a...) }
 
 // Errorp print message with Error color
-func Errorp(a ...interface{}) { Error.Print(a...) }
+func Errorp(a ...any) { Error.Print(a...) }
 
 // Errorf print message with Error style
-func Errorf(format string, a ...interface{}) { Error.Printf(format, a...) }
+func Errorf(format string, a ...any) { Error.Printf(format, a...) }
 
 // Errorln print message with Error style
-func Errorln(a ...interface{}) { Error.Println(a...) }
+func Errorln(a ...any) { Error.Println(a...) }
 
 // Warnp print message with Warn color
-func Warnp(a ...interface{}) { Warn.Print(a...) }
+func Warnp(a ...any) { Warn.Print(a...) }
 
 // Warnf print message with Warn style
-func Warnf(format string, a ...interface{}) { Warn.Printf(format, a...) }
+func Warnf(format string, a ...any) { Warn.Printf(format, a...) }
 
 // Warnln print message with Warn style
-func Warnln(a ...interface{}) { Warn.Println(a...) }
+func Warnln(a ...any) { Warn.Println(a...) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/style.go 
new/vendor/github.com/gookit/color/style.go
--- old/vendor/github.com/gookit/color/style.go 2023-03-04 17:53:29.000000000 
+0100
+++ new/vendor/github.com/gookit/color/style.go 2023-04-07 21:03:48.000000000 
+0200
@@ -12,12 +12,14 @@
 // Style a 16 color style. can add: fg color, bg color, color options
 //
 // Example:
-//     color.Style{color.FgGreen}.Print("message")
+//
+//     color.Style{color.FgGreen}.Print("message")
 type Style []Color
 
 // New create a custom style
 //
 // Usage:
+//
 //     color.New(color.FgGreen).Print("message")
 //     equals to:
 //     color.Style{color.FgGreen}.Print("message")
@@ -37,43 +39,45 @@
 
 // Render render text
 // Usage:
-//  color.New(color.FgGreen).Render("text")
-//  color.New(color.FgGreen, color.BgBlack, color.OpBold).Render("text")
-func (s Style) Render(a ...interface{}) string {
+//
+//     color.New(color.FgGreen).Render("text")
+//     color.New(color.FgGreen, color.BgBlack, color.OpBold).Render("text")
+func (s Style) Render(a ...any) string {
        return RenderCode(s.String(), a...)
 }
 
 // Renderln render text line.
 // like Println, will add spaces for each argument
 // Usage:
-//  color.New(color.FgGreen).Renderln("text", "more")
-//  color.New(color.FgGreen, color.BgBlack, color.OpBold).Render("text", 
"more")
-func (s Style) Renderln(a ...interface{}) string {
+//
+//     color.New(color.FgGreen).Renderln("text", "more")
+//     color.New(color.FgGreen, color.BgBlack, color.OpBold).Render("text", 
"more")
+func (s Style) Renderln(a ...any) string {
        return RenderWithSpaces(s.String(), a...)
 }
 
 // Sprint is alias of the 'Render'
-func (s Style) Sprint(a ...interface{}) string {
+func (s Style) Sprint(a ...any) string {
        return RenderCode(s.String(), a...)
 }
 
 // Sprintf format and render message.
-func (s Style) Sprintf(format string, a ...interface{}) string {
+func (s Style) Sprintf(format string, a ...any) string {
        return RenderString(s.String(), fmt.Sprintf(format, a...))
 }
 
 // Print render and Print text
-func (s Style) Print(a ...interface{}) {
+func (s Style) Print(a ...any) {
        doPrintV2(s.String(), fmt.Sprint(a...))
 }
 
 // Printf render and print text
-func (s Style) Printf(format string, a ...interface{}) {
+func (s Style) Printf(format string, a ...any) {
        doPrintV2(s.Code(), fmt.Sprintf(format, a...))
 }
 
 // Println render and print text line
-func (s Style) Println(a ...interface{}) {
+func (s Style) Println(a ...any) {
        doPrintlnV2(s.String(), a)
 }
 
@@ -115,20 +119,20 @@
 }
 
 // Tips use name as title, only apply style for name
-func (t *Theme) Tips(format string, a ...interface{}) {
+func (t *Theme) Tips(format string, a ...any) {
        // only apply style for name
        t.Print(strings.ToUpper(t.Name) + ": ")
        Printf(format+"\n", a...)
 }
 
 // Prompt use name as title, and apply style for message
-func (t *Theme) Prompt(format string, a ...interface{}) {
+func (t *Theme) Prompt(format string, a ...any) {
        title := strings.ToUpper(t.Name) + ":"
        t.Println(title, fmt.Sprintf(format, a...))
 }
 
 // Block like Prompt, but will wrap a empty line
-func (t *Theme) Block(format string, a ...interface{}) {
+func (t *Theme) Block(format string, a ...any) {
        title := strings.ToUpper(t.Name) + ":\n"
 
        t.Println(title, fmt.Sprintf(format, a...))
@@ -140,10 +144,11 @@
 
 // internal themes(like bootstrap style)
 // Usage:
-//     color.Info.Print("message")
-//     color.Info.Printf("a %s message", "test")
-//     color.Warn.Println("message")
-//     color.Error.Println("message")
+//
+//     color.Info.Print("message")
+//     color.Info.Printf("a %s message", "test")
+//     color.Warn.Println("message")
+//     color.Error.Println("message")
 var (
        // Info color style
        Info = &Theme{"info", Style{OpReset, FgGreen}}
@@ -175,7 +180,8 @@
 
 // Themes internal defined themes.
 // Usage:
-//     color.Themes["info"].Println("message")
+//
+//     color.Themes["info"].Println("message")
 var Themes = map[string]*Theme{
        "info":  Info,
        "note":  Note,
@@ -211,7 +217,8 @@
 
 // Styles internal defined styles, like bootstrap styles.
 // Usage:
-//     color.Styles["info"].Println("message")
+//
+//     color.Styles["info"].Println("message")
 var Styles = map[string]Style{
        "info":  {OpReset, FgGreen},
        "note":  {OpBold, FgLightCyan},
@@ -285,31 +292,31 @@
 }
 
 // Infof message print
-func (s *Scheme) Infof(format string, a ...interface{}) {
+func (s *Scheme) Infof(format string, a ...any) {
        s.Styles["info"].Printf(format, a...)
 }
 
 // Infoln message print
-func (s *Scheme) Infoln(v ...interface{}) {
+func (s *Scheme) Infoln(v ...any) {
        s.Styles["info"].Println(v...)
 }
 
 // Warnf message print
-func (s *Scheme) Warnf(format string, a ...interface{}) {
+func (s *Scheme) Warnf(format string, a ...any) {
        s.Styles["warn"].Printf(format, a...)
 }
 
 // Warnln message print
-func (s *Scheme) Warnln(v ...interface{}) {
+func (s *Scheme) Warnln(v ...any) {
        s.Styles["warn"].Println(v...)
 }
 
 // Errorf message print
-func (s *Scheme) Errorf(format string, a ...interface{}) {
+func (s *Scheme) Errorf(format string, a ...any) {
        s.Styles["error"].Printf(format, a...)
 }
 
 // Errorln message print
-func (s *Scheme) Errorln(v ...interface{}) {
+func (s *Scheme) Errorln(v ...any) {
        s.Styles["error"].Println(v...)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/gookit/color/utils.go 
new/vendor/github.com/gookit/color/utils.go
--- old/vendor/github.com/gookit/color/utils.go 2023-03-04 17:53:29.000000000 
+0100
+++ new/vendor/github.com/gookit/color/utils.go 2023-04-07 21:03:48.000000000 
+0200
@@ -32,39 +32,31 @@
  *************************************************************/
 
 // Print render color tag and print messages
-func Print(a ...interface{}) {
+func Print(a ...any) {
        Fprint(output, a...)
 }
 
 // Printf format and print messages
-func Printf(format string, a ...interface{}) {
+func Printf(format string, a ...any) {
        Fprintf(output, format, a...)
 }
 
 // Println messages with new line
-func Println(a ...interface{}) {
+func Println(a ...any) {
        Fprintln(output, a...)
 }
 
 // Fprint print rendered messages to writer
 //
 // Notice: will ignore print error
-func Fprint(w io.Writer, a ...interface{}) {
+func Fprint(w io.Writer, a ...any) {
        _, err := fmt.Fprint(w, Render(a...))
        saveInternalError(err)
-
-       // if isLikeInCmd {
-       //      renderColorCodeOnCmd(func() {
-       //              _, _ = fmt.Fprint(w, Render(a...))
-       //      })
-       // } else {
-       //      _, _ = fmt.Fprint(w, Render(a...))
-       // }
 }
 
 // Fprintf print format and rendered messages to writer.
 // Notice: will ignore print error
-func Fprintf(w io.Writer, format string, a ...interface{}) {
+func Fprintf(w io.Writer, format string, a ...any) {
        str := fmt.Sprintf(format, a...)
        _, err := fmt.Fprint(w, ReplaceTag(str))
        saveInternalError(err)
@@ -72,7 +64,7 @@
 
 // Fprintln print rendered messages line to writer
 // Notice: will ignore print error
-func Fprintln(w io.Writer, a ...interface{}) {
+func Fprintln(w io.Writer, a ...any) {
        str := formatArgsForPrintln(a)
        _, err := fmt.Fprintln(w, ReplaceTag(str))
        saveInternalError(err)
@@ -80,7 +72,7 @@
 
 // Lprint passes colored messages to a log.Logger for printing.
 // Notice: should be goroutine safe
-func Lprint(l *log.Logger, a ...interface{}) {
+func Lprint(l *log.Logger, a ...any) {
        l.Print(Render(a...))
 }
 
@@ -90,7 +82,7 @@
 //
 //     text := Render("<info>hello</> <cyan>world</>!")
 //     fmt.Println(text)
-func Render(a ...interface{}) string {
+func Render(a ...any) string {
        if len(a) == 0 {
                return ""
        }
@@ -98,28 +90,23 @@
 }
 
 // Sprint parse color tags, return rendered string
-func Sprint(a ...interface{}) string {
+func Sprint(a ...any) string {
        if len(a) == 0 {
                return ""
        }
-
        return ReplaceTag(fmt.Sprint(a...))
 }
 
 // Sprintf format and return rendered string
-func Sprintf(format string, a ...interface{}) string {
+func Sprintf(format string, a ...any) string {
        return ReplaceTag(fmt.Sprintf(format, a...))
 }
 
 // String alias of the ReplaceTag
-func String(s string) string {
-       return ReplaceTag(s)
-}
+func String(s string) string { return ReplaceTag(s) }
 
 // Text alias of the ReplaceTag
-func Text(s string) string {
-       return ReplaceTag(s)
-}
+func Text(s string) string { return ReplaceTag(s) }
 
 // Uint8sToInts convert []uint8 to []int
 // func Uint8sToInts(u8s []uint8 ) []int {
@@ -138,25 +125,17 @@
 func doPrintV2(code, str string) {
        _, err := fmt.Fprint(output, RenderString(code, str))
        saveInternalError(err)
-
-       // if isLikeInCmd {
-       //      renderColorCodeOnCmd(func() {
-       //              _, _ = fmt.Fprint(output, RenderString(code, str))
-       //      })
-       // } else {
-       //      _, _ = fmt.Fprint(output, RenderString(code, str))
-       // }
 }
 
 // new implementation, support render full color code on pwsh.exe, cmd.exe
-func doPrintlnV2(code string, args []interface{}) {
+func doPrintlnV2(code string, args []any) {
        str := formatArgsForPrintln(args)
        _, err := fmt.Fprintln(output, RenderString(code, str))
        saveInternalError(err)
 }
 
 // use Println, will add spaces for each arg
-func formatArgsForPrintln(args []interface{}) (message string) {
+func formatArgsForPrintln(args []any) (message string) {
        if ln := len(args); ln == 0 {
                message = ""
        } else if ln == 1 {
@@ -178,7 +157,7 @@
 //     return debugMode == "on"
 // }
 
-func debugf(f string, v ...interface{}) {
+func debugf(f string, v ...any) {
        if debugMode {
                fmt.Print("COLOR_DEBUG: ")
                fmt.Printf(f, v...)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/golang.org/x/crypto/openpgp/packet/compressed.go 
new/vendor/golang.org/x/crypto/openpgp/packet/compressed.go
--- old/vendor/golang.org/x/crypto/openpgp/packet/compressed.go 2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/golang.org/x/crypto/openpgp/packet/compressed.go 2023-04-07 
21:03:48.000000000 +0200
@@ -60,7 +60,7 @@
        return err
 }
 
-// compressedWriterCloser represents the serialized compression stream
+// compressedWriteCloser represents the serialized compression stream
 // header and the compressor. Its Close() method ensures that both the
 // compressor and serialized stream header are closed. Its Write()
 // method writes to the compressor.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/syscall_windows.go 
new/vendor/golang.org/x/sys/windows/syscall_windows.go
--- old/vendor/golang.org/x/sys/windows/syscall_windows.go      2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/syscall_windows.go      2023-04-07 
21:03:48.000000000 +0200
@@ -824,6 +824,9 @@
 //sys  WSAStartup(verreq uint32, data *WSAData) (sockerr error) = 
ws2_32.WSAStartup
 //sys  WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup
 //sys  WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, 
cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) 
(err error) [failretval==socket_error] = ws2_32.WSAIoctl
+//sys  WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle 
*Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW
+//sys  WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet 
*WSAQUERYSET) (err error) [failretval==socket_error] = 
ws2_32.WSALookupServiceNextW
+//sys  WSALookupServiceEnd(handle Handle) (err error) 
[failretval==socket_error] = ws2_32.WSALookupServiceEnd
 //sys  socket(af int32, typ int32, protocol int32) (handle Handle, err error) 
[failretval==InvalidHandle] = ws2_32.socket
 //sys  sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen 
int32) (err error) [failretval==socket_error] = ws2_32.sendto
 //sys  recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, 
fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom
@@ -1019,8 +1022,7 @@
                for n < len(pp.Path) && pp.Path[n] != 0 {
                        n++
                }
-               bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
-               sa.Name = string(bytes)
+               sa.Name = 
string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))
                return sa, nil
 
        case AF_INET:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/types_windows.go 
new/vendor/golang.org/x/sys/windows/types_windows.go
--- old/vendor/golang.org/x/sys/windows/types_windows.go        2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/types_windows.go        2023-04-07 
21:03:48.000000000 +0200
@@ -1243,6 +1243,51 @@
        DnsSectionAdditional = 0x0003
 )
 
+const (
+       // flags of WSALookupService
+       LUP_DEEP                = 0x0001
+       LUP_CONTAINERS          = 0x0002
+       LUP_NOCONTAINERS        = 0x0004
+       LUP_NEAREST             = 0x0008
+       LUP_RETURN_NAME         = 0x0010
+       LUP_RETURN_TYPE         = 0x0020
+       LUP_RETURN_VERSION      = 0x0040
+       LUP_RETURN_COMMENT      = 0x0080
+       LUP_RETURN_ADDR         = 0x0100
+       LUP_RETURN_BLOB         = 0x0200
+       LUP_RETURN_ALIASES      = 0x0400
+       LUP_RETURN_QUERY_STRING = 0x0800
+       LUP_RETURN_ALL          = 0x0FF0
+       LUP_RES_SERVICE         = 0x8000
+
+       LUP_FLUSHCACHE    = 0x1000
+       LUP_FLUSHPREVIOUS = 0x2000
+
+       LUP_NON_AUTHORITATIVE      = 0x4000
+       LUP_SECURE                 = 0x8000
+       LUP_RETURN_PREFERRED_NAMES = 0x10000
+       LUP_DNS_ONLY               = 0x20000
+
+       LUP_ADDRCONFIG           = 0x100000
+       LUP_DUAL_ADDR            = 0x200000
+       LUP_FILESERVER           = 0x400000
+       LUP_DISABLE_IDN_ENCODING = 0x00800000
+       LUP_API_ANSI             = 0x01000000
+
+       LUP_RESOLUTION_HANDLE = 0x80000000
+)
+
+const (
+       // values of WSAQUERYSET's namespace
+       NS_ALL       = 0
+       NS_DNS       = 12
+       NS_NLA       = 15
+       NS_BTH       = 16
+       NS_EMAIL     = 37
+       NS_PNRPNAME  = 38
+       NS_PNRPCLOUD = 39
+)
+
 type DNSSRVData struct {
        Target   *uint16
        Priority uint16
@@ -2184,10 +2229,10 @@
        JobObjectExtendedLimitInformation           = 9
        JobObjectGroupInformation                   = 11
        JobObjectGroupInformationEx                 = 14
-       JobObjectLimitViolationInformation2         = 35
+       JobObjectLimitViolationInformation2         = 34
        JobObjectNetRateControlInformation          = 32
        JobObjectNotificationLimitInformation       = 12
-       JobObjectNotificationLimitInformation2      = 34
+       JobObjectNotificationLimitInformation2      = 33
        JobObjectSecurityLimitInformation           = 5
 )
 
@@ -3258,3 +3303,43 @@
        DWMWA_TEXT_COLOR                     = 36
        DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37
 )
+
+type WSAQUERYSET struct {
+       Size                uint32
+       ServiceInstanceName *uint16
+       ServiceClassId      *GUID
+       Version             *WSAVersion
+       Comment             *uint16
+       NameSpace           uint32
+       NSProviderId        *GUID
+       Context             *uint16
+       NumberOfProtocols   uint32
+       AfpProtocols        *AFProtocols
+       QueryString         *uint16
+       NumberOfCsAddrs     uint32
+       SaBuffer            *CSAddrInfo
+       OutputFlags         uint32
+       Blob                *BLOB
+}
+
+type WSAVersion struct {
+       Version                 uint32
+       EnumerationOfComparison int32
+}
+
+type AFProtocols struct {
+       AddressFamily int32
+       Protocol      int32
+}
+
+type CSAddrInfo struct {
+       LocalAddr  SocketAddress
+       RemoteAddr SocketAddress
+       SocketType int32
+       Protocol   int32
+}
+
+type BLOB struct {
+       Size     uint32
+       BlobData *byte
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/zsyscall_windows.go 
new/vendor/golang.org/x/sys/windows/zsyscall_windows.go
--- old/vendor/golang.org/x/sys/windows/zsyscall_windows.go     2023-03-04 
17:53:29.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/zsyscall_windows.go     2023-04-07 
21:03:48.000000000 +0200
@@ -474,6 +474,9 @@
        procWSAEnumProtocolsW                                    = 
modws2_32.NewProc("WSAEnumProtocolsW")
        procWSAGetOverlappedResult                               = 
modws2_32.NewProc("WSAGetOverlappedResult")
        procWSAIoctl                                             = 
modws2_32.NewProc("WSAIoctl")
+       procWSALookupServiceBeginW                               = 
modws2_32.NewProc("WSALookupServiceBeginW")
+       procWSALookupServiceEnd                                  = 
modws2_32.NewProc("WSALookupServiceEnd")
+       procWSALookupServiceNextW                                = 
modws2_32.NewProc("WSALookupServiceNextW")
        procWSARecv                                              = 
modws2_32.NewProc("WSARecv")
        procWSARecvFrom                                          = 
modws2_32.NewProc("WSARecvFrom")
        procWSASend                                              = 
modws2_32.NewProc("WSASend")
@@ -4064,6 +4067,30 @@
        if r1 == socket_error {
                err = errnoErr(e1)
        }
+       return
+}
+
+func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle 
*Handle) (err error) {
+       r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, 
uintptr(unsafe.Pointer(querySet)), uintptr(flags), 
uintptr(unsafe.Pointer(handle)))
+       if r1 == socket_error {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+func WSALookupServiceEnd(handle Handle) (err error) {
+       r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, 
uintptr(handle), 0, 0)
+       if r1 == socket_error {
+               err = errnoErr(e1)
+       }
+       return
+}
+
+func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet 
*WSAQUERYSET) (err error) {
+       r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, 
uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), 
uintptr(unsafe.Pointer(querySet)), 0, 0)
+       if r1 == socket_error {
+               err = errnoErr(e1)
+       }
        return
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2023-03-04 17:53:29.000000000 +0100
+++ new/vendor/modules.txt      2023-04-07 21:03:48.000000000 +0200
@@ -7,8 +7,8 @@
 # github.com/google/go-querystring v1.1.0
 ## explicit; go 1.10
 github.com/google/go-querystring/query
-# github.com/gookit/color v1.5.2
-## explicit; go 1.16
+# github.com/gookit/color v1.5.3
+## explicit; go 1.18
 github.com/gookit/color
 # github.com/pmezard/go-difflib v1.0.0
 ## explicit
@@ -19,7 +19,7 @@
 # github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e
 ## explicit; go 1.19
 github.com/xo/terminfo
-# golang.org/x/crypto v0.6.0
+# golang.org/x/crypto v0.8.0
 ## explicit; go 1.17
 golang.org/x/crypto/cast5
 golang.org/x/crypto/openpgp
@@ -28,7 +28,7 @@
 golang.org/x/crypto/openpgp/errors
 golang.org/x/crypto/openpgp/packet
 golang.org/x/crypto/openpgp/s2k
-# golang.org/x/sys v0.5.0
+# golang.org/x/sys v0.7.0
 ## explicit; go 1.17
 golang.org/x/sys/internal/unsafeheader
 golang.org/x/sys/windows

Reply via email to