diff --git a/.gitignore b/.gitignore index 054160f..c3f2b13 100755 --- a/.gitignore +++ b/.gitignore @@ -40,4 +40,5 @@ hz_update.sh kitex_update.sh /config/config.yaml /codeql -analz.sarif \ No newline at end of file +analz.sarif +cache \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 9683396..817247b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,7 @@ FROM golang:1.22 AS builder LABEL authors="fanr" ENV TZ Asia/Shanghai +ENV CGO_ENABLED=0 RUN go env -w GO111MODULE=on \ && go env -w GOPROXY=https://goproxy.cn,direct \ && go env -w GOOS=linux \ @@ -12,6 +13,23 @@ WORKDIR /app ADD . /app RUN go mod tidy -#CMD ["go run","example"] RUN make build-all +FROM alpine +RUN apk update --no-cache && apk add --no-cache ca-certificates tzdata + +ENV TZ Asia/Shanghai +ENV service api +EXPOSE 10002 +WORKDIR /app +#COPY --from=builder /app/output /app/output +COPY --from=builder /app/config /app/config +#COPY --from=builder /app/pkg /app/pkg +COPY --from=builder /app/cmd /app/cmd +#COPY --from=builder /app/kitex_gen /app/kitex_gen + +#CMD ["sh","-c","./output/${service}/${service}"] +CMD ["sh","-c","sh cmd/${service}/output/bootstrap.sh"] + + + diff --git a/Makefile b/Makefile index eba5b1d..24a91f1 100644 --- a/Makefile +++ b/Makefile @@ -39,9 +39,11 @@ build-all: @for service in $(SERVICES); do \ cd ${RPC};cd $$service; \ echo "build $$service ..." && sh build.sh; \ - cd ${RPC}/$$service/output/bin/ && cp -r . ${OUTPUT}/$$service; \ +# cd ${RPC}/$$service/output/bin/ && cp -r . ${OUTPUT}/$$service; \ echo "done"; \ - done \ + done ; \ +# cd ${OUTPUT}/api; \ +# mv hertz_service api; KSERVICES := user video interaction follow chat .PHONY: kgen diff --git a/README.md b/README.md index 0d6922b..1f0d270 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ make build-all 目录树生成: ```bash -treer -e tree.txt -i "/.idea|.git|data/" +treer -e tree.txt -i "/.idea|.git|data|codeql|(.*)?elasticsearch|(.*)?kibana/" ``` ## Todo... diff --git a/cmd/api/biz/handler/api/chat_handler.go b/cmd/api/biz/handler/api/chat_handler.go index 4ba1a77..8a2eebc 100644 --- a/cmd/api/biz/handler/api/chat_handler.go +++ b/cmd/api/biz/handler/api/chat_handler.go @@ -3,7 +3,7 @@ package api import ( - "bibi/cmd/api/biz/rpc" + "bibi/cmd/api/biz/rpc_client" "bibi/cmd/api/biz/ws/monitor" "bibi/kitex_gen/chat" "bibi/pkg/errno" @@ -102,7 +102,7 @@ func MessageRecord(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id := v.(int64) - rpcResp, err := rpc.MessageRecord(ctx, &chat.MessageRecordRequest{ + rpcResp, err := rpc_client.MessageRecord(ctx, &chat.MessageRecordRequest{ TargetId: req.TargetID, FromTime: req.FromTime, ToTime: req.ToTime, diff --git a/cmd/api/biz/handler/api/follow_handler.go b/cmd/api/biz/handler/api/follow_handler.go index 94da3dd..06d566a 100644 --- a/cmd/api/biz/handler/api/follow_handler.go +++ b/cmd/api/biz/handler/api/follow_handler.go @@ -3,7 +3,7 @@ package api import ( - "bibi/cmd/api/biz/rpc" + "bibi/cmd/api/biz/rpc_client" "bibi/kitex_gen/follow" "bibi/pkg/errno" "bibi/pkg/pack" @@ -42,7 +42,7 @@ func FollowAction(ctx context.Context, c *app.RequestContext) { c.JSON(consts.StatusOK, resp) return } - rpcResp, err := rpc.FollowAction(ctx, &follow.FollowActionRequest{ + rpcResp, err := rpc_client.FollowAction(ctx, &follow.FollowActionRequest{ ObjectUid: req.ObjectUID, ActionType: req.ActionType, UserId: id, @@ -76,7 +76,7 @@ func FollowerList(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id := v.(int64) - rpcResp, err := rpc.FollowerList(ctx, &follow.FollowerListRequest{ + rpcResp, err := rpc_client.FollowerList(ctx, &follow.FollowerListRequest{ PageNum: req.PageNum, UserId: id, }) @@ -114,7 +114,7 @@ func FollowingList(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id := v.(int64) - rpcResp, err := rpc.FollowingList(ctx, &follow.FollowingListRequest{ + rpcResp, err := rpc_client.FollowingList(ctx, &follow.FollowingListRequest{ PageNum: req.PageNum, UserId: id, }) @@ -152,7 +152,7 @@ func FriendList(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id := v.(int64) - rpcResp, err := rpc.FriendList(ctx, &follow.FriendListRequest{ + rpcResp, err := rpc_client.FriendList(ctx, &follow.FriendListRequest{ PageNum: req.PageNum, UserId: id, }) diff --git a/cmd/api/biz/handler/api/interaction_handler.go b/cmd/api/biz/handler/api/interaction_handler.go index 135d053..e1becd9 100644 --- a/cmd/api/biz/handler/api/interaction_handler.go +++ b/cmd/api/biz/handler/api/interaction_handler.go @@ -4,7 +4,7 @@ package api import ( api "bibi/cmd/api/biz/model/api" - "bibi/cmd/api/biz/rpc" + "bibi/cmd/api/biz/rpc_client" "bibi/kitex_gen/interaction" "bibi/pkg/errno" "bibi/pkg/pack" @@ -37,7 +37,7 @@ func LikeAction(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id := v.(int64) - rpcResp, err := rpc.LikeAction(ctx, &interaction.LikeActionRequest{ + rpcResp, err := rpc_client.LikeAction(ctx, &interaction.LikeActionRequest{ VideoId: req.VideoID, CommentId: req.CommentID, ActionType: req.ActionType, @@ -69,7 +69,7 @@ func LikeList(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id := v.(int64) - rpcResp, err := rpc.LikedVideoList(ctx, &interaction.LikeListRequest{ + rpcResp, err := rpc_client.LikedVideoList(ctx, &interaction.LikeListRequest{ PageNum: req.PageNum, UserId: id, }) @@ -109,7 +109,7 @@ func CommentCreate(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id := v.(int64) - rpcResp, err := rpc.CommentCreate(ctx, &interaction.CommentCreateRequest{ + rpcResp, err := rpc_client.CommentCreate(ctx, &interaction.CommentCreateRequest{ VideoId: req.VideoID, ParentId: req.ParentID, Content: req.Content, @@ -142,7 +142,7 @@ func CommentDelete(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id := v.(int64) - rpcResp, err := rpc.CommentDelete(ctx, &interaction.CommentDeleteRequest{ + rpcResp, err := rpc_client.CommentDelete(ctx, &interaction.CommentDeleteRequest{ VideoId: req.VideoID, CommentId: req.CommentID, UserId: id, @@ -170,7 +170,7 @@ func CommentList(ctx context.Context, c *app.RequestContext) { resp := new(api.CommentListResponse) - rpcResp, err := rpc.CommentList(ctx, &interaction.CommentListRequest{ + rpcResp, err := rpc_client.CommentList(ctx, &interaction.CommentListRequest{ VideoId: req.VideoID, PageNum: req.PageNum, }) diff --git a/cmd/api/biz/handler/api/user_handler.go b/cmd/api/biz/handler/api/user_handler.go index 326e629..4414320 100644 --- a/cmd/api/biz/handler/api/user_handler.go +++ b/cmd/api/biz/handler/api/user_handler.go @@ -3,7 +3,7 @@ package api import ( - "bibi/cmd/api/biz/rpc" + "bibi/cmd/api/biz/rpc_client" "bibi/pkg/errno" "bibi/pkg/pack" @@ -37,7 +37,7 @@ func Register(ctx context.Context, c *app.RequestContext) { resp := new(api.RegisterResponse) - rpcResp, err := rpc.UserRegister(ctx, &user.RegisterRequest{ + rpcResp, err := rpc_client.UserRegister(ctx, &user.RegisterRequest{ Username: req.Username, Email: req.Email, Password: req.Password, @@ -103,8 +103,8 @@ func Info(ctx context.Context, c *app.RequestContext) { resp := new(api.InfoResponse) - rpcResp, err := rpc.UserInfo(ctx, &user.InfoRequest{ - req.UserID, + rpcResp, err := rpc_client.UserInfo(ctx, &user.InfoRequest{ + UserId: req.UserID, }) if err != nil { pack.SendRPCFailResp(c, err) @@ -166,7 +166,7 @@ func Avatar(ctx context.Context, c *app.RequestContext) { return } - rpcResp, err := rpc.UserAvatar(ctx, &user.AvatarRequest{ + rpcResp, err := rpc_client.UserAvatar(ctx, &user.AvatarRequest{ UserId: id, AvatarFile: fileBinary, }) @@ -211,7 +211,7 @@ func Switch2FA(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id, _ := v.(int64) - rpcResp, err := rpc.UserSwitch2FA(ctx, &user.Switch2FARequest{ + rpcResp, err := rpc_client.UserSwitch2FA(ctx, &user.Switch2FARequest{ UserId: id, ActionType: req.ActionType, Totp: req.Totp, @@ -245,3 +245,19 @@ func GetAccessToken(ctx context.Context, c *app.RequestContext) { c.JSON(consts.StatusOK, resp) } + +// SearchAvatar . +// @router /bibi/user/avatar/search [POST] +func SearchAvatar(ctx context.Context, c *app.RequestContext) { + var err error + var req api.SearchAvatarRequest + err = c.BindAndValidate(&req) + if err != nil { + c.String(consts.StatusBadRequest, err.Error()) + return + } + + resp := new(api.SearchAvatarResponse) + + c.JSON(consts.StatusOK, resp) +} diff --git a/cmd/api/biz/handler/api/video_handler.go b/cmd/api/biz/handler/api/video_handler.go index c4f8d55..6cbf01a 100644 --- a/cmd/api/biz/handler/api/video_handler.go +++ b/cmd/api/biz/handler/api/video_handler.go @@ -3,7 +3,7 @@ package api import ( - "bibi/cmd/api/biz/rpc" + "bibi/cmd/api/biz/rpc_client" "bibi/kitex_gen/video" "bibi/pkg/errno" "bibi/pkg/pack" @@ -84,7 +84,7 @@ func PutVideo(ctx context.Context, c *app.RequestContext) { return } - rpcResp, err := rpc.VideoUpload(ctx, &video.PutVideoRequest{ + rpcResp, err := rpc_client.VideoUpload(ctx, &video.PutVideoRequest{ UserId: id, VideoFile: videoByte, Title: req.Title, @@ -119,7 +119,7 @@ func ListVideo(ctx context.Context, c *app.RequestContext) { v, _ := c.Get("current_user_id") id := v.(int64) - rpcResp, err := rpc.UserVideoList(ctx, &video.ListUserVideoRequest{ + rpcResp, err := rpc_client.UserVideoList(ctx, &video.ListUserVideoRequest{ UserId: id, PageNum: req.PageNum, }) @@ -156,7 +156,7 @@ func SearchVideo(ctx context.Context, c *app.RequestContext) { resp := new(api.SearchVideoResponse) - rpcResp, err := rpc.VideoSearch(ctx, &video.SearchVideoRequest{ + rpcResp, err := rpc_client.VideoSearch(ctx, &video.SearchVideoRequest{ PageNum: req.PageNum, Param: req.Param, }) diff --git a/cmd/api/biz/model/api/api.go b/cmd/api/biz/model/api/api.go index 84d5326..e5ca906 100644 --- a/cmd/api/biz/model/api/api.go +++ b/cmd/api/biz/model/api/api.go @@ -1,4 +1,4 @@ -// Code generated by thriftgo (0.3.6). DO NOT EDIT. +// Code generated by thriftgo (0.3.13). DO NOT EDIT. package api @@ -17,6 +17,9 @@ func NewBaseResp() *BaseResp { return &BaseResp{} } +func (p *BaseResp) InitDefault() { +} + func (p *BaseResp) GetCode() (v int64) { return p.Code } @@ -96,20 +99,24 @@ ReadStructEndError: func (p *BaseResp) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.Code = v + _field = v } + p.Code = _field return nil } func (p *BaseResp) ReadField2(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Msg = v + _field = v } + p.Msg = _field return nil } @@ -203,6 +210,9 @@ func NewUser() *User { return &User{} } +func (p *User) InitDefault() { +} + func (p *User) GetID() (v int64) { return p.ID } @@ -360,74 +370,90 @@ ReadStructEndError: func (p *User) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ID = v + _field = v } + p.ID = _field return nil } func (p *User) ReadField2(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Name = v + _field = v } + p.Name = _field return nil } func (p *User) ReadField3(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Email = v + _field = v } + p.Email = _field return nil } func (p *User) ReadField4(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.FollowCount = v + _field = v } + p.FollowCount = _field return nil } func (p *User) ReadField5(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.FollowerCount = v + _field = v } + p.FollowerCount = _field return nil } func (p *User) ReadField6(iprot thrift.TProtocol) error { + var _field bool if v, err := iprot.ReadBool(); err != nil { return err } else { - p.IsFollow = v + _field = v } + p.IsFollow = _field return nil } func (p *User) ReadField7(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Avatar = v + _field = v } + p.Avatar = _field return nil } func (p *User) ReadField8(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.VideoCount = v + _field = v } + p.VideoCount = _field return nil } @@ -641,6 +667,9 @@ func NewRegisterRequest() *RegisterRequest { return &RegisterRequest{} } +func (p *RegisterRequest) InitDefault() { +} + func (p *RegisterRequest) GetUsername() (v string) { return p.Username } @@ -755,29 +784,35 @@ RequiredFieldNotSetError: func (p *RegisterRequest) ReadField1(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Username = v + _field = v } + p.Username = _field return nil } func (p *RegisterRequest) ReadField2(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Email = v + _field = v } + p.Email = _field return nil } func (p *RegisterRequest) ReadField3(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Password = v + _field = v } + p.Password = _field return nil } @@ -885,6 +920,9 @@ func NewRegisterResponse() *RegisterResponse { return &RegisterResponse{} } +func (p *RegisterResponse) InitDefault() { +} + var RegisterResponse_Base_DEFAULT *BaseResp func (p *RegisterResponse) GetBase() (v *BaseResp) { @@ -981,19 +1019,22 @@ ReadStructEndError: } func (p *RegisterResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *RegisterResponse) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.UserID = &v + _field = &v } + p.UserID = _field return nil } @@ -1089,6 +1130,9 @@ func NewSwitch2FARequest() *Switch2FARequest { return &Switch2FARequest{} } +func (p *Switch2FARequest) InitDefault() { +} + func (p *Switch2FARequest) GetActionType() (v int64) { return p.ActionType } @@ -1185,20 +1229,24 @@ RequiredFieldNotSetError: func (p *Switch2FARequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ActionType = v + _field = v } + p.ActionType = _field return nil } func (p *Switch2FARequest) ReadField2(iprot thrift.TProtocol) error { + var _field *string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Totp = &v + _field = &v } + p.Totp = _field return nil } @@ -1286,6 +1334,9 @@ func NewSwitch2FAResponse() *Switch2FAResponse { return &Switch2FAResponse{} } +func (p *Switch2FAResponse) InitDefault() { +} + var Switch2FAResponse_Base_DEFAULT *BaseResp func (p *Switch2FAResponse) GetBase() (v *BaseResp) { @@ -1360,10 +1411,11 @@ ReadStructEndError: } func (p *Switch2FAResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } @@ -1430,6 +1482,9 @@ func NewLoginRequest() *LoginRequest { return &LoginRequest{} } +func (p *LoginRequest) InitDefault() { +} + func (p *LoginRequest) GetUsername() (v string) { return p.Username } @@ -1546,29 +1601,35 @@ RequiredFieldNotSetError: func (p *LoginRequest) ReadField1(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Username = v + _field = v } + p.Username = _field return nil } func (p *LoginRequest) ReadField2(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Password = v + _field = v } + p.Password = _field return nil } func (p *LoginRequest) ReadField3(iprot thrift.TProtocol) error { + var _field *string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Otp = &v + _field = &v } + p.Otp = _field return nil } @@ -1680,6 +1741,9 @@ func NewLoginResponse() *LoginResponse { return &LoginResponse{} } +func (p *LoginResponse) InitDefault() { +} + var LoginResponse_Base_DEFAULT *BaseResp func (p *LoginResponse) GetBase() (v *BaseResp) { @@ -1820,35 +1884,41 @@ ReadStructEndError: } func (p *LoginResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *LoginResponse) ReadField2(iprot thrift.TProtocol) error { - p.User = NewUser() - if err := p.User.Read(iprot); err != nil { + _field := NewUser() + if err := _field.Read(iprot); err != nil { return err } + p.User = _field return nil } func (p *LoginResponse) ReadField3(iprot thrift.TProtocol) error { + var _field *string if v, err := iprot.ReadString(); err != nil { return err } else { - p.AccessToken = &v + _field = &v } + p.AccessToken = _field return nil } func (p *LoginResponse) ReadField4(iprot thrift.TProtocol) error { + var _field *string if v, err := iprot.ReadString(); err != nil { return err } else { - p.RefreshToken = &v + _field = &v } + p.RefreshToken = _field return nil } @@ -1982,6 +2052,9 @@ func NewInfoRequest() *InfoRequest { return &InfoRequest{} } +func (p *InfoRequest) InitDefault() { +} + func (p *InfoRequest) GetUserID() (v int64) { return p.UserID } @@ -2056,11 +2129,13 @@ RequiredFieldNotSetError: func (p *InfoRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.UserID = v + _field = v } + p.UserID = _field return nil } @@ -2124,6 +2199,9 @@ func NewGetAccessTokenRequest() *GetAccessTokenRequest { return &GetAccessTokenRequest{} } +func (p *GetAccessTokenRequest) InitDefault() { +} + var fieldIDToName_GetAccessTokenRequest = map[int16]string{} func (p *GetAccessTokenRequest) Read(iprot thrift.TProtocol) (err error) { @@ -2206,6 +2284,9 @@ func NewGetAccessTokenResponse() *GetAccessTokenResponse { return &GetAccessTokenResponse{} } +func (p *GetAccessTokenResponse) InitDefault() { +} + var GetAccessTokenResponse_Base_DEFAULT *BaseResp func (p *GetAccessTokenResponse) GetBase() (v *BaseResp) { @@ -2302,19 +2383,22 @@ ReadStructEndError: } func (p *GetAccessTokenResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *GetAccessTokenResponse) ReadField2(iprot thrift.TProtocol) error { + var _field *string if v, err := iprot.ReadString(); err != nil { return err } else { - p.AccessToken = &v + _field = &v } + p.AccessToken = _field return nil } @@ -2403,6 +2487,9 @@ func NewInfoResponse() *InfoResponse { return &InfoResponse{} } +func (p *InfoResponse) InitDefault() { +} + var InfoResponse_Base_DEFAULT *BaseResp func (p *InfoResponse) GetBase() (v *BaseResp) { @@ -2499,17 +2586,19 @@ ReadStructEndError: } func (p *InfoResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *InfoResponse) ReadField2(iprot thrift.TProtocol) error { - p.User = NewUser() - if err := p.User.Read(iprot); err != nil { + _field := NewUser() + if err := _field.Read(iprot); err != nil { return err } + p.User = _field return nil } @@ -2590,13 +2679,16 @@ func (p *InfoResponse) String() string { } type AvatarRequest struct { - AvatarFile []byte `thrift:"avatar_file,1,required" form:"avatar_file,required" json:"avatar_file,required" query:"avatar_file,required"` + AvatarFile []byte `thrift:"avatar_file,1" form:"avatar_file" json:"avatar_file" query:"avatar_file"` } func NewAvatarRequest() *AvatarRequest { return &AvatarRequest{} } +func (p *AvatarRequest) InitDefault() { +} + func (p *AvatarRequest) GetAvatarFile() (v []byte) { return p.AvatarFile } @@ -2609,7 +2701,6 @@ func (p *AvatarRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetAvatarFile bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -2630,7 +2721,6 @@ func (p *AvatarRequest) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetAvatarFile = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -2647,10 +2737,6 @@ func (p *AvatarRequest) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetAvatarFile { - fieldId = 1 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) @@ -2665,17 +2751,17 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) -RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_AvatarRequest[fieldId])) } func (p *AvatarRequest) ReadField1(iprot thrift.TProtocol) error { + var _field []byte if v, err := iprot.ReadBinary(); err != nil { return err } else { - p.AvatarFile = []byte(v) + _field = []byte(v) } + p.AvatarFile = _field return nil } @@ -2741,6 +2827,9 @@ func NewAvatarResponse() *AvatarResponse { return &AvatarResponse{} } +func (p *AvatarResponse) InitDefault() { +} + var AvatarResponse_Base_DEFAULT *BaseResp func (p *AvatarResponse) GetBase() (v *BaseResp) { @@ -2837,17 +2926,19 @@ ReadStructEndError: } func (p *AvatarResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *AvatarResponse) ReadField2(iprot thrift.TProtocol) error { - p.User = NewUser() - if err := p.User.Read(iprot); err != nil { + _field := NewUser() + if err := _field.Read(iprot); err != nil { return err } + p.User = _field return nil } @@ -2927,90 +3018,45 @@ func (p *AvatarResponse) String() string { } -// video -type Video struct { - ID int64 `thrift:"id,1" form:"id" json:"id" query:"id"` - Title string `thrift:"title,2" form:"title" json:"title" query:"title"` - Author *User `thrift:"author,3" form:"author" json:"author" query:"author"` - UID int64 `thrift:"uid,4" form:"uid" json:"uid" query:"uid"` - PlayURL string `thrift:"play_url,5" form:"play_url" json:"play_url" query:"play_url"` - CoverURL string `thrift:"cover_url,6" form:"cover_url" json:"cover_url" query:"cover_url"` - LikeCount int64 `thrift:"like_count,7" form:"like_count" json:"like_count" query:"like_count"` - CommentCount int64 `thrift:"comment_count,8" form:"comment_count" json:"comment_count" query:"comment_count"` - IsLike bool `thrift:"is_like,9" form:"is_like" json:"is_like" query:"is_like"` - PublishTime string `thrift:"publish_time,10" form:"publish_time" json:"publish_time" query:"publish_time"` -} - -func NewVideo() *Video { - return &Video{} -} - -func (p *Video) GetID() (v int64) { - return p.ID -} - -func (p *Video) GetTitle() (v string) { - return p.Title -} - -var Video_Author_DEFAULT *User - -func (p *Video) GetAuthor() (v *User) { - if !p.IsSetAuthor() { - return Video_Author_DEFAULT - } - return p.Author -} - -func (p *Video) GetUID() (v int64) { - return p.UID -} - -func (p *Video) GetPlayURL() (v string) { - return p.PlayURL -} - -func (p *Video) GetCoverURL() (v string) { - return p.CoverURL +type SearchAvatarRequest struct { + // 向量维数 + Dim int64 `thrift:"dim,1,required" form:"dim,required" json:"dim,required" query:"dim,required"` + Vector []float64 `thrift:"vector,2,required" form:"vector,required" json:"vector,required" query:"vector,required"` + PageNum int64 `thrift:"page_num,3,required" form:"page_num,required" json:"page_num,required" query:"page_num,required"` } -func (p *Video) GetLikeCount() (v int64) { - return p.LikeCount +func NewSearchAvatarRequest() *SearchAvatarRequest { + return &SearchAvatarRequest{} } -func (p *Video) GetCommentCount() (v int64) { - return p.CommentCount +func (p *SearchAvatarRequest) InitDefault() { } -func (p *Video) GetIsLike() (v bool) { - return p.IsLike +func (p *SearchAvatarRequest) GetDim() (v int64) { + return p.Dim } -func (p *Video) GetPublishTime() (v string) { - return p.PublishTime +func (p *SearchAvatarRequest) GetVector() (v []float64) { + return p.Vector } -var fieldIDToName_Video = map[int16]string{ - 1: "id", - 2: "title", - 3: "author", - 4: "uid", - 5: "play_url", - 6: "cover_url", - 7: "like_count", - 8: "comment_count", - 9: "is_like", - 10: "publish_time", +func (p *SearchAvatarRequest) GetPageNum() (v int64) { + return p.PageNum } -func (p *Video) IsSetAuthor() bool { - return p.Author != nil +var fieldIDToName_SearchAvatarRequest = map[int16]string{ + 1: "dim", + 2: "vector", + 3: "page_num", } -func (p *Video) Read(iprot thrift.TProtocol) (err error) { +func (p *SearchAvatarRequest) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 + var issetDim bool = false + var issetVector bool = false + var issetPageNum bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -3031,78 +3077,25 @@ func (p *Video) Read(iprot thrift.TProtocol) (err error) { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } + issetDim = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.LIST { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } + issetVector = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 3: - if fieldTypeId == thrift.STRUCT { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 4: - if fieldTypeId == thrift.I64 { - if err = p.ReadField4(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 5: - if fieldTypeId == thrift.STRING { - if err = p.ReadField5(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 6: - if fieldTypeId == thrift.STRING { - if err = p.ReadField6(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 7: - if fieldTypeId == thrift.I64 { - if err = p.ReadField7(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 8: if fieldTypeId == thrift.I64 { - if err = p.ReadField8(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 9: - if fieldTypeId == thrift.BOOL { - if err = p.ReadField9(iprot); err != nil { - goto ReadFieldError - } - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 10: - if fieldTypeId == thrift.STRING { - if err = p.ReadField10(iprot); err != nil { + if err = p.ReadField3(iprot); err != nil { goto ReadFieldError } + issetPageNum = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -3119,13 +3112,27 @@ func (p *Video) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } + if !issetDim { + fieldId = 1 + goto RequiredFieldNotSetError + } + + if !issetVector { + fieldId = 2 + goto RequiredFieldNotSetError + } + + if !issetPageNum { + fieldId = 3 + goto RequiredFieldNotSetError + } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Video[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchAvatarRequest[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -3133,100 +3140,59 @@ ReadFieldEndError: return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SearchAvatarRequest[fieldId])) } -func (p *Video) ReadField1(iprot thrift.TProtocol) error { +func (p *SearchAvatarRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ID = v - } - return nil -} -func (p *Video) ReadField2(iprot thrift.TProtocol) error { - - if v, err := iprot.ReadString(); err != nil { - return err - } else { - p.Title = v - } - return nil -} -func (p *Video) ReadField3(iprot thrift.TProtocol) error { - p.Author = NewUser() - if err := p.Author.Read(iprot); err != nil { - return err + _field = v } + p.Dim = _field return nil } -func (p *Video) ReadField4(iprot thrift.TProtocol) error { - - if v, err := iprot.ReadI64(); err != nil { +func (p *SearchAvatarRequest) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { return err - } else { - p.UID = v } - return nil -} -func (p *Video) ReadField5(iprot thrift.TProtocol) error { + _field := make([]float64, 0, size) + for i := 0; i < size; i++ { - if v, err := iprot.ReadString(); err != nil { - return err - } else { - p.PlayURL = v - } - return nil -} -func (p *Video) ReadField6(iprot thrift.TProtocol) error { + var _elem float64 + if v, err := iprot.ReadDouble(); err != nil { + return err + } else { + _elem = v + } - if v, err := iprot.ReadString(); err != nil { - return err - } else { - p.CoverURL = v + _field = append(_field, _elem) } - return nil -} -func (p *Video) ReadField7(iprot thrift.TProtocol) error { - - if v, err := iprot.ReadI64(); err != nil { + if err := iprot.ReadListEnd(); err != nil { return err - } else { - p.LikeCount = v } + p.Vector = _field return nil } -func (p *Video) ReadField8(iprot thrift.TProtocol) error { +func (p *SearchAvatarRequest) ReadField3(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.CommentCount = v - } - return nil -} -func (p *Video) ReadField9(iprot thrift.TProtocol) error { - - if v, err := iprot.ReadBool(); err != nil { - return err - } else { - p.IsLike = v - } - return nil -} -func (p *Video) ReadField10(iprot thrift.TProtocol) error { - - if v, err := iprot.ReadString(); err != nil { - return err - } else { - p.PublishTime = v + _field = v } + p.PageNum = _field return nil } -func (p *Video) Write(oprot thrift.TProtocol) (err error) { +func (p *SearchAvatarRequest) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Video"); err != nil { + if err = oprot.WriteStructBegin("SearchAvatarRequest"); err != nil { goto WriteStructBeginError } if p != nil { @@ -3242,34 +3208,6 @@ func (p *Video) Write(oprot thrift.TProtocol) (err error) { fieldId = 3 goto WriteFieldError } - if err = p.writeField4(oprot); err != nil { - fieldId = 4 - goto WriteFieldError - } - if err = p.writeField5(oprot); err != nil { - fieldId = 5 - goto WriteFieldError - } - if err = p.writeField6(oprot); err != nil { - fieldId = 6 - goto WriteFieldError - } - if err = p.writeField7(oprot); err != nil { - fieldId = 7 - goto WriteFieldError - } - if err = p.writeField8(oprot); err != nil { - fieldId = 8 - goto WriteFieldError - } - if err = p.writeField9(oprot); err != nil { - fieldId = 9 - goto WriteFieldError - } - if err = p.writeField10(oprot); err != nil { - fieldId = 10 - goto WriteFieldError - } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -3288,11 +3226,11 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *Video) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { +func (p *SearchAvatarRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("dim", thrift.I64, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteI64(p.ID); err != nil { + if err := oprot.WriteI64(p.Dim); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3305,11 +3243,19 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *Video) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("title", thrift.STRING, 2); err != nil { +func (p *SearchAvatarRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("vector", thrift.LIST, 2); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteString(p.Title); err != nil { + if err := oprot.WriteListBegin(thrift.DOUBLE, len(p.Vector)); err != nil { + return err + } + for _, v := range p.Vector { + if err := oprot.WriteDouble(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3322,11 +3268,11 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *Video) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("author", thrift.STRUCT, 3); err != nil { +func (p *SearchAvatarRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("page_num", thrift.I64, 3); err != nil { goto WriteFieldBeginError } - if err := p.Author.Write(oprot); err != nil { + if err := oprot.WriteI64(p.PageNum); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3339,168 +3285,62 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) } -func (p *Video) writeField4(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("uid", thrift.I64, 4); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.UID); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) -} - -func (p *Video) writeField5(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("play_url", thrift.STRING, 5); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.PlayURL); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *SearchAvatarRequest) String() string { + if p == nil { + return "" } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) -} + return fmt.Sprintf("SearchAvatarRequest(%+v)", *p) -func (p *Video) writeField6(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("cover_url", thrift.STRING, 6); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.CoverURL); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) } -func (p *Video) writeField7(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("like_count", thrift.I64, 7); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.LikeCount); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +type SearchAvatarResponse struct { + Base *BaseResp `thrift:"base,1,required" form:"base,required" json:"base,required" query:"base,required"` + Avatar []string `thrift:"avatar,2,optional" form:"avatar" json:"avatar,omitempty" query:"avatar"` } -func (p *Video) writeField8(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("comment_count", thrift.I64, 8); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteI64(p.CommentCount); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +func NewSearchAvatarResponse() *SearchAvatarResponse { + return &SearchAvatarResponse{} } -func (p *Video) writeField9(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("is_like", thrift.BOOL, 9); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteBool(p.IsLike); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +func (p *SearchAvatarResponse) InitDefault() { } -func (p *Video) writeField10(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("publish_time", thrift.STRING, 10); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.PublishTime); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError - } - return nil -WriteFieldBeginError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) -WriteFieldEndError: - return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) -} +var SearchAvatarResponse_Base_DEFAULT *BaseResp -func (p *Video) String() string { - if p == nil { - return "" +func (p *SearchAvatarResponse) GetBase() (v *BaseResp) { + if !p.IsSetBase() { + return SearchAvatarResponse_Base_DEFAULT } - return fmt.Sprintf("Video(%+v)", *p) - -} - -type PutVideoRequest struct { - VideoFile []byte `thrift:"video_file,1,required" form:"video_file,required" json:"video_file,required" query:"video_file,required"` - Title string `thrift:"title,2,required" form:"title,required" json:"title,required" query:"title,required"` - Cover []byte `thrift:"cover,3,required" form:"cover,required" json:"cover,required" query:"cover,required"` + return p.Base } -func NewPutVideoRequest() *PutVideoRequest { - return &PutVideoRequest{} -} +var SearchAvatarResponse_Avatar_DEFAULT []string -func (p *PutVideoRequest) GetVideoFile() (v []byte) { - return p.VideoFile +func (p *SearchAvatarResponse) GetAvatar() (v []string) { + if !p.IsSetAvatar() { + return SearchAvatarResponse_Avatar_DEFAULT + } + return p.Avatar } -func (p *PutVideoRequest) GetTitle() (v string) { - return p.Title +var fieldIDToName_SearchAvatarResponse = map[int16]string{ + 1: "base", + 2: "avatar", } -func (p *PutVideoRequest) GetCover() (v []byte) { - return p.Cover +func (p *SearchAvatarResponse) IsSetBase() bool { + return p.Base != nil } -var fieldIDToName_PutVideoRequest = map[int16]string{ - 1: "video_file", - 2: "title", - 3: "cover", +func (p *SearchAvatarResponse) IsSetAvatar() bool { + return p.Avatar != nil } -func (p *PutVideoRequest) Read(iprot thrift.TProtocol) (err error) { +func (p *SearchAvatarResponse) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 - var issetVideoFile bool = false - var issetTitle bool = false - var issetCover bool = false + var issetBase bool = false if _, err = iprot.ReadStructBegin(); err != nil { goto ReadStructBeginError @@ -3517,29 +3357,19 @@ func (p *PutVideoRequest) Read(iprot thrift.TProtocol) (err error) { switch fieldId { case 1: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.STRUCT { if err = p.ReadField1(iprot); err != nil { goto ReadFieldError } - issetVideoFile = true + issetBase = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } case 2: - if fieldTypeId == thrift.STRING { + if fieldTypeId == thrift.LIST { if err = p.ReadField2(iprot); err != nil { goto ReadFieldError } - issetTitle = true - } else if err = iprot.Skip(fieldTypeId); err != nil { - goto SkipFieldError - } - case 3: - if fieldTypeId == thrift.STRING { - if err = p.ReadField3(iprot); err != nil { - goto ReadFieldError - } - issetCover = true } else if err = iprot.Skip(fieldTypeId); err != nil { goto SkipFieldError } @@ -3556,27 +3386,17 @@ func (p *PutVideoRequest) Read(iprot thrift.TProtocol) (err error) { goto ReadStructEndError } - if !issetVideoFile { + if !issetBase { fieldId = 1 goto RequiredFieldNotSetError } - - if !issetTitle { - fieldId = 2 - goto RequiredFieldNotSetError - } - - if !issetCover { - fieldId = 3 - goto RequiredFieldNotSetError - } return nil ReadStructBeginError: return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PutVideoRequest[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_SearchAvatarResponse[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -3585,40 +3405,44 @@ ReadFieldEndError: ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) RequiredFieldNotSetError: - return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_PutVideoRequest[fieldId])) + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_SearchAvatarResponse[fieldId])) } -func (p *PutVideoRequest) ReadField1(iprot thrift.TProtocol) error { - - if v, err := iprot.ReadBinary(); err != nil { +func (p *SearchAvatarResponse) ReadField1(iprot thrift.TProtocol) error { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err - } else { - p.VideoFile = []byte(v) } + p.Base = _field return nil } -func (p *PutVideoRequest) ReadField2(iprot thrift.TProtocol) error { - - if v, err := iprot.ReadString(); err != nil { +func (p *SearchAvatarResponse) ReadField2(iprot thrift.TProtocol) error { + _, size, err := iprot.ReadListBegin() + if err != nil { return err - } else { - p.Title = v } - return nil -} -func (p *PutVideoRequest) ReadField3(iprot thrift.TProtocol) error { + _field := make([]string, 0, size) + for i := 0; i < size; i++ { - if v, err := iprot.ReadBinary(); err != nil { + var _elem string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _elem = v + } + + _field = append(_field, _elem) + } + if err := iprot.ReadListEnd(); err != nil { return err - } else { - p.Cover = []byte(v) } + p.Avatar = _field return nil } -func (p *PutVideoRequest) Write(oprot thrift.TProtocol) (err error) { +func (p *SearchAvatarResponse) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("PutVideoRequest"); err != nil { + if err = oprot.WriteStructBegin("SearchAvatarResponse"); err != nil { goto WriteStructBeginError } if p != nil { @@ -3630,10 +3454,6 @@ func (p *PutVideoRequest) Write(oprot thrift.TProtocol) (err error) { fieldId = 2 goto WriteFieldError } - if err = p.writeField3(oprot); err != nil { - fieldId = 3 - goto WriteFieldError - } } if err = oprot.WriteFieldStop(); err != nil { goto WriteFieldStopError @@ -3652,11 +3472,11 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *PutVideoRequest) writeField1(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("video_file", thrift.STRING, 1); err != nil { +func (p *SearchAvatarResponse) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("base", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } - if err := oprot.WriteBinary([]byte(p.VideoFile)); err != nil { + if err := p.Base.Write(oprot); err != nil { return err } if err = oprot.WriteFieldEnd(); err != nil { @@ -3669,15 +3489,25 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *PutVideoRequest) writeField2(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("title", thrift.STRING, 2); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteString(p.Title); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *SearchAvatarResponse) writeField2(oprot thrift.TProtocol) (err error) { + if p.IsSetAvatar() { + if err = oprot.WriteFieldBegin("avatar", thrift.LIST, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteListBegin(thrift.STRING, len(p.Avatar)); err != nil { + return err + } + for _, v := range p.Avatar { + if err := oprot.WriteString(v); err != nil { + return err + } + } + if err := oprot.WriteListEnd(); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } return nil WriteFieldBeginError: @@ -3686,17 +3516,801 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) } -func (p *PutVideoRequest) writeField3(oprot thrift.TProtocol) (err error) { - if err = oprot.WriteFieldBegin("cover", thrift.STRING, 3); err != nil { - goto WriteFieldBeginError - } - if err := oprot.WriteBinary([]byte(p.Cover)); err != nil { - return err - } - if err = oprot.WriteFieldEnd(); err != nil { - goto WriteFieldEndError +func (p *SearchAvatarResponse) String() string { + if p == nil { + return "" } - return nil + return fmt.Sprintf("SearchAvatarResponse(%+v)", *p) + +} + +// video +type Video struct { + ID int64 `thrift:"id,1" form:"id" json:"id" query:"id"` + Title string `thrift:"title,2" form:"title" json:"title" query:"title"` + Author *User `thrift:"author,3" form:"author" json:"author" query:"author"` + UID int64 `thrift:"uid,4" form:"uid" json:"uid" query:"uid"` + PlayURL string `thrift:"play_url,5" form:"play_url" json:"play_url" query:"play_url"` + CoverURL string `thrift:"cover_url,6" form:"cover_url" json:"cover_url" query:"cover_url"` + LikeCount int64 `thrift:"like_count,7" form:"like_count" json:"like_count" query:"like_count"` + CommentCount int64 `thrift:"comment_count,8" form:"comment_count" json:"comment_count" query:"comment_count"` + IsLike bool `thrift:"is_like,9" form:"is_like" json:"is_like" query:"is_like"` + PublishTime string `thrift:"publish_time,10" form:"publish_time" json:"publish_time" query:"publish_time"` +} + +func NewVideo() *Video { + return &Video{} +} + +func (p *Video) InitDefault() { +} + +func (p *Video) GetID() (v int64) { + return p.ID +} + +func (p *Video) GetTitle() (v string) { + return p.Title +} + +var Video_Author_DEFAULT *User + +func (p *Video) GetAuthor() (v *User) { + if !p.IsSetAuthor() { + return Video_Author_DEFAULT + } + return p.Author +} + +func (p *Video) GetUID() (v int64) { + return p.UID +} + +func (p *Video) GetPlayURL() (v string) { + return p.PlayURL +} + +func (p *Video) GetCoverURL() (v string) { + return p.CoverURL +} + +func (p *Video) GetLikeCount() (v int64) { + return p.LikeCount +} + +func (p *Video) GetCommentCount() (v int64) { + return p.CommentCount +} + +func (p *Video) GetIsLike() (v bool) { + return p.IsLike +} + +func (p *Video) GetPublishTime() (v string) { + return p.PublishTime +} + +var fieldIDToName_Video = map[int16]string{ + 1: "id", + 2: "title", + 3: "author", + 4: "uid", + 5: "play_url", + 6: "cover_url", + 7: "like_count", + 8: "comment_count", + 9: "is_like", + 10: "publish_time", +} + +func (p *Video) IsSetAuthor() bool { + return p.Author != nil +} + +func (p *Video) Read(iprot thrift.TProtocol) (err error) { + + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.I64 { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 4: + if fieldTypeId == thrift.I64 { + if err = p.ReadField4(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 5: + if fieldTypeId == thrift.STRING { + if err = p.ReadField5(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 6: + if fieldTypeId == thrift.STRING { + if err = p.ReadField6(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 7: + if fieldTypeId == thrift.I64 { + if err = p.ReadField7(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 8: + if fieldTypeId == thrift.I64 { + if err = p.ReadField8(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 9: + if fieldTypeId == thrift.BOOL { + if err = p.ReadField9(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 10: + if fieldTypeId == thrift.STRING { + if err = p.ReadField10(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Video[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *Video) ReadField1(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.ID = _field + return nil +} +func (p *Video) ReadField2(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.Title = _field + return nil +} +func (p *Video) ReadField3(iprot thrift.TProtocol) error { + _field := NewUser() + if err := _field.Read(iprot); err != nil { + return err + } + p.Author = _field + return nil +} +func (p *Video) ReadField4(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.UID = _field + return nil +} +func (p *Video) ReadField5(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.PlayURL = _field + return nil +} +func (p *Video) ReadField6(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.CoverURL = _field + return nil +} +func (p *Video) ReadField7(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.LikeCount = _field + return nil +} +func (p *Video) ReadField8(iprot thrift.TProtocol) error { + + var _field int64 + if v, err := iprot.ReadI64(); err != nil { + return err + } else { + _field = v + } + p.CommentCount = _field + return nil +} +func (p *Video) ReadField9(iprot thrift.TProtocol) error { + + var _field bool + if v, err := iprot.ReadBool(); err != nil { + return err + } else { + _field = v + } + p.IsLike = _field + return nil +} +func (p *Video) ReadField10(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.PublishTime = _field + return nil +} + +func (p *Video) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("Video"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + if err = p.writeField4(oprot); err != nil { + fieldId = 4 + goto WriteFieldError + } + if err = p.writeField5(oprot); err != nil { + fieldId = 5 + goto WriteFieldError + } + if err = p.writeField6(oprot); err != nil { + fieldId = 6 + goto WriteFieldError + } + if err = p.writeField7(oprot); err != nil { + fieldId = 7 + goto WriteFieldError + } + if err = p.writeField8(oprot); err != nil { + fieldId = 8 + goto WriteFieldError + } + if err = p.writeField9(oprot); err != nil { + fieldId = 9 + goto WriteFieldError + } + if err = p.writeField10(oprot); err != nil { + fieldId = 10 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *Video) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("id", thrift.I64, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.ID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *Video) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("title", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.Title); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *Video) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("author", thrift.STRUCT, 3); err != nil { + goto WriteFieldBeginError + } + if err := p.Author.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 3 end error: ", p), err) +} + +func (p *Video) writeField4(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("uid", thrift.I64, 4); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.UID); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 4 end error: ", p), err) +} + +func (p *Video) writeField5(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("play_url", thrift.STRING, 5); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.PlayURL); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 5 end error: ", p), err) +} + +func (p *Video) writeField6(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("cover_url", thrift.STRING, 6); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.CoverURL); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 6 end error: ", p), err) +} + +func (p *Video) writeField7(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("like_count", thrift.I64, 7); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.LikeCount); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 7 end error: ", p), err) +} + +func (p *Video) writeField8(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("comment_count", thrift.I64, 8); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteI64(p.CommentCount); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 8 end error: ", p), err) +} + +func (p *Video) writeField9(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("is_like", thrift.BOOL, 9); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBool(p.IsLike); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 9 end error: ", p), err) +} + +func (p *Video) writeField10(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("publish_time", thrift.STRING, 10); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.PublishTime); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 10 end error: ", p), err) +} + +func (p *Video) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("Video(%+v)", *p) + +} + +type PutVideoRequest struct { + VideoFile []byte `thrift:"video_file,1" form:"video_file" json:"video_file" query:"video_file"` + Title string `thrift:"title,2,required" form:"title,required" json:"title,required" query:"title,required"` + Cover []byte `thrift:"cover,3" form:"cover" json:"cover" query:"cover"` +} + +func NewPutVideoRequest() *PutVideoRequest { + return &PutVideoRequest{} +} + +func (p *PutVideoRequest) InitDefault() { +} + +func (p *PutVideoRequest) GetVideoFile() (v []byte) { + return p.VideoFile +} + +func (p *PutVideoRequest) GetTitle() (v string) { + return p.Title +} + +func (p *PutVideoRequest) GetCover() (v []byte) { + return p.Cover +} + +var fieldIDToName_PutVideoRequest = map[int16]string{ + 1: "video_file", + 2: "title", + 3: "cover", +} + +func (p *PutVideoRequest) Read(iprot thrift.TProtocol) (err error) { + + var fieldTypeId thrift.TType + var fieldId int16 + var issetTitle bool = false + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRING { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 2: + if fieldTypeId == thrift.STRING { + if err = p.ReadField2(iprot); err != nil { + goto ReadFieldError + } + issetTitle = true + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + case 3: + if fieldTypeId == thrift.STRING { + if err = p.ReadField3(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + if !issetTitle { + fieldId = 2 + goto RequiredFieldNotSetError + } + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_PutVideoRequest[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +RequiredFieldNotSetError: + return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("required field %s is not set", fieldIDToName_PutVideoRequest[fieldId])) +} + +func (p *PutVideoRequest) ReadField1(iprot thrift.TProtocol) error { + + var _field []byte + if v, err := iprot.ReadBinary(); err != nil { + return err + } else { + _field = []byte(v) + } + p.VideoFile = _field + return nil +} +func (p *PutVideoRequest) ReadField2(iprot thrift.TProtocol) error { + + var _field string + if v, err := iprot.ReadString(); err != nil { + return err + } else { + _field = v + } + p.Title = _field + return nil +} +func (p *PutVideoRequest) ReadField3(iprot thrift.TProtocol) error { + + var _field []byte + if v, err := iprot.ReadBinary(); err != nil { + return err + } else { + _field = []byte(v) + } + p.Cover = _field + return nil +} + +func (p *PutVideoRequest) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("PutVideoRequest"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + if err = p.writeField2(oprot); err != nil { + fieldId = 2 + goto WriteFieldError + } + if err = p.writeField3(oprot); err != nil { + fieldId = 3 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *PutVideoRequest) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("video_file", thrift.STRING, 1); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBinary([]byte(p.VideoFile)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *PutVideoRequest) writeField2(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("title", thrift.STRING, 2); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteString(p.Title); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 2 end error: ", p), err) +} + +func (p *PutVideoRequest) writeField3(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("cover", thrift.STRING, 3); err != nil { + goto WriteFieldBeginError + } + if err := oprot.WriteBinary([]byte(p.Cover)); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil WriteFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T write field 3 begin error: ", p), err) WriteFieldEndError: @@ -3719,6 +4333,9 @@ func NewPutVideoResponse() *PutVideoResponse { return &PutVideoResponse{} } +func (p *PutVideoResponse) InitDefault() { +} + var PutVideoResponse_Base_DEFAULT *BaseResp func (p *PutVideoResponse) GetBase() (v *BaseResp) { @@ -3793,10 +4410,11 @@ ReadStructEndError: } func (p *PutVideoResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } @@ -3861,6 +4479,9 @@ func NewListUserVideoRequest() *ListUserVideoRequest { return &ListUserVideoRequest{} } +func (p *ListUserVideoRequest) InitDefault() { +} + func (p *ListUserVideoRequest) GetPageNum() (v int64) { return p.PageNum } @@ -3935,11 +4556,13 @@ RequiredFieldNotSetError: func (p *ListUserVideoRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.PageNum = v + _field = v } + p.PageNum = _field return nil } @@ -4006,6 +4629,9 @@ func NewListUserVideoResponse() *ListUserVideoResponse { return &ListUserVideoResponse{} } +func (p *ListUserVideoResponse) InitDefault() { +} + var ListUserVideoResponse_Base_DEFAULT *BaseResp func (p *ListUserVideoResponse) GetBase() (v *BaseResp) { @@ -4124,19 +4750,22 @@ ReadStructEndError: } func (p *ListUserVideoResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *ListUserVideoResponse) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.Count = &v + _field = &v } + p.Count = _field return nil } func (p *ListUserVideoResponse) ReadField3(iprot thrift.TProtocol) error { @@ -4144,18 +4773,22 @@ func (p *ListUserVideoResponse) ReadField3(iprot thrift.TProtocol) error { if err != nil { return err } - p.VideoList = make([]*Video, 0, size) + _field := make([]*Video, 0, size) + values := make([]Video, size) for i := 0; i < size; i++ { - _elem := NewVideo() + _elem := &values[i] + _elem.InitDefault() + if err := _elem.Read(iprot); err != nil { return err } - p.VideoList = append(p.VideoList, _elem) + _field = append(_field, _elem) } if err := iprot.ReadListEnd(); err != nil { return err } + p.VideoList = _field return nil } @@ -4275,6 +4908,9 @@ func NewSearchVideoRequest() *SearchVideoRequest { return &SearchVideoRequest{} } +func (p *SearchVideoRequest) InitDefault() { +} + func (p *SearchVideoRequest) GetParam() (v string) { return p.Param } @@ -4369,20 +5005,24 @@ RequiredFieldNotSetError: func (p *SearchVideoRequest) ReadField1(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Param = v + _field = v } + p.Param = _field return nil } func (p *SearchVideoRequest) ReadField2(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.PageNum = v + _field = v } + p.PageNum = _field return nil } @@ -4470,6 +5110,9 @@ func NewSearchVideoResponse() *SearchVideoResponse { return &SearchVideoResponse{} } +func (p *SearchVideoResponse) InitDefault() { +} + var SearchVideoResponse_Base_DEFAULT *BaseResp func (p *SearchVideoResponse) GetBase() (v *BaseResp) { @@ -4588,19 +5231,22 @@ ReadStructEndError: } func (p *SearchVideoResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *SearchVideoResponse) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.Count = &v + _field = &v } + p.Count = _field return nil } func (p *SearchVideoResponse) ReadField3(iprot thrift.TProtocol) error { @@ -4608,18 +5254,22 @@ func (p *SearchVideoResponse) ReadField3(iprot thrift.TProtocol) error { if err != nil { return err } - p.VideoList = make([]*Video, 0, size) + _field := make([]*Video, 0, size) + values := make([]Video, size) for i := 0; i < size; i++ { - _elem := NewVideo() + _elem := &values[i] + _elem.InitDefault() + if err := _elem.Read(iprot); err != nil { return err } - p.VideoList = append(p.VideoList, _elem) + _field = append(_field, _elem) } if err := iprot.ReadListEnd(); err != nil { return err } + p.VideoList = _field return nil } @@ -4737,6 +5387,9 @@ func NewHotVideoRequest() *HotVideoRequest { return &HotVideoRequest{} } +func (p *HotVideoRequest) InitDefault() { +} + var fieldIDToName_HotVideoRequest = map[int16]string{} func (p *HotVideoRequest) Read(iprot thrift.TProtocol) (err error) { @@ -4819,6 +5472,9 @@ func NewHotVideoResponse() *HotVideoResponse { return &HotVideoResponse{} } +func (p *HotVideoResponse) InitDefault() { +} + var HotVideoResponse_Base_DEFAULT *BaseResp func (p *HotVideoResponse) GetBase() (v *BaseResp) { @@ -4915,10 +5571,11 @@ ReadStructEndError: } func (p *HotVideoResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *HotVideoResponse) ReadField2(iprot thrift.TProtocol) error { @@ -4926,18 +5583,22 @@ func (p *HotVideoResponse) ReadField2(iprot thrift.TProtocol) error { if err != nil { return err } - p.VideoList = make([]*Video, 0, size) + _field := make([]*Video, 0, size) + values := make([]Video, size) for i := 0; i < size; i++ { - _elem := NewVideo() + _elem := &values[i] + _elem.InitDefault() + if err := _elem.Read(iprot); err != nil { return err } - p.VideoList = append(p.VideoList, _elem) + _field = append(_field, _elem) } if err := iprot.ReadListEnd(); err != nil { return err } + p.VideoList = _field return nil } @@ -5039,6 +5700,9 @@ func NewComment() *Comment { return &Comment{} } +func (p *Comment) InitDefault() { +} + func (p *Comment) GetID() (v int64) { return p.ID } @@ -5188,54 +5852,65 @@ ReadStructEndError: func (p *Comment) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ID = v + _field = v } + p.ID = _field return nil } func (p *Comment) ReadField2(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.VideoID = v + _field = v } + p.VideoID = _field return nil } func (p *Comment) ReadField3(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ParentID = &v + _field = &v } + p.ParentID = _field return nil } func (p *Comment) ReadField4(iprot thrift.TProtocol) error { - p.User = NewUser() - if err := p.User.Read(iprot); err != nil { + _field := NewUser() + if err := _field.Read(iprot); err != nil { return err } + p.User = _field return nil } func (p *Comment) ReadField5(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Content = v + _field = v } + p.Content = _field return nil } func (p *Comment) ReadField6(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.PublishTime = v + _field = v } + p.PublishTime = _field return nil } @@ -5409,6 +6084,9 @@ func NewLikeActionRequest() *LikeActionRequest { return &LikeActionRequest{} } +func (p *LikeActionRequest) InitDefault() { +} + var LikeActionRequest_VideoID_DEFAULT int64 func (p *LikeActionRequest) GetVideoID() (v int64) { @@ -5527,29 +6205,35 @@ RequiredFieldNotSetError: func (p *LikeActionRequest) ReadField1(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.VideoID = &v + _field = &v } + p.VideoID = _field return nil } func (p *LikeActionRequest) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.CommentID = &v + _field = &v } + p.CommentID = _field return nil } func (p *LikeActionRequest) ReadField3(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ActionType = v + _field = v } + p.ActionType = _field return nil } @@ -5660,6 +6344,9 @@ func NewLikeActionResponse() *LikeActionResponse { return &LikeActionResponse{} } +func (p *LikeActionResponse) InitDefault() { +} + var LikeActionResponse_Base_DEFAULT *BaseResp func (p *LikeActionResponse) GetBase() (v *BaseResp) { @@ -5734,10 +6421,11 @@ ReadStructEndError: } func (p *LikeActionResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } @@ -5802,6 +6490,9 @@ func NewLikeListRequest() *LikeListRequest { return &LikeListRequest{} } +func (p *LikeListRequest) InitDefault() { +} + func (p *LikeListRequest) GetPageNum() (v int64) { return p.PageNum } @@ -5876,11 +6567,13 @@ RequiredFieldNotSetError: func (p *LikeListRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.PageNum = v + _field = v } + p.PageNum = _field return nil } @@ -5947,6 +6640,9 @@ func NewLikeListResponse() *LikeListResponse { return &LikeListResponse{} } +func (p *LikeListResponse) InitDefault() { +} + var LikeListResponse_Base_DEFAULT *BaseResp func (p *LikeListResponse) GetBase() (v *BaseResp) { @@ -6065,19 +6761,22 @@ ReadStructEndError: } func (p *LikeListResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *LikeListResponse) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.VideoCount = &v + _field = &v } + p.VideoCount = _field return nil } func (p *LikeListResponse) ReadField3(iprot thrift.TProtocol) error { @@ -6085,18 +6784,22 @@ func (p *LikeListResponse) ReadField3(iprot thrift.TProtocol) error { if err != nil { return err } - p.VideoList = make([]*Video, 0, size) + _field := make([]*Video, 0, size) + values := make([]Video, size) for i := 0; i < size; i++ { - _elem := NewVideo() + _elem := &values[i] + _elem.InitDefault() + if err := _elem.Read(iprot); err != nil { return err } - p.VideoList = append(p.VideoList, _elem) + _field = append(_field, _elem) } if err := iprot.ReadListEnd(); err != nil { return err } + p.VideoList = _field return nil } @@ -6217,6 +6920,9 @@ func NewCommentCreateRequest() *CommentCreateRequest { return &CommentCreateRequest{} } +func (p *CommentCreateRequest) InitDefault() { +} + func (p *CommentCreateRequest) GetVideoID() (v int64) { return p.VideoID } @@ -6333,29 +7039,35 @@ RequiredFieldNotSetError: func (p *CommentCreateRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.VideoID = v + _field = v } + p.VideoID = _field return nil } func (p *CommentCreateRequest) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ParentID = &v + _field = &v } + p.ParentID = _field return nil } func (p *CommentCreateRequest) ReadField3(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Content = v + _field = v } + p.Content = _field return nil } @@ -6464,6 +7176,9 @@ func NewCommentCreateResponse() *CommentCreateResponse { return &CommentCreateResponse{} } +func (p *CommentCreateResponse) InitDefault() { +} + var CommentCreateResponse_Base_DEFAULT *BaseResp func (p *CommentCreateResponse) GetBase() (v *BaseResp) { @@ -6538,10 +7253,11 @@ ReadStructEndError: } func (p *CommentCreateResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } @@ -6607,6 +7323,9 @@ func NewCommentDeleteRequest() *CommentDeleteRequest { return &CommentDeleteRequest{} } +func (p *CommentDeleteRequest) InitDefault() { +} + func (p *CommentDeleteRequest) GetVideoID() (v int64) { return p.VideoID } @@ -6701,20 +7420,24 @@ RequiredFieldNotSetError: func (p *CommentDeleteRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.VideoID = v + _field = v } + p.VideoID = _field return nil } func (p *CommentDeleteRequest) ReadField2(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.CommentID = v + _field = v } + p.CommentID = _field return nil } @@ -6800,6 +7523,9 @@ func NewCommentDeleteResponse() *CommentDeleteResponse { return &CommentDeleteResponse{} } +func (p *CommentDeleteResponse) InitDefault() { +} + var CommentDeleteResponse_Base_DEFAULT *BaseResp func (p *CommentDeleteResponse) GetBase() (v *BaseResp) { @@ -6874,10 +7600,11 @@ ReadStructEndError: } func (p *CommentDeleteResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } @@ -6943,6 +7670,9 @@ func NewCommentListRequest() *CommentListRequest { return &CommentListRequest{} } +func (p *CommentListRequest) InitDefault() { +} + func (p *CommentListRequest) GetVideoID() (v int64) { return p.VideoID } @@ -7037,20 +7767,24 @@ RequiredFieldNotSetError: func (p *CommentListRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.VideoID = v + _field = v } + p.VideoID = _field return nil } func (p *CommentListRequest) ReadField2(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.PageNum = v + _field = v } + p.PageNum = _field return nil } @@ -7138,6 +7872,9 @@ func NewCommentListResponse() *CommentListResponse { return &CommentListResponse{} } +func (p *CommentListResponse) InitDefault() { +} + var CommentListResponse_Base_DEFAULT *BaseResp func (p *CommentListResponse) GetBase() (v *BaseResp) { @@ -7256,19 +7993,22 @@ ReadStructEndError: } func (p *CommentListResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *CommentListResponse) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.CommentCount = &v + _field = &v } + p.CommentCount = _field return nil } func (p *CommentListResponse) ReadField3(iprot thrift.TProtocol) error { @@ -7276,18 +8016,22 @@ func (p *CommentListResponse) ReadField3(iprot thrift.TProtocol) error { if err != nil { return err } - p.CommentList = make([]*Comment, 0, size) + _field := make([]*Comment, 0, size) + values := make([]Comment, size) for i := 0; i < size; i++ { - _elem := NewComment() + _elem := &values[i] + _elem.InitDefault() + if err := _elem.Read(iprot); err != nil { return err } - p.CommentList = append(p.CommentList, _elem) + _field = append(_field, _elem) } if err := iprot.ReadListEnd(); err != nil { return err } + p.CommentList = _field return nil } @@ -7408,6 +8152,9 @@ func NewFollowActionRequest() *FollowActionRequest { return &FollowActionRequest{} } +func (p *FollowActionRequest) InitDefault() { +} + func (p *FollowActionRequest) GetObjectUID() (v int64) { return p.ObjectUID } @@ -7502,20 +8249,24 @@ RequiredFieldNotSetError: func (p *FollowActionRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ObjectUID = v + _field = v } + p.ObjectUID = _field return nil } func (p *FollowActionRequest) ReadField2(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ActionType = v + _field = v } + p.ActionType = _field return nil } @@ -7601,6 +8352,9 @@ func NewFollowActionResponse() *FollowActionResponse { return &FollowActionResponse{} } +func (p *FollowActionResponse) InitDefault() { +} + var FollowActionResponse_Base_DEFAULT *BaseResp func (p *FollowActionResponse) GetBase() (v *BaseResp) { @@ -7675,10 +8429,11 @@ ReadStructEndError: } func (p *FollowActionResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } @@ -7743,6 +8498,9 @@ func NewFollowingListRequest() *FollowingListRequest { return &FollowingListRequest{} } +func (p *FollowingListRequest) InitDefault() { +} + func (p *FollowingListRequest) GetPageNum() (v int64) { return p.PageNum } @@ -7817,11 +8575,13 @@ RequiredFieldNotSetError: func (p *FollowingListRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.PageNum = v + _field = v } + p.PageNum = _field return nil } @@ -7888,6 +8648,9 @@ func NewFollowingListResponse() *FollowingListResponse { return &FollowingListResponse{} } +func (p *FollowingListResponse) InitDefault() { +} + var FollowingListResponse_Base_DEFAULT *BaseResp func (p *FollowingListResponse) GetBase() (v *BaseResp) { @@ -8006,19 +8769,22 @@ ReadStructEndError: } func (p *FollowingListResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *FollowingListResponse) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.Count = &v + _field = &v } + p.Count = _field return nil } func (p *FollowingListResponse) ReadField3(iprot thrift.TProtocol) error { @@ -8026,18 +8792,22 @@ func (p *FollowingListResponse) ReadField3(iprot thrift.TProtocol) error { if err != nil { return err } - p.FollowingList = make([]*User, 0, size) + _field := make([]*User, 0, size) + values := make([]User, size) for i := 0; i < size; i++ { - _elem := NewUser() + _elem := &values[i] + _elem.InitDefault() + if err := _elem.Read(iprot); err != nil { return err } - p.FollowingList = append(p.FollowingList, _elem) + _field = append(_field, _elem) } if err := iprot.ReadListEnd(); err != nil { return err } + p.FollowingList = _field return nil } @@ -8156,6 +8926,9 @@ func NewFollowerListRequest() *FollowerListRequest { return &FollowerListRequest{} } +func (p *FollowerListRequest) InitDefault() { +} + func (p *FollowerListRequest) GetPageNum() (v int64) { return p.PageNum } @@ -8230,11 +9003,13 @@ RequiredFieldNotSetError: func (p *FollowerListRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.PageNum = v + _field = v } + p.PageNum = _field return nil } @@ -8301,6 +9076,9 @@ func NewFollowerListResponse() *FollowerListResponse { return &FollowerListResponse{} } +func (p *FollowerListResponse) InitDefault() { +} + var FollowerListResponse_Base_DEFAULT *BaseResp func (p *FollowerListResponse) GetBase() (v *BaseResp) { @@ -8419,19 +9197,22 @@ ReadStructEndError: } func (p *FollowerListResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *FollowerListResponse) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.Count = &v + _field = &v } + p.Count = _field return nil } func (p *FollowerListResponse) ReadField3(iprot thrift.TProtocol) error { @@ -8439,18 +9220,22 @@ func (p *FollowerListResponse) ReadField3(iprot thrift.TProtocol) error { if err != nil { return err } - p.FollowerList = make([]*User, 0, size) + _field := make([]*User, 0, size) + values := make([]User, size) for i := 0; i < size; i++ { - _elem := NewUser() + _elem := &values[i] + _elem.InitDefault() + if err := _elem.Read(iprot); err != nil { return err } - p.FollowerList = append(p.FollowerList, _elem) + _field = append(_field, _elem) } if err := iprot.ReadListEnd(); err != nil { return err } + p.FollowerList = _field return nil } @@ -8569,6 +9354,9 @@ func NewFriendListRequest() *FriendListRequest { return &FriendListRequest{} } +func (p *FriendListRequest) InitDefault() { +} + func (p *FriendListRequest) GetPageNum() (v int64) { return p.PageNum } @@ -8643,11 +9431,13 @@ RequiredFieldNotSetError: func (p *FriendListRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.PageNum = v + _field = v } + p.PageNum = _field return nil } @@ -8714,6 +9504,9 @@ func NewFriendListResponse() *FriendListResponse { return &FriendListResponse{} } +func (p *FriendListResponse) InitDefault() { +} + var FriendListResponse_Base_DEFAULT *BaseResp func (p *FriendListResponse) GetBase() (v *BaseResp) { @@ -8832,19 +9625,22 @@ ReadStructEndError: } func (p *FriendListResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *FriendListResponse) ReadField2(iprot thrift.TProtocol) error { + var _field *int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.Count = &v + _field = &v } + p.Count = _field return nil } func (p *FriendListResponse) ReadField3(iprot thrift.TProtocol) error { @@ -8852,18 +9648,22 @@ func (p *FriendListResponse) ReadField3(iprot thrift.TProtocol) error { if err != nil { return err } - p.FriendList = make([]*User, 0, size) + _field := make([]*User, 0, size) + values := make([]User, size) for i := 0; i < size; i++ { - _elem := NewUser() + _elem := &values[i] + _elem.InitDefault() + if err := _elem.Read(iprot); err != nil { return err } - p.FriendList = append(p.FriendList, _elem) + _field = append(_field, _elem) } if err := iprot.ReadListEnd(); err != nil { return err } + p.FriendList = _field return nil } @@ -8987,6 +9787,9 @@ func NewMessage() *Message { return &Message{} } +func (p *Message) InitDefault() { +} + func (p *Message) GetID() (v int64) { return p.ID } @@ -9105,47 +9908,57 @@ ReadStructEndError: func (p *Message) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ID = v + _field = v } + p.ID = _field return nil } func (p *Message) ReadField2(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.TargetID = v + _field = v } + p.TargetID = _field return nil } func (p *Message) ReadField3(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.FromID = v + _field = v } + p.FromID = _field return nil } func (p *Message) ReadField4(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.Content = v + _field = v } + p.Content = _field return nil } func (p *Message) ReadField5(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.CreateTime = v + _field = v } + p.CreateTime = _field return nil } @@ -9294,6 +10107,9 @@ func NewMessageChatRequest() *MessageChatRequest { return &MessageChatRequest{} } +func (p *MessageChatRequest) InitDefault() { +} + func (p *MessageChatRequest) GetTargetID() (v int64) { return p.TargetID } @@ -9368,11 +10184,13 @@ RequiredFieldNotSetError: func (p *MessageChatRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.TargetID = v + _field = v } + p.TargetID = _field return nil } @@ -9437,6 +10255,9 @@ func NewMessageChatResponse() *MessageChatResponse { return &MessageChatResponse{} } +func (p *MessageChatResponse) InitDefault() { +} + var MessageChatResponse_Base_DEFAULT *BaseResp func (p *MessageChatResponse) GetBase() (v *BaseResp) { @@ -9511,10 +10332,11 @@ ReadStructEndError: } func (p *MessageChatResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } @@ -9584,6 +10406,9 @@ func NewMessageRecordRequest() *MessageRecordRequest { return &MessageRecordRequest{} } +func (p *MessageRecordRequest) InitDefault() { +} + func (p *MessageRecordRequest) GetTargetID() (v int64) { return p.TargetID } @@ -9738,47 +10563,57 @@ RequiredFieldNotSetError: func (p *MessageRecordRequest) ReadField1(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.TargetID = v + _field = v } + p.TargetID = _field return nil } func (p *MessageRecordRequest) ReadField2(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.FromTime = v + _field = v } + p.FromTime = _field return nil } func (p *MessageRecordRequest) ReadField3(iprot thrift.TProtocol) error { + var _field string if v, err := iprot.ReadString(); err != nil { return err } else { - p.ToTime = v + _field = v } + p.ToTime = _field return nil } func (p *MessageRecordRequest) ReadField4(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.ActionType = v + _field = v } + p.ActionType = _field return nil } func (p *MessageRecordRequest) ReadField5(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.PageNum = v + _field = v } + p.PageNum = _field return nil } @@ -9929,6 +10764,9 @@ func NewMessageRecordResponse() *MessageRecordResponse { return &MessageRecordResponse{} } +func (p *MessageRecordResponse) InitDefault() { +} + var MessageRecordResponse_Base_DEFAULT *BaseResp func (p *MessageRecordResponse) GetBase() (v *BaseResp) { @@ -10029,19 +10867,22 @@ ReadStructEndError: } func (p *MessageRecordResponse) ReadField1(iprot thrift.TProtocol) error { - p.Base = NewBaseResp() - if err := p.Base.Read(iprot); err != nil { + _field := NewBaseResp() + if err := _field.Read(iprot); err != nil { return err } + p.Base = _field return nil } func (p *MessageRecordResponse) ReadField2(iprot thrift.TProtocol) error { + var _field int64 if v, err := iprot.ReadI64(); err != nil { return err } else { - p.MessageCount = v + _field = v } + p.MessageCount = _field return nil } func (p *MessageRecordResponse) ReadField3(iprot thrift.TProtocol) error { @@ -10049,18 +10890,22 @@ func (p *MessageRecordResponse) ReadField3(iprot thrift.TProtocol) error { if err != nil { return err } - p.Record = make([]*Message, 0, size) + _field := make([]*Message, 0, size) + values := make([]Message, size) for i := 0; i < size; i++ { - _elem := NewMessage() + _elem := &values[i] + _elem.InitDefault() + if err := _elem.Read(iprot); err != nil { return err } - p.Record = append(p.Record, _elem) + _field = append(_field, _elem) } if err := iprot.ReadListEnd(); err != nil { return err } + p.Record = _field return nil } @@ -10178,6 +11023,8 @@ type UserHandler interface { // OTP2FAResp OTP2FA(1:OTP2FAReq req)(api.get="/bibi/user/2fa"), Switch2FA(ctx context.Context, req *Switch2FARequest) (r *Switch2FAResponse, err error) + SearchAvatar(ctx context.Context, req *SearchAvatarRequest) (r *SearchAvatarResponse, err error) + GetAccessToken(ctx context.Context, req *GetAccessTokenRequest) (r *GetAccessTokenResponse, err error) } @@ -10252,6 +11099,15 @@ func (p *UserHandlerClient) Switch2FA(ctx context.Context, req *Switch2FARequest } return _result.GetSuccess(), nil } +func (p *UserHandlerClient) SearchAvatar(ctx context.Context, req *SearchAvatarRequest) (r *SearchAvatarResponse, err error) { + var _args UserHandlerSearchAvatarArgs + _args.Req = req + var _result UserHandlerSearchAvatarResult + if err = p.Client_().Call(ctx, "SearchAvatar", &_args, &_result); err != nil { + return + } + return _result.GetSuccess(), nil +} func (p *UserHandlerClient) GetAccessToken(ctx context.Context, req *GetAccessTokenRequest) (r *GetAccessTokenResponse, err error) { var _args UserHandlerGetAccessTokenArgs _args.Req = req @@ -10568,6 +11424,7 @@ func NewUserHandlerProcessor(handler UserHandler) *UserHandlerProcessor { self.AddToProcessorMap("Info", &userHandlerProcessorInfo{handler: handler}) self.AddToProcessorMap("Avatar", &userHandlerProcessorAvatar{handler: handler}) self.AddToProcessorMap("Switch2FA", &userHandlerProcessorSwitch2FA{handler: handler}) + self.AddToProcessorMap("SearchAvatar", &userHandlerProcessorSearchAvatar{handler: handler}) self.AddToProcessorMap("GetAccessToken", &userHandlerProcessorGetAccessToken{handler: handler}) return self } @@ -10667,7 +11524,103 @@ func (p *userHandlerProcessorLogin) Process(ctx context.Context, seqId int32, ip } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("Login", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("Login", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type userHandlerProcessorInfo struct { + handler UserHandler +} + +func (p *userHandlerProcessorInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := UserHandlerInfoArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("Info", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := UserHandlerInfoResult{} + var retval *InfoResponse + if retval, err2 = p.handler.Info(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing Info: "+err2.Error()) + oprot.WriteMessageBegin("Info", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("Info", thrift.REPLY, seqId); err2 != nil { + err = err2 + } + if err2 = result.Write(oprot); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { + err = err2 + } + if err2 = oprot.Flush(ctx); err == nil && err2 != nil { + err = err2 + } + if err != nil { + return + } + return true, err +} + +type userHandlerProcessorAvatar struct { + handler UserHandler +} + +func (p *userHandlerProcessorAvatar) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := UserHandlerAvatarArgs{} + if err = args.Read(iprot); err != nil { + iprot.ReadMessageEnd() + x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) + oprot.WriteMessageBegin("Avatar", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return false, err + } + + iprot.ReadMessageEnd() + var err2 error + result := UserHandlerAvatarResult{} + var retval *AvatarResponse + if retval, err2 = p.handler.Avatar(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing Avatar: "+err2.Error()) + oprot.WriteMessageBegin("Avatar", thrift.EXCEPTION, seqId) + x.Write(oprot) + oprot.WriteMessageEnd() + oprot.Flush(ctx) + return true, err2 + } else { + result.Success = retval + } + if err2 = oprot.WriteMessageBegin("Avatar", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -10685,16 +11638,16 @@ func (p *userHandlerProcessorLogin) Process(ctx context.Context, seqId int32, ip return true, err } -type userHandlerProcessorInfo struct { +type userHandlerProcessorSwitch2FA struct { handler UserHandler } -func (p *userHandlerProcessorInfo) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := UserHandlerInfoArgs{} +func (p *userHandlerProcessorSwitch2FA) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := UserHandlerSwitch2FAArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("Info", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("Switch2FA", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -10703,11 +11656,11 @@ func (p *userHandlerProcessorInfo) Process(ctx context.Context, seqId int32, ipr iprot.ReadMessageEnd() var err2 error - result := UserHandlerInfoResult{} - var retval *InfoResponse - if retval, err2 = p.handler.Info(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing Info: "+err2.Error()) - oprot.WriteMessageBegin("Info", thrift.EXCEPTION, seqId) + result := UserHandlerSwitch2FAResult{} + var retval *Switch2FAResponse + if retval, err2 = p.handler.Switch2FA(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing Switch2FA: "+err2.Error()) + oprot.WriteMessageBegin("Switch2FA", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -10715,7 +11668,7 @@ func (p *userHandlerProcessorInfo) Process(ctx context.Context, seqId int32, ipr } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("Info", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("Switch2FA", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -10733,16 +11686,16 @@ func (p *userHandlerProcessorInfo) Process(ctx context.Context, seqId int32, ipr return true, err } -type userHandlerProcessorAvatar struct { +type userHandlerProcessorSearchAvatar struct { handler UserHandler } -func (p *userHandlerProcessorAvatar) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := UserHandlerAvatarArgs{} +func (p *userHandlerProcessorSearchAvatar) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := UserHandlerSearchAvatarArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("Avatar", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("SearchAvatar", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -10751,11 +11704,11 @@ func (p *userHandlerProcessorAvatar) Process(ctx context.Context, seqId int32, i iprot.ReadMessageEnd() var err2 error - result := UserHandlerAvatarResult{} - var retval *AvatarResponse - if retval, err2 = p.handler.Avatar(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing Avatar: "+err2.Error()) - oprot.WriteMessageBegin("Avatar", thrift.EXCEPTION, seqId) + result := UserHandlerSearchAvatarResult{} + var retval *SearchAvatarResponse + if retval, err2 = p.handler.SearchAvatar(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing SearchAvatar: "+err2.Error()) + oprot.WriteMessageBegin("SearchAvatar", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -10763,7 +11716,7 @@ func (p *userHandlerProcessorAvatar) Process(ctx context.Context, seqId int32, i } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("Avatar", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("SearchAvatar", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -10781,16 +11734,16 @@ func (p *userHandlerProcessorAvatar) Process(ctx context.Context, seqId int32, i return true, err } -type userHandlerProcessorSwitch2FA struct { +type userHandlerProcessorGetAccessToken struct { handler UserHandler } -func (p *userHandlerProcessorSwitch2FA) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := UserHandlerSwitch2FAArgs{} +func (p *userHandlerProcessorGetAccessToken) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { + args := UserHandlerGetAccessTokenArgs{} if err = args.Read(iprot); err != nil { iprot.ReadMessageEnd() x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("Switch2FA", thrift.EXCEPTION, seqId) + oprot.WriteMessageBegin("GetAccessToken", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -10799,11 +11752,11 @@ func (p *userHandlerProcessorSwitch2FA) Process(ctx context.Context, seqId int32 iprot.ReadMessageEnd() var err2 error - result := UserHandlerSwitch2FAResult{} - var retval *Switch2FAResponse - if retval, err2 = p.handler.Switch2FA(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing Switch2FA: "+err2.Error()) - oprot.WriteMessageBegin("Switch2FA", thrift.EXCEPTION, seqId) + result := UserHandlerGetAccessTokenResult{} + var retval *GetAccessTokenResponse + if retval, err2 = p.handler.GetAccessToken(ctx, args.Req); err2 != nil { + x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetAccessToken: "+err2.Error()) + oprot.WriteMessageBegin("GetAccessToken", thrift.EXCEPTION, seqId) x.Write(oprot) oprot.WriteMessageEnd() oprot.Flush(ctx) @@ -10811,7 +11764,7 @@ func (p *userHandlerProcessorSwitch2FA) Process(ctx context.Context, seqId int32 } else { result.Success = retval } - if err2 = oprot.WriteMessageBegin("Switch2FA", thrift.REPLY, seqId); err2 != nil { + if err2 = oprot.WriteMessageBegin("GetAccessToken", thrift.REPLY, seqId); err2 != nil { err = err2 } if err2 = result.Write(oprot); err == nil && err2 != nil { @@ -10823,86 +11776,335 @@ func (p *userHandlerProcessorSwitch2FA) Process(ctx context.Context, seqId int32 if err2 = oprot.Flush(ctx); err == nil && err2 != nil { err = err2 } - if err != nil { - return + if err != nil { + return + } + return true, err +} + +type UserHandlerRegisterArgs struct { + Req *RegisterRequest `thrift:"req,1"` +} + +func NewUserHandlerRegisterArgs() *UserHandlerRegisterArgs { + return &UserHandlerRegisterArgs{} +} + +func (p *UserHandlerRegisterArgs) InitDefault() { +} + +var UserHandlerRegisterArgs_Req_DEFAULT *RegisterRequest + +func (p *UserHandlerRegisterArgs) GetReq() (v *RegisterRequest) { + if !p.IsSetReq() { + return UserHandlerRegisterArgs_Req_DEFAULT + } + return p.Req +} + +var fieldIDToName_UserHandlerRegisterArgs = map[int16]string{ + 1: "req", +} + +func (p *UserHandlerRegisterArgs) IsSetReq() bool { + return p.Req != nil +} + +func (p *UserHandlerRegisterArgs) Read(iprot thrift.TProtocol) (err error) { + + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 1: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField1(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError + } + + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerRegisterArgs[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) +} + +func (p *UserHandlerRegisterArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewRegisterRequest() + if err := _field.Read(iprot); err != nil { + return err + } + p.Req = _field + return nil +} + +func (p *UserHandlerRegisterArgs) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("Register_args"); err != nil { + goto WriteStructBeginError + } + if p != nil { + if err = p.writeField1(oprot); err != nil { + fieldId = 1 + goto WriteFieldError + } + } + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError + } + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError + } + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *UserHandlerRegisterArgs) writeField1(oprot thrift.TProtocol) (err error) { + if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { + goto WriteFieldBeginError + } + if err := p.Req.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) +} + +func (p *UserHandlerRegisterArgs) String() string { + if p == nil { + return "" + } + return fmt.Sprintf("UserHandlerRegisterArgs(%+v)", *p) + +} + +type UserHandlerRegisterResult struct { + Success *RegisterResponse `thrift:"success,0,optional"` +} + +func NewUserHandlerRegisterResult() *UserHandlerRegisterResult { + return &UserHandlerRegisterResult{} +} + +func (p *UserHandlerRegisterResult) InitDefault() { +} + +var UserHandlerRegisterResult_Success_DEFAULT *RegisterResponse + +func (p *UserHandlerRegisterResult) GetSuccess() (v *RegisterResponse) { + if !p.IsSetSuccess() { + return UserHandlerRegisterResult_Success_DEFAULT + } + return p.Success +} + +var fieldIDToName_UserHandlerRegisterResult = map[int16]string{ + 0: "success", +} + +func (p *UserHandlerRegisterResult) IsSetSuccess() bool { + return p.Success != nil +} + +func (p *UserHandlerRegisterResult) Read(iprot thrift.TProtocol) (err error) { + + var fieldTypeId thrift.TType + var fieldId int16 + + if _, err = iprot.ReadStructBegin(); err != nil { + goto ReadStructBeginError + } + + for { + _, fieldTypeId, fieldId, err = iprot.ReadFieldBegin() + if err != nil { + goto ReadFieldBeginError + } + if fieldTypeId == thrift.STOP { + break + } + + switch fieldId { + case 0: + if fieldTypeId == thrift.STRUCT { + if err = p.ReadField0(iprot); err != nil { + goto ReadFieldError + } + } else if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + default: + if err = iprot.Skip(fieldTypeId); err != nil { + goto SkipFieldError + } + } + if err = iprot.ReadFieldEnd(); err != nil { + goto ReadFieldEndError + } + } + if err = iprot.ReadStructEnd(); err != nil { + goto ReadStructEndError } - return true, err -} -type userHandlerProcessorGetAccessToken struct { - handler UserHandler + return nil +ReadStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err) +ReadFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) +ReadFieldError: + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerRegisterResult[fieldId]), err) +SkipFieldError: + return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) + +ReadFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err) +ReadStructEndError: + return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *userHandlerProcessorGetAccessToken) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) { - args := UserHandlerGetAccessTokenArgs{} - if err = args.Read(iprot); err != nil { - iprot.ReadMessageEnd() - x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error()) - oprot.WriteMessageBegin("GetAccessToken", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return false, err +func (p *UserHandlerRegisterResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewRegisterResponse() + if err := _field.Read(iprot); err != nil { + return err } + p.Success = _field + return nil +} - iprot.ReadMessageEnd() - var err2 error - result := UserHandlerGetAccessTokenResult{} - var retval *GetAccessTokenResponse - if retval, err2 = p.handler.GetAccessToken(ctx, args.Req); err2 != nil { - x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing GetAccessToken: "+err2.Error()) - oprot.WriteMessageBegin("GetAccessToken", thrift.EXCEPTION, seqId) - x.Write(oprot) - oprot.WriteMessageEnd() - oprot.Flush(ctx) - return true, err2 - } else { - result.Success = retval +func (p *UserHandlerRegisterResult) Write(oprot thrift.TProtocol) (err error) { + var fieldId int16 + if err = oprot.WriteStructBegin("Register_result"); err != nil { + goto WriteStructBeginError } - if err2 = oprot.WriteMessageBegin("GetAccessToken", thrift.REPLY, seqId); err2 != nil { - err = err2 + if p != nil { + if err = p.writeField0(oprot); err != nil { + fieldId = 0 + goto WriteFieldError + } } - if err2 = result.Write(oprot); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteFieldStop(); err != nil { + goto WriteFieldStopError } - if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil { - err = err2 + if err = oprot.WriteStructEnd(); err != nil { + goto WriteStructEndError } - if err2 = oprot.Flush(ctx); err == nil && err2 != nil { - err = err2 + return nil +WriteStructBeginError: + return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err) +WriteFieldError: + return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err) +WriteFieldStopError: + return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err) +WriteStructEndError: + return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) +} + +func (p *UserHandlerRegisterResult) writeField0(oprot thrift.TProtocol) (err error) { + if p.IsSetSuccess() { + if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { + goto WriteFieldBeginError + } + if err := p.Success.Write(oprot); err != nil { + return err + } + if err = oprot.WriteFieldEnd(); err != nil { + goto WriteFieldEndError + } } - if err != nil { - return + return nil +WriteFieldBeginError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 begin error: ", p), err) +WriteFieldEndError: + return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) +} + +func (p *UserHandlerRegisterResult) String() string { + if p == nil { + return "" } - return true, err + return fmt.Sprintf("UserHandlerRegisterResult(%+v)", *p) + } -type UserHandlerRegisterArgs struct { - Req *RegisterRequest `thrift:"req,1"` +type UserHandlerLoginArgs struct { + Req *LoginRequest `thrift:"req,1"` } -func NewUserHandlerRegisterArgs() *UserHandlerRegisterArgs { - return &UserHandlerRegisterArgs{} +func NewUserHandlerLoginArgs() *UserHandlerLoginArgs { + return &UserHandlerLoginArgs{} } -var UserHandlerRegisterArgs_Req_DEFAULT *RegisterRequest +func (p *UserHandlerLoginArgs) InitDefault() { +} -func (p *UserHandlerRegisterArgs) GetReq() (v *RegisterRequest) { +var UserHandlerLoginArgs_Req_DEFAULT *LoginRequest + +func (p *UserHandlerLoginArgs) GetReq() (v *LoginRequest) { if !p.IsSetReq() { - return UserHandlerRegisterArgs_Req_DEFAULT + return UserHandlerLoginArgs_Req_DEFAULT } return p.Req } -var fieldIDToName_UserHandlerRegisterArgs = map[int16]string{ +var fieldIDToName_UserHandlerLoginArgs = map[int16]string{ 1: "req", } -func (p *UserHandlerRegisterArgs) IsSetReq() bool { +func (p *UserHandlerLoginArgs) IsSetReq() bool { return p.Req != nil } -func (p *UserHandlerRegisterArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerLoginArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -10948,7 +12150,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerRegisterArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerLoginArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -10958,17 +12160,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerRegisterArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewRegisterRequest() - if err := p.Req.Read(iprot); err != nil { +func (p *UserHandlerLoginArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewLoginRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } -func (p *UserHandlerRegisterArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerLoginArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Register_args"); err != nil { + if err = oprot.WriteStructBegin("Login_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -10994,7 +12197,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerRegisterArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerLoginArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -11011,40 +12214,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *UserHandlerRegisterArgs) String() string { +func (p *UserHandlerLoginArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerRegisterArgs(%+v)", *p) + return fmt.Sprintf("UserHandlerLoginArgs(%+v)", *p) } -type UserHandlerRegisterResult struct { - Success *RegisterResponse `thrift:"success,0,optional"` +type UserHandlerLoginResult struct { + Success *LoginResponse `thrift:"success,0,optional"` } -func NewUserHandlerRegisterResult() *UserHandlerRegisterResult { - return &UserHandlerRegisterResult{} +func NewUserHandlerLoginResult() *UserHandlerLoginResult { + return &UserHandlerLoginResult{} } -var UserHandlerRegisterResult_Success_DEFAULT *RegisterResponse +func (p *UserHandlerLoginResult) InitDefault() { +} -func (p *UserHandlerRegisterResult) GetSuccess() (v *RegisterResponse) { +var UserHandlerLoginResult_Success_DEFAULT *LoginResponse + +func (p *UserHandlerLoginResult) GetSuccess() (v *LoginResponse) { if !p.IsSetSuccess() { - return UserHandlerRegisterResult_Success_DEFAULT + return UserHandlerLoginResult_Success_DEFAULT } return p.Success } -var fieldIDToName_UserHandlerRegisterResult = map[int16]string{ +var fieldIDToName_UserHandlerLoginResult = map[int16]string{ 0: "success", } -func (p *UserHandlerRegisterResult) IsSetSuccess() bool { +func (p *UserHandlerLoginResult) IsSetSuccess() bool { return p.Success != nil } -func (p *UserHandlerRegisterResult) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerLoginResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11090,7 +12296,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerRegisterResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerLoginResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11100,17 +12306,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerRegisterResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewRegisterResponse() - if err := p.Success.Read(iprot); err != nil { +func (p *UserHandlerLoginResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewLoginResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } -func (p *UserHandlerRegisterResult) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerLoginResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Register_result"); err != nil { + if err = oprot.WriteStructBegin("Login_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11136,7 +12343,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerRegisterResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerLoginResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -11155,40 +12362,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *UserHandlerRegisterResult) String() string { +func (p *UserHandlerLoginResult) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerRegisterResult(%+v)", *p) + return fmt.Sprintf("UserHandlerLoginResult(%+v)", *p) } -type UserHandlerLoginArgs struct { - Req *LoginRequest `thrift:"req,1"` +type UserHandlerInfoArgs struct { + Req *InfoRequest `thrift:"req,1"` } -func NewUserHandlerLoginArgs() *UserHandlerLoginArgs { - return &UserHandlerLoginArgs{} +func NewUserHandlerInfoArgs() *UserHandlerInfoArgs { + return &UserHandlerInfoArgs{} } -var UserHandlerLoginArgs_Req_DEFAULT *LoginRequest +func (p *UserHandlerInfoArgs) InitDefault() { +} -func (p *UserHandlerLoginArgs) GetReq() (v *LoginRequest) { +var UserHandlerInfoArgs_Req_DEFAULT *InfoRequest + +func (p *UserHandlerInfoArgs) GetReq() (v *InfoRequest) { if !p.IsSetReq() { - return UserHandlerLoginArgs_Req_DEFAULT + return UserHandlerInfoArgs_Req_DEFAULT } return p.Req } -var fieldIDToName_UserHandlerLoginArgs = map[int16]string{ +var fieldIDToName_UserHandlerInfoArgs = map[int16]string{ 1: "req", } -func (p *UserHandlerLoginArgs) IsSetReq() bool { +func (p *UserHandlerInfoArgs) IsSetReq() bool { return p.Req != nil } -func (p *UserHandlerLoginArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerInfoArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11234,7 +12444,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerLoginArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerInfoArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11244,17 +12454,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerLoginArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewLoginRequest() - if err := p.Req.Read(iprot); err != nil { +func (p *UserHandlerInfoArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewInfoRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } -func (p *UserHandlerLoginArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerInfoArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Login_args"); err != nil { + if err = oprot.WriteStructBegin("Info_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11280,7 +12491,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerLoginArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerInfoArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -11297,40 +12508,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *UserHandlerLoginArgs) String() string { +func (p *UserHandlerInfoArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerLoginArgs(%+v)", *p) + return fmt.Sprintf("UserHandlerInfoArgs(%+v)", *p) } -type UserHandlerLoginResult struct { - Success *LoginResponse `thrift:"success,0,optional"` +type UserHandlerInfoResult struct { + Success *InfoResponse `thrift:"success,0,optional"` } -func NewUserHandlerLoginResult() *UserHandlerLoginResult { - return &UserHandlerLoginResult{} +func NewUserHandlerInfoResult() *UserHandlerInfoResult { + return &UserHandlerInfoResult{} } -var UserHandlerLoginResult_Success_DEFAULT *LoginResponse +func (p *UserHandlerInfoResult) InitDefault() { +} -func (p *UserHandlerLoginResult) GetSuccess() (v *LoginResponse) { +var UserHandlerInfoResult_Success_DEFAULT *InfoResponse + +func (p *UserHandlerInfoResult) GetSuccess() (v *InfoResponse) { if !p.IsSetSuccess() { - return UserHandlerLoginResult_Success_DEFAULT + return UserHandlerInfoResult_Success_DEFAULT } return p.Success } -var fieldIDToName_UserHandlerLoginResult = map[int16]string{ +var fieldIDToName_UserHandlerInfoResult = map[int16]string{ 0: "success", } -func (p *UserHandlerLoginResult) IsSetSuccess() bool { +func (p *UserHandlerInfoResult) IsSetSuccess() bool { return p.Success != nil } -func (p *UserHandlerLoginResult) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerInfoResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11376,7 +12590,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerLoginResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerInfoResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11386,17 +12600,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerLoginResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewLoginResponse() - if err := p.Success.Read(iprot); err != nil { +func (p *UserHandlerInfoResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewInfoResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } -func (p *UserHandlerLoginResult) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerInfoResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Login_result"); err != nil { + if err = oprot.WriteStructBegin("Info_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11422,7 +12637,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerLoginResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerInfoResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -11441,40 +12656,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *UserHandlerLoginResult) String() string { +func (p *UserHandlerInfoResult) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerLoginResult(%+v)", *p) + return fmt.Sprintf("UserHandlerInfoResult(%+v)", *p) } -type UserHandlerInfoArgs struct { - Req *InfoRequest `thrift:"req,1"` +type UserHandlerAvatarArgs struct { + Req *AvatarRequest `thrift:"req,1"` } -func NewUserHandlerInfoArgs() *UserHandlerInfoArgs { - return &UserHandlerInfoArgs{} +func NewUserHandlerAvatarArgs() *UserHandlerAvatarArgs { + return &UserHandlerAvatarArgs{} } -var UserHandlerInfoArgs_Req_DEFAULT *InfoRequest +func (p *UserHandlerAvatarArgs) InitDefault() { +} -func (p *UserHandlerInfoArgs) GetReq() (v *InfoRequest) { +var UserHandlerAvatarArgs_Req_DEFAULT *AvatarRequest + +func (p *UserHandlerAvatarArgs) GetReq() (v *AvatarRequest) { if !p.IsSetReq() { - return UserHandlerInfoArgs_Req_DEFAULT + return UserHandlerAvatarArgs_Req_DEFAULT } return p.Req } -var fieldIDToName_UserHandlerInfoArgs = map[int16]string{ +var fieldIDToName_UserHandlerAvatarArgs = map[int16]string{ 1: "req", } -func (p *UserHandlerInfoArgs) IsSetReq() bool { +func (p *UserHandlerAvatarArgs) IsSetReq() bool { return p.Req != nil } -func (p *UserHandlerInfoArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerAvatarArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11520,7 +12738,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerInfoArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerAvatarArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11530,17 +12748,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerInfoArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewInfoRequest() - if err := p.Req.Read(iprot); err != nil { +func (p *UserHandlerAvatarArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewAvatarRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } -func (p *UserHandlerInfoArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerAvatarArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Info_args"); err != nil { + if err = oprot.WriteStructBegin("Avatar_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11566,7 +12785,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerInfoArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerAvatarArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -11583,40 +12802,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *UserHandlerInfoArgs) String() string { +func (p *UserHandlerAvatarArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerInfoArgs(%+v)", *p) + return fmt.Sprintf("UserHandlerAvatarArgs(%+v)", *p) } -type UserHandlerInfoResult struct { - Success *InfoResponse `thrift:"success,0,optional"` +type UserHandlerAvatarResult struct { + Success *AvatarResponse `thrift:"success,0,optional"` } -func NewUserHandlerInfoResult() *UserHandlerInfoResult { - return &UserHandlerInfoResult{} +func NewUserHandlerAvatarResult() *UserHandlerAvatarResult { + return &UserHandlerAvatarResult{} } -var UserHandlerInfoResult_Success_DEFAULT *InfoResponse +func (p *UserHandlerAvatarResult) InitDefault() { +} -func (p *UserHandlerInfoResult) GetSuccess() (v *InfoResponse) { +var UserHandlerAvatarResult_Success_DEFAULT *AvatarResponse + +func (p *UserHandlerAvatarResult) GetSuccess() (v *AvatarResponse) { if !p.IsSetSuccess() { - return UserHandlerInfoResult_Success_DEFAULT + return UserHandlerAvatarResult_Success_DEFAULT } return p.Success } -var fieldIDToName_UserHandlerInfoResult = map[int16]string{ +var fieldIDToName_UserHandlerAvatarResult = map[int16]string{ 0: "success", } -func (p *UserHandlerInfoResult) IsSetSuccess() bool { +func (p *UserHandlerAvatarResult) IsSetSuccess() bool { return p.Success != nil } -func (p *UserHandlerInfoResult) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerAvatarResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11662,7 +12884,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerInfoResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerAvatarResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11672,17 +12894,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerInfoResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewInfoResponse() - if err := p.Success.Read(iprot); err != nil { +func (p *UserHandlerAvatarResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewAvatarResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } -func (p *UserHandlerInfoResult) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerAvatarResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Info_result"); err != nil { + if err = oprot.WriteStructBegin("Avatar_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11708,7 +12931,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerInfoResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerAvatarResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -11727,40 +12950,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *UserHandlerInfoResult) String() string { +func (p *UserHandlerAvatarResult) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerInfoResult(%+v)", *p) + return fmt.Sprintf("UserHandlerAvatarResult(%+v)", *p) } -type UserHandlerAvatarArgs struct { - Req *AvatarRequest `thrift:"req,1"` +type UserHandlerSwitch2FAArgs struct { + Req *Switch2FARequest `thrift:"req,1"` } -func NewUserHandlerAvatarArgs() *UserHandlerAvatarArgs { - return &UserHandlerAvatarArgs{} +func NewUserHandlerSwitch2FAArgs() *UserHandlerSwitch2FAArgs { + return &UserHandlerSwitch2FAArgs{} } -var UserHandlerAvatarArgs_Req_DEFAULT *AvatarRequest +func (p *UserHandlerSwitch2FAArgs) InitDefault() { +} -func (p *UserHandlerAvatarArgs) GetReq() (v *AvatarRequest) { +var UserHandlerSwitch2FAArgs_Req_DEFAULT *Switch2FARequest + +func (p *UserHandlerSwitch2FAArgs) GetReq() (v *Switch2FARequest) { if !p.IsSetReq() { - return UserHandlerAvatarArgs_Req_DEFAULT + return UserHandlerSwitch2FAArgs_Req_DEFAULT } return p.Req } -var fieldIDToName_UserHandlerAvatarArgs = map[int16]string{ +var fieldIDToName_UserHandlerSwitch2FAArgs = map[int16]string{ 1: "req", } -func (p *UserHandlerAvatarArgs) IsSetReq() bool { +func (p *UserHandlerSwitch2FAArgs) IsSetReq() bool { return p.Req != nil } -func (p *UserHandlerAvatarArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerSwitch2FAArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11806,7 +13032,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerAvatarArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerSwitch2FAArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11816,17 +13042,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerAvatarArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewAvatarRequest() - if err := p.Req.Read(iprot); err != nil { +func (p *UserHandlerSwitch2FAArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewSwitch2FARequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } -func (p *UserHandlerAvatarArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerSwitch2FAArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Avatar_args"); err != nil { + if err = oprot.WriteStructBegin("Switch2FA_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11852,7 +13079,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerAvatarArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerSwitch2FAArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -11869,40 +13096,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *UserHandlerAvatarArgs) String() string { +func (p *UserHandlerSwitch2FAArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerAvatarArgs(%+v)", *p) + return fmt.Sprintf("UserHandlerSwitch2FAArgs(%+v)", *p) } -type UserHandlerAvatarResult struct { - Success *AvatarResponse `thrift:"success,0,optional"` +type UserHandlerSwitch2FAResult struct { + Success *Switch2FAResponse `thrift:"success,0,optional"` } -func NewUserHandlerAvatarResult() *UserHandlerAvatarResult { - return &UserHandlerAvatarResult{} +func NewUserHandlerSwitch2FAResult() *UserHandlerSwitch2FAResult { + return &UserHandlerSwitch2FAResult{} } -var UserHandlerAvatarResult_Success_DEFAULT *AvatarResponse +func (p *UserHandlerSwitch2FAResult) InitDefault() { +} -func (p *UserHandlerAvatarResult) GetSuccess() (v *AvatarResponse) { +var UserHandlerSwitch2FAResult_Success_DEFAULT *Switch2FAResponse + +func (p *UserHandlerSwitch2FAResult) GetSuccess() (v *Switch2FAResponse) { if !p.IsSetSuccess() { - return UserHandlerAvatarResult_Success_DEFAULT + return UserHandlerSwitch2FAResult_Success_DEFAULT } return p.Success } -var fieldIDToName_UserHandlerAvatarResult = map[int16]string{ +var fieldIDToName_UserHandlerSwitch2FAResult = map[int16]string{ 0: "success", } -func (p *UserHandlerAvatarResult) IsSetSuccess() bool { +func (p *UserHandlerSwitch2FAResult) IsSetSuccess() bool { return p.Success != nil } -func (p *UserHandlerAvatarResult) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerSwitch2FAResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -11948,7 +13178,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerAvatarResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerSwitch2FAResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -11958,17 +13188,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerAvatarResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewAvatarResponse() - if err := p.Success.Read(iprot); err != nil { +func (p *UserHandlerSwitch2FAResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewSwitch2FAResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } -func (p *UserHandlerAvatarResult) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerSwitch2FAResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Avatar_result"); err != nil { + if err = oprot.WriteStructBegin("Switch2FA_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -11994,7 +13225,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerAvatarResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerSwitch2FAResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -12013,40 +13244,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *UserHandlerAvatarResult) String() string { +func (p *UserHandlerSwitch2FAResult) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerAvatarResult(%+v)", *p) + return fmt.Sprintf("UserHandlerSwitch2FAResult(%+v)", *p) } -type UserHandlerSwitch2FAArgs struct { - Req *Switch2FARequest `thrift:"req,1"` +type UserHandlerSearchAvatarArgs struct { + Req *SearchAvatarRequest `thrift:"req,1"` } -func NewUserHandlerSwitch2FAArgs() *UserHandlerSwitch2FAArgs { - return &UserHandlerSwitch2FAArgs{} +func NewUserHandlerSearchAvatarArgs() *UserHandlerSearchAvatarArgs { + return &UserHandlerSearchAvatarArgs{} } -var UserHandlerSwitch2FAArgs_Req_DEFAULT *Switch2FARequest +func (p *UserHandlerSearchAvatarArgs) InitDefault() { +} -func (p *UserHandlerSwitch2FAArgs) GetReq() (v *Switch2FARequest) { +var UserHandlerSearchAvatarArgs_Req_DEFAULT *SearchAvatarRequest + +func (p *UserHandlerSearchAvatarArgs) GetReq() (v *SearchAvatarRequest) { if !p.IsSetReq() { - return UserHandlerSwitch2FAArgs_Req_DEFAULT + return UserHandlerSearchAvatarArgs_Req_DEFAULT } return p.Req } -var fieldIDToName_UserHandlerSwitch2FAArgs = map[int16]string{ +var fieldIDToName_UserHandlerSearchAvatarArgs = map[int16]string{ 1: "req", } -func (p *UserHandlerSwitch2FAArgs) IsSetReq() bool { +func (p *UserHandlerSearchAvatarArgs) IsSetReq() bool { return p.Req != nil } -func (p *UserHandlerSwitch2FAArgs) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerSearchAvatarArgs) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -12092,7 +13326,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerSwitch2FAArgs[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerSearchAvatarArgs[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -12102,17 +13336,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerSwitch2FAArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewSwitch2FARequest() - if err := p.Req.Read(iprot); err != nil { +func (p *UserHandlerSearchAvatarArgs) ReadField1(iprot thrift.TProtocol) error { + _field := NewSearchAvatarRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } -func (p *UserHandlerSwitch2FAArgs) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerSearchAvatarArgs) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Switch2FA_args"); err != nil { + if err = oprot.WriteStructBegin("SearchAvatar_args"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12138,7 +13373,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerSwitch2FAArgs) writeField1(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerSearchAvatarArgs) writeField1(oprot thrift.TProtocol) (err error) { if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil { goto WriteFieldBeginError } @@ -12155,40 +13390,43 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err) } -func (p *UserHandlerSwitch2FAArgs) String() string { +func (p *UserHandlerSearchAvatarArgs) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerSwitch2FAArgs(%+v)", *p) + return fmt.Sprintf("UserHandlerSearchAvatarArgs(%+v)", *p) } -type UserHandlerSwitch2FAResult struct { - Success *Switch2FAResponse `thrift:"success,0,optional"` +type UserHandlerSearchAvatarResult struct { + Success *SearchAvatarResponse `thrift:"success,0,optional"` } -func NewUserHandlerSwitch2FAResult() *UserHandlerSwitch2FAResult { - return &UserHandlerSwitch2FAResult{} +func NewUserHandlerSearchAvatarResult() *UserHandlerSearchAvatarResult { + return &UserHandlerSearchAvatarResult{} } -var UserHandlerSwitch2FAResult_Success_DEFAULT *Switch2FAResponse +func (p *UserHandlerSearchAvatarResult) InitDefault() { +} -func (p *UserHandlerSwitch2FAResult) GetSuccess() (v *Switch2FAResponse) { +var UserHandlerSearchAvatarResult_Success_DEFAULT *SearchAvatarResponse + +func (p *UserHandlerSearchAvatarResult) GetSuccess() (v *SearchAvatarResponse) { if !p.IsSetSuccess() { - return UserHandlerSwitch2FAResult_Success_DEFAULT + return UserHandlerSearchAvatarResult_Success_DEFAULT } return p.Success } -var fieldIDToName_UserHandlerSwitch2FAResult = map[int16]string{ +var fieldIDToName_UserHandlerSearchAvatarResult = map[int16]string{ 0: "success", } -func (p *UserHandlerSwitch2FAResult) IsSetSuccess() bool { +func (p *UserHandlerSearchAvatarResult) IsSetSuccess() bool { return p.Success != nil } -func (p *UserHandlerSwitch2FAResult) Read(iprot thrift.TProtocol) (err error) { +func (p *UserHandlerSearchAvatarResult) Read(iprot thrift.TProtocol) (err error) { var fieldTypeId thrift.TType var fieldId int16 @@ -12234,7 +13472,7 @@ ReadStructBeginError: ReadFieldBeginError: return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err) ReadFieldError: - return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerSwitch2FAResult[fieldId]), err) + return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_UserHandlerSearchAvatarResult[fieldId]), err) SkipFieldError: return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err) @@ -12244,17 +13482,18 @@ ReadStructEndError: return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err) } -func (p *UserHandlerSwitch2FAResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewSwitch2FAResponse() - if err := p.Success.Read(iprot); err != nil { +func (p *UserHandlerSearchAvatarResult) ReadField0(iprot thrift.TProtocol) error { + _field := NewSearchAvatarResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } -func (p *UserHandlerSwitch2FAResult) Write(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerSearchAvatarResult) Write(oprot thrift.TProtocol) (err error) { var fieldId int16 - if err = oprot.WriteStructBegin("Switch2FA_result"); err != nil { + if err = oprot.WriteStructBegin("SearchAvatar_result"); err != nil { goto WriteStructBeginError } if p != nil { @@ -12280,7 +13519,7 @@ WriteStructEndError: return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err) } -func (p *UserHandlerSwitch2FAResult) writeField0(oprot thrift.TProtocol) (err error) { +func (p *UserHandlerSearchAvatarResult) writeField0(oprot thrift.TProtocol) (err error) { if p.IsSetSuccess() { if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil { goto WriteFieldBeginError @@ -12299,11 +13538,11 @@ WriteFieldEndError: return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err) } -func (p *UserHandlerSwitch2FAResult) String() string { +func (p *UserHandlerSearchAvatarResult) String() string { if p == nil { return "" } - return fmt.Sprintf("UserHandlerSwitch2FAResult(%+v)", *p) + return fmt.Sprintf("UserHandlerSearchAvatarResult(%+v)", *p) } @@ -12315,6 +13554,9 @@ func NewUserHandlerGetAccessTokenArgs() *UserHandlerGetAccessTokenArgs { return &UserHandlerGetAccessTokenArgs{} } +func (p *UserHandlerGetAccessTokenArgs) InitDefault() { +} + var UserHandlerGetAccessTokenArgs_Req_DEFAULT *GetAccessTokenRequest func (p *UserHandlerGetAccessTokenArgs) GetReq() (v *GetAccessTokenRequest) { @@ -12389,10 +13631,11 @@ ReadStructEndError: } func (p *UserHandlerGetAccessTokenArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewGetAccessTokenRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewGetAccessTokenRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -12457,6 +13700,9 @@ func NewUserHandlerGetAccessTokenResult() *UserHandlerGetAccessTokenResult { return &UserHandlerGetAccessTokenResult{} } +func (p *UserHandlerGetAccessTokenResult) InitDefault() { +} + var UserHandlerGetAccessTokenResult_Success_DEFAULT *GetAccessTokenResponse func (p *UserHandlerGetAccessTokenResult) GetSuccess() (v *GetAccessTokenResponse) { @@ -12531,10 +13777,11 @@ ReadStructEndError: } func (p *UserHandlerGetAccessTokenResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewGetAccessTokenResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewGetAccessTokenResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -12837,6 +14084,9 @@ func NewVideoHandlerPutVideoArgs() *VideoHandlerPutVideoArgs { return &VideoHandlerPutVideoArgs{} } +func (p *VideoHandlerPutVideoArgs) InitDefault() { +} + var VideoHandlerPutVideoArgs_Req_DEFAULT *PutVideoRequest func (p *VideoHandlerPutVideoArgs) GetReq() (v *PutVideoRequest) { @@ -12911,10 +14161,11 @@ ReadStructEndError: } func (p *VideoHandlerPutVideoArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewPutVideoRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewPutVideoRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -12979,6 +14230,9 @@ func NewVideoHandlerPutVideoResult() *VideoHandlerPutVideoResult { return &VideoHandlerPutVideoResult{} } +func (p *VideoHandlerPutVideoResult) InitDefault() { +} + var VideoHandlerPutVideoResult_Success_DEFAULT *PutVideoResponse func (p *VideoHandlerPutVideoResult) GetSuccess() (v *PutVideoResponse) { @@ -13053,10 +14307,11 @@ ReadStructEndError: } func (p *VideoHandlerPutVideoResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewPutVideoResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewPutVideoResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -13123,6 +14378,9 @@ func NewVideoHandlerListVideoArgs() *VideoHandlerListVideoArgs { return &VideoHandlerListVideoArgs{} } +func (p *VideoHandlerListVideoArgs) InitDefault() { +} + var VideoHandlerListVideoArgs_Req_DEFAULT *ListUserVideoRequest func (p *VideoHandlerListVideoArgs) GetReq() (v *ListUserVideoRequest) { @@ -13197,10 +14455,11 @@ ReadStructEndError: } func (p *VideoHandlerListVideoArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewListUserVideoRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewListUserVideoRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -13265,6 +14524,9 @@ func NewVideoHandlerListVideoResult() *VideoHandlerListVideoResult { return &VideoHandlerListVideoResult{} } +func (p *VideoHandlerListVideoResult) InitDefault() { +} + var VideoHandlerListVideoResult_Success_DEFAULT *ListUserVideoResponse func (p *VideoHandlerListVideoResult) GetSuccess() (v *ListUserVideoResponse) { @@ -13339,10 +14601,11 @@ ReadStructEndError: } func (p *VideoHandlerListVideoResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewListUserVideoResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewListUserVideoResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -13409,6 +14672,9 @@ func NewVideoHandlerSearchVideoArgs() *VideoHandlerSearchVideoArgs { return &VideoHandlerSearchVideoArgs{} } +func (p *VideoHandlerSearchVideoArgs) InitDefault() { +} + var VideoHandlerSearchVideoArgs_Req_DEFAULT *SearchVideoRequest func (p *VideoHandlerSearchVideoArgs) GetReq() (v *SearchVideoRequest) { @@ -13483,10 +14749,11 @@ ReadStructEndError: } func (p *VideoHandlerSearchVideoArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewSearchVideoRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewSearchVideoRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -13551,6 +14818,9 @@ func NewVideoHandlerSearchVideoResult() *VideoHandlerSearchVideoResult { return &VideoHandlerSearchVideoResult{} } +func (p *VideoHandlerSearchVideoResult) InitDefault() { +} + var VideoHandlerSearchVideoResult_Success_DEFAULT *SearchVideoResponse func (p *VideoHandlerSearchVideoResult) GetSuccess() (v *SearchVideoResponse) { @@ -13625,10 +14895,11 @@ ReadStructEndError: } func (p *VideoHandlerSearchVideoResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewSearchVideoResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewSearchVideoResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -13695,6 +14966,9 @@ func NewVideoHandlerHotVideoArgs() *VideoHandlerHotVideoArgs { return &VideoHandlerHotVideoArgs{} } +func (p *VideoHandlerHotVideoArgs) InitDefault() { +} + var VideoHandlerHotVideoArgs_Req_DEFAULT *HotVideoRequest func (p *VideoHandlerHotVideoArgs) GetReq() (v *HotVideoRequest) { @@ -13769,10 +15043,11 @@ ReadStructEndError: } func (p *VideoHandlerHotVideoArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewHotVideoRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewHotVideoRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -13837,6 +15112,9 @@ func NewVideoHandlerHotVideoResult() *VideoHandlerHotVideoResult { return &VideoHandlerHotVideoResult{} } +func (p *VideoHandlerHotVideoResult) InitDefault() { +} + var VideoHandlerHotVideoResult_Success_DEFAULT *HotVideoResponse func (p *VideoHandlerHotVideoResult) GetSuccess() (v *HotVideoResponse) { @@ -13911,10 +15189,11 @@ ReadStructEndError: } func (p *VideoHandlerHotVideoResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewHotVideoResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewHotVideoResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -14266,6 +15545,9 @@ func NewInteractionHandlerLikeActionArgs() *InteractionHandlerLikeActionArgs { return &InteractionHandlerLikeActionArgs{} } +func (p *InteractionHandlerLikeActionArgs) InitDefault() { +} + var InteractionHandlerLikeActionArgs_Req_DEFAULT *LikeActionRequest func (p *InteractionHandlerLikeActionArgs) GetReq() (v *LikeActionRequest) { @@ -14340,10 +15622,11 @@ ReadStructEndError: } func (p *InteractionHandlerLikeActionArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewLikeActionRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewLikeActionRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -14408,6 +15691,9 @@ func NewInteractionHandlerLikeActionResult() *InteractionHandlerLikeActionResult return &InteractionHandlerLikeActionResult{} } +func (p *InteractionHandlerLikeActionResult) InitDefault() { +} + var InteractionHandlerLikeActionResult_Success_DEFAULT *LikeActionResponse func (p *InteractionHandlerLikeActionResult) GetSuccess() (v *LikeActionResponse) { @@ -14482,10 +15768,11 @@ ReadStructEndError: } func (p *InteractionHandlerLikeActionResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewLikeActionResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewLikeActionResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -14552,6 +15839,9 @@ func NewInteractionHandlerLikeListArgs() *InteractionHandlerLikeListArgs { return &InteractionHandlerLikeListArgs{} } +func (p *InteractionHandlerLikeListArgs) InitDefault() { +} + var InteractionHandlerLikeListArgs_Req_DEFAULT *LikeListRequest func (p *InteractionHandlerLikeListArgs) GetReq() (v *LikeListRequest) { @@ -14626,10 +15916,11 @@ ReadStructEndError: } func (p *InteractionHandlerLikeListArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewLikeListRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewLikeListRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -14694,6 +15985,9 @@ func NewInteractionHandlerLikeListResult() *InteractionHandlerLikeListResult { return &InteractionHandlerLikeListResult{} } +func (p *InteractionHandlerLikeListResult) InitDefault() { +} + var InteractionHandlerLikeListResult_Success_DEFAULT *LikeListResponse func (p *InteractionHandlerLikeListResult) GetSuccess() (v *LikeListResponse) { @@ -14768,10 +16062,11 @@ ReadStructEndError: } func (p *InteractionHandlerLikeListResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewLikeListResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewLikeListResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -14838,6 +16133,9 @@ func NewInteractionHandlerCommentCreateArgs() *InteractionHandlerCommentCreateAr return &InteractionHandlerCommentCreateArgs{} } +func (p *InteractionHandlerCommentCreateArgs) InitDefault() { +} + var InteractionHandlerCommentCreateArgs_Req_DEFAULT *CommentCreateRequest func (p *InteractionHandlerCommentCreateArgs) GetReq() (v *CommentCreateRequest) { @@ -14912,10 +16210,11 @@ ReadStructEndError: } func (p *InteractionHandlerCommentCreateArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewCommentCreateRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewCommentCreateRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -14980,6 +16279,9 @@ func NewInteractionHandlerCommentCreateResult() *InteractionHandlerCommentCreate return &InteractionHandlerCommentCreateResult{} } +func (p *InteractionHandlerCommentCreateResult) InitDefault() { +} + var InteractionHandlerCommentCreateResult_Success_DEFAULT *CommentCreateResponse func (p *InteractionHandlerCommentCreateResult) GetSuccess() (v *CommentCreateResponse) { @@ -15054,10 +16356,11 @@ ReadStructEndError: } func (p *InteractionHandlerCommentCreateResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewCommentCreateResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewCommentCreateResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -15124,6 +16427,9 @@ func NewInteractionHandlerCommentDeleteArgs() *InteractionHandlerCommentDeleteAr return &InteractionHandlerCommentDeleteArgs{} } +func (p *InteractionHandlerCommentDeleteArgs) InitDefault() { +} + var InteractionHandlerCommentDeleteArgs_Req_DEFAULT *CommentDeleteRequest func (p *InteractionHandlerCommentDeleteArgs) GetReq() (v *CommentDeleteRequest) { @@ -15198,10 +16504,11 @@ ReadStructEndError: } func (p *InteractionHandlerCommentDeleteArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewCommentDeleteRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewCommentDeleteRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -15266,6 +16573,9 @@ func NewInteractionHandlerCommentDeleteResult() *InteractionHandlerCommentDelete return &InteractionHandlerCommentDeleteResult{} } +func (p *InteractionHandlerCommentDeleteResult) InitDefault() { +} + var InteractionHandlerCommentDeleteResult_Success_DEFAULT *CommentDeleteResponse func (p *InteractionHandlerCommentDeleteResult) GetSuccess() (v *CommentDeleteResponse) { @@ -15340,10 +16650,11 @@ ReadStructEndError: } func (p *InteractionHandlerCommentDeleteResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewCommentDeleteResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewCommentDeleteResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -15410,6 +16721,9 @@ func NewInteractionHandlerCommentListArgs() *InteractionHandlerCommentListArgs { return &InteractionHandlerCommentListArgs{} } +func (p *InteractionHandlerCommentListArgs) InitDefault() { +} + var InteractionHandlerCommentListArgs_Req_DEFAULT *CommentListRequest func (p *InteractionHandlerCommentListArgs) GetReq() (v *CommentListRequest) { @@ -15484,10 +16798,11 @@ ReadStructEndError: } func (p *InteractionHandlerCommentListArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewCommentListRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewCommentListRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -15552,6 +16867,9 @@ func NewInteractionHandlerCommentListResult() *InteractionHandlerCommentListResu return &InteractionHandlerCommentListResult{} } +func (p *InteractionHandlerCommentListResult) InitDefault() { +} + var InteractionHandlerCommentListResult_Success_DEFAULT *CommentListResponse func (p *InteractionHandlerCommentListResult) GetSuccess() (v *CommentListResponse) { @@ -15626,10 +16944,11 @@ ReadStructEndError: } func (p *InteractionHandlerCommentListResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewCommentListResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewCommentListResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -15932,6 +17251,9 @@ func NewFollowHandlerFollowActionArgs() *FollowHandlerFollowActionArgs { return &FollowHandlerFollowActionArgs{} } +func (p *FollowHandlerFollowActionArgs) InitDefault() { +} + var FollowHandlerFollowActionArgs_Req_DEFAULT *FollowActionRequest func (p *FollowHandlerFollowActionArgs) GetReq() (v *FollowActionRequest) { @@ -16006,10 +17328,11 @@ ReadStructEndError: } func (p *FollowHandlerFollowActionArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewFollowActionRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewFollowActionRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -16074,6 +17397,9 @@ func NewFollowHandlerFollowActionResult() *FollowHandlerFollowActionResult { return &FollowHandlerFollowActionResult{} } +func (p *FollowHandlerFollowActionResult) InitDefault() { +} + var FollowHandlerFollowActionResult_Success_DEFAULT *FollowActionResponse func (p *FollowHandlerFollowActionResult) GetSuccess() (v *FollowActionResponse) { @@ -16148,10 +17474,11 @@ ReadStructEndError: } func (p *FollowHandlerFollowActionResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewFollowActionResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewFollowActionResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -16218,6 +17545,9 @@ func NewFollowHandlerFollowerListArgs() *FollowHandlerFollowerListArgs { return &FollowHandlerFollowerListArgs{} } +func (p *FollowHandlerFollowerListArgs) InitDefault() { +} + var FollowHandlerFollowerListArgs_Req_DEFAULT *FollowerListRequest func (p *FollowHandlerFollowerListArgs) GetReq() (v *FollowerListRequest) { @@ -16292,10 +17622,11 @@ ReadStructEndError: } func (p *FollowHandlerFollowerListArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewFollowerListRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewFollowerListRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -16360,6 +17691,9 @@ func NewFollowHandlerFollowerListResult() *FollowHandlerFollowerListResult { return &FollowHandlerFollowerListResult{} } +func (p *FollowHandlerFollowerListResult) InitDefault() { +} + var FollowHandlerFollowerListResult_Success_DEFAULT *FollowerListResponse func (p *FollowHandlerFollowerListResult) GetSuccess() (v *FollowerListResponse) { @@ -16434,10 +17768,11 @@ ReadStructEndError: } func (p *FollowHandlerFollowerListResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewFollowerListResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewFollowerListResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -16504,6 +17839,9 @@ func NewFollowHandlerFollowingListArgs() *FollowHandlerFollowingListArgs { return &FollowHandlerFollowingListArgs{} } +func (p *FollowHandlerFollowingListArgs) InitDefault() { +} + var FollowHandlerFollowingListArgs_Req_DEFAULT *FollowingListRequest func (p *FollowHandlerFollowingListArgs) GetReq() (v *FollowingListRequest) { @@ -16578,10 +17916,11 @@ ReadStructEndError: } func (p *FollowHandlerFollowingListArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewFollowingListRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewFollowingListRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -16646,6 +17985,9 @@ func NewFollowHandlerFollowingListResult() *FollowHandlerFollowingListResult { return &FollowHandlerFollowingListResult{} } +func (p *FollowHandlerFollowingListResult) InitDefault() { +} + var FollowHandlerFollowingListResult_Success_DEFAULT *FollowingListResponse func (p *FollowHandlerFollowingListResult) GetSuccess() (v *FollowingListResponse) { @@ -16720,10 +18062,11 @@ ReadStructEndError: } func (p *FollowHandlerFollowingListResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewFollowingListResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewFollowingListResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -16790,6 +18133,9 @@ func NewFollowHandlerFriendListArgs() *FollowHandlerFriendListArgs { return &FollowHandlerFriendListArgs{} } +func (p *FollowHandlerFriendListArgs) InitDefault() { +} + var FollowHandlerFriendListArgs_Req_DEFAULT *FriendListRequest func (p *FollowHandlerFriendListArgs) GetReq() (v *FriendListRequest) { @@ -16864,10 +18210,11 @@ ReadStructEndError: } func (p *FollowHandlerFriendListArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewFriendListRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewFriendListRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -16932,6 +18279,9 @@ func NewFollowHandlerFriendListResult() *FollowHandlerFriendListResult { return &FollowHandlerFriendListResult{} } +func (p *FollowHandlerFriendListResult) InitDefault() { +} + var FollowHandlerFriendListResult_Success_DEFAULT *FriendListResponse func (p *FollowHandlerFriendListResult) GetSuccess() (v *FriendListResponse) { @@ -17006,10 +18356,11 @@ ReadStructEndError: } func (p *FollowHandlerFriendListResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewFriendListResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewFriendListResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -17214,6 +18565,9 @@ func NewChatHandlerChatArgs() *ChatHandlerChatArgs { return &ChatHandlerChatArgs{} } +func (p *ChatHandlerChatArgs) InitDefault() { +} + var ChatHandlerChatArgs_Req_DEFAULT *MessageChatRequest func (p *ChatHandlerChatArgs) GetReq() (v *MessageChatRequest) { @@ -17288,10 +18642,11 @@ ReadStructEndError: } func (p *ChatHandlerChatArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewMessageChatRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewMessageChatRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -17356,6 +18711,9 @@ func NewChatHandlerChatResult() *ChatHandlerChatResult { return &ChatHandlerChatResult{} } +func (p *ChatHandlerChatResult) InitDefault() { +} + var ChatHandlerChatResult_Success_DEFAULT *MessageChatResponse func (p *ChatHandlerChatResult) GetSuccess() (v *MessageChatResponse) { @@ -17430,10 +18788,11 @@ ReadStructEndError: } func (p *ChatHandlerChatResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewMessageChatResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewMessageChatResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } @@ -17500,6 +18859,9 @@ func NewChatHandlerMessageRecordArgs() *ChatHandlerMessageRecordArgs { return &ChatHandlerMessageRecordArgs{} } +func (p *ChatHandlerMessageRecordArgs) InitDefault() { +} + var ChatHandlerMessageRecordArgs_Req_DEFAULT *MessageRecordRequest func (p *ChatHandlerMessageRecordArgs) GetReq() (v *MessageRecordRequest) { @@ -17574,10 +18936,11 @@ ReadStructEndError: } func (p *ChatHandlerMessageRecordArgs) ReadField1(iprot thrift.TProtocol) error { - p.Req = NewMessageRecordRequest() - if err := p.Req.Read(iprot); err != nil { + _field := NewMessageRecordRequest() + if err := _field.Read(iprot); err != nil { return err } + p.Req = _field return nil } @@ -17642,6 +19005,9 @@ func NewChatHandlerMessageRecordResult() *ChatHandlerMessageRecordResult { return &ChatHandlerMessageRecordResult{} } +func (p *ChatHandlerMessageRecordResult) InitDefault() { +} + var ChatHandlerMessageRecordResult_Success_DEFAULT *MessageRecordResponse func (p *ChatHandlerMessageRecordResult) GetSuccess() (v *MessageRecordResponse) { @@ -17716,10 +19082,11 @@ ReadStructEndError: } func (p *ChatHandlerMessageRecordResult) ReadField0(iprot thrift.TProtocol) error { - p.Success = NewMessageRecordResponse() - if err := p.Success.Read(iprot); err != nil { + _field := NewMessageRecordResponse() + if err := _field.Read(iprot); err != nil { return err } + p.Success = _field return nil } diff --git a/cmd/api/biz/mw/jwt/jwt.go b/cmd/api/biz/mw/jwt/jwt.go index be828ba..546ecb6 100644 --- a/cmd/api/biz/mw/jwt/jwt.go +++ b/cmd/api/biz/mw/jwt/jwt.go @@ -2,7 +2,7 @@ package jwt import ( "bibi/cmd/api/biz/model/api" - "bibi/cmd/api/biz/rpc" + "bibi/cmd/api/biz/rpc_client" "bibi/config" "bibi/pkg/errno" "bibi/pkg/pack" @@ -46,7 +46,7 @@ func Init() { return nil, err } - rpcResp, err := rpc.UserLogin(ctx, &user.LoginRequest{ + rpcResp, err := rpc_client.UserLogin(ctx, &user.LoginRequest{ Username: req.Username, Password: req.Password, }) diff --git a/cmd/api/biz/router/api/api.go b/cmd/api/biz/router/api/api.go index 0722dcb..8f7a90c 100644 --- a/cmd/api/biz/router/api/api.go +++ b/cmd/api/biz/router/api/api.go @@ -55,6 +55,7 @@ func Register(r *server.Hertz) { _user.POST("/switch2fa", append(_switch2faMw(), api.Switch2FA)...) { _avatar := _user.Group("/avatar", _avatarMw()...) + _avatar.POST("/search", append(_searchavatarMw(), api.SearchAvatar)...) _avatar.PUT("/upload", append(_avatar0Mw(), api.Avatar)...) } { diff --git a/cmd/api/biz/router/api/middleware.go b/cmd/api/biz/router/api/middleware.go index 29e9622..57ba6d8 100644 --- a/cmd/api/biz/router/api/middleware.go +++ b/cmd/api/biz/router/api/middleware.go @@ -192,3 +192,8 @@ func _chatMw() []app.HandlerFunc { jwt.JwtMiddleware.MiddlewareFunc(), } } + +func _searchavatarMw() []app.HandlerFunc { + // your code... + return nil +} diff --git a/cmd/api/biz/rpc/chat.go b/cmd/api/biz/rpc_client/chat.go similarity index 90% rename from cmd/api/biz/rpc/chat.go rename to cmd/api/biz/rpc_client/chat.go index a4e724b..73ca8d2 100644 --- a/cmd/api/biz/rpc/chat.go +++ b/cmd/api/biz/rpc_client/chat.go @@ -1,21 +1,23 @@ -package rpc +package rpc_client import ( - "bibi/config" "bibi/kitex_gen/chat" "bibi/kitex_gen/chat/chathandler" "bibi/pkg/constants" + "github.com/kitex-contrib/registry-nacos/resolver" opentracing "github.com/kitex-contrib/tracer-opentracing" "context" "github.com/cloudwego/kitex/client" "github.com/cloudwego/kitex/pkg/loadbalance" "github.com/cloudwego/kitex/pkg/retry" - etcd "github.com/kitex-contrib/registry-etcd" ) func InitChatRPC() { - r, err := etcd.NewEtcdResolver([]string{config.Etcd.Addr}) + r, err := resolver.NewDefaultNacosResolver() + if err != nil { + panic(err) + } if err != nil { panic(err) diff --git a/cmd/api/biz/rpc/follow.go b/cmd/api/biz/rpc_client/follow.go similarity index 91% rename from cmd/api/biz/rpc/follow.go rename to cmd/api/biz/rpc_client/follow.go index 192ad7f..892ae18 100644 --- a/cmd/api/biz/rpc/follow.go +++ b/cmd/api/biz/rpc_client/follow.go @@ -1,7 +1,6 @@ -package rpc +package rpc_client import ( - "bibi/config" "bibi/kitex_gen/follow" "bibi/kitex_gen/follow/followhandler" "bibi/pkg/constants" @@ -9,12 +8,15 @@ import ( "github.com/cloudwego/kitex/client" "github.com/cloudwego/kitex/pkg/loadbalance" "github.com/cloudwego/kitex/pkg/retry" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/resolver" opentracing "github.com/kitex-contrib/tracer-opentracing" ) func InitFollowRPC() { - r, err := etcd.NewEtcdResolver([]string{config.Etcd.Addr}) + r, err := resolver.NewDefaultNacosResolver() + if err != nil { + panic(err) + } if err != nil { panic(err) diff --git a/cmd/api/biz/rpc/init.go b/cmd/api/biz/rpc_client/init.go similarity index 96% rename from cmd/api/biz/rpc/init.go rename to cmd/api/biz/rpc_client/init.go index 695c9cc..552d17d 100644 --- a/cmd/api/biz/rpc/init.go +++ b/cmd/api/biz/rpc_client/init.go @@ -1,4 +1,4 @@ -package rpc +package rpc_client import ( "bibi/kitex_gen/chat/chathandler" diff --git a/cmd/api/biz/rpc/interaction.go b/cmd/api/biz/rpc_client/interaction.go similarity index 93% rename from cmd/api/biz/rpc/interaction.go rename to cmd/api/biz/rpc_client/interaction.go index 321fcea..c3cbcc8 100644 --- a/cmd/api/biz/rpc/interaction.go +++ b/cmd/api/biz/rpc_client/interaction.go @@ -1,21 +1,23 @@ -package rpc +package rpc_client import ( - "bibi/config" "bibi/kitex_gen/interaction" "bibi/kitex_gen/interaction/interactionhandler" "context" + "github.com/kitex-contrib/registry-nacos/resolver" opentracing "github.com/kitex-contrib/tracer-opentracing" "bibi/pkg/constants" "github.com/cloudwego/kitex/client" "github.com/cloudwego/kitex/pkg/loadbalance" "github.com/cloudwego/kitex/pkg/retry" - etcd "github.com/kitex-contrib/registry-etcd" ) func InitInteractionRPC() { - r, err := etcd.NewEtcdResolver([]string{config.Etcd.Addr}) + r, err := resolver.NewDefaultNacosResolver() + if err != nil { + panic(err) + } if err != nil { panic(err) diff --git a/cmd/api/biz/rpc/user.go b/cmd/api/biz/rpc_client/user.go similarity index 64% rename from cmd/api/biz/rpc/user.go rename to cmd/api/biz/rpc_client/user.go index 6e5118d..26e4a1b 100644 --- a/cmd/api/biz/rpc/user.go +++ b/cmd/api/biz/rpc_client/user.go @@ -1,21 +1,28 @@ -package rpc +package rpc_client import ( - "bibi/config" "bibi/kitex_gen/user" "bibi/kitex_gen/user/userhandler" "bibi/pkg/constants" "context" "github.com/cloudwego/kitex/client" + "github.com/cloudwego/kitex/pkg/circuitbreak" "github.com/cloudwego/kitex/pkg/loadbalance" "github.com/cloudwego/kitex/pkg/retry" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/cloudwego/kitex/pkg/rpcinfo" + "github.com/kitex-contrib/registry-nacos/resolver" + + //etcd "github.com/kitex-contrib/registry-etcd" kopentracing "github.com/kitex-contrib/tracer-opentracing" ) -func InitUserRPC() { - r, err := etcd.NewEtcdResolver([]string{config.Etcd.Addr}) +func GenServiceCBKeyFunc(ri rpcinfo.RPCInfo) string { + // circuitbreak.RPCInfo2Key returns "$fromServiceName/$toServiceName/$method" + return circuitbreak.RPCInfo2Key(ri) +} +func InitUserRPC() { + r, err := resolver.NewDefaultNacosResolver() if err != nil { panic(err) } @@ -23,6 +30,11 @@ func InitUserRPC() { //kTracer, kCloser := tracer.InitJaegerTracer("kitex-client") //defer kCloser.Close() //tracer.InitJaegerTracer("kitex-client") + //nacosClient, err := nacos.NewClient(nacos.Options{ + // NamespaceID: constants.APIServiceName, + //}) + // build a new CBSuite with + cbs := circuitbreak.NewCBSuite(GenServiceCBKeyFunc) c, err := userhandler.NewClient( constants.UserServiceName, @@ -31,13 +43,22 @@ func InitUserRPC() { client.WithConnectTimeout(constants.ConnectTimeout), client.WithFailureRetry(retry.NewFailurePolicy()), client.WithResolver(r), + //client.WithSuite(nacosclient.NewSuite(constants.UserServiceName, constants.APIServiceName, nacosClient)), client.WithSuite(kopentracing.NewDefaultClientSuite()), //client.WithSuite(kopentracing.NewClientSuite(kTracer, func(c context.Context) string { // endpoint := rpcinfo.GetRPCInfo(c).From() // return endpoint.ServiceName() + "::" + endpoint.Method() //})), //jaeger client.WithLoadBalancer(loadbalance.NewWeightedRoundRobinBalancer()), + client.WithCircuitBreaker(cbs), // add CBSuite to the client options ) + // update circuit breaker config for a certain key (should be consistent with GenServiceCBKeyFunc) + // this can be called at any time, and will take effect for following requests + cbs.UpdateServiceCBConfig("fromServiceName/toServiceName/method", circuitbreak.CBConfig{ + Enable: true, + ErrRate: 0.3, // requests will be blocked if error rate >= 30% + MinSample: 200, // this config takes effect if sampled requests are more than `MinSample` + }) if err != nil { panic(err) diff --git a/cmd/api/biz/rpc/video.go b/cmd/api/biz/rpc_client/video.go similarity index 93% rename from cmd/api/biz/rpc/video.go rename to cmd/api/biz/rpc_client/video.go index 1552a6b..12086b3 100644 --- a/cmd/api/biz/rpc/video.go +++ b/cmd/api/biz/rpc_client/video.go @@ -1,7 +1,6 @@ -package rpc +package rpc_client import ( - "bibi/config" "bibi/kitex_gen/video" "bibi/kitex_gen/video/videohandler" "bibi/pkg/constants" @@ -10,12 +9,15 @@ import ( "github.com/cloudwego/kitex/client" "github.com/cloudwego/kitex/pkg/loadbalance" "github.com/cloudwego/kitex/pkg/retry" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/resolver" opentracing "github.com/kitex-contrib/tracer-opentracing" ) func InitVideoRPC() { - r, err := etcd.NewEtcdResolver([]string{config.Etcd.Addr}) + r, err := resolver.NewDefaultNacosResolver() + if err != nil { + panic(err) + } if err != nil { panic(err) diff --git a/cmd/api/biz/ws/monitor/chat.go b/cmd/api/biz/ws/monitor/chat.go index 48cd8fb..4ee77f6 100644 --- a/cmd/api/biz/ws/monitor/chat.go +++ b/cmd/api/biz/ws/monitor/chat.go @@ -1,7 +1,7 @@ package monitor import ( - "bibi/cmd/api/biz/rpc" + "bibi/cmd/api/biz/rpc_client" "bibi/cmd/api/biz/ws" "bibi/kitex_gen/chat" "bibi/pkg/errno" @@ -72,7 +72,7 @@ func (c *Client) Write() { } func (c *Client) IfNotReadMessage(uid int64) error { - rpcResp, err := rpc.IsNotReadMessage(c.Ctx, &chat.IsNotReadMessageRequest{ + rpcResp, err := rpc_client.IsNotReadMessage(c.Ctx, &chat.IsNotReadMessageRequest{ UserId: uid, }) if err != nil { diff --git a/cmd/api/biz/ws/monitor/init.go b/cmd/api/biz/ws/monitor/init.go index a8880af..ac25688 100644 --- a/cmd/api/biz/ws/monitor/init.go +++ b/cmd/api/biz/ws/monitor/init.go @@ -1,7 +1,7 @@ package monitor import ( - "bibi/cmd/api/biz/rpc" + "bibi/cmd/api/biz/rpc_client" "bibi/cmd/api/biz/ws" "bibi/kitex_gen/chat" "bibi/pkg/errno" @@ -51,7 +51,7 @@ func (manager *ClientManager) Listen() { var replyMsg ws.ReplyMsg _, _ = replyMsg.UnmarshalMsg(marshalMsg) - rpcResp, err := rpc.MessageSave(broadcast.Client.Ctx, &chat.MessageSaveRequest{ + rpcResp, err := rpc_client.MessageSave(broadcast.Client.Ctx, &chat.MessageSaveRequest{ TargetId: targetId, UserId: replyMsg.From, Content: replyMsg.Content, diff --git a/cmd/api/docs/docs.go b/cmd/api/docs/docs.go index d927534..47c3077 100644 --- a/cmd/api/docs/docs.go +++ b/cmd/api/docs/docs.go @@ -439,6 +439,11 @@ const docTemplate = `{ "responses": {} } }, + "/bibi/user/avatar/search": { + "post": { + "responses": {} + } + }, "/bibi/user/avatar/upload": { "put": { "description": "revise user's avatar", diff --git a/cmd/api/docs/swagger.json b/cmd/api/docs/swagger.json index b761837..a5f5ad4 100644 --- a/cmd/api/docs/swagger.json +++ b/cmd/api/docs/swagger.json @@ -428,6 +428,11 @@ "responses": {} } }, + "/bibi/user/avatar/search": { + "post": { + "responses": {} + } + }, "/bibi/user/avatar/upload": { "put": { "description": "revise user's avatar", diff --git a/cmd/api/docs/swagger.yaml b/cmd/api/docs/swagger.yaml index ae53c26..b0ecd9a 100644 --- a/cmd/api/docs/swagger.yaml +++ b/cmd/api/docs/swagger.yaml @@ -290,6 +290,9 @@ paths: - application/json responses: {} summary: message_record + /bibi/user/avatar/search: + post: + responses: {} /bibi/user/avatar/upload: put: consumes: diff --git a/cmd/api/main.go b/cmd/api/main.go index 1af621d..2468d04 100755 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -4,14 +4,17 @@ package main import ( "bibi/cmd/api/biz/mw/jwt" - "bibi/cmd/api/biz/rpc" + "bibi/cmd/api/biz/rpc_client" "bibi/cmd/api/biz/ws/monitor" "bibi/config" "bibi/pkg/constants" "bibi/pkg/tracer" - "bibi/pkg/utils" + myutils "bibi/pkg/utils" "github.com/cloudwego/hertz/pkg/app/server" + "github.com/cloudwego/hertz/pkg/app/server/registry" + "github.com/cloudwego/hertz/pkg/common/utils" "github.com/cloudwego/kitex/pkg/klog" + "github.com/hertz-contrib/registry/nacos/v2" hertztracer "github.com/hertz-contrib/tracer/hertz" ) @@ -19,7 +22,8 @@ var listenAddr string func Init() { config.Init(constants.APIServiceName) - rpc.Init() + tracer.InitJaegerTracer(constants.APIServiceName) + rpc_client.Init() jwt.Init() } @@ -27,27 +31,40 @@ func main() { Init() //_, hCloser := tracer.InitApiTracer(constants.APIServiceName) //defer hCloser.Close() - tracer.InitJaegerTracer(constants.APIServiceName) + r, err := nacos.NewDefaultNacosRegistry( + //nacos.WithRegistryCluster(constants.ClusterName), + //nacos.WithRegistryGroup(constants.ClusterName), + ) + if err != nil { + klog.Fatal(err) + } //获取addr for index, addr := range config.Service.AddrList { - if ok := utils.AddrCheck(addr); ok { + if ok := myutils.AddrCheck(addr); ok { listenAddr = addr break } - if index == len(config.Service.AddrList)-1 { klog.Fatal("not available addr") } } + h := server.New( server.WithHostPorts(listenAddr), server.WithStreamBody(true), + server.WithRegistry(r, ®istry.Info{ + ServiceName: "hertz.api.demo", + Addr: utils.NewNetAddr("tcp", listenAddr), + Weight: 10, + Tags: nil, + }), server.WithTracer(hertztracer.NewDefaultTracer()), - server.WithMaxRequestBodySize(constants.MaxRequestBodySize), //最大字节数 //server.WithTracer(hertztracer.NewTracer(hTracer, func(c *app.RequestContext) string { // return listenAddr + "::" + c.FullPath() //})), //jaeger + server.WithMaxRequestBodySize(constants.MaxRequestBodySize), //最大字节数 + ) h.Use(hertztracer.ServerCtx()) //jaeger diff --git a/cmd/chat/main.go b/cmd/chat/main.go index 176a938..341b0cf 100644 --- a/cmd/chat/main.go +++ b/cmd/chat/main.go @@ -17,7 +17,7 @@ import ( "github.com/cloudwego/netpoll" elastic "github.com/elastic/go-elasticsearch/v8" kitexlogrus "github.com/kitex-contrib/obs-opentelemetry/logging/logrus" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/registry" "github.com/sirupsen/logrus" "net" "net/http" @@ -43,11 +43,10 @@ func Init() { func main() { Init() //注册到etcd - r, err := etcd.NewEtcdRegistry([]string{config.Etcd.Addr}) + r, err := registry.NewDefaultNacosRegistry() if err != nil { - klog.Fatal(err) + panic(err) } - //获取addr for index, addr := range config.Service.AddrList { if ok := utils.AddrCheck(addr); ok { diff --git a/cmd/follow/main.go b/cmd/follow/main.go index bd947e7..424fb17 100644 --- a/cmd/follow/main.go +++ b/cmd/follow/main.go @@ -17,7 +17,7 @@ import ( "github.com/cloudwego/netpoll" elastic "github.com/elastic/go-elasticsearch/v8" kitexlogrus "github.com/kitex-contrib/obs-opentelemetry/logging/logrus" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/registry" "github.com/sirupsen/logrus" "net" "net/http" @@ -43,11 +43,10 @@ func Init() { func main() { Init() //注册到etcd - r, err := etcd.NewEtcdRegistry([]string{config.Etcd.Addr}) + r, err := registry.NewDefaultNacosRegistry() if err != nil { - klog.Fatal(err) + panic(err) } - //获取addr for index, addr := range config.Service.AddrList { if ok := utils.AddrCheck(addr); ok { diff --git a/cmd/follow/rpc/user.go b/cmd/follow/rpc/user.go index 0d41edf..2e5d057 100644 --- a/cmd/follow/rpc/user.go +++ b/cmd/follow/rpc/user.go @@ -1,7 +1,6 @@ package rpc import ( - "bibi/config" "bibi/kitex_gen/user" "bibi/kitex_gen/user/userhandler" "bibi/pkg/constants" @@ -9,13 +8,16 @@ import ( "github.com/cloudwego/kitex/client" "github.com/cloudwego/kitex/pkg/loadbalance" "github.com/cloudwego/kitex/pkg/retry" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/resolver" ) var userClient userhandler.Client func InitUserRPC() { - r, err := etcd.NewEtcdResolver([]string{config.Etcd.Addr}) + r, err := resolver.NewDefaultNacosResolver() + if err != nil { + panic(err) + } if err != nil { panic(err) diff --git a/cmd/interaction/main.go b/cmd/interaction/main.go index a674703..4d435ab 100644 --- a/cmd/interaction/main.go +++ b/cmd/interaction/main.go @@ -18,7 +18,7 @@ import ( "github.com/cloudwego/netpoll" elastic "github.com/elastic/go-elasticsearch/v8" kitexlogrus "github.com/kitex-contrib/obs-opentelemetry/logging/logrus" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/registry" opentracing "github.com/kitex-contrib/tracer-opentracing" "github.com/sirupsen/logrus" "net" @@ -45,9 +45,9 @@ func Init() { func main() { Init() //注册到etcd - r, err := etcd.NewEtcdRegistry([]string{config.Etcd.Addr}) + r, err := registry.NewDefaultNacosRegistry() if err != nil { - klog.Fatal(err) + panic(err) } //获取addr diff --git a/cmd/interaction/rpc/video.go b/cmd/interaction/rpc/video.go index c07ce80..4b7d592 100644 --- a/cmd/interaction/rpc/video.go +++ b/cmd/interaction/rpc/video.go @@ -1,7 +1,6 @@ package rpc import ( - "bibi/config" "bibi/kitex_gen/video" "bibi/kitex_gen/video/videohandler" "bibi/pkg/constants" @@ -9,14 +8,17 @@ import ( "github.com/cloudwego/kitex/client" "github.com/cloudwego/kitex/pkg/loadbalance" "github.com/cloudwego/kitex/pkg/retry" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/resolver" opentracing "github.com/kitex-contrib/tracer-opentracing" ) var videoClient videohandler.Client func InitVideoRPC() { - r, err := etcd.NewEtcdResolver([]string{config.Etcd.Addr}) + r, err := resolver.NewDefaultNacosResolver() + if err != nil { + panic(err) + } if err != nil { panic(err) diff --git a/cmd/user/dal/db/init.go b/cmd/user/dal/db/init.go index 909e259..64a50ef 100644 --- a/cmd/user/dal/db/init.go +++ b/cmd/user/dal/db/init.go @@ -3,17 +3,22 @@ package db import ( "bibi/pkg/constants" "bibi/pkg/utils" + "context" "github.com/cloudwego/kitex/pkg/klog" + "github.com/milvus-io/milvus-sdk-go/v2/client" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" "gorm.io/gorm/schema" ) -var DB *gorm.DB +var ( + DB *gorm.DB + MilvusCli client.Client +) -func Init() { +func InitMySQL() { var err error DB, err = gorm.Open(mysql.Open(utils.InitMysqlDSN()), &gorm.Config{ @@ -34,3 +39,12 @@ func Init() { sqlDB.SetConnMaxLifetime(constants.ConnMaxLifetime) DB = DB.Table(constants.UserTableName) } +func InitMilvus() { + cli, err := client.NewClient(context.Background(), client.Config{ + Address: "0.0.0.0:19530", + }) + if err != nil { + klog.Fatal("milvus connect error") + } + MilvusCli = cli +} diff --git a/cmd/user/dal/db/db.go b/cmd/user/dal/db/mysql.go similarity index 100% rename from cmd/user/dal/db/db.go rename to cmd/user/dal/db/mysql.go diff --git a/cmd/user/dal/init.go b/cmd/user/dal/init.go index 72b1559..0d8c53c 100644 --- a/cmd/user/dal/init.go +++ b/cmd/user/dal/init.go @@ -6,6 +6,6 @@ import ( ) func Init() { - db.Init() + db.InitMySQL() cache.Init() } diff --git a/cmd/user/limiter.go b/cmd/user/limiter.go new file mode 100644 index 0000000..52e1f40 --- /dev/null +++ b/cmd/user/limiter.go @@ -0,0 +1,30 @@ +package main + +import ( + "bibi/pkg/constants" + "github.com/cloudwego/kitex/pkg/limit" +) + +type LimiterUpdater struct { + updater limit.Updater +} + +type LimitReporter interface { + ConnOverloadReport() + QPSOverloadReport() +} + +func (lu *LimiterUpdater) Update() { + // your logic: set new option as needed + newOpt := &limit.Option{ + MaxConnections: constants.UpdateConnections, + MaxQPS: constants.UpdateQPS, + } + // update limit config + lu.updater.UpdateLimit(newOpt) + // your logic +} + +func (lu *LimiterUpdater) UpdateControl(u limit.Updater) { + u = lu.updater +} diff --git a/cmd/user/main.go b/cmd/user/main.go index 5a970b5..0f2183b 100644 --- a/cmd/user/main.go +++ b/cmd/user/main.go @@ -12,12 +12,15 @@ import ( "github.com/cloudwego/kitex/pkg/rpcinfo" "github.com/cloudwego/kitex/server" "github.com/cloudwego/netpoll" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/registry" kopentracing "github.com/kitex-contrib/tracer-opentracing" "log" ) -var listenAddr string +var ( + listenAddr string + lu = new(LimiterUpdater) +) //var GloTracer opentracing.Tracer @@ -30,14 +33,11 @@ func Init() { func main() { Init() - //kTracer, closer := tracer.InitJaegerTracer("kitex-server") - //defer closer.Close() - //opentracing.SetGlobalTracer(kTracer) - //注册到etcd - r, err := etcd.NewEtcdRegistry([]string{config.Etcd.Addr}) + //nacos + r, err := registry.NewDefaultNacosRegistry() if err != nil { - klog.Fatal(err) + panic(err) } //获取addr @@ -66,21 +66,30 @@ func main() { //那Impl携带一个Client就没用了 svr := user.NewServer(userHandlerImpl, // 指定 Registry 与服务基本信息 + server.WithServerBasicInfo( + &rpcinfo.EndpointBasicInfo{ + ServiceName: constants.UserServiceName, + }), server.WithSuite(kopentracing.NewDefaultServerSuite()), //jaeger //server.WithSuite(kopentracing.NewServerSuite(kTracer, func(c context.Context) string { // endpoint := rpcinfo.GetRPCInfo(c).From() // return endpoint.ServiceName() + "::" + endpoint.Method() //})), server.WithRegistry(r), + //server.WithSuite(nacosserver.NewSuite(constants.UserServiceName, nacosClient, cl)), server.WithServiceAddr(serviceAddr), - server.WithServerBasicInfo( - &rpcinfo.EndpointBasicInfo{ - ServiceName: constants.UserServiceName, - }), - server.WithLimit(&limit.Option{ - MaxConnections: constants.MaxConnections, - MaxQPS: constants.MaxQPS, - })) + //server.WithLimit(&limit.Option{ + // MaxConnections: constants.MaxConnections, + // MaxQPS: constants.MaxQPS, + //}) + server.WithLimit( + &limit.Option{ + MaxConnections: constants.MaxConnections, + MaxQPS: constants.MaxQPS, + UpdateControl: lu.UpdateControl, + }, + ), + ) err = svr.Run() diff --git a/cmd/video/main.go b/cmd/video/main.go index 160894e..f07e431 100644 --- a/cmd/video/main.go +++ b/cmd/video/main.go @@ -18,7 +18,7 @@ import ( "github.com/cloudwego/netpoll" elastic "github.com/elastic/go-elasticsearch/v8" kitexlogrus "github.com/kitex-contrib/obs-opentelemetry/logging/logrus" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/registry" opentracing "github.com/kitex-contrib/tracer-opentracing" "github.com/sirupsen/logrus" "net" @@ -46,9 +46,9 @@ func Init() { func main() { Init() - r, err := etcd.NewEtcdRegistry([]string{config.Etcd.Addr}) + r, err := registry.NewDefaultNacosRegistry() if err != nil { - klog.Fatal(err) + panic(err) } for index, addr := range config.Service.AddrList { diff --git a/cmd/video/rpc/interaction.go b/cmd/video/rpc/interaction.go index 5c31d9c..07d013a 100644 --- a/cmd/video/rpc/interaction.go +++ b/cmd/video/rpc/interaction.go @@ -1,7 +1,6 @@ package rpc import ( - "bibi/config" "bibi/kitex_gen/interaction" "bibi/kitex_gen/interaction/interactionhandler" "bibi/pkg/constants" @@ -9,14 +8,17 @@ import ( "github.com/cloudwego/kitex/client" "github.com/cloudwego/kitex/pkg/loadbalance" "github.com/cloudwego/kitex/pkg/retry" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/resolver" kopentracing "github.com/kitex-contrib/tracer-opentracing" ) var interactionClient interactionhandler.Client func InitInteractionRPC() { - r, err := etcd.NewEtcdResolver([]string{config.Etcd.Addr}) + r, err := resolver.NewDefaultNacosResolver() + if err != nil { + panic(err) + } if err != nil { panic(err) diff --git a/cmd/video/rpc/user.go b/cmd/video/rpc/user.go index 5677cc6..acb4732 100644 --- a/cmd/video/rpc/user.go +++ b/cmd/video/rpc/user.go @@ -1,7 +1,6 @@ package rpc import ( - "bibi/config" "bibi/kitex_gen/user" "bibi/kitex_gen/user/userhandler" "bibi/pkg/constants" @@ -9,15 +8,14 @@ import ( "github.com/cloudwego/kitex/client" "github.com/cloudwego/kitex/pkg/loadbalance" "github.com/cloudwego/kitex/pkg/retry" - etcd "github.com/kitex-contrib/registry-etcd" + "github.com/kitex-contrib/registry-nacos/resolver" kopentracing "github.com/kitex-contrib/tracer-opentracing" ) var userClient userhandler.Client func InitUserRPC() { - r, err := etcd.NewEtcdResolver([]string{config.Etcd.Addr}) - + r, err := resolver.NewDefaultNacosResolver() if err != nil { panic(err) } diff --git a/config/.env b/config/.env new file mode 100644 index 0000000..cf4c973 --- /dev/null +++ b/config/.env @@ -0,0 +1,9 @@ +serverAddr: 10.134.32.185 +serverPort: 8848 +namespaceId: public +groupName: DEFAULT_GROUP +dataId: config.yaml +type: yaml + + + diff --git a/config/config-example.yaml b/config/config-example.yaml index 9755265..6c14ae1 100644 --- a/config/config-example.yaml +++ b/config/config-example.yaml @@ -43,31 +43,25 @@ elasticsearch: services: api: name: api - load-balance: false addr: - 127.0.0.1:10001 user: name: user - load-balance: false addr: - 127.0.0.1:10002 chat: name: chat - load-balance: false addr: - 127.0.0.1:10003 follow: name: follow - load-balance: false addr: - 127.0.0.1:10004 interaction: name: interaction - load-balance: false addr: - 127.0.0.1:10005 video: name: video - load-balance: false addr: - 127.0.0.1:10006 \ No newline at end of file diff --git a/config/config.go b/config/config.go index 97668d7..534a62c 100644 --- a/config/config.go +++ b/config/config.go @@ -1,9 +1,14 @@ package config import ( + "bibi/pkg/utils/remote" _ "github.com/go-sql-driver/mysql" + "github.com/joho/godotenv" "github.com/spf13/viper" + _ "github.com/spf13/viper/remote" "log" + "os" + "strconv" ) var ( @@ -17,22 +22,28 @@ var ( Sender *email ElasticSearch *elasticsearch Jaeger *jaeger - - runtimeViper = viper.New() + Nacos *nacos + Milvus *milvus + runtimeViper = viper.New() ) func Init(service string) { - runtimeViper.SetConfigName("config") - runtimeViper.SetConfigType("yaml") - runtimeViper.AddConfigPath("./config") - if err := runtimeViper.ReadInConfig(); err != nil { - if _, ok := err.(viper.ConfigFileNotFoundError); ok { - log.Println("config file not found") - } else { - log.Println("config file was found but another error was produced") - } + err := godotenv.Load("./config/.env") + if err != nil { + log.Println("load env error") } + //runtimeViper.SetConfigName("config") + //runtimeViper.SetConfigType("yaml") + //runtimeViper.AddConfigPath("./config") + //if err := runtimeViper.ReadInConfig(); err != nil { + // if _, ok := err.(viper.ConfigFileNotFoundError); ok { + // log.Println("config file not found") + // } else { + // log.Println("config file was found but another error was produced") + // } + //} + InitConfigByNacos() configMapping(service) } @@ -54,16 +65,47 @@ func configMapping(serviceName string) { Sender = &c.Email ElasticSearch = &c.ElasticSearch Jaeger = &c.Jaeger + Milvus = &c.Milvus addrList := runtimeViper.GetStringSlice("services." + serviceName + ".addr") Service = &service{ Name: runtimeViper.GetString("services." + serviceName + ".name"), AddrList: addrList, - LB: runtimeViper.GetBool("services." + serviceName + ".load-balance"), //todo:不知道是啥你也ctrl c? } } +func InitConfigByNacos() { + Nacos = &nacos{ + Host: os.Getenv("serverAddr"), + Port: os.Getenv("serverPort"), + NamespaceId: os.Getenv("namespaceId"), + GroupName: os.Getenv("groupName"), + DataId: os.Getenv("dataId"), + ConfigType: os.Getenv("type"), + } + port, _ := strconv.ParseInt(Nacos.Port, 10, 64) + remote.SetOptions(&remote.Option{ + Url: Nacos.Host, // nacos server 多地址需要地址用;号隔开,如 Url: "loc1;loc2;loc3" + Port: uint64(port), + NamespaceId: Nacos.NamespaceId, + GroupName: Nacos.GroupName, + Config: remote.Config{ + DataId: Nacos.DataId, + }, + Auth: nil, // 如果需要验证登录,需要此参数 + }) + + err := runtimeViper.AddRemoteProvider("nacos", Nacos.Host, "") + if err != nil { + panic(err) + } + runtimeViper.SetConfigType(Nacos.ConfigType) + _ = runtimeViper.ReadRemoteConfig() + //_ = runtimeViper.WatchRemoteConfigOnChannel() //异步监听Nacos中的配置变化,如发生配置更改,会直接同步到 viper实例中。 + +} + func InitTest() { Server = &server{ Version: "debug", diff --git a/config/milvus/milvus.yaml b/config/milvus/milvus.yaml new file mode 100644 index 0000000..00df78d --- /dev/null +++ b/config/milvus/milvus.yaml @@ -0,0 +1,550 @@ +# Licensed to the LF AI & Data foundation under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Related configuration of etcd, used to store Milvus metadata & service discovery. +etcd: + endpoints: + - localhost:2379 + rootPath: by-dev # The root path where data is stored in etcd + metaSubPath: meta # metaRootPath = rootPath + '/' + metaSubPath + kvSubPath: kv # kvRootPath = rootPath + '/' + kvSubPath + log: + # path is one of: + # - "default" as os.Stderr, + # - "stderr" as os.Stderr, + # - "stdout" as os.Stdout, + # - file path to append server logs to. + # please adjust in embedded Milvus: /tmp/milvus/logs/etcd.log + path: stdout + level: info # Only supports debug, info, warn, error, panic, or fatal. Default 'info'. + use: + # please adjust in embedded Milvus: true + embed: false # Whether to enable embedded Etcd (an in-process EtcdServer). + data: + # Embedded Etcd only. + # please adjust in embedded Milvus: /tmp/milvus/etcdData/ + dir: default.etcd + ssl: + enabled: false # Whether to support ETCD secure connection mode + tlsCert: /path/to/etcd-client.pem # path to your cert file + tlsKey: /path/to/etcd-client-key.pem # path to your key file + tlsCACert: /path/to/ca.pem # path to your CACert file + # TLS min version + # Optional values: 1.0, 1.1, 1.2, 1.3。 + # We recommend using version 1.2 and above + tlsMinVersion: 1.3 + +# Default value: etcd +# Valid values: [etcd, mysql] +metastore: + type: etcd + +# Related configuration of mysql, used to store Milvus metadata. +mysql: + username: root + password: 114514 + address: localhost + port: 3366 + dbName: milvus_meta + driverName: mysql + maxOpenConns: 20 + maxIdleConns: 5 + +# please adjust in embedded Milvus: /tmp/milvus/data/ +localStorage: + path: /var/lib/milvus/data/ + +# Related configuration of MinIO/S3/GCS or any other service supports S3 API, which is responsible for data persistence for Milvus. +# We refer to the storage service as MinIO/S3 in the following description for simplicity. +minio: + address: localhost # Address of MinIO/S3 + port: 9000 # Port of MinIO/S3 + accessKeyID: minioadmin # accessKeyID of MinIO/S3 + secretAccessKey: minioadmin # MinIO/S3 encryption string + useSSL: false # Access to MinIO/S3 with SSL + bucketName: "a-bucket" # Bucket name in MinIO/S3 + rootPath: files # The root path where the message is stored in MinIO/S3 + # Whether to use IAM role to access S3/GCS instead of access/secret keys + # For more infomation, refer to + # aws: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html + # gcp: https://cloud.google.com/storage/docs/access-control/iam + useIAM: false + # Cloud Provider of S3. Supports: "aws", "gcp". + # You can use "aws" for other cloud provider supports S3 API with signature v4, e.g.: minio + # You can use "gcp" for other cloud provider supports S3 API with signature v2 + # When `useIAM` enabled, only "aws" & "gcp" is supported for now + cloudProvider: "aws" + # Custom endpoint for fetch IAM role credentials. when useIAM is true & cloudProvider is "aws". + # Leave it empty if you want to use AWS default endpoint + iamEndpoint: "" + +# Milvus supports three MQ: rocksmq(based on RockDB), Pulsar and Kafka, which should be reserved in config what you use. +# There is a note about enabling priority if we config multiple mq in this file +# 1. standalone(local) mode: rockskmq(default) > Pulsar > Kafka +# 2. cluster mode: Pulsar(default) > Kafka (rocksmq is unsupported) + +# Related configuration of pulsar, used to manage Milvus logs of recent mutation operations, output streaming log, and provide log publish-subscribe services. +pulsar: + address: localhost # Address of pulsar + port: 6650 # Port of pulsar + webport: 80 # Web port of pulsar, if you connect direcly without proxy, should use 8080 + maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar. + tenant: public + namespace: default + +# If you want to enable kafka, needs to comment the pulsar configs +kafka: + producer: + client.id: dc + consumer: + client.id: dc1 +# brokerList: localhost1:9092,localhost2:9092,localhost3:9092 +# saslUsername: username +# saslPassword: password +# saslMechanisms: PLAIN +# securityProtocol: SASL_SSL + +rocksmq: + # please adjust in embedded Milvus: /tmp/milvus/rdb_data + path: /var/lib/milvus/rdb_data # The path where the message is stored in rocksmq + rocksmqPageSize: 67108864 # 64 MB, 64 * 1024 * 1024 bytes, The size of each page of messages in rocksmq + retentionTimeInMinutes: 4320 # 3 days, 3 * 24 * 60 minutes, The retention time of the message in rocksmq. + retentionSizeInMB: 8192 # 8 GB, 8 * 1024 MB, The retention size of the message in rocksmq. + compactionInterval: 86400 # 1 day, trigger rocksdb compaction every day to remove deleted data + lrucacheratio: 0.06 # rocksdb cache memory ratio + +# Related configuration of rootCoord, used to handle data definition language (DDL) and data control language (DCL) requests +rootCoord: + address: localhost + port: 53100 + enableActiveStandby: false # Enable active-standby + + dmlChannelNum: 16 # The number of dml channels created at system startup + maxPartitionNum: 4096 # Maximum number of partitions in a collection + minSegmentSizeToEnableIndex: 1024 # It's a threshold. When the segment size is less than this value, the segment will not be indexed + + # (in seconds) Duration after which an import task will expire (be killed). Default 900 seconds (15 minutes). + # Note: If default value is to be changed, change also the default in: internal/util/paramtable/component_param.go + importTaskExpiration: 900 + # (in seconds) Milvus will keep the record of import tasks for at least `importTaskRetention` seconds. Default 86400 + # seconds (24 hours). + # Note: If default value is to be changed, change also the default in: internal/util/paramtable/component_param.go + importTaskRetention: 86400 + +# Related configuration of proxy, used to validate client requests and reduce the returned results. +proxy: + port: 19530 + internalPort: 19529 + http: + enabled: true # Whether to enable the http server + debug_mode: false # Whether to enable http server debug mode + + timeTickInterval: 200 # ms, the interval that proxy synchronize the time tick + msgStream: + timeTick: + bufSize: 512 + maxNameLength: 255 # Maximum length of name for a collection or alias + maxFieldNum: 64 # Maximum number of fields in a collection. + # As of today (2.2.0 and after) it is strongly DISCOURAGED to set maxFieldNum >= 64. + # So adjust at your risk! + maxDimension: 32768 # Maximum dimension of a vector + # It's strongly DISCOURAGED to set `maxShardNum` > 64. + maxShardNum: 16 # Maximum number of shards in a collection + maxTaskNum: 1024 # max task number of proxy task queue + # please adjust in embedded Milvus: false + ginLogging: true # Whether to produce gin logs. + grpc: + serverMaxRecvSize: 67108864 # 64M + serverMaxSendSize: 67108864 # 64M + clientMaxRecvSize: 104857600 # 100 MB, 100 * 1024 * 1024 + clientMaxSendSize: 104857600 # 100 MB, 100 * 1024 * 1024 + + + +# Related configuration of queryCoord, used to manage topology and load balancing for the query nodes, and handoff from growing segments to sealed segments. +queryCoord: + address: localhost + port: 19531 + autoHandoff: true # Enable auto handoff + autoBalance: true # Enable auto balance + balancer: ScoreBasedBalancer # Balancer to use + globalRowCountFactor: 0.1 # expert parameters, only used by scoreBasedBalancer + scoreUnbalanceTolerationFactor: 0.05 # expert parameters, only used by scoreBasedBalancer + reverseUnBalanceTolerationFactor: 1.3 #expert parameters, only used by scoreBasedBalancer + overloadedMemoryThresholdPercentage: 90 # The threshold percentage that memory overload + balanceIntervalSeconds: 60 + memoryUsageMaxDifferencePercentage: 30 + checkInterval: 10000 + channelTaskTimeout: 60000 # 1 minute + segmentTaskTimeout: 120000 # 2 minute + distPullInterval: 500 + loadTimeoutSeconds: 1800 + checkHandoffInterval: 5000 + taskMergeCap: 8 + taskExecutionCap: 256 + enableActiveStandby: false # Enable active-standby + refreshTargetsIntervalSeconds: 300 + +# Related configuration of queryNode, used to run hybrid search between vector and scalar data. +queryNode: + cacheSize: 32 # GB, default 32 GB, `cacheSize` is the memory used for caching data for faster query. The `cacheSize` must be less than system memory size. + port: 21123 + loadMemoryUsageFactor: 3 # The multiply factor of calculating the memory usage while loading segments + enableDisk: true # enable querynode load disk index, and search on disk index + maxDiskUsagePercentage: 95 + gracefulStopTimeout: 30 + + stats: + publishInterval: 1000 # Interval for querynode to report node information (milliseconds) + dataSync: + flowGraph: + maxQueueLength: 1024 # Maximum length of task queue in flowgraph + maxParallelism: 1024 # Maximum number of tasks executed in parallel in the flowgraph + # Segcore will divide a segment into multiple chunks to enbale small index + segcore: + chunkRows: 1024 # The number of vectors in a chunk. + knowhereThreadPoolNumRatio: 4 # Use more threads to make good use of SSD throughput + # Note: we have disabled segment small index since @2022.05.12. So below related configurations won't work. + # We won't create small index for growing segments and search on these segments will directly use bruteforce scan. + smallIndex: + nlist: 128 # small index nlist, recommend to set sqrt(chunkRows), must smaller than chunkRows/8 + nprobe: 16 # nprobe to search small index, based on your accuracy requirement, must smaller than nlist + cache: + enabled: true + memoryLimit: 2147483648 # 2 GB, 2 * 1024 *1024 *1024 + + scheduler: + receiveChanSize: 10240 + unsolvedQueueSize: 10240 + # maxReadConcurrentRatio is the concurrency ratio of read task (search task and query task). + # Max read concurrency would be the value of `runtime.NumCPU * maxReadConcurrentRatio`. + # It defaults to 2.0, which means max read concurrency would be the value of runtime.NumCPU * 2. + # Max read concurrency must greater than or equal to 1, and less than or equal to runtime.NumCPU * 100. + maxReadConcurrentRatio: 2.0 # (0, 100] + cpuRatio: 10.0 # ratio used to estimate read task cpu usage. + # maxTimestampLag is the max ts lag between serviceable and guarantee timestamp. + # if the lag is larger than this config, scheduler will return error without waiting. + # the valid value is [3600, infinite) + maxTimestampLag: 86400 + + grouping: + enabled: true + maxNQ: 50000 + topKMergeRatio: 10.0 + +indexCoord: + address: localhost + port: 31000 + enableActiveStandby: false # Enable active-standby + + minSegmentNumRowsToEnableIndex: 1024 # It's a threshold. When the segment num rows is less than this value, the segment will not be indexed + + bindIndexNodeMode: + enable: false + address: "localhost:22930" + withCred: false + nodeID: 0 + + gc: + interval: 600 # gc interval in seconds + + scheduler: + interval: 1000 # scheduler interval in Millisecond + +indexNode: + port: 21121 + enableDisk: true # enable index node build disk vector index + maxDiskUsagePercentage: 95 + gracefulStopTimeout: 30 + + scheduler: + buildParallel: 1 + +dataCoord: + address: localhost + port: 13333 + enableCompaction: true # Enable data segment compaction + enableGarbageCollection: true + enableActiveStandby: false # Enable active-standby + + channel: + watchTimeoutInterval: 120 # Timeout on watching channels (in seconds). Datanode tickler update watch progress will reset timeout timer. + balanceSilentDuration: 300 # The duration before the channelBalancer on datacoord to run + balanceInterval: 360 #The interval for the channelBalancer on datacoord to check balance status + + segment: + maxSize: 512 # Maximum size of a segment in MB + diskSegmentMaxSize: 2048 # Maximun size of a segment in MB for collection which has Disk index + # Minimum proportion for a segment which can be sealed. + # Sealing early can prevent producing large growing segments in case these segments might slow down our search/query. + # Segments that sealed early will be compacted into a larger segment (within maxSize) eventually. + sealProportion: 0.23 + assignmentExpiration: 2000 # The time of the assignment expiration in ms + maxLife: 86400 # The max lifetime of segment in seconds, 24*60*60 + # If a segment didn't accept dml records in `maxIdleTime` and the size of segment is greater than + # `minSizeFromIdleToSealed`, Milvus will automatically seal it. + maxIdleTime: 600 # The max idle time of segment in seconds, 10*60. + minSizeFromIdleToSealed: 16 # The min size in MB of segment which can be idle from sealed. + # The max number of binlog file for one segment, the segment will be sealed if + # the number of binlog file reaches to max value. + maxBinlogFileNumber: 32 + smallProportion: 0.5 # The segment is considered as "small segment" when its # of rows is smaller than + # (smallProportion * segment max # of rows). + compactableProportion: 0.85 # A compaction will happen on small segments if the segment after compaction will have + # over (compactableProportion * segment max # of rows) rows. + # MUST BE GREATER THAN OR EQUAL TO !!! + expansionRate: 1.25 # During compaction, the size of segment # of rows is able to exceed segment max # of rows by (expansionRate-1) * 100%. + + compaction: + enableAutoCompaction: true + + gc: + interval: 3600 # gc interval in seconds + missingTolerance: 86400 # file meta missing tolerance duration in seconds, 60*24 + dropTolerance: 3600 # file belongs to dropped entity tolerance duration in seconds + + +dataNode: + port: 21124 + + dataSync: + flowGraph: + maxQueueLength: 1024 # Maximum length of task queue in flowgraph + maxParallelism: 1024 # Maximum number of tasks executed in parallel in the flowgraph + segment: + # Max buffer size to flush for a single segment. + insertBufSize: 16777216 # Bytes, 16 MB + # Max buffer size to flush del for a single channel + deleteBufBytes: 67108864 # Bytes, 64MB + # The period to sync segments if buffer is not empty. + syncPeriod: 600 # Seconds, 10min + + memory: + forceSyncEnable: true # `true` to force sync if memory usage is too high + forceSyncSegmentNum: 1 # number of segments to sync, segments with top largest buffer will be synced. + watermarkStandalone: 0.2 # memory watermark for standalone, upon reaching this watermark, segments will be synced. + watermarkCluster: 0.5 # memory watermark for cluster, upon reaching this watermark, segments will be synced. + +# Configures the system log output. +log: + level: debug # Only supports debug, info, warn, error, panic, or fatal. Default 'info'. + stdout: "true" # default true, print log to stdout + file: + # please adjust in embedded Milvus: /tmp/milvus/logs + rootPath: "" # root dir path to put logs, default "" means no log file will print + maxSize: 300 # MB + maxAge: 10 # Maximum time for log retention in day. + maxBackups: 20 + format: text # text/json + +grpc: + log: + level: WARNING + + serverMaxRecvSize: 536870912 # 512MB + serverMaxSendSize: 536870912 # 512MB + clientMaxRecvSize: 104857600 # 100 MB, 100 * 1024 * 1024 + clientMaxSendSize: 104857600 # 100 MB, 100 * 1024 * 1024 + + client: + dialTimeout: 5000 + keepAliveTime: 10000 + keepAliveTimeout: 20000 + maxMaxAttempts: 5 + initialBackOff: 1.0 + maxBackoff: 60.0 + backoffMultiplier: 2.0 + server: + retryTimes: 5 # retry times when receiving a grpc return value with a failure and retryable state code + +# Configure the proxy tls enable. +tls: + serverPemPath: configs/cert/server.pem + serverKeyPath: configs/cert/server.key + caPemPath: configs/cert/ca.pem + + +common: + # Channel name generation rule: ${namePrefix}-${ChannelIdx} + chanNamePrefix: + cluster: "by-dev" + rootCoordTimeTick: "rootcoord-timetick" + rootCoordStatistics: "rootcoord-statistics" + rootCoordDml: "rootcoord-dml" + rootCoordDelta: "rootcoord-delta" + search: "search" + searchResult: "searchResult" + queryTimeTick: "queryTimeTick" + queryNodeStats: "query-node-stats" + # Cmd for loadIndex, flush, etc... + cmd: "cmd" + dataCoordStatistic: "datacoord-statistics-channel" + dataCoordTimeTick: "datacoord-timetick-channel" + dataCoordSegmentInfo: "segment-info-channel" + + # Sub name generation rule: ${subNamePrefix}-${NodeID} + subNamePrefix: + rootCoordSubNamePrefix: "rootCoord" + proxySubNamePrefix: "proxy" + queryNodeSubNamePrefix: "queryNode" + dataNodeSubNamePrefix: "dataNode" + dataCoordSubNamePrefix: "dataCoord" + + defaultPartitionName: "_default" # default partition name for a collection + defaultIndexName: "_default_idx" # default index name + retentionDuration: 0 # time travel reserved time, insert/delete will not be cleaned in this period. disable it by default + entityExpiration: -1 # Entity expiration in seconds, CAUTION make sure entityExpiration >= retentionDuration and -1 means never expire + + gracefulTime: 5000 # milliseconds. it represents the interval (in ms) by which the request arrival time needs to be subtracted in the case of Bounded Consistency. + gracefulStopTimeout: 30 # seconds. it will force quit the server if the graceful stop process is not completed during this time. + + # Default value: auto + # Valid values: [auto, avx512, avx2, avx, sse4_2] + # This configuration is only used by querynode and indexnode, it selects CPU instruction set for Searching and Index-building. + simdType: auto + indexSliceSize: 16 # MB + DiskIndex: + MaxDegree: 56 + SearchListSize: 100 + PQCodeBudgetGBRatio: 0.125 + BuildNumThreadsRatio: 1.0 + SearchCacheBudgetGBRatio: 0.10 + LoadNumThreadRatio: 8.0 + BeamWidthRatio: 4.0 + # This parameter specify how many times the number of threads is the number of cores + threadCoreCoefficient : 10 + + # please adjust in embedded Milvus: local + storageType: minio + + security: + authorizationEnabled: false + # The superusers will ignore some system check processes, + # like the old password verification when updating the credential + # superUsers: + # - "root" + # tls mode values [0, 1, 2] + # 0 is close, 1 is one-way authentication, 2 is two-way authentication. + tlsMode: 0 + + session: + ttl: 20 # ttl value when session granting a lease to register service + retryTimes: 30 # retry times when session sending etcd requests + +# QuotaConfig, configurations of Milvus quota and limits. +# By default, we enable: +# 1. TT protection; +# 2. Memory protection. +# 3. Disk quota protection. +# You can enable: +# 1. DML throughput limitation; +# 2. DDL, DQL qps/rps limitation; +# 3. DQL Queue length/latency protection; +# 4. DQL result rate protection; +# If necessary, you can also manually force to deny RW requests. +quotaAndLimits: + enabled: true # `true` to enable quota and limits, `false` to disable. + + # quotaCenterCollectInterval is the time interval that quotaCenter + # collects metrics from Proxies, Query cluster and Data cluster. + quotaCenterCollectInterval: 3 # seconds, (0 ~ 65536) + + ddl: # ddl limit rates, default no limit. + enabled: false + collectionRate: -1 # qps, default no limit, rate for CreateCollection, DropCollection, LoadCollection, ReleaseCollection + partitionRate: -1 # qps, default no limit, rate for CreatePartition, DropPartition, LoadPartition, ReleasePartition + + indexRate: + enabled: false + max: -1 # qps, default no limit, rate for CreateIndex, DropIndex + flushRate: + enabled: false + max: -1 # qps, default no limit, rate for flush + compactionRate: + enabled: false + max: -1 # qps, default no limit, rate for manualCompaction + + # dml limit rates, default no limit. + # The maximum rate will not be greater than `max`. + dml: + enabled: false + insertRate: + max: -1 # MB/s, default no limit + deleteRate: + max: -1 # MB/s, default no limit + bulkLoadRate: # not support yet. TODO: limit bulkLoad rate + max: -1 # MB/s, default no limit + + # dql limit rates, default no limit. + # The maximum rate will not be greater than `max`. + dql: + enabled: false + searchRate: + max: -1 # vps (vectors per second), default no limit + queryRate: + max: -1 # qps, default no limit + + # limitWriting decides whether dml requests are allowed. + limitWriting: + # forceDeny `false` means dml requests are allowed (except for some + # specific conditions, such as memory of nodes to water marker), `true` means always reject all dml requests. + forceDeny: false + ttProtection: + enabled: false + # maxTimeTickDelay indicates the backpressure for DML Operations. + # DML rates would be reduced according to the ratio of time tick delay to maxTimeTickDelay, + # if time tick delay is greater than maxTimeTickDelay, all DML requests would be rejected. + maxTimeTickDelay: 300 # in seconds + memProtection: + enabled: true + # When memory usage > memoryHighWaterLevel, all dml requests would be rejected; + # When memoryLowWaterLevel < memory usage < memoryHighWaterLevel, reduce the dml rate; + # When memory usage < memoryLowWaterLevel, no action. + # memoryLowWaterLevel should be less than memoryHighWaterLevel. + dataNodeMemoryLowWaterLevel: 0.85 # (0, 1], memoryLowWaterLevel in DataNodes + dataNodeMemoryHighWaterLevel: 0.95 # (0, 1], memoryHighWaterLevel in DataNodes + queryNodeMemoryLowWaterLevel: 0.85 # (0, 1], memoryLowWaterLevel in QueryNodes + queryNodeMemoryHighWaterLevel: 0.95 # (0, 1], memoryHighWaterLevel in QueryNodes + diskProtection: + # When the total file size of object storage is greater than `diskQuota`, all dml requests would be rejected; + enabled: true + diskQuota: -1 # MB, (0, +inf), default no limit + + # limitReading decides whether dql requests are allowed. + limitReading: + # forceDeny `false` means dql requests are allowed (except for some + # specific conditions, such as collection has been dropped), `true` means always reject all dql requests. + forceDeny: false + queueProtection: + enabled: false + # nqInQueueThreshold indicated that the system was under backpressure for Search/Query path. + # If NQ in any QueryNode's queue is greater than nqInQueueThreshold, search&query rates would gradually cool off + # until the NQ in queue no longer exceeds nqInQueueThreshold. We think of the NQ of query request as 1. + nqInQueueThreshold: -1 # int, default no limit + + # queueLatencyThreshold indicated that the system was under backpressure for Search/Query path. + # If dql latency of queuing is greater than queueLatencyThreshold, search&query rates would gradually cool off + # until the latency of queuing no longer exceeds queueLatencyThreshold. + # The latency here refers to the averaged latency over a period of time. + queueLatencyThreshold: -1 # milliseconds, default no limit + resultProtection: + enabled: false + # maxReadResultRate indicated that the system was under backpressure for Search/Query path. + # If dql result rate is greater than maxReadResultRate, search&query rates would gradually cool off + # until the read result rate no longer exceeds maxReadResultRate. + maxReadResultRate: -1 # MB/s, default no limit + # coolOffSpeed is the speed of search&query rates cool off. + coolOffSpeed: 0.9 # (0, 1] diff --git a/config/nacos/nacos-db.sql b/config/nacos/nacos-db.sql new file mode 100644 index 0000000..25b902d --- /dev/null +++ b/config/nacos/nacos-db.sql @@ -0,0 +1,221 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info */ +/******************************************/ +CREATE TABLE `config_info` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) DEFAULT NULL, + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip', + `app_name` varchar(128) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `c_desc` varchar(256) DEFAULT NULL, + `c_use` varchar(64) DEFAULT NULL, + `effect` varchar(64) DEFAULT NULL, + `type` varchar(64) DEFAULT NULL, + `c_schema` text, + `encrypted_data_key` text NOT NULL COMMENT '密钥', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_aggr */ +/******************************************/ +CREATE TABLE `config_info_aggr` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `datum_id` varchar(255) NOT NULL COMMENT 'datum_id', + `content` longtext NOT NULL COMMENT '内容', + `gmt_modified` datetime NOT NULL COMMENT '修改时间', + `app_name` varchar(128) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段'; + + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_beta */ +/******************************************/ +CREATE TABLE `config_info_beta` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL COMMENT 'content', + `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip', + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text NOT NULL COMMENT '密钥', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_tag */ +/******************************************/ +CREATE TABLE `config_info_tag` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `tag_id` varchar(128) NOT NULL COMMENT 'tag_id', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_tags_relation */ +/******************************************/ +CREATE TABLE `config_tags_relation` ( + `id` bigint(20) NOT NULL COMMENT 'id', + `tag_name` varchar(128) NOT NULL COMMENT 'tag_name', + `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `nid` bigint(20) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`nid`), + UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = group_capacity */ +/******************************************/ +CREATE TABLE `group_capacity` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', + `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值', + `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_group_id` (`group_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = his_config_info */ +/******************************************/ +CREATE TABLE `his_config_info` ( + `id` bigint(64) unsigned NOT NULL, + `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `data_id` varchar(255) NOT NULL, + `group_id` varchar(128) NOT NULL, + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL, + `md5` varchar(32) DEFAULT NULL, + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00', + `src_user` text, + `src_ip` varchar(20) DEFAULT NULL, + `op_type` char(10) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text NOT NULL COMMENT '密钥', + PRIMARY KEY (`nid`), + KEY `idx_gmt_create` (`gmt_create`), + KEY `idx_gmt_modified` (`gmt_modified`), + KEY `idx_did` (`data_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造'; + + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = tenant_capacity */ +/******************************************/ +CREATE TABLE `tenant_capacity` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID', + `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数', + `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表'; + + +CREATE TABLE `tenant_info` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `kp` varchar(128) NOT NULL COMMENT 'kp', + `tenant_id` varchar(128) default '' COMMENT 'tenant_id', + `tenant_name` varchar(128) default '' COMMENT 'tenant_name', + `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc', + `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source', + `gmt_create` bigint(20) NOT NULL COMMENT '创建时间', + `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info'; + +CREATE TABLE users ( + username varchar(50) NOT NULL PRIMARY KEY, + password varchar(500) NOT NULL, + enabled boolean NOT NULL +); + +CREATE TABLE roles ( + username varchar(50) NOT NULL, + role varchar(50) NOT NULL, + constraint uk_username_role UNIQUE (username,role) +); + +CREATE TABLE permissions ( + role varchar(50) NOT NULL, + resource varchar(512) NOT NULL, + action varchar(8) NOT NULL, + constraint uk_role_permission UNIQUE (role,resource,action) +); + +INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE); + +INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN'); \ No newline at end of file diff --git a/config/nacos/nacos-standlone-mysql.env b/config/nacos/nacos-standlone-mysql.env new file mode 100644 index 0000000..2843a2d --- /dev/null +++ b/config/nacos/nacos-standlone-mysql.env @@ -0,0 +1,14 @@ +PREFER_HOST_MODE=127.0.0.1 +NACOS_SERVER_IP=127.0.0.1 +MODE=standalone +SPRING_DATASOURCE_PLATFORM=mysql +MYSQL_SERVICE_HOST=10.233.87.66 +MYSQL_SERVICE_DB_NAME=nacos +MYSQL_SERVICE_PORT=3306 +MYSQL_SERVICE_USER=root +MYSQL_SERVICE_PASSWORD=114514 +MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true +NACOS_AUTH_IDENTITY_KEY=fanr +NACOS_AUTH_IDENTITY_VALUE=114514 +NACOS_AUTH_ENABLE=false +NACOS_AUTH_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTY5MDE1ODUsIm9yaWdfaWF0IjoxNzE2ODE1MTg1LCJ1c2VyX2lkIjo2fQ.N7XsL8Wmx0Tgt1Iy2RWD7pO2JsmtPlKMvYTbPo2HSY8 \ No newline at end of file diff --git a/config/sql/init.sql b/config/sql/init.sql index 26718b1..cc6217a 100644 --- a/config/sql/init.sql +++ b/config/sql/init.sql @@ -1,3 +1,5 @@ +create database if not exists bibi_db; +use bibi_db; SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- BTREE的用途 diff --git a/config/sql/nacos-db.sql b/config/sql/nacos-db.sql new file mode 100644 index 0000000..d69de24 --- /dev/null +++ b/config/sql/nacos-db.sql @@ -0,0 +1,223 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info */ +/******************************************/ +create database if not exists nacos; +use nacos; +CREATE TABLE `config_info` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) DEFAULT NULL, + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip', + `app_name` varchar(128) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `c_desc` varchar(256) DEFAULT NULL, + `c_use` varchar(64) DEFAULT NULL, + `effect` varchar(64) DEFAULT NULL, + `type` varchar(64) DEFAULT NULL, + `c_schema` text, + `encrypted_data_key` text NOT NULL COMMENT '密钥', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_aggr */ +/******************************************/ +CREATE TABLE `config_info_aggr` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `datum_id` varchar(255) NOT NULL COMMENT 'datum_id', + `content` longtext NOT NULL COMMENT '内容', + `gmt_modified` datetime NOT NULL COMMENT '修改时间', + `app_name` varchar(128) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段'; + + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_beta */ +/******************************************/ +CREATE TABLE `config_info_beta` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL COMMENT 'content', + `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip', + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text NOT NULL COMMENT '密钥', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_tag */ +/******************************************/ +CREATE TABLE `config_info_tag` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `tag_id` varchar(128) NOT NULL COMMENT 'tag_id', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_tags_relation */ +/******************************************/ +CREATE TABLE `config_tags_relation` ( + `id` bigint(20) NOT NULL COMMENT 'id', + `tag_name` varchar(128) NOT NULL COMMENT 'tag_name', + `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `nid` bigint(20) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`nid`), + UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = group_capacity */ +/******************************************/ +CREATE TABLE `group_capacity` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', + `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值', + `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_group_id` (`group_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = his_config_info */ +/******************************************/ +CREATE TABLE `his_config_info` ( + `id` bigint(64) unsigned NOT NULL, + `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `data_id` varchar(255) NOT NULL, + `group_id` varchar(128) NOT NULL, + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL, + `md5` varchar(32) DEFAULT NULL, + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00', + `src_user` text, + `src_ip` varchar(20) DEFAULT NULL, + `op_type` char(10) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text NOT NULL COMMENT '密钥', + PRIMARY KEY (`nid`), + KEY `idx_gmt_create` (`gmt_create`), + KEY `idx_gmt_modified` (`gmt_modified`), + KEY `idx_did` (`data_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造'; + + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = tenant_capacity */ +/******************************************/ +CREATE TABLE `tenant_capacity` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID', + `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数', + `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表'; + + +CREATE TABLE `tenant_info` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `kp` varchar(128) NOT NULL COMMENT 'kp', + `tenant_id` varchar(128) default '' COMMENT 'tenant_id', + `tenant_name` varchar(128) default '' COMMENT 'tenant_name', + `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc', + `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source', + `gmt_create` bigint(20) NOT NULL COMMENT '创建时间', + `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info'; + +CREATE TABLE users ( + username varchar(50) NOT NULL PRIMARY KEY, + password varchar(500) NOT NULL, + enabled boolean NOT NULL +); + +CREATE TABLE roles ( + username varchar(50) NOT NULL, + role varchar(50) NOT NULL, + constraint uk_username_role UNIQUE (username,role) +); + +CREATE TABLE permissions ( + role varchar(50) NOT NULL, + resource varchar(512) NOT NULL, + action varchar(8) NOT NULL, + constraint uk_role_permission UNIQUE (role,resource,action) +); + +INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE); + +INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN'); \ No newline at end of file diff --git a/config/types.go b/config/types.go index bf9211e..09708c4 100644 --- a/config/types.go +++ b/config/types.go @@ -9,13 +9,21 @@ type server struct { type service struct { Name string AddrList []string - LB bool `mapstructure:"load-balance"` } type etcd struct { Addr string } +type nacos struct { + Host string + Port string + DataId string + GroupName string + NamespaceId string + ConfigType string +} + type mySQL struct { Addr string User string @@ -58,6 +66,10 @@ type jaeger struct { Addr string } +type milvus struct { + Addr string +} + type config struct { Server server MySQL mySQL @@ -68,4 +80,6 @@ type config struct { Email email ElasticSearch elasticsearch Jaeger jaeger + Nacos nacos + Milvus milvus } diff --git a/docker-compose.yml b/docker-compose.yml index 448ae59..536fb6c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: '3.7' networks: bibi: @@ -7,6 +7,7 @@ networks: services: mysql: image: mysql:8.0.36 +# image: registry.cn-hangzhou.aliyuncs.com/fanr/mysql:8.0.36 container_name: bibi volumes: - ./config/sql:/docker-entrypoint-initdb.d @@ -22,7 +23,6 @@ services: restart: always networks: - bibi - redis: image: redis:6.0.16 container_name: redis @@ -36,9 +36,9 @@ services: networks: - bibi - etcd: image: bitnami/etcd:3.5 +# image: registry.cn-hangzhou.aliyuncs.com/fanr/etcd:3.5 container_name: etcd ports: - "2389:2379" @@ -49,12 +49,42 @@ services: - TZ=Asia/Shanghai - ALLOW_NONE_AUTHENTICATION=yes - ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379 + healthcheck: + test: [ "CMD", "etcdctl", "endpoint", "health" ] + interval: 30s + timeout: 20s + retries: 3 networks: - bibi + nacos: +# 如果哪天连不上了,就是env里mysqlIP要改了,傻逼校园网 + image: nacos/nacos-server:v2.3.2 +# image: registry.cn-hangzhou.aliyuncs.com/fanr/nacos-server:v2.3.2 + container_name: nacos + env_file: + - ./config/nacos/nacos-standlone-mysql.env + volumes: + - ./data/nacos/standalone-logs/:/nacos/logs + ports: + - "8848:8848" + - "9848:9848" + restart: always + network_mode: host +# networks: +# - bibi + elasticsearch: - image: elasticsearch:8.12.2 + image: docker.elastic.co/elasticsearch/elasticsearch:8.12.2 container_name: elasticsearch + deploy: + resources: + limits: + cpus: '1.00' + memory: 1G + reservations: + cpus: '0.25' + memory: 20M environment: xpack.security.enabled: "false" ES_JAVA_OPTS: "-Xms512m -Xmx512m" # 加大内存设置 @@ -75,7 +105,7 @@ services: - bibi kibana: - image: kibana:8.12.2 + image: docker.elastic.co/kibana/kibana:8.12.2 container_name: kibana environment: - XPACK_GRAPH_ENABLED=true @@ -132,4 +162,51 @@ services: # - ./data/rabbitmq:/var/lib/rabbitmq # - ./config/rabbitmq:/etc/rabbitmq # networks: -# - bibi \ No newline at end of file +# - bibi + minio: + container_name: milvus-minio + image: minio/minio:RELEASE.2023-03-20T20-16-18Z +# image: registry.cn-hangzhou.aliyuncs.com/fanr/minio:RELEASE.2023-03-20T20-16-18Z + environment: + MINIO_ROOT_USER: minioadmin + MINIO_ROOT_PASSWORD: minioadmin + ports: + - "9001:9001" + - "9000:9000" + volumes: + - ./data/minio:/minio_data + command: minio server /minio_data --console-address ":9001" + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ] + interval: 30s + timeout: 20s + retries: 3 + networks: + - bibi + + standalone: + container_name: milvus-standalone + image: milvusdb/milvus:v2.4.4 +# image: registry.cn-hangzhou.aliyuncs.com/fanr/milvus:v2.4.4 + command: [ "milvus", "run", "standalone" ] + security_opt: + - seccomp:unconfined + environment: + ETCD_ENDPOINTS: etcd:2379 + MINIO_ADDRESS: minio:9000 + volumes: + - ./data/milvus:/var/lib/milvus + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:9091/healthz" ] + interval: 30s + start_period: 90s + timeout: 20s + retries: 3 + ports: + - "19530:19530" + - "9091:9091" + depends_on: + - "etcd" + - "minio" + networks: + - bibi \ No newline at end of file diff --git a/go.mod b/go.mod index 8a6cc7d..2b61a98 100644 --- a/go.mod +++ b/go.mod @@ -14,12 +14,17 @@ require ( github.com/elastic/go-elasticsearch/v8 v8.13.1 github.com/go-sql-driver/mysql v1.8.0 github.com/hertz-contrib/jwt v1.0.2 + github.com/hertz-contrib/registry/nacos/v2 v2.0.0-20240117071831-d07355f82f9f github.com/hertz-contrib/tracer v0.0.0-20230215022931-b246a2eb0173 github.com/hertz-contrib/websocket v0.1.0 + github.com/joho/godotenv v1.5.1 github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible github.com/kitex-contrib/obs-opentelemetry/logging/logrus v0.0.0-20240305123358-828863cc5853 - github.com/kitex-contrib/registry-etcd v0.2.2 + github.com/kitex-contrib/registry-nacos v0.1.2 github.com/kitex-contrib/tracer-opentracing v0.0.3 + github.com/milvus-io/milvus-sdk-go/v2 v2.4.1 + github.com/nacos-group/nacos-sdk-go v1.1.4 + github.com/nacos-group/nacos-sdk-go/v2 v2.2.5 github.com/opentracing/opentracing-go v1.2.0 github.com/pquerna/otp v1.4.0 github.com/redis/go-redis/v9 v9.5.1 @@ -36,12 +41,26 @@ require ( ) require ( + cloud.google.com/go v0.110.10 // indirect + cloud.google.com/go/compute v1.23.3 // indirect + cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/firestore v1.14.0 // indirect + cloud.google.com/go/longrunning v0.5.4 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/HdrHistogram/hdrhistogram-go v1.1.2 // indirect github.com/KyleBanks/depth v1.2.1 // indirect github.com/PuerkitoBio/purell v1.1.1 // indirect github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 // indirect + github.com/alibabacloud-go/tea v1.1.17 // indirect + github.com/alibabacloud-go/tea-utils v1.4.4 // indirect + github.com/aliyun/alibaba-cloud-sdk-go v1.61.1800 // indirect + github.com/aliyun/alibabacloud-dkms-gcs-go-sdk v0.2.2 // indirect + github.com/aliyun/alibabacloud-dkms-transfer-go-sdk v0.1.7 // indirect + github.com/armon/go-metrics v0.4.1 // indirect + github.com/beorn7/perks v1.0.1 // indirect github.com/boombuler/barcode v1.0.1 // indirect + github.com/buger/jsonparser v1.1.1 // indirect github.com/bytedance/go-tagexpr/v2 v2.9.2 // indirect github.com/bytedance/gopkg v0.0.0-20230728082804-614d0af6619b // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -54,13 +73,19 @@ require ( github.com/cloudwego/frugal v0.1.14 // indirect github.com/cloudwego/localsession v0.0.2 // indirect github.com/cloudwego/thriftgo v0.3.6 // indirect + github.com/cockroachdb/errors v1.9.1 // indirect + github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f // indirect + github.com/cockroachdb/redact v1.1.3 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/elastic/elastic-transport-go/v8 v8.5.0 // indirect + github.com/fatih/color v1.14.1 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/getsentry/sentry-go v0.12.0 // indirect + github.com/go-errors/errors v1.0.1 // indirect github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect @@ -69,30 +94,61 @@ require ( github.com/go-openapi/swag v0.19.15 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.4.2 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/pprof v0.0.0-20230509042627-b1315fad0c5a // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect + github.com/hashicorp/consul/api v1.25.1 // indirect + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-hclog v1.5.0 // indirect + github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-rootcerts v1.0.2 // indirect + github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/serf v0.10.1 // indirect github.com/henrylee2cn/ameda v1.4.10 // indirect github.com/henrylee2cn/goutil v0.0.0-20210127050712-89660552f6f8 // indirect github.com/iancoleman/strcase v0.2.0 // indirect github.com/jhump/protoreflect v1.8.2 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect + github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.17.0 // indirect github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.17 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/milvus-io/milvus-proto/go-api/v2 v2.4.3 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/gls v0.0.0-20220109145502-612d0167dce5 // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/nats-io/nats.go v1.31.0 // indirect + github.com/nats-io/nkeys v0.4.6 // indirect + github.com/nats-io/nuid v1.0.1 // indirect github.com/nyaruka/phonenumbers v1.0.55 // indirect github.com/oleiade/lane v1.0.1 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/philhofer/fwd v1.1.2 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_model v0.4.0 // indirect + github.com/prometheus/common v0.37.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect + github.com/rogpeppe/go-internal v1.9.0 // indirect + github.com/sagikazarmark/crypt v0.17.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/smartystreets/goconvey v1.8.1 // indirect @@ -107,28 +163,36 @@ require ( github.com/tidwall/pretty v1.2.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect - go.etcd.io/etcd/api/v3 v3.5.12 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.12 // indirect - go.etcd.io/etcd/client/v3 v3.5.12 // indirect + github.com/wolfogre/go-pprof-practice v0.0.0-20230706085634-23c8f603cac9 // indirect + go.etcd.io/etcd/api/v3 v3.5.10 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.10 // indirect + go.etcd.io/etcd/client/v2 v2.305.10 // indirect + go.etcd.io/etcd/client/v3 v3.5.10 // indirect + go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/otel v1.21.0 // indirect go.opentelemetry.io/otel/metric v1.21.0 // indirect go.opentelemetry.io/otel/trace v1.21.0 // indirect - go.uber.org/atomic v1.9.0 // indirect + go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect golang.org/x/arch v0.2.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/net v0.19.0 // indirect + golang.org/x/oauth2 v0.15.0 // indirect golang.org/x/sys v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.14.0 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + google.golang.org/api v0.153.0 // indirect + google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect google.golang.org/grpc v1.59.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index e78de69..b48edfc 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,60 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.110.10 h1:LXy9GEO+timppncPIAZoOj3l58LIU9k+kn48AN7IO3Y= +cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/firestore v1.14.0 h1:8aLcKnMPoldYU3YHgu4t2exrKhLQkqaXAGqT0ljrFVw= +cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= +cloud.google.com/go/longrunning v0.5.4 h1:w8xEcbZodnA2BbW6sVirkkoC+1gP8wS57EUUgGS0GVg= +cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= +github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= +github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= +github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -15,16 +62,51 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= +github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 h1:NqugFkGxx1TXSh/pBcU00Y6bljgDPaFdh5MUSeJ7e50= +github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY= +github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg= +github.com/alibabacloud-go/tea v1.1.17 h1:05R5DnaJXe9sCNIe8KUgWHC/z6w/VZIwczgUwzRnul8= +github.com/alibabacloud-go/tea v1.1.17/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A= +github.com/alibabacloud-go/tea-utils v1.4.4 h1:lxCDvNCdTo9FaXKKq45+4vGETQUKNOW/qKTcX9Sk53o= +github.com/alibabacloud-go/tea-utils v1.4.4/go.mod h1:KNcT0oXlZZxOXINnZBs6YvgOd5aYp9U67G+E3R8fcQw= +github.com/aliyun/alibaba-cloud-sdk-go v1.61.18/go.mod h1:v8ESoHo4SyHmuB4b1tJqDHxfTGEciD+yhvOU/5s1Rfk= +github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704/go.mod h1:RcDobYh8k5VP6TNybz9m++gL3ijVI5wueVr0EM10VsU= +github.com/aliyun/alibaba-cloud-sdk-go v1.61.1800 h1:ie/8RxBOfKZWcrbYSJi2Z8uX8TcOlSMwPlEJh83OeOw= +github.com/aliyun/alibaba-cloud-sdk-go v1.61.1800/go.mod h1:RcDobYh8k5VP6TNybz9m++gL3ijVI5wueVr0EM10VsU= +github.com/aliyun/alibabacloud-dkms-gcs-go-sdk v0.2.2 h1:rWkH6D2XlXb/Y+tNAQROxBzp3a0p92ni+pXcaHBe/WI= +github.com/aliyun/alibabacloud-dkms-gcs-go-sdk v0.2.2/go.mod h1:GDtq+Kw+v0fO+j5BrrWiUHbBq7L+hfpzpPfXKOZMFE0= +github.com/aliyun/alibabacloud-dkms-transfer-go-sdk v0.1.7 h1:olLiPI2iM8Hqq6vKnSxpM3awCrm9/BeOgHpzQkOYnI4= +github.com/aliyun/alibabacloud-dkms-transfer-go-sdk v0.1.7/go.mod h1:oDg1j4kFxnhgftaiLJABkGeSvuEvSF5Lo6UmRAMruX4= github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible h1:8psS8a+wKfiLt1iVDX79F7Y6wUM49Lcha2FMXt4UM8g= github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/thrift v0.13.0 h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= +github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= 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/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= @@ -34,6 +116,8 @@ github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= +github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bytedance/go-tagexpr/v2 v2.9.2 h1:QySJaAIQgOEDQBLS3x9BxOWrnhqu5sQ+f6HaZIxD39I= github.com/bytedance/go-tagexpr/v2 v2.9.2/go.mod h1:5qsx05dYOiUXOUgnQ7w3Oz8BYs2qtM/bJokdLb79wRM= github.com/bytedance/gopkg v0.0.0-20210705062217-74c74ebadcae/go.mod h1:birsdqRCbwnckJbdAvcSao+AzOyibVEoWB55MjpYpB8= @@ -42,6 +126,7 @@ github.com/bytedance/gopkg v0.0.0-20210716082555-acbf5a2aa7e2/go.mod h1:birsdqRC github.com/bytedance/gopkg v0.0.0-20220413063733-65bf48ffb3a7/go.mod h1:2ZlV9BaUH4+NXIBF0aMdKKAnHTzqH+iMU4KUjAbL23Q= github.com/bytedance/gopkg v0.0.0-20220509134931-d1878f638986/go.mod h1:2ZlV9BaUH4+NXIBF0aMdKKAnHTzqH+iMU4KUjAbL23Q= github.com/bytedance/gopkg v0.0.0-20220531084716-665b4f21126f/go.mod h1:2ZlV9BaUH4+NXIBF0aMdKKAnHTzqH+iMU4KUjAbL23Q= +github.com/bytedance/gopkg v0.0.0-20220817015305-b879a72dc90f/go.mod h1:2ZlV9BaUH4+NXIBF0aMdKKAnHTzqH+iMU4KUjAbL23Q= github.com/bytedance/gopkg v0.0.0-20230531144706-a12972768317/go.mod h1:FtQG3YbQG9L/91pbKSw787yBQPutC+457AvDW77fgUQ= github.com/bytedance/gopkg v0.0.0-20230728082804-614d0af6619b h1:R6PWoQtxEMpWJPHnpci+9LgFxCS7iJCfOGBvCgZeTKI= github.com/bytedance/gopkg v0.0.0-20230728082804-614d0af6619b/go.mod h1:FtQG3YbQG9L/91pbKSw787yBQPutC+457AvDW77fgUQ= @@ -57,10 +142,10 @@ github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ github.com/bytedance/sonic v1.10.2/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= github.com/bytedance/sonic v1.11.2 h1:ywfwo0a/3j9HR8wsYGWsIWl2mvRsI950HyoxiBERw5A= github.com/bytedance/sonic v1.11.2/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= -github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= -github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= @@ -77,9 +162,14 @@ github.com/choleraehyq/pid v0.0.15/go.mod h1:uhzeFgxJZWQsZulelVQZwdASxQ9TIPZYL4T github.com/choleraehyq/pid v0.0.16/go.mod h1:uhzeFgxJZWQsZulelVQZwdASxQ9TIPZYL4TPkQMtL/U= github.com/choleraehyq/pid v0.0.18 h1:O7LLxPoOyt3YtonlCC8BmNrF9P6Hc8B509UOqlPSVhw= github.com/choleraehyq/pid v0.0.18/go.mod h1:uhzeFgxJZWQsZulelVQZwdASxQ9TIPZYL4TPkQMtL/U= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4MedaY= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86cAH8qUic= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= +github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudwego/configmanager v0.2.0 h1:niVpVg+wQ+npNqnH3dup96SMbR02Pk+tNErubYCJqKo= github.com/cloudwego/configmanager v0.2.0/go.mod h1:FLIQTjxsZRGjnmDhTttWQTy6f6DghPTatfBVOs2gQLk= @@ -95,11 +185,13 @@ github.com/cloudwego/frugal v0.1.14 h1:vkjQMb5OsPL779RfMdLI4YJZsOH8fR0ewJpTuAVSe github.com/cloudwego/frugal v0.1.14/go.mod h1:zFBA63ne4+Tz4qayRZFZf+ZVwGqTzb+1Xe3ZDCq+Wfc= github.com/cloudwego/hertz v0.3.2/go.mod h1:hnv3B7eZ6kMv7CKFHT2OC4LU0mA4s5XPyu/SbixLcrU= github.com/cloudwego/hertz v0.5.2/go.mod h1:K1U0RlU07CDeBINfHNbafH/3j9uSgIW8otbjUys3OPY= +github.com/cloudwego/hertz v0.7.3/go.mod h1:WliNtVbwihWHHgAaIQEbVXl0O3aWj0ks1eoPrcEAnjs= github.com/cloudwego/hertz v0.8.1 h1:3Upzd9o5yNPz6rLx70J5xpo5emosKNkmwW00WgQhf/0= github.com/cloudwego/hertz v0.8.1/go.mod h1:WliNtVbwihWHHgAaIQEbVXl0O3aWj0ks1eoPrcEAnjs= github.com/cloudwego/kitex v0.0.4/go.mod h1:EIjPJ4Dom2ornk7xDCdKpUpOnf4Tulevimh4Tn05OGc= github.com/cloudwego/kitex v0.3.2/go.mod h1:/XD07VpUD9VQWmmoepASgZ6iw//vgWikVA9MpzLC5i0= github.com/cloudwego/kitex v0.4.4/go.mod h1:3FcH5h9Qw+dhRljSzuGSpWuThttA8DvK0BsL7HUYydo= +github.com/cloudwego/kitex v0.5.1/go.mod h1:B3oH+MTQ7/wBL3BrCAMlyeyjAqOpi4pRzCvQcXN7RgM= github.com/cloudwego/kitex v0.6.1/go.mod h1:zI1GBrjT0qloTikcCfQTgxg3Ws+yQMyaChEEOcGNUvA= github.com/cloudwego/kitex v0.9.1 h1:4Rkmngk4b5nHQ6sPM9BNgnW5cb9niB7hzzQBkkfa8/s= github.com/cloudwego/kitex v0.9.1/go.mod h1:CBMfRKBuZ9EeSEfeoveC7cR6JG4lY1Bpo+d0Eb7zUDA= @@ -110,6 +202,7 @@ github.com/cloudwego/netpoll v0.0.3/go.mod h1:rZOiNI0FYjuvNybXKKhAPUja03loJi/cdv github.com/cloudwego/netpoll v0.2.4/go.mod h1:1T2WVuQ+MQw6h6DpE45MohSvDTKdy2DlzCx2KsnPI4E= github.com/cloudwego/netpoll v0.2.6/go.mod h1:1T2WVuQ+MQw6h6DpE45MohSvDTKdy2DlzCx2KsnPI4E= github.com/cloudwego/netpoll v0.3.1/go.mod h1:1T2WVuQ+MQw6h6DpE45MohSvDTKdy2DlzCx2KsnPI4E= +github.com/cloudwego/netpoll v0.3.2/go.mod h1:xVefXptcyheopwNDZjDPcfU6kIjZXZ4nY550k1yH9eQ= github.com/cloudwego/netpoll v0.4.0/go.mod h1:xVefXptcyheopwNDZjDPcfU6kIjZXZ4nY550k1yH9eQ= github.com/cloudwego/netpoll v0.5.0/go.mod h1:xVefXptcyheopwNDZjDPcfU6kIjZXZ4nY550k1yH9eQ= github.com/cloudwego/netpoll v0.6.0 h1:JRMkrA1o8k/4quxzg6Q1XM+zIhwZsyoWlq6ef+ht31U= @@ -118,54 +211,108 @@ github.com/cloudwego/netpoll-http2 v0.0.4/go.mod h1:iFr5SzJCXIYgBg0ubL0fZiCQ6W36 github.com/cloudwego/thriftgo v0.1.2/go.mod h1:LzeafuLSiHA9JTiWC8TIMIq64iadeObgRUhmVG1OC/w= github.com/cloudwego/thriftgo v0.2.4/go.mod h1:8i9AF5uDdWHGqzUhXDlubCjx4MEfKvWXGQlMWyR0tM4= github.com/cloudwego/thriftgo v0.2.7/go.mod h1:8i9AF5uDdWHGqzUhXDlubCjx4MEfKvWXGQlMWyR0tM4= +github.com/cloudwego/thriftgo v0.2.8/go.mod h1:dAyXHEmKXo0LfMCrblVEY3mUZsdeuA5+i0vF5f09j7E= github.com/cloudwego/thriftgo v0.2.11/go.mod h1:dAyXHEmKXo0LfMCrblVEY3mUZsdeuA5+i0vF5f09j7E= github.com/cloudwego/thriftgo v0.3.6 h1:gHHW8Ag3cAEQ/awP4emTJiRPr5yQjbANhcsmV8/Epbw= github.com/cloudwego/thriftgo v0.3.6/go.mod h1:29ukiySoAMd0vXMYIduAY9dph/7dmChvOS11YLotFb8= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= +github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= +github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f h1:6jduT9Hfc0njg5jJ1DdKCFPdMBrp/mdZfCpa5h+WM74= +github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= +github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dlclark/regexp2 v1.10.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/elastic/elastic-transport-go/v8 v8.5.0 h1:v5membAl7lvQgBTexPRDBO/RdnlQX+FM9fUVDyXxvH0= github.com/elastic/elastic-transport-go/v8 v8.5.0/go.mod h1:YLHer5cj0csTzNFXoNQ8qhtGY1GTvSqPnKWKaqQE3Hk= github.com/elastic/go-elasticsearch/v8 v8.13.1 h1:du5F8IzUUyCkzxyHdrO9AtopcG95I/qwi2WK8Kf1xlg= github.com/elastic/go-elasticsearch/v8 v8.13.1/go.mod h1:DIn7HopJs4oZC/w0WoJR13uMUxtHeq92eI5bqv5CRfI= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= +github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/getsentry/sentry-go v0.12.0 h1:era7g0re5iY13bHSdN/xMkyV+5zZppjRVQhZrXCaEIk= +github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= +github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-faker/faker/v4 v4.1.0 h1:ffuWmpDrducIUOO0QSKSF5Q2dxAht+dhsT9FvVHhPEI= +github.com/go-faker/faker/v4 v4.1.0/go.mod h1:uuNc0PSRxF8nMgjGrrrU4Nw5cF30Jc6Kd0/FUTTYbhg= github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= @@ -181,19 +328,45 @@ github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhO github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.0 h1:UtktXaU2Nb64z/pLiGIxY4431SJ4/dR5cjMmlVHgnT4= github.com/go-sql-driver/mysql v1.8.0/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/goccy/go-json v0.9.4/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= +github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -201,44 +374,110 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20220608213341-c488b8fa1db3/go.mod h1:gSuNB+gJaOiQKLEZ+q+PK9Mq3SOzhRcw2GsGS/FhYDk= github.com/google/pprof v0.0.0-20230509042627-b1315fad0c5a h1:PEOGDI1kkyW37YqPWHLHc+D20D9+87Wt12TCcfTUo5Q= github.com/google/pprof v0.0.0-20230509042627-b1315fad0c5a/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v1.17.2 h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g= github.com/gopherjs/gopherjs v1.17.2/go.mod h1:pRRIvn/QzFLrKfvEz3qUuEhtE/zLCWfreZ6J5gM2i+k= github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 h1:RtRsiaGvWxcwd8y3BiRZxsylPT8hLWZ5SPcfI+3IDNk= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0/go.mod h1:TzP6duP4Py2pHLVPPQp42aoYI92+PCrVotyR5e8Vqlk= +github.com/hashicorp/consul/api v1.25.1 h1:CqrdhYzc8XZuPnhIYZWH45toM0LB9ZeYr/gvpLVI3PE= +github.com/hashicorp/consul/api v1.25.1/go.mod h1:iiLVwR/htV7mas/sy0O+XSuEnrdBUUydemjxcUrAt4g= +github.com/hashicorp/consul/sdk v0.14.1 h1:ZiwE2bKb+zro68sWzZ1SgHF3kRMBZ94TwOCFRF4ylPs= +github.com/hashicorp/consul/sdk v0.14.1/go.mod h1:vFt03juSzocLRFo59NkeQHHmQa6+g7oU0pfzdI1mUhg= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= +github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= +github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= +github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pBJ3TkI= +github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= +github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= +github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= +github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= +github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= github.com/henrylee2cn/ameda v1.4.8/go.mod h1:liZulR8DgHxdK+MEwvZIylGnmcjzQ6N6f2PlWe7nEO4= github.com/henrylee2cn/ameda v1.4.10 h1:JdvI2Ekq7tapdPsuhrc4CaFiqw6QXFvZIULWJgQyCAk= github.com/henrylee2cn/ameda v1.4.10/go.mod h1:liZulR8DgHxdK+MEwvZIylGnmcjzQ6N6f2PlWe7nEO4= @@ -246,62 +485,137 @@ github.com/henrylee2cn/goutil v0.0.0-20210127050712-89660552f6f8 h1:yE9ULgp02BhY github.com/henrylee2cn/goutil v0.0.0-20210127050712-89660552f6f8/go.mod h1:Nhe/DM3671a5udlv2AdV2ni/MZzgfv2qrPL5nIi3EGQ= github.com/hertz-contrib/jwt v1.0.2 h1:sAW3wqgBDsbPKr5JWJRObY61jg1NqYkUCg+o8UXLsaI= github.com/hertz-contrib/jwt v1.0.2/go.mod h1:3zUSK+44dcw/9z/89JZ+mA0FoyhmVN7Hx+f46ucVV4I= +github.com/hertz-contrib/registry/nacos/v2 v2.0.0-20240117071831-d07355f82f9f h1:p8voD5KZX3a4eFuE3n6gymfkpAb33P5UFK8r46h/P7M= +github.com/hertz-contrib/registry/nacos/v2 v2.0.0-20240117071831-d07355f82f9f/go.mod h1:oGJdUFrravUXjcr2OcD7b3MtNztLfi6Of//ehMqgBbg= github.com/hertz-contrib/tracer v0.0.0-20230215022931-b246a2eb0173 h1:gB4maI+sbQhkkbOMfKQYLb8b6JCnQ1XKoQIFV4Upq4c= github.com/hertz-contrib/tracer v0.0.0-20230215022931-b246a2eb0173/go.mod h1:S9tHCLI6q0HMblvNmE5ZGcKm0xDQnUrrcJZYtqO1zi8= github.com/hertz-contrib/websocket v0.1.0 h1:9awGM2xzKJySbvnDrZMSNQcJEKjk7VYFMzt5VdPycFU= github.com/hertz-contrib/websocket v0.1.0/go.mod h1:VqcJq3L1S6dZlJqa3kY/0FeQKMxGWwijvWhEUNagLmo= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= +github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= +github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= +github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= +github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= +github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= github.com/jhump/protoreflect v1.8.2 h1:k2xE7wcUomeqwY0LDCYA16y4WWfyTcMx5mKhk0d4ua0= github.com/jhump/protoreflect v1.8.2/go.mod h1:7GcYQDdMU/O/BBrl/cX6PNHpXh6cenjd8pneu5yW7Tg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible h1:jdpOPRN1zP63Td1hDQbZW73xKmzDvZHzVdNYxhnTMDA= github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible/go.mod h1:1c7szIrayyPPB/987hsnvNzLushdWf4o/79s3P08L8A= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +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/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= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= +github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= +github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= +github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= +github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kitex-contrib/obs-opentelemetry/logging/logrus v0.0.0-20240305123358-828863cc5853 h1:BjNTDSfmF8pyjVWKbQphRzymQEVQnN9QbLSuK1Y35wk= github.com/kitex-contrib/obs-opentelemetry/logging/logrus v0.0.0-20240305123358-828863cc5853/go.mod h1:oQTDyY/+vIlKG/9FGhtYASfb+UybIiianqn1RLVhJ3A= -github.com/kitex-contrib/registry-etcd v0.2.2 h1:ebrqLpZrkSLSyazD6mrplV3m80GavSnjUusjhf+fvmc= -github.com/kitex-contrib/registry-etcd v0.2.2/go.mod h1:Imgvy+EkqExHuJs4+VFK0g1bFWHaCJ0KuK1sofWYZf4= +github.com/kitex-contrib/registry-nacos v0.1.2 h1:iCzRm2E7TfTwp7V81N6tlNYtJHi94nCYKNu2MreMq3E= +github.com/kitex-contrib/registry-nacos v0.1.2/go.mod h1:XnDe4b1xMezdke2n53naF7oikLNjwKQZdh3WrM5VHnQ= github.com/kitex-contrib/tracer-opentracing v0.0.3 h1:8SI0OrHTQ8u6eWpemnuaecMBSEVEvWKCWxg2HnnONQU= github.com/kitex-contrib/tracer-opentracing v0.0.3/go.mod h1:mprt5pxqywFQxlHb7ugfiMdKbABTLI9YrBYs9WmlK5Q= +github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.1.0/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.41 h1:WMszZWJG0XmzbK9FEmzH2TVcqYzFesusSIB41b8KHxY= +github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= +github.com/milvus-io/milvus-proto/go-api/v2 v2.4.3 h1:KUSaWVePVlHMIluAXf2qmNffI1CMlGFLLiP+4iy9014= +github.com/milvus-io/milvus-proto/go-api/v2 v2.4.3/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek= +github.com/milvus-io/milvus-sdk-go/v2 v2.4.1 h1:KhqjmaJE4mSxj1a88XtkGaqgH4duGiHs1sjnvSXkwE0= +github.com/milvus-io/milvus-sdk-go/v2 v2.4.1/go.mod h1:7SJxshlnVhNLksS73tLPtHYY9DiX7lyL43Rv41HCPCw= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -313,6 +627,23 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nacos-group/nacos-sdk-go v1.1.4 h1:qyrZ7HTWM4aeymFfqnbgNRERh7TWuER10pCB7ddRcTY= +github.com/nacos-group/nacos-sdk-go v1.1.4/go.mod h1:cBv9wy5iObs7khOqov1ERFQrCuTR4ILpgaiaVMxEmGI= +github.com/nacos-group/nacos-sdk-go/v2 v2.2.0/go.mod h1:ys/1adWeKXXzbNWfRNbaFlX/t6HVLWdpsNDvmoWTw0g= +github.com/nacos-group/nacos-sdk-go/v2 v2.2.5 h1:r0wwT7PayEjvEHzWXwr1ROi/JSqzujM4w+1L5ikThzQ= +github.com/nacos-group/nacos-sdk-go/v2 v2.2.5/go.mod h1:OObBon0prVJVPoIbSZxpEkFiBfL0d1LcBtuAMiNn+8c= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nats.go v1.31.0 h1:/WFBHEc/dOKBF6qf1TZhrdEfTmOZ5JzdJ+Y3m6Y/p7E= +github.com/nats-io/nats.go v1.31.0/go.mod h1:di3Bm5MLsoB4Bx61CBTsxuarI36WbhAwOm8QrW39+i8= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.4.6 h1:IzVe95ru2CT6ta874rt9saQRkWfe2nFj1NtvYSLqMzY= +github.com/nats-io/nkeys v0.4.6/go.mod h1:4DxZNzenSVd1cYQoAa8948QY3QDjrHfcfVADymtkpts= +github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso= @@ -320,8 +651,16 @@ github.com/nyaruka/phonenumbers v1.0.55 h1:bj0nTO88Y68KeUQ/n3Lo2KgK7lM1hF7L9NFuw github.com/nyaruka/phonenumbers v1.0.55/go.mod h1:sDaTZ/KPX5f8qyV9qN+hIm+4ZBARJrupC6LuhshJq1U= github.com/oleiade/lane v1.0.1 h1:hXofkn7GEOubzTwNpeL9MaNy8WxolCYb9cInAIeqShU= github.com/oleiade/lane v1.0.1/go.mod h1:IyTkraa4maLfjq/GmHR+Dxb4kCMtEGeb+qmhlrQ5Mk4= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= @@ -329,59 +668,108 @@ github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2 github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/pquerna/otp v1.4.0 h1:wZvl1TIVxKRThZIBiwOOHOGP/1+nZyWBil9Y2XNEDzg= github.com/pquerna/otp v1.4.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/redis/go-redis/v9 v9.5.1 h1:H1X4D3yHPaYrkL5X06Wh6xNVM/pX0Ft4RV0vMGvLBh8= github.com/redis/go-redis/v9 v9.5.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/crypt v0.17.0 h1:ZA/7pXyjkHoK4bW4mIdnCLvL8hd+Nrbiw7Dqk7D4qUk= +github.com/sagikazarmark/crypt v0.17.0/go.mod h1:SMtHTvdmsZMuY/bpZoqokSoChIrcJ/epOxZN58PbZDg= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y= github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smarty/assertions v1.15.0 h1:cR//PqUBUiQRakZWqBiFFQ9wb8emQGDb0HeGdqGByCY= github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+E8C6HtKdec= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.8.1 h1:qGjIddxOk4grTu9JPOU31tVfq3cNdBlNa5sSznIX1xY= github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60= -github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/streadway/amqp v1.1.0 h1:py12iX8XSyI7aN/3dUT8DFIDJazNJsVJdxNVEpnQTZM= github.com/streadway/amqp v1.1.0/go.mod h1:WYSrTEYHOXHd0nwFeUXAe2G2hRnQT+deZJJf88uS9Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -392,9 +780,11 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= @@ -414,49 +804,60 @@ github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhso github.com/tidwall/sjson v1.2.4/go.mod h1:098SZ494YoMWPmMO6ct4dcFnqxwj9r/gF0Etp19pSNM= github.com/tinylib/msgp v1.1.9 h1:SHf3yoO2sGA0veCJeCBYLHuttAVFHGm2RHgNodW7wQU= github.com/tinylib/msgp v1.1.9/go.mod h1:BCXGB54lDD8qUEPmiG0cQQUANC4IUQyB2ItS2UDlO/k= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/v2pro/plz v0.0.0-20221028024117-e5f9aec5b631/go.mod h1:3gacX+hQo+xvl0vtLqCMufzxuNCwt4geAVOMt2LQYfE= github.com/v2pro/quokka v0.0.0-20171201153428-382cb39c6ee6/go.mod h1:0VP5W9AFNVWU8C1QLNeVg8TvzoEkIHWZ4vxtxEVFWUY= github.com/v2pro/wombat v0.0.0-20180402055224-a56dbdcddef2/go.mod h1:wen8nMxrRrUmXnRwH+3wGAW+hyYTHcOrTNhMpxyp/i0= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/wolfogre/go-pprof-practice v0.0.0-20230706085634-23c8f603cac9 h1:JUZL5TQ/WK5veU2N171inEvwseqf4V0TxgGKl2Ypyvs= +github.com/wolfogre/go-pprof-practice v0.0.0-20230706085634-23c8f603cac9/go.mod h1:guVzD2XeU5rwULTURC4peeFyZya60U0BLKqisEjCylA= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= +github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= +github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= +github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= -go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= -go.etcd.io/etcd/api/v3 v3.5.12 h1:W4sw5ZoU2Juc9gBWuLk5U6fHfNVyY1WC5g9uiXZio/c= -go.etcd.io/etcd/api/v3 v3.5.12/go.mod h1:Ot+o0SWSyT6uHhA56al1oCED0JImsRiU9Dc26+C2a+4= -go.etcd.io/etcd/client/pkg/v3 v3.5.12 h1:EYDL6pWwyOsylrQyLp2w+HkQ46ATiOvoEdMarindU2A= -go.etcd.io/etcd/client/pkg/v3 v3.5.12/go.mod h1:seTzl2d9APP8R5Y2hFL3NVlD6qC/dOT+3kvrqPyTas4= -go.etcd.io/etcd/client/v2 v2.305.12 h1:0m4ovXYo1CHaA/Mp3X/Fak5sRNIWf01wk/X1/G3sGKI= -go.etcd.io/etcd/client/v2 v2.305.12/go.mod h1:aQ/yhsxMu+Oht1FOupSr60oBvcS9cKXHrzBpDsPTf9E= -go.etcd.io/etcd/client/v3 v3.5.12 h1:v5lCPXn1pf1Uu3M4laUE2hp/geOTc5uPcYYsNe1lDxg= -go.etcd.io/etcd/client/v3 v3.5.12/go.mod h1:tSbBCakoWmmddL+BKVAJHa9km+O/E+bumDe9mSbPiqw= -go.etcd.io/etcd/pkg/v3 v3.5.12 h1:OK2fZKI5hX/+BTK76gXSTyZMrbnARyX9S643GenNGb8= -go.etcd.io/etcd/pkg/v3 v3.5.12/go.mod h1:UVwg/QIMoJncyeb/YxvJBJCE/NEwtHWashqc8A1nj/M= -go.etcd.io/etcd/raft/v3 v3.5.12 h1:7r22RufdDsq2z3STjoR7Msz6fYH8tmbkdheGfwJNRmU= -go.etcd.io/etcd/raft/v3 v3.5.12/go.mod h1:ERQuZVe79PI6vcC3DlKBukDCLja/L7YMu29B74Iwj4U= -go.etcd.io/etcd/server/v3 v3.5.12 h1:EtMjsbfyfkwZuA2JlKOiBfuGkFCekv5H178qjXypbG8= -go.etcd.io/etcd/server/v3 v3.5.12/go.mod h1:axB0oCjMy+cemo5290/CutIjoxlfA6KVYKD1w0uue10= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.0 h1:PzIubN4/sjByhDRHLviCjJuweBXWFZWhghjg7cS28+M= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.0/go.mod h1:Ct6zzQEuGK3WpJs2n4dn+wfJYzd/+hNnxMRTWjGn30M= +go.etcd.io/etcd/api/v3 v3.5.10 h1:szRajuUUbLyppkhs9K6BRtjY37l66XQQmw7oZRANE4k= +go.etcd.io/etcd/api/v3 v3.5.10/go.mod h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI= +go.etcd.io/etcd/client/pkg/v3 v3.5.10 h1:kfYIdQftBnbAq8pUWFXfpuuxFSKzlmM5cSn76JByiT0= +go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U= +go.etcd.io/etcd/client/v2 v2.305.10 h1:MrmRktzv/XF8CvtQt+P6wLUlURaNpSDJHFZhe//2QE4= +go.etcd.io/etcd/client/v2 v2.305.10/go.mod h1:m3CKZi69HzilhVqtPDcjhSGp+kA1OmbNn0qamH80xjA= +go.etcd.io/etcd/client/v3 v3.5.10 h1:W9TXNZ+oB3MCd/8UjxHTWK5J9Nquw9fQBLJd5ne5/Ao= +go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 h1:DeFD0VgTZ+Cj6hxravYYZE2W4GlneVH81iAOPjZkzk8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0/go.mod h1:GijYcYmNpX1KazD5JmWGsi4P7dDTTTnfv1UbGn84MnU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 h1:gvmNvqrPYovvyRmCSygkUDyL8lC5Tl845MLEwqpxhEU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0/go.mod h1:vNUq47TGFioo+ffTSnKNdob241vePmtNZnAODKapKd0= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.16.0 h1:+XWJd3jf75RXJq29mxbuXhCXFDG3S3R4vBUeSI2P7tE= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.16.0/go.mod h1:hqgzBPTf4yONMFgdZvL/bK42R/iinTyVQtiWihs3SZc= go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= @@ -465,14 +866,24 @@ go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZ go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= -go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= -go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/arch v0.0.0-20201008161808-52c3e6f60cff/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4= @@ -480,10 +891,18 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/arch v0.0.0-20220722155209-00200b7164a7/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.2.0 h1:W1sUEHXiJTfjaFJ5SLo0N6lZn+0eO5gWD1MFeTGqQEY= golang.org/x/arch v0.2.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= @@ -494,8 +913,15 @@ golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= @@ -513,12 +939,22 @@ golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeap golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= 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= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -529,19 +965,50 @@ golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= @@ -550,45 +1017,104 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= +golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210415045647-66c3f260301c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210818153620-00dd8d7831e7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220110181412-a018aaa089fe/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -600,7 +1126,10 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/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= @@ -611,27 +1140,70 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= 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/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= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= @@ -641,6 +1213,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= @@ -649,25 +1223,95 @@ gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6d gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.153.0 h1:N1AwGhielyKFaUqH07/ZSIQR3uNPcV7NVw0vj+j4iR4= +google.golang.org/api v0.153.0/go.mod h1:3qNJX5eOmhiWYc67jRA/3GsDw97UFb5ivv7Y2PrriAY= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I= google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc= +google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc/examples v0.0.0-20220617181431-3e7b97febc7f h1:rqzndB2lIQGivcXdTuY3Y9NBvr70X+y77woofSRluec= +google.golang.org/grpc/examples v0.0.0-20220617181431-3e7b97febc7f/go.mod h1:gxndsbNG1n4TZcHGgsYEfVGnTxqfEdfiDv6/DADXX9o= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -676,6 +1320,7 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.25.1-0.20200805231151-a709e31e5d12/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= @@ -685,19 +1330,35 @@ google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -709,10 +1370,15 @@ gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.8 h1:WAGEZ/aEcznN4D03laj8DKnehe1e9gYQAjW8xyPRdeo= gorm.io/gorm v1.25.8/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/idl/api.thrift b/idl/api.thrift index b60acb1..8aa1ae0 100644 --- a/idl/api.thrift +++ b/idl/api.thrift @@ -79,12 +79,24 @@ struct InfoResponse { } struct AvatarRequest{ - 1:required binary avatar_file, + 1:binary avatar_file, } struct AvatarResponse{ 1: BaseResp base, 2: optional User user, } + +struct SearchAvatarRequest{ + 1: required i64 dim, // 向量维数 + 2: required list vector, + 3: required i64 page_num, +} + +struct SearchAvatarResponse{ + 1: required BaseResp base, + 2: optional list avatar, +} + service UserHandler { RegisterResponse Register(1: RegisterRequest req)(api.post="/bibi/user/register/"), LoginResponse Login(1: LoginRequest req)(api.post="/bibi/user/login/"), @@ -92,6 +104,7 @@ service UserHandler { AvatarResponse Avatar(1:AvatarRequest req)(api.put="/bibi/user/avatar/upload"), // OTP2FAResp OTP2FA(1:OTP2FAReq req)(api.get="/bibi/user/2fa"), Switch2FAResponse Switch2FA(1:Switch2FARequest req)(api.post="/bibi/user/switch2fa"), + SearchAvatarResponse SearchAvatar(1:SearchAvatarRequest req)(api.post="/bibi/user/avatar/search"), GetAccessTokenResponse GetAccessToken(1:GetAccessTokenRequest req)(api.get="/bibi/access_token/get") } @@ -110,9 +123,9 @@ struct Video{ } struct PutVideoRequest{ - 1:required binary video_file, + 1:binary video_file, 2:required string title, - 3:required binary cover, + 3:binary cover, } struct PutVideoResponse{ diff --git a/idl/base.thrift b/idl/base.thrift index 25c1130..41dbfa9 100644 --- a/idl/base.thrift +++ b/idl/base.thrift @@ -1,8 +1,8 @@ namespace go base //公共数据结构 struct BaseResp { - 1: i64 code - 2: string msg + 1: i64 code, + 2: string msg, } struct User { diff --git a/idl/user.thrift b/idl/user.thrift index b490ef1..c98003e 100644 --- a/idl/user.thrift +++ b/idl/user.thrift @@ -72,6 +72,18 @@ struct GetUsersResponse{ 2:list user_list, } +struct SearchAvatarRequest{ + 1: required i64 dim, // 向量维数 + 2: required list vector, + 3: required i64 page_num, +} + +struct SearchAvatarResponse{ + 1: required base.BaseResp base, + 2: optional list avatar, +} + + service UserHandler { RegisterResponse Register(1: RegisterRequest req)(api.post="/bibi/user/register/"), LoginResponse Login(1: LoginRequest req)(api.post="/bibi/user/login/"), @@ -79,6 +91,6 @@ service UserHandler { AvatarResponse Avatar(1:AvatarRequest req)(api.put="/bibi/user/avatar/upload"), // OTP2FAResp OTP2FA(1:OTP2FAReq req)(api.get="/bibi/user/2fa"), Switch2FAResponse Switch2FA(1:Switch2FARequest req)(api.post="/bibi/user/switch2fa"), - + SearchAvatarResponse SearchAvatar(1:SearchAvatarRequest req)(api.post="/bibi/user/avatar/search"), GetUsersResponse GetUserList(1:GetUsersRequest req), } \ No newline at end of file diff --git a/init.sh b/init.sh index 0f8851b..4f0b7d4 100644 --- a/init.sh +++ b/init.sh @@ -7,6 +7,6 @@ mkdir -p data/mysql mkdir -p data/redis mkdir -p data/rabbitmq mkdir -p data/etcd -chmod 700 data/elasticsearch -chmod 700 data/kibana +mkdir -p data/minio +chmod 770 data/elasticsearch && chmod 770 data/kibana # 770 077 \ No newline at end of file diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go index 57ce586..b088627 100644 --- a/pkg/constants/constants.go +++ b/pkg/constants/constants.go @@ -23,6 +23,8 @@ const ( // limit MaxConnections = 1000 MaxQPS = 100 + UpdateConnections = 2000 + UpdateQPS = 200 MaxRequestBodySize = 114514 * 1024 * 1024 MaxIdleConns = 20 MaxGoroutines = 10 @@ -37,6 +39,7 @@ const ( const ( ElasticSearchIndexName = "bibi" + ClusterName = "bibi" // page PageNum = 1 diff --git a/pkg/utils/remote/config_remote_provider.go b/pkg/utils/remote/config_remote_provider.go new file mode 100644 index 0000000..1754e93 --- /dev/null +++ b/pkg/utils/remote/config_remote_provider.go @@ -0,0 +1,62 @@ +package remote + +import ( + "bytes" + "fmt" + "github.com/spf13/viper" +) + +type ViperRemoteProvider struct { + configType string + configSet string +} + +func NewRemoteProvider(configType string) *ViperRemoteProvider { + return &ViperRemoteProvider{ + configType: configType, + configSet: "yoyogo.cloud.discovery.metadata"} +} + +func (provider *ViperRemoteProvider) GetProvider(runtimeViper *viper.Viper) *viper.Viper { + var option *Option + err := runtimeViper.Sub(provider.configSet).Unmarshal(&option) + if err != nil { + panic(err) + return nil + } + SetOptions(option) + remote_viper := viper.New() + err = remote_viper.AddRemoteProvider("nacos", "localhost", "") + if provider.configType == "" { + provider.configType = "yaml" + } + remote_viper.SetConfigType(provider.configType) + err = remote_viper.ReadRemoteConfig() + if err == nil { + //err = remote_viper.WatchRemoteConfigOnChannel() + if err == nil { + fmt.Println("used remote viper") + return remote_viper + } + } else { + panic(err) + } + return runtimeViper +} + +func (provider *ViperRemoteProvider) WatchRemoteConfigOnChannel(remoteViper *viper.Viper) <-chan bool { + updater := make(chan bool) + + respChan, _ := viper.RemoteConfig.WatchChannel(DefaultRemoteProvider()) + go func(rc <-chan *viper.RemoteResponse) { + for { + b := <-rc + reader := bytes.NewReader(b.Value) + _ = remoteViper.ReadConfig(reader) + // configuration on changed + updater <- true + } + }(respChan) + + return updater +} diff --git a/pkg/utils/remote/nacos_manager.go b/pkg/utils/remote/nacos_manager.go new file mode 100644 index 0000000..428c351 --- /dev/null +++ b/pkg/utils/remote/nacos_manager.go @@ -0,0 +1,98 @@ +package remote + +import ( + "fmt" + "github.com/nacos-group/nacos-sdk-go/clients" + "github.com/nacos-group/nacos-sdk-go/clients/config_client" + "github.com/nacos-group/nacos-sdk-go/common/constant" + "github.com/nacos-group/nacos-sdk-go/common/logger" + "github.com/nacos-group/nacos-sdk-go/vo" + "github.com/spf13/viper" + "strings" +) + +type nacosConfigManager struct { + client config_client.IConfigClient + option *Option +} + +func NewNacosConfigManager(option *Option) (*nacosConfigManager, error) { + var serverConfigs []constant.ServerConfig + urls := strings.Split(option.Url, ";") + for _, url := range urls { + serverConfigs = append(serverConfigs, constant.ServerConfig{ + ContextPath: "/nacos", + IpAddr: url, + Port: option.Port, + }) + } + clientConfig := constant.ClientConfig{ + NamespaceId: option.NamespaceId, + TimeoutMs: 5000, + NotLoadCacheAtStart: true, + LogLevel: "info", + } + + if option.Auth != nil && option.Auth.Enable { + clientConfig.Username = option.Auth.User + clientConfig.Password = option.Auth.Password + clientConfig.Endpoint = option.Auth.Endpoint + clientConfig.RegionId = option.Auth.RegionId + clientConfig.AccessKey = option.Auth.AccessKey + clientConfig.SecretKey = option.Auth.SecretKey + clientConfig.OpenKMS = option.Auth.OpenKMS + } + client, err := clients.CreateConfigClient(map[string]interface{}{ + "serverConfigs": serverConfigs, + "clientConfig": clientConfig, + }) + if err != nil { + logger.Error(err.Error()) + return nil, err + } + + manager := &nacosConfigManager{client: client, option: option} + + return manager, err +} + +func (cm *nacosConfigManager) Get(dataId string) ([]byte, error) { + //get config + content, err := cm.client.GetConfig(vo.ConfigParam{ + DataId: cm.option.Config.DataId, + Group: cm.option.GroupName, + }) + return []byte(content), err +} + +func (cm *nacosConfigManager) Watch(dataId string, stop chan bool) <-chan *viper.RemoteResponse { + resp := make(chan *viper.RemoteResponse) + + configParams := vo.ConfigParam{ + DataId: cm.option.Config.DataId, + Group: cm.option.GroupName, + OnChange: func(namespace, group, dataId, data string) { + fmt.Println("config changed group:" + group + ", dataId:" + dataId) + resp <- &viper.RemoteResponse{ + Value: []byte(data), + Error: nil, + } + }, + } + err := cm.client.ListenConfig(configParams) + if err != nil { + return nil + } + + go func() { + for { + select { + case <-stop: + _ = cm.client.CancelListenConfig(configParams) + return + } + } + }() + + return resp +} diff --git a/pkg/utils/remote/nacos_options.go b/pkg/utils/remote/nacos_options.go new file mode 100644 index 0000000..d7ebd4b --- /dev/null +++ b/pkg/utils/remote/nacos_options.go @@ -0,0 +1,31 @@ +package remote + +type Option struct { + Url string `mapstructure:"url"` + Port uint64 `mapstructure:"port"` + NamespaceId string `mapstructure:"namespace"` + GroupName string `mapstructure:"group"` + Config Config `mapstructure:"configserver"` + Auth *Auth `mapstructure:"auth"` +} + +type Config struct { + DataId string `mapstructure:"dataId"` +} + +type Auth struct { + Enable bool `mapstructure:"enable"` + User string `mapstructure:"username"` + Password string `mapstructure:"password"` + + // ACM Endpoint + Endpoint string `mapstructure:"endpoint"` + // ACM RegionId + RegionId string `mapstructure:"regionId"` + // ACM AccessKey + AccessKey string `mapstructure:"accessKey"` + // ACM SecretKey + SecretKey string `mapstructure:"secretKey"` + // ACM OpenKMS + OpenKMS bool `mapstructure:"openKMS"` +} diff --git a/pkg/utils/remote/nacosprovider.go b/pkg/utils/remote/nacosprovider.go new file mode 100644 index 0000000..e55fe30 --- /dev/null +++ b/pkg/utils/remote/nacosprovider.go @@ -0,0 +1,28 @@ +package remote + +type nacosRemoteProvider struct { + provider string + endpoint string + path string + secretKeyring string +} + +func DefaultRemoteProvider() *nacosRemoteProvider { + return &nacosRemoteProvider{provider: "nacos", endpoint: "localhost", path: "", secretKeyring: ""} +} + +func (rp nacosRemoteProvider) Provider() string { + return rp.provider +} + +func (rp nacosRemoteProvider) Endpoint() string { + return rp.endpoint +} + +func (rp nacosRemoteProvider) Path() string { + return rp.path +} + +func (rp nacosRemoteProvider) SecretKeyring() string { + return rp.secretKeyring +} diff --git a/pkg/utils/remote/viper_manager.go b/pkg/utils/remote/viper_manager.go new file mode 100644 index 0000000..98ab560 --- /dev/null +++ b/pkg/utils/remote/viper_manager.go @@ -0,0 +1,8 @@ +package remote + +import "github.com/spf13/viper" + +type viperConfigManager interface { + Get(key string) ([]byte, error) + Watch(key string, stop chan bool) <-chan *viper.RemoteResponse +} diff --git a/pkg/utils/remote/viper_remote.go b/pkg/utils/remote/viper_remote.go new file mode 100644 index 0000000..51583b8 --- /dev/null +++ b/pkg/utils/remote/viper_remote.go @@ -0,0 +1,64 @@ +package remote + +import ( + "bytes" + "errors" + "github.com/spf13/viper" + "io" +) + +//var nacosOptions = &Option{} + +func SetOptions(option *Option) { + manager, _ := NewNacosConfigManager(option) + viper.SupportedRemoteProviders = []string{"nacos"} + viper.RemoteConfig = &remoteConfigProvider{ConfigManager: manager} +} + +type remoteConfigProvider struct { + ConfigManager *nacosConfigManager +} + +func (rc *remoteConfigProvider) Get(rp viper.RemoteProvider) (io.Reader, error) { + cmt, err := rc.getConfigManager(rp) + if err != nil { + return nil, err + } + var b []byte + switch cm := cmt.(type) { + case viperConfigManager: + b, err = cm.Get(rp.Path()) + } + if err != nil { + return nil, err + } + return bytes.NewReader(b), nil +} + +func (rc *remoteConfigProvider) Watch(rp viper.RemoteProvider) (io.Reader, error) { + return rc.Get(rp) +} + +func (rc *remoteConfigProvider) WatchChannel(rp viper.RemoteProvider) (<-chan *viper.RemoteResponse, chan bool) { + cmt, err := rc.getConfigManager(rp) + if err != nil { + return nil, nil + } + + switch cm := cmt.(type) { + case viperConfigManager: + quit := make(chan bool) + viperResponseCh := cm.Watch("dataId", quit) + return viperResponseCh, quit + } + + return nil, nil +} + +func (rc *remoteConfigProvider) getConfigManager(rp viper.RemoteProvider) (interface{}, error) { + if rp.Provider() == "nacos" { + return rc.ConfigManager, nil + } else { + return nil, errors.New("The Nacos configuration manager is not supported!") + } +} diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 1519d02..66e4b47 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -2,7 +2,13 @@ package utils import ( "bibi/config" + "fmt" + "github.com/cloudwego/kitex/pkg/klog" + "github.com/nacos-group/nacos-sdk-go/v2/clients" + "github.com/nacos-group/nacos-sdk-go/v2/common/constant" + "github.com/nacos-group/nacos-sdk-go/v2/vo" "net" + "strconv" "strings" ) @@ -26,3 +32,49 @@ func AddrCheck(addr string) bool { return true } + +func InitNacos(serviceName string) { + port, err := strconv.ParseInt(config.Nacos.Port, 10, 64) + if err != nil { + klog.Info(err.Error()) + } + sc := []constant.ServerConfig{{ + IpAddr: config.Nacos.Host, + Port: uint64(port), + }} + + cc := constant.ClientConfig{ + NamespaceId: "", // 如果需要支持多namespace,我们可以场景多个client,它们有不同的NamespaceId。当namespace是public时,此处填空字符串。 + TimeoutMs: 5000, + NotLoadCacheAtStart: true, + LogDir: "log", + CacheDir: "cache", + LogLevel: "debug", + } + + configClient, err := clients.CreateConfigClient(map[string]interface{}{ + "serverConfigs": sc, + "clientConfig": cc, + }) + if err != nil { + klog.Info(err.Error()) + } + + content, err := configClient.GetConfig(vo.ConfigParam{ + DataId: serviceName, + Group: serviceName, + }) + + if err != nil { + klog.Info(err.Error()) + } + fmt.Println(content) //字符串 - yaml + err = configClient.ListenConfig(vo.ConfigParam{ + DataId: serviceName, + Group: serviceName, + OnChange: func(namespace, group, dataId, data string) { + klog.Info("配置文件发生了变化...") + klog.Info("group:" + group + ", dataId:" + dataId + ", data:" + data) + }, + }) +} diff --git a/tree.txt b/tree.txt index d9f33c8..bacfa8b 100644 --- a/tree.txt +++ b/tree.txt @@ -1,4 +1,5 @@ bibi +├─.dockerignore ├─.golangci.yml ├─Dockerfile ├─Makefile @@ -8,17 +9,8 @@ bibi ├─go.mod ├─go.sum ├─init.sh -├─kitex_update.sh ├─start.sh ├─tree.txt -├─test -| ├─main_test.go -| ├─video -| | ├─get_publish_test.go -| | ├─main_test.go -| | ├─rpc_test.go -| | └search_test.go -├─rpc ├─pkg | ├─utils | | ├─utils.go @@ -32,6 +24,8 @@ bibi | | | └oss.go | | ├─eslogrus | | | └eslogrus.go +| ├─tracer +| | └jaeger.go | ├─pack | | ├─build_api_resp.go | | └pack.go @@ -40,6 +34,21 @@ bibi | | └method.go | ├─constants | | └constants.go +├─output +| ├─video +| | └video +| ├─user +| | └user +| ├─interaction +| | └interaction +| ├─follow +| | └follow +| ├─chat +| | └chat +| ├─api +| | └hertz_service +├─log +| └nacos-sdk.log ├─kitex_gen | ├─video | | ├─k-consts.go @@ -68,6 +77,24 @@ bibi | | | ├─interactionhandler.go | | | ├─invoker.go | | | └server.go +| ├─follow +| | ├─follow.go +| | ├─k-consts.go +| | ├─k-follow.go +| | ├─followhandler +| | | ├─client.go +| | | ├─followhandler.go +| | | ├─invoker.go +| | | └server.go +| ├─chat +| | ├─chat.go +| | ├─k-chat.go +| | ├─k-consts.go +| | ├─chathandler +| | | ├─chathandler.go +| | | ├─client.go +| | | ├─invoker.go +| | | └server.go | ├─base | | ├─base.go | | ├─k-base.go @@ -75,6 +102,8 @@ bibi ├─idl | ├─api.thrift | ├─base.thrift +| ├─chat.thrift +| ├─follow.thrift | ├─interaction.thrift | ├─user.thrift | └video.thrift @@ -87,1039 +116,8 @@ bibi | | └init.sql | ├─redis | | └redis.conf -| ├─kibana -| | ├─kibana.yml -| | └node.options -| ├─elasticsearch -| | ├─plugins -| | | ├─ik -| | | | ├─commons-codec-1.11.jar -| | | | ├─commons-logging-1.2.jar -| | | | ├─elasticsearch-analysis-ik-8.12.2.jar -| | | | ├─httpclient-4.5.13.jar -| | | | ├─httpcore-4.4.13.jar -| | | | ├─plugin-descriptor.properties -| | | | ├─plugin-security.policy -| | | | ├─config -| | | | | ├─IKAnalyzer.cfg.xml -| | | | | ├─extra_main.dic -| | | | | ├─extra_single_word.dic -| | | | | ├─extra_single_word_full.dic -| | | | | ├─extra_single_word_low_freq.dic -| | | | | ├─extra_stopword.dic -| | | | | ├─main.dic -| | | | | ├─preposition.dic -| | | | | ├─quantifier.dic -| | | | | ├─stopword.dic -| | | | | ├─suffix.dic -| | | | | └surname.dic -| | ├─config -| | | ├─elasticsearch.keystore -| | | ├─elasticsearch.yml -| | | ├─jvm.options -| | | ├─log4j2.file.properties -| | | └log4j2.properties -├─codeql -| ├─baseline-info.json -| ├─src.zip -| ├─results -| | ├─codeql -| | | ├─go-queries -| | | | ├─Summary -| | | | | └LinesOfCode.bqrs -| | | | ├─Security -| | | | | ├─CWE-918 -| | | | | | └RequestForgery.bqrs -| | | | | ├─CWE-770 -| | | | | | └UncontrolledAllocationSize.bqrs -| | | | | ├─CWE-681 -| | | | | | └IncorrectIntegerConversionQuery.bqrs -| | | | | ├─CWE-643 -| | | | | | └XPathInjection.bqrs -| | | | | ├─CWE-640 -| | | | | | └EmailInjection.bqrs -| | | | | ├─CWE-601 -| | | | | | ├─BadRedirectCheck.bqrs -| | | | | | └OpenUrlRedirect.bqrs -| | | | | ├─CWE-352 -| | | | | | └ConstantOauth2State.bqrs -| | | | | ├─CWE-347 -| | | | | | └MissingJwtSignatureCheck.bqrs -| | | | | ├─CWE-338 -| | | | | | └InsecureRandomness.bqrs -| | | | | ├─CWE-327 -| | | | | | └InsecureTLS.bqrs -| | | | | ├─CWE-326 -| | | | | | └InsufficientKeySize.bqrs -| | | | | ├─CWE-322 -| | | | | | └InsecureHostKeyCallback.bqrs -| | | | | ├─CWE-312 -| | | | | | └CleartextLogging.bqrs -| | | | | ├─CWE-295 -| | | | | | └DisabledCertificateCheck.bqrs -| | | | | ├─CWE-209 -| | | | | | └StackTraceExposure.bqrs -| | | | | ├─CWE-190 -| | | | | | └AllocationSizeOverflow.bqrs -| | | | | ├─CWE-089 -| | | | | | ├─SqlInjection.bqrs -| | | | | | └StringBreak.bqrs -| | | | | ├─CWE-079 -| | | | | | └ReflectedXss.bqrs -| | | | | ├─CWE-078 -| | | | | | └CommandInjection.bqrs -| | | | | ├─CWE-022 -| | | | | | ├─TaintedPath.bqrs -| | | | | | ├─UnsafeUnzipSymlink.bqrs -| | | | | | └ZipSlip.bqrs -| | | | | ├─CWE-020 -| | | | | | ├─IncompleteHostnameRegexp.bqrs -| | | | | | ├─IncompleteUrlSchemeCheck.bqrs -| | | | | | ├─MissingRegexpAnchor.bqrs -| | | | | | └SuspiciousCharacterInRegexp.bqrs -| | | | ├─Diagnostics -| | | | | ├─ExtractionErrors.bqrs -| | | | | └SuccessfullyExtractedFiles.bqrs -| ├─log -| | ├─build-tracer.log -| | └execute-queries-20240417.160821.677.log -| ├─diagnostic -| | ├─cli-diagnostics-add-20240417T080414.153Z.json -| | ├─cli-diagnostics-add-20240417T080422.974Z.json -| | ├─cli-diagnostics-add-20240417T080821.366Z.json -| | ├─tracer -| | ├─extractors -| | | ├─html -| | | ├─go -| | | | └go-extractor.3020711162.json -| ├─db-go -| | ├─go.dbscheme -| | ├─go.dbscheme.stats -| | ├─default -| | | ├─array_length.rel -| | | ├─array_length.rel.checksum -| | | ├─base_type.rel -| | | ├─base_type.rel.checksum -| | | ├─comment_groups.rel -| | | ├─comment_groups.rel.checksum -| | | ├─comments.rel -| | | ├─comments.rel.checksum -| | | ├─compilation_args.rel -| | | ├─compilation_args.rel.checksum -| | | ├─compilation_compiling_files.rel -| | | ├─compilation_compiling_files.rel.checksum -| | | ├─compilation_finished.rel -| | | ├─compilation_finished.rel.checksum -| | | ├─compilations.rel -| | | ├─compilations.rel.checksum -| | | ├─component_types.rel -| | | ├─component_types.rel.checksum -| | | ├─constvalues.rel -| | | ├─constvalues.rel.checksum -| | | ├─containerparent.rel -| | | ├─containerparent.rel.checksum -| | | ├─decls.rel -| | | ├─decls.rel.checksum -| | | ├─defs.rel -| | | ├─defs.rel.checksum -| | | ├─doc_comments.rel -| | | ├─doc_comments.rel.checksum -| | | ├─element_type.rel -| | | ├─element_type.rel.checksum -| | | ├─exprs.rel -| | | ├─exprs.rel.checksum -| | | ├─fields.rel -| | | ├─fields.rel.checksum -| | | ├─fieldstructs.rel -| | | ├─fieldstructs.rel.checksum -| | | ├─files.rel -| | | ├─files.rel.checksum -| | | ├─folders.rel -| | | ├─folders.rel.checksum -| | | ├─has_ellipsis.rel -| | | ├─has_ellipsis.rel.checksum -| | | ├─has_location.rel -| | | ├─has_location.rel.checksum -| | | ├─key_type.rel -| | | ├─key_type.rel.checksum -| | | ├─literals.rel -| | | ├─literals.rel.checksum -| | | ├─locations_default.rel -| | | ├─locations_default.rel.checksum -| | | ├─methodhosts.rel -| | | ├─methodhosts.rel.checksum -| | | ├─methodreceivers.rel -| | | ├─methodreceivers.rel.checksum -| | | ├─modexprs.rel -| | | ├─modexprs.rel.checksum -| | | ├─modtokens.rel -| | | ├─modtokens.rel.checksum -| | | ├─numlines.rel -| | | ├─numlines.rel.checksum -| | | ├─objects.rel -| | | ├─objects.rel.checksum -| | | ├─objectscopes.rel -| | | ├─objectscopes.rel.checksum -| | | ├─objecttypes.rel -| | | ├─objecttypes.rel.checksum -| | | ├─packages.rel -| | | ├─packages.rel.checksum -| | | ├─scopenesting.rel -| | | ├─scopenesting.rel.checksum -| | | ├─scopenodes.rel -| | | ├─scopenodes.rel.checksum -| | | ├─scopes.rel -| | | ├─scopes.rel.checksum -| | | ├─sourceLocationPrefix.rel -| | | ├─sourceLocationPrefix.rel.checksum -| | | ├─specs.rel -| | | ├─specs.rel.checksum -| | | ├─stmts.rel -| | | ├─stmts.rel.checksum -| | | ├─type_objects.rel -| | | ├─type_objects.rel.checksum -| | | ├─type_of.rel -| | | ├─type_of.rel.checksum -| | | ├─typename.rel -| | | ├─typename.rel.checksum -| | | ├─typeparam.rel -| | | ├─typeparam.rel.checksum -| | | ├─types.rel -| | | ├─types.rel.checksum -| | | ├─underlying_type.rel -| | | ├─underlying_type.rel.checksum -| | | ├─uses.rel -| | | ├─uses.rel.checksum -| | | ├─variadic.rel -| | | ├─variadic.rel.checksum -| | | ├─strings -| | | ├─pools -| | | | ├─poolInfo -| | | | ├─1 -| | | | | ├─info -| | | | | ├─pageDump -| | | | | | └page-000000000 -| | | | | ├─indices1 -| | | | | | ├─info -| | | | | | └page-000000 -| | | | | ├─ids1 -| | | | | | ├─info -| | | | | | └page-000000 -| | | | | ├─buckets -| | | | | | ├─info -| | | | | | └page-000000 -| | | | ├─0 -| | | | | ├─info -| | | | | ├─pageDump -| | | | | | ├─page-000000000 -| | | | | | └page-000000001 -| | | | | ├─buckets -| | | | | | ├─info -| | | | | | └page-000000 -| | | ├─cache -| | | | ├─.lock -| | | | ├─version -| | | | ├─relations -| | | | | ├─03.pack -| | | | | ├─04.pack -| | | | | ├─05.pack -| | | | | ├─06.pack -| | | | | ├─09.pack -| | | | | ├─0c.pack -| | | | | ├─0d.pack -| | | | | ├─11.pack -| | | | | ├─13.pack -| | | | | ├─14.pack -| | | | | ├─15.pack -| | | | | ├─16.pack -| | | | | ├─19.pack -| | | | | ├─1e.pack -| | | | | ├─1f.pack -| | | | | ├─22.pack -| | | | | ├─23.pack -| | | | | ├─24.pack -| | | | | ├─26.pack -| | | | | ├─27.pack -| | | | | ├─29.pack -| | | | | ├─2a.pack -| | | | | ├─2b.pack -| | | | | ├─2c.pack -| | | | | ├─2d.pack -| | | | | ├─2f.pack -| | | | | ├─30.pack -| | | | | ├─31.pack -| | | | | ├─32.pack -| | | | | ├─34.pack -| | | | | ├─39.pack -| | | | | ├─3b.pack -| | | | | ├─3c.pack -| | | | | ├─3f.pack -| | | | | ├─43.pack -| | | | | ├─45.pack -| | | | | ├─46.pack -| | | | | ├─47.pack -| | | | | ├─48.pack -| | | | | ├─4a.pack -| | | | | ├─4d.pack -| | | | | ├─50.pack -| | | | | ├─51.pack -| | | | | ├─52.pack -| | | | | ├─53.pack -| | | | | ├─54.pack -| | | | | ├─55.pack -| | | | | ├─57.pack -| | | | | ├─58.pack -| | | | | ├─5c.pack -| | | | | ├─5e.pack -| | | | | ├─60.pack -| | | | | ├─65.pack -| | | | | ├─6a.pack -| | | | | ├─6e.pack -| | | | | ├─6f.pack -| | | | | ├─71.pack -| | | | | ├─77.pack -| | | | | ├─78.pack -| | | | | ├─79.pack -| | | | | ├─7e.pack -| | | | | ├─80.pack -| | | | | ├─81.pack -| | | | | ├─83.pack -| | | | | ├─89.pack -| | | | | ├─8a.pack -| | | | | ├─8d.pack -| | | | | ├─8e.pack -| | | | | ├─90.pack -| | | | | ├─91.pack -| | | | | ├─92.pack -| | | | | ├─96.pack -| | | | | ├─97.pack -| | | | | ├─98.pack -| | | | | ├─99.pack -| | | | | ├─9a.pack -| | | | | ├─9d.pack -| | | | | ├─9f.pack -| | | | | ├─a1.pack -| | | | | ├─ac.pack -| | | | | ├─ae.pack -| | | | | ├─af.pack -| | | | | ├─b0.pack -| | | | | ├─b4.pack -| | | | | ├─b6.pack -| | | | | ├─b7.pack -| | | | | ├─b9.pack -| | | | | ├─ba.pack -| | | | | ├─ba.pack.d -| | | | | ├─bb.pack -| | | | | ├─bd.pack -| | | | | ├─c0.pack -| | | | | ├─c1.pack -| | | | | ├─c5.pack -| | | | | ├─c6.pack -| | | | | ├─ca.pack -| | | | | ├─cb.pack -| | | | | ├─cc.pack -| | | | | ├─d0.pack -| | | | | ├─d1.pack -| | | | | ├─d4.pack -| | | | | ├─de.pack -| | | | | ├─e1.pack -| | | | | ├─e6.pack -| | | | | ├─e7.pack -| | | | | ├─eb.pack -| | | | | ├─ec.pack -| | | | | ├─ed.pack -| | | | | ├─ef.pack -| | | | | ├─f1.pack -| | | | | ├─f3.pack -| | | | | ├─f6.pack -| | | | | └f8.pack -| | | | ├─predicates -| | | | | ├─00.pack -| | | | | ├─01.pack -| | | | | ├─03.pack -| | | | | ├─04.pack -| | | | | ├─05.pack -| | | | | ├─08.pack -| | | | | ├─09.pack -| | | | | ├─0a.pack -| | | | | ├─0b.pack -| | | | | ├─10.pack -| | | | | ├─14.pack -| | | | | ├─15.pack -| | | | | ├─1a.pack -| | | | | ├─1f.pack -| | | | | ├─20.pack -| | | | | ├─21.pack -| | | | | ├─22.pack -| | | | | ├─24.pack -| | | | | ├─26.pack -| | | | | ├─27.pack -| | | | | ├─2b.pack -| | | | | ├─2c.pack -| | | | | ├─2e.pack -| | | | | ├─31.pack -| | | | | ├─32.pack -| | | | | ├─34.pack -| | | | | ├─35.pack -| | | | | ├─36.pack -| | | | | ├─37.pack -| | | | | ├─38.pack -| | | | | ├─39.pack -| | | | | ├─3b.pack -| | | | | ├─3c.pack -| | | | | ├─3d.pack -| | | | | ├─3f.pack -| | | | | ├─40.pack -| | | | | ├─42.pack -| | | | | ├─43.pack -| | | | | ├─44.pack -| | | | | ├─45.pack -| | | | | ├─46.pack -| | | | | ├─48.pack -| | | | | ├─49.pack -| | | | | ├─4b.pack -| | | | | ├─4d.pack -| | | | | ├─4f.pack -| | | | | ├─52.pack -| | | | | ├─56.pack -| | | | | ├─58.pack -| | | | | ├─59.pack -| | | | | ├─5b.pack -| | | | | ├─5d.pack -| | | | | ├─5e.pack -| | | | | ├─63.pack -| | | | | ├─67.pack -| | | | | ├─69.pack -| | | | | ├─6d.pack -| | | | | ├─75.pack -| | | | | ├─78.pack -| | | | | ├─7d.pack -| | | | | ├─7e.pack -| | | | | ├─81.pack -| | | | | ├─82.pack -| | | | | ├─83.pack -| | | | | ├─85.pack -| | | | | ├─88.pack -| | | | | ├─8a.pack -| | | | | ├─8c.pack -| | | | | ├─8e.pack -| | | | | ├─8f.pack -| | | | | ├─93.pack -| | | | | ├─94.pack -| | | | | ├─95.pack -| | | | | ├─96.pack -| | | | | ├─97.pack -| | | | | ├─98.pack -| | | | | ├─99.pack -| | | | | ├─9b.pack -| | | | | ├─9c.pack -| | | | | ├─9e.pack -| | | | | ├─a2.pack -| | | | | ├─a5.pack -| | | | | ├─a7.pack -| | | | | ├─aa.pack -| | | | | ├─ab.pack -| | | | | ├─b1.pack -| | | | | ├─b2.pack -| | | | | ├─b3.pack -| | | | | ├─b4.pack -| | | | | ├─b5.pack -| | | | | ├─b6.pack -| | | | | ├─b7.pack -| | | | | ├─ba.pack -| | | | | ├─bc.pack -| | | | | ├─bd.pack -| | | | | ├─be.pack -| | | | | ├─bf.pack -| | | | | ├─c0.pack -| | | | | ├─c1.pack -| | | | | ├─c2.pack -| | | | | ├─c3.pack -| | | | | ├─c6.pack -| | | | | ├─c7.pack -| | | | | ├─c9.pack -| | | | | ├─cb.pack -| | | | | ├─cc.pack -| | | | | ├─ce.pack -| | | | | ├─d7.pack -| | | | | ├─d9.pack -| | | | | ├─da.pack -| | | | | ├─db.pack -| | | | | ├─dd.pack -| | | | | ├─e0.pack -| | | | | ├─e2.pack -| | | | | ├─e3.pack -| | | | | ├─e4.pack -| | | | | ├─e5.pack -| | | | | ├─e7.pack -| | | | | ├─ea.pack -| | | | | ├─ef.pack -| | | | | ├─f0.pack -| | | | | ├─f1.pack -| | | | | ├─f4.pack -| | | | | ├─f5.pack -| | | | | ├─f6.pack -| | | | | ├─f7.pack -| | | | | ├─f8.pack -| | | | | ├─f9.pack -| | | | | └fe.pack -| | | | ├─pages -| | | | | ├─00.pack -| | | | | ├─00.pack.d -| | | | | ├─01.pack -| | | | | ├─01.pack.d -| | | | | ├─02.pack -| | | | | ├─05.pack -| | | | | ├─05.pack.d -| | | | | ├─07.pack -| | | | | ├─07.pack.d -| | | | | ├─08.pack -| | | | | ├─08.pack.d -| | | | | ├─09.pack -| | | | | ├─09.pack.d -| | | | | ├─0a.pack -| | | | | ├─0a.pack.d -| | | | | ├─0d.pack -| | | | | ├─0e.pack -| | | | | ├─0e.pack.d -| | | | | ├─0f.pack -| | | | | ├─0f.pack.d -| | | | | ├─16.pack -| | | | | ├─16.pack.d -| | | | | ├─17.pack -| | | | | ├─17.pack.d -| | | | | ├─18.pack -| | | | | ├─1d.pack -| | | | | ├─1d.pack.d -| | | | | ├─1e.pack -| | | | | ├─1e.pack.d -| | | | | ├─20.pack -| | | | | ├─20.pack.d -| | | | | ├─25.pack -| | | | | ├─25.pack.d -| | | | | ├─26.pack -| | | | | ├─26.pack.d -| | | | | ├─27.pack -| | | | | ├─27.pack.d -| | | | | ├─29.pack -| | | | | ├─29.pack.d -| | | | | ├─2a.pack -| | | | | ├─2a.pack.d -| | | | | ├─2b.pack -| | | | | ├─2b.pack.d -| | | | | ├─2c.pack -| | | | | ├─2c.pack.d -| | | | | ├─2d.pack -| | | | | ├─2d.pack.d -| | | | | ├─2f.pack -| | | | | ├─30.pack -| | | | | ├─30.pack.d -| | | | | ├─31.pack -| | | | | ├─31.pack.d -| | | | | ├─35.pack -| | | | | ├─39.pack -| | | | | ├─39.pack.d -| | | | | ├─3b.pack -| | | | | ├─3c.pack -| | | | | ├─3c.pack.d -| | | | | ├─3d.pack -| | | | | ├─3d.pack.d -| | | | | ├─3f.pack -| | | | | ├─3f.pack.d -| | | | | ├─40.pack -| | | | | ├─42.pack -| | | | | ├─42.pack.d -| | | | | ├─44.pack -| | | | | ├─44.pack.d -| | | | | ├─45.pack -| | | | | ├─45.pack.d -| | | | | ├─46.pack -| | | | | ├─46.pack.d -| | | | | ├─47.pack -| | | | | ├─47.pack.d -| | | | | ├─4a.pack -| | | | | ├─4a.pack.d -| | | | | ├─4c.pack -| | | | | ├─4c.pack.d -| | | | | ├─4d.pack -| | | | | ├─4d.pack.d -| | | | | ├─4e.pack -| | | | | ├─4e.pack.d -| | | | | ├─4f.pack -| | | | | ├─4f.pack.d -| | | | | ├─50.pack -| | | | | ├─50.pack.d -| | | | | ├─51.pack -| | | | | ├─52.pack -| | | | | ├─52.pack.d -| | | | | ├─53.pack -| | | | | ├─54.pack -| | | | | ├─54.pack.d -| | | | | ├─56.pack -| | | | | ├─56.pack.d -| | | | | ├─58.pack -| | | | | ├─58.pack.d -| | | | | ├─5b.pack -| | | | | ├─5b.pack.d -| | | | | ├─5e.pack -| | | | | ├─5e.pack.d -| | | | | ├─60.pack -| | | | | ├─60.pack.d -| | | | | ├─62.pack -| | | | | ├─62.pack.d -| | | | | ├─66.pack -| | | | | ├─66.pack.d -| | | | | ├─67.pack -| | | | | ├─67.pack.d -| | | | | ├─68.pack -| | | | | ├─68.pack.d -| | | | | ├─69.pack -| | | | | ├─6b.pack -| | | | | ├─6b.pack.d -| | | | | ├─6c.pack -| | | | | ├─6c.pack.d -| | | | | ├─6e.pack -| | | | | ├─71.pack -| | | | | ├─73.pack -| | | | | ├─73.pack.d -| | | | | ├─74.pack -| | | | | ├─74.pack.d -| | | | | ├─77.pack -| | | | | ├─77.pack.d -| | | | | ├─7c.pack -| | | | | ├─7c.pack.d -| | | | | ├─7e.pack -| | | | | ├─7e.pack.d -| | | | | ├─80.pack -| | | | | ├─80.pack.d -| | | | | ├─84.pack -| | | | | ├─84.pack.d -| | | | | ├─85.pack -| | | | | ├─85.pack.d -| | | | | ├─86.pack -| | | | | ├─86.pack.d -| | | | | ├─8d.pack -| | | | | ├─8d.pack.d -| | | | | ├─8f.pack -| | | | | ├─8f.pack.d -| | | | | ├─91.pack -| | | | | ├─91.pack.d -| | | | | ├─92.pack -| | | | | ├─92.pack.d -| | | | | ├─93.pack -| | | | | ├─93.pack.d -| | | | | ├─99.pack -| | | | | ├─99.pack.d -| | | | | ├─9a.pack -| | | | | ├─9a.pack.d -| | | | | ├─9b.pack -| | | | | ├─9b.pack.d -| | | | | ├─9c.pack -| | | | | ├─9c.pack.d -| | | | | ├─9e.pack -| | | | | ├─9e.pack.d -| | | | | ├─a1.pack -| | | | | ├─a1.pack.d -| | | | | ├─a2.pack -| | | | | ├─a2.pack.d -| | | | | ├─a4.pack -| | | | | ├─a4.pack.d -| | | | | ├─a7.pack -| | | | | ├─a7.pack.d -| | | | | ├─b5.pack -| | | | | ├─b5.pack.d -| | | | | ├─b7.pack -| | | | | ├─b7.pack.d -| | | | | ├─b8.pack -| | | | | ├─b8.pack.d -| | | | | ├─b9.pack -| | | | | ├─b9.pack.d -| | | | | ├─ba.pack -| | | | | ├─bb.pack -| | | | | ├─bb.pack.d -| | | | | ├─bc.pack -| | | | | ├─bc.pack.d -| | | | | ├─bd.pack -| | | | | ├─bf.pack -| | | | | ├─bf.pack.d -| | | | | ├─c0.pack -| | | | | ├─c0.pack.d -| | | | | ├─c1.pack -| | | | | ├─c1.pack.d -| | | | | ├─c2.pack -| | | | | ├─c2.pack.d -| | | | | ├─c5.pack -| | | | | ├─c5.pack.d -| | | | | ├─c6.pack -| | | | | ├─c6.pack.d -| | | | | ├─c9.pack -| | | | | ├─c9.pack.d -| | | | | ├─cb.pack -| | | | | ├─cb.pack.d -| | | | | ├─cd.pack -| | | | | ├─cd.pack.d -| | | | | ├─d2.pack -| | | | | ├─d2.pack.d -| | | | | ├─d3.pack -| | | | | ├─d3.pack.d -| | | | | ├─d5.pack -| | | | | ├─d5.pack.d -| | | | | ├─d8.pack -| | | | | ├─d8.pack.d -| | | | | ├─db.pack -| | | | | ├─db.pack.d -| | | | | ├─df.pack -| | | | | ├─e2.pack -| | | | | ├─e2.pack.d -| | | | | ├─e3.pack -| | | | | ├─e3.pack.d -| | | | | ├─e4.pack -| | | | | ├─e4.pack.d -| | | | | ├─ec.pack -| | | | | ├─ec.pack.d -| | | | | ├─ed.pack -| | | | | ├─ed.pack.d -| | | | | ├─f1.pack -| | | | | ├─f1.pack.d -| | | | | ├─f3.pack -| | | | | ├─f3.pack.d -| | | | | ├─f5.pack -| | | | | ├─f5.pack.d -| | | | | ├─f8.pack -| | | | | ├─f8.pack.d -| | | | | ├─fb.pack -| | | | | ├─fb.pack.d -| | | | | ├─ff.pack -| | | | | ├─4c -| | | | | | └c8.pack -| | | | ├─cached-strings -| | | | | ├─tuple-pool -| | | | | | ├─header -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--CFG--TCompletion -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--CFG--TCompletion#0# -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--CFG--TCompletion#1#b -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--CFG--TCompletion#2#s -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--CFG--TCompletion#3#s -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--CFG--TCompletion#4# -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--CFG--TCompletion#5# -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--CFG--TCompletion#6# -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#0#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#1#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#10#eb -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#11#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#12#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#13#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#14#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#15#eie -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#16#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#17#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#2#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#20#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#21#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#22#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#23#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#25#ei -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#28#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#29#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#3#ei -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#30#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#31#eie -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#32#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#33#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#4#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#5#ei -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#6#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TControlFlowNode#7#e -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TWriteTarget -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TWriteTarget#0#te -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TWriteTarget#1#t -| | | | | | ├─tuples#ControlFlowGraphImpl#dd7304ee--TWriteTarget#2#t -| | | | | | ├─tuples#DataFlow#167ac380--DataFlowMake-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---MergePathGraph-594f3e44 -| | | | | | ├─tuples#DataFlow#167ac380--DataFlowMake-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---MergePathGraph-594f3e44#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-0228c451 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-0228c451#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-033d40aa -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-033d40aa#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-1ba751d9 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-1ba751d9#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-2a245e0d -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-2a245e0d#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-38fc0f14 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-38fc0f14#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-4692a33d -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-4692a33d#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-5704732a -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-5704732a#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-5732dcdd -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-5732dcdd#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-57acba84 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-57acba84#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-6bca6786 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-6bca6786#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-7b755719 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-7b755719#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-7f572a00 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-7f572a00#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-9d395f3a -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-9d395f3a#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-aea79874 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-aea79874#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-bc03643f -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-bc03643f#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-d018127d -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-d018127d#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-e5cfcc48 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-e5cfcc48#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-fb56d199 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-fb56d199#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-fc136b7d -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-DataFlow#-fc136b7d#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-051a04fe -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-051a04fe#0#tttttts -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-051a04fe#1#tt -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-069a91b2 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-069a91b2#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-0ef26874 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-0ef26874#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-1010234c -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-1010234c#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-12eb0692 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-12eb0692#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-140ad51b -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-140ad51b#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-20410c78 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-20410c78#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-48c2f9ad -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-48c2f9ad#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-5574631e -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-5574631e#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-5bff9dfc -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-5bff9dfc#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-6affcc3d -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-6affcc3d#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-716c3f75 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-716c3f75#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-77ec6461 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-77ec6461#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-831e78b1 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-831e78b1#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-94bf2af5 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-94bf2af5#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-950d9c6e -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-950d9c6e#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-97346e2c -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-97346e2c#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-9caa656a -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-9caa656a#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-9e6ecc92 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-9e6ecc92#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-b1a0105a -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-b1a0105a#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-b34af747 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-b34af747#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-bb42971a -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-bb42971a#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-bbb825c2 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-bbb825c2#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-c099ad3b -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-c099ad3b#0#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-c786909e -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-c786909e#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-cbb87ec5 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-cbb87ec5#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-cbe32fce -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-cbe32fce#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-cbe32fce#1#t -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-e52062b0 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-e52062b0#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-e7c525fe -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-e7c525fe#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-e87b9351 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-e87b9351#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-e8871d30 -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-e8871d30#0# -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-f735092f -| | | | | | ├─tuples#DataFlowImpl#248dabc3--MakeImpl-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Impl-TaintTrac-f735092f#0#t -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-10900fe7 -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-10900fe7#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-10900fe7#1#t -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-1b383fde -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-1b383fde#0#t -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-1b383fde#1#i -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-3df3dfc9 -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-3df3dfc9#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-3df3dfc9#1#t -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-42754845 -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-42754845#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-42754845#1#t -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-4f8f7f65 -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-4f8f7f65#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-4f8f7f65#1#e -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-51d50fc4 -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-51d50fc4#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-51d50fc4#1#e -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-6760b1aa -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-6760b1aa#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-6760b1aa#1#e -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-6760b1aa#2# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-763bc83e -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-763bc83e#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-763bc83e#1#t -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-9a6e12a9 -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-9a6e12a9#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-9a6e12a9#1# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-9a6e12a9#2#t -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-b5616d8b -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-b5616d8b#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-b5616d8b#1#t -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-c37c1809 -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-c37c1809#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-c37c1809#1#b -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-f1d4018d -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---Ca-f1d4018d#0#tt -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---TR-28d10db4 -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---TR-28d10db4#0# -| | | | | | ├─tuples#DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow---TR-28d10db4#1#ttt -| | | | | | ├─tuples#DataFlowNodes#e9dd7163--TNode -| | | | | | ├─tuples#DataFlowNodes#e9dd7163--TNode#0#t -| | | | | | ├─tuples#DataFlowNodes#e9dd7163--TNode#1#t -| | | | | | ├─tuples#DataFlowNodes#e9dd7163--TNode#2#e -| | | | | | ├─tuples#DataFlowNodes#e9dd7163--TNode#3#e -| | | | | | ├─tuples#DataFlowNodes#e9dd7163--TNode#4#e -| | | | | | ├─tuples#DataFlowNodes#e9dd7163--TNode#5#t -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TDataFlowCallable -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TDataFlowCallable#0#t -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TDataFlowCallable#1#e -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TDataFlowCallable#2# -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TDataFlowCallable#3#t -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TDataFlowType -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TDataFlowType#0# -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TDataFlowType#1# -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TReturnKind -| | | | | | ├─tuples#DataFlowPrivate#37b6ab50--TReturnKind#0#i -| | | | | | ├─tuples#DataFlowUtil#73664af4--TContent -| | | | | | ├─tuples#DataFlowUtil#73664af4--TContent#0#e -| | | | | | ├─tuples#DataFlowUtil#73664af4--TContent#1# -| | | | | | ├─tuples#DataFlowUtil#73664af4--TContent#2# -| | | | | | ├─tuples#DataFlowUtil#73664af4--TContent#3#e -| | | | | | ├─tuples#DataFlowUtil#73664af4--TContent#4# -| | | | | | ├─tuples#DataFlowUtil#73664af4--TContent#5# -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-126b2a2f -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-126b2a2f#0#t -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-126b2a2f#1#i -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-126b2a2f#2#i -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-126b2a2f#3#t -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-126b2a2f#5#t -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-126b2a2f#6#t -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-2b556b10 -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-2b556b10#0#t -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-2b556b10#1#t -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-afd18649 -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-afd18649#0#tt -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-afd18649#1#ti -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-f5302495 -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-f5302495#0#t -| | | | | | ├─tuples#FlowSummaryImpl#b5343dca--Make-Locations#a805f978--Location-DataFlowImplSpecific#1bc48d84--GoDataFlow-FlowSummaryImpl#e-f5302495#1#tt -| | | | | | ├─tuples#FlowSummaryImpl#ef92c8c2--SourceSinkInterpretationInput--TInterpretNode -| | | | | | ├─tuples#FlowSummaryImpl#ef92c8c2--SourceSinkInterpretationInput--TInterpretNode#0#t -| | | | | | ├─tuples#FlowSummaryImpl#ef92c8c2--SourceSinkInterpretationInput--TInterpretNode#1#t -| | | | | | ├─tuples#FlowSummaryImpl#ef92c8c2--SourceSinkInterpretationInput--TSourceOrSinkElement -| | | | | | ├─tuples#FlowSummaryImpl#ef92c8c2--SourceSinkInterpretationInput--TSourceOrSinkElement#0#e -| | | | | | ├─tuples#FlowSummaryImpl#ef92c8c2--SourceSinkInterpretationInput--TSourceOrSinkElement#1#e -| | | | | | ├─tuples#FunctionInputsAndOutputs#b9240a60--TFunctionInput -| | | | | | ├─tuples#FunctionInputsAndOutputs#b9240a60--TFunctionInput#0#i -| | | | | | ├─tuples#FunctionInputsAndOutputs#b9240a60--TFunctionInput#1# -| | | | | | ├─tuples#FunctionInputsAndOutputs#b9240a60--TFunctionInput#2#i -| | | | | | ├─tuples#FunctionInputsAndOutputs#b9240a60--TFunctionOutput -| | | | | | ├─tuples#FunctionInputsAndOutputs#b9240a60--TFunctionOutput#0#i -| | | | | | ├─tuples#FunctionInputsAndOutputs#b9240a60--TFunctionOutput#1# -| | | | | | ├─tuples#FunctionInputsAndOutputs#b9240a60--TFunctionOutput#2#i -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#0#s -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#1#s -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#10#tt -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#11#tts -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#12#ts -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#13#t -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#2#b -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#3#t -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#4#e -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#5#et -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#6#te -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#7#tet -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#8#ett -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnBase#9#ttt -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnList -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnList#0# -| | | | | | ├─tuples#GlobalValueNumbering#1633a954--GvnList#1#tt -| | | | | | ├─tuples#IncorrectIntegerConversionLib#39a23149--TArchitectureBitSize -| | | | | | ├─tuples#IncorrectIntegerConversionLib#39a23149--TArchitectureBitSize#0# -| | | | | | ├─tuples#IncorrectIntegerConversionLib#39a23149--TArchitectureBitSize#1# -| | | | | | ├─tuples#IncorrectIntegerConversionLib#39a23149--TArchitectureBitSize#2# -| | | | | | ├─tuples#IncorrectIntegerConversionLib#39a23149--TMaxValueState -| | | | | | ├─tuples#IncorrectIntegerConversionLib#39a23149--TMaxValueState#0#it -| | | | | | ├─tuples#Locations#437a8335--TLocation -| | | | | | ├─tuples#Locations#437a8335--TLocation#0#e -| | | | | | ├─tuples#Locations#437a8335--TLocation#1#siiii -| | | | | | ├─tuples#Option#8eb11f23--Option-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1-70a798de -| | | | | | ├─tuples#Option#8eb11f23--Option-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1-70a798de#0# -| | | | | | ├─tuples#Option#8eb11f23--Option-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFlowImplSpecific#1-70a798de#1#t -| | | | | | ├─tuples#Option#8eb11f23--Option-DataFlowPrivate#37b6ab50--DataFlowType---TOption-abfab160 -| | | | | | ├─tuples#Option#8eb11f23--Option-DataFlowPrivate#37b6ab50--DataFlowType---TOption-abfab160#0# -| | | | | | ├─tuples#Option#8eb11f23--Option-DataFlowPrivate#37b6ab50--DataFlowType---TOption-abfab160#1#t -| | | | | | ├─tuples#Option#8eb11f23--Option-Unit#54592529--Unit---TOption-51176e26 -| | | | | | ├─tuples#Option#8eb11f23--Option-Unit#54592529--Unit---TOption-51176e26#0# -| | | | | | ├─tuples#Option#8eb11f23--Option-Unit#54592529--Unit---TOption-51176e26#1#t -| | | | | | ├─tuples#Properties#8499a58f--TProperty -| | | | | | ├─tuples#Properties#8499a58f--TProperty#0#b -| | | | | | ├─tuples#Properties#8499a58f--TProperty#1#b -| | | | | | ├─tuples#SSA#e053fc04--TSsaWithFields -| | | | | | ├─tuples#SSA#e053fc04--TSsaWithFields#0#t -| | | | | | ├─tuples#SSA#e053fc04--TSsaWithFields#1#te -| | | | | | ├─tuples#Scopes#fc940c83--TCallable -| | | | | | ├─tuples#Scopes#fc940c83--TCallable#0#e -| | | | | | ├─tuples#Scopes#fc940c83--TCallable#1#e -| | | | | | ├─tuples#SsaImpl#8d4ee0fb--Internal--RefKind -| | | | | | ├─tuples#SsaImpl#8d4ee0fb--Internal--RefKind#0# -| | | | | | ├─tuples#SsaImpl#8d4ee0fb--Internal--RefKind#1# -| | | | | | ├─tuples#SsaImpl#8d4ee0fb--Internal--TSsaDefinition -| | | | | | ├─tuples#SsaImpl#8d4ee0fb--Internal--TSsaDefinition#0#tie -| | | | | | ├─tuples#SsaImpl#8d4ee0fb--Internal--TSsaDefinition#1#tie -| | | | | | ├─tuples#SsaImpl#8d4ee0fb--Internal--TSsaDefinition#2#te -| | | | | | ├─tuples#StringOps#3f39c499--StringOps--TConcatenationElement -| | | | | | ├─tuples#StringOps#3f39c499--StringOps--TConcatenationElement#0#t -| | | | | | ├─tuples#StringOps#3f39c499--StringOps--TConcatenationElement#1#ti -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-3e8e22b9 -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-3e8e22b9#0#bt -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-51538e5b -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-51538e5b#0#bt -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-71202fba -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-71202fba#0# -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-71202fba#1# -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-71202fba#2# -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-71202fba#3#t -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-71202fba#4#t -| | | | | | ├─tuples#TypeTrackingImpl#b2329b5e--TypeTracking-DataFlowImplCommon#f7de413b--MakeImplCommon-Locations#a805f978--Location-DataFl-71202fba#8# -| | | | | | ├─tuples#Types#855a2abb--TTypeSetTerm -| | | | | | ├─tuples#Types#855a2abb--TTypeSetTerm#0#ei -| | | | | | ├─tuples#Unit#54592529--TUnit -| | | | | | └tuples#Unit#54592529--TUnit#0# -| | | | | ├─pools -| | | | | | ├─poolInfo -| | | | | | ├─0 -| | | | | | | ├─info -| | | | | | | ├─pageDump -| | | | | | | | └page-000000000 -| | | | | | | ├─indices1 -| | | | | | | | ├─info -| | | | | | | | └page-000000 -| | | | | | | ├─ids1 -| | | | | | | | ├─info -| | | | | | | | └page-000000 -| | | | | | | ├─buckets -| | | | | | | | ├─info -| | | | | | | | └page-000000 +| ├─rabbitmq +| | └rabbitmq-env.conf ├─cmd | ├─video | | ├─build.sh @@ -1129,7 +127,8 @@ bibi | | ├─service | | | ├─get_like_video.go | | | ├─hot_video.go -| | | ├─list_video.go +| | | ├─list_by_id_list.go +| | | ├─list_by_user_id.go | | | ├─search_video.go | | | ├─service.go | | | └upload_video.go @@ -1173,12 +172,16 @@ bibi | | ├─service | | | ├─comment_action.go | | | ├─comment_list.go +| | | ├─dislike_action.go +| | | ├─is_like.go | | | ├─like_action.go | | | ├─like_count.go | | | ├─like_list.go | | | └service.go | | ├─script | | | └bootstrap.sh +| | ├─rpc +| | | └video.go | | ├─dal | | | ├─init.go | | | ├─db @@ -1191,6 +194,58 @@ bibi | | | | ├─comment.go | | | | ├─init.go | | | | └like.go +| ├─follow +| | ├─build.sh +| | ├─handler.go +| | ├─kitex_info.yaml +| | ├─main.go +| | ├─service +| | | ├─follow.go +| | | ├─follower_list.go +| | | ├─following_list.go +| | | ├─friend_list.go +| | | ├─model.go +| | | └unfollow.go +| | ├─script +| | | └bootstrap.sh +| | ├─rpc +| | | └user.go +| | ├─dal +| | | ├─init.go +| | | ├─db +| | | | ├─follow.go +| | | | └init.go +| | | ├─cache +| | | | ├─follow.go +| | | | └init.go +| ├─chat +| | ├─build.sh +| | ├─handler.go +| | ├─kitex_info.yaml +| | ├─main.go +| | ├─service +| | | ├─is_not_read.go +| | | ├─message_save.go +| | | ├─model.go +| | | ├─record.go +| | | ├─ws +| | | | ├─model_reply.go +| | | | └reply_msgp.go +| | ├─script +| | | └bootstrap.sh +| | ├─dal +| | | ├─init.go +| | | ├─mq +| | | | ├─consumer.go +| | | | ├─init.go +| | | | └reply_msgp.go +| | | ├─db +| | | | ├─chat_db.go +| | | | ├─chat_msgp.go +| | | | └init.go +| | | ├─cache +| | | | ├─chat.go +| | | | └init.go | ├─api | | ├─.hz | | ├─build.sh @@ -1200,16 +255,22 @@ bibi | | ├─router_gen.go | | ├─script | | | └bootstrap.sh -| | ├─output -| | | ├─bootstrap.sh -| | | ├─bin -| | | | └hertz_service | | ├─docs | | | ├─docs.go | | | ├─swagger.json | | | └swagger.yaml | | ├─biz +| | | ├─ws +| | | | ├─model.go +| | | | ├─model_reply.go +| | | | ├─reply_msgp.go +| | | | ├─monitor +| | | | | ├─chat.go +| | | | | ├─init.go +| | | | | └model.go | | | ├─rpc +| | | | ├─chat.go +| | | | ├─follow.go | | | | ├─init.go | | | | ├─interaction.go | | | | ├─user.go @@ -1223,13 +284,13 @@ bibi | | | | ├─jwt | | | | | └jwt.go | | | ├─model -| | | | ├─base -| | | | | └base.go | | | | ├─api | | | | | └api.go | | | ├─handler | | | | ├─ping.go | | | | ├─api +| | | | | ├─chat_handler.go +| | | | | ├─follow_handler.go | | | | | ├─interaction_handler.go | | | | | ├─user_handler.go | | | | | └video_handler.go \ No newline at end of file