From 2c8cd0bb0fda41091b7a8b6a25e4269eb882b08a Mon Sep 17 00:00:00 2001 From: "DESKTOP-45ANQ2C\\unis" <121212121@qq.com> Date: Wed, 18 Dec 2024 18:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E5=88=86=E4=B8=8B=E5=88=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/DB_SkinLevel.dat | 120 ++++++++--------- data/DB_SkinLevel.json | 250 ++++++++---------------------------- webapi/deprecated.go | 18 +++ worldsrv/trascate_webapi.go | 32 +++-- xlsx/DB_SkinLevel.xlsx | Bin 12932 -> 12485 bytes 5 files changed, 143 insertions(+), 277 deletions(-) diff --git a/data/DB_SkinLevel.dat b/data/DB_SkinLevel.dat index d18ca29..b688d19 100644 --- a/data/DB_SkinLevel.dat +++ b/data/DB_SkinLevel.dat @@ -11,58 +11,50 @@   "B0 -+ (08B排位赛积分提升{0}% -3 "(08B排位赛积分提升{0}% -3 "(08B排位赛积分提升{0}% -3"(08B排位赛积分提升{0}% -3" (08B排位赛积分提升{0}% -3"(08B排位赛积分提升{0}% -3""(08B排位赛积分提升{0}% -3"7(08B排位赛积分提升{0}% -3 "Y(0 8 B排位赛积分提升{0}% -4 -"(0 -8 -B排位赛积分提升{0}% -9(08B'VIP赛每日免费报名次数提升{0} -A"(08B'VIP赛每日免费报名次数提升{0} -A"(08B'VIP赛每日免费报名次数提升{0} -A"(08B'VIP赛每日免费报名次数提升{0} -A" (08B'VIP赛每日免费报名次数提升{0} -A"(08B'VIP赛每日免费报名次数提升{0} -A""(08B'VIP赛每日免费报名次数提升{0} -A"7(08B'VIP赛每日免费报名次数提升{0} -A "Y(0 8 B'VIP赛每日免费报名次数提升{0} -B -"(0 -8 -B'VIP赛每日免费报名次数提升{0} -4(08B"每日礼包金币奖励提升{0}% -< "(08B"每日礼包金币奖励提升{0}% -<!"(08B"每日礼包金币奖励提升{0}% -<""(08B"每日礼包金币奖励提升{0}% -<#" (08B"每日礼包金币奖励提升{0}% -<$"(08B"每日礼包金币奖励提升{0}% -<%""(08B"每日礼包金币奖励提升{0}% -<&"7(08B"每日礼包金币奖励提升{0}% -<' "Y(0 8 B"每日礼包金币奖励提升{0}% -=( -"(0 -8 -B"每日礼包金币奖励提升{0}% -4)(08B"每日任务金币奖励提升{0}% -<*"(08B"每日任务金币奖励提升{0}% -<+"(08B"每日任务金币奖励提升{0}% -<,"(08B"每日任务金币奖励提升{0}% -<-" (08B"每日任务金币奖励提升{0}% -<."(08B"每日任务金币奖励提升{0}% -</""(08B"每日任务金币奖励提升{0}% -<0"7(08B"每日任务金币奖励提升{0}% -<1 "Y(0 8 B"每日任务金币奖励提升{0}% -=2 -"(0 -8 -B"每日任务金币奖励提升{0}% +  B0 + "B0 + "B0 +"B0 +" B0 +"B0 +""B0 +"7B0 + "YB0 + +"B0 + B0 +"B0 +"B0 +"B0 +" B0 +"B0 +""B0 +"7B0 + "YB0 + +"B0 + B0 + "B0 +!"B0 +""B0 +#" B0 +$"B0 +%""B0 +&"7B0 +' "YB0 +( +"B0 + )B0 +*"B0 ++"B0 +,"B0 +-" B0 +."B0 +/""B0 +0"7B0 +1 "YB0 +2 +"B0 3B0 4"B0 5"B0 @@ -74,16 +66,14 @@ B"每日任务金币奖励提升{0}% ; "YB0 < "B0 -7=(08B%每次钻石抽奖幸运值提升{0}% -?>"(08B%每次钻石抽奖幸运值提升{0}% -??"(08B%每次钻石抽奖幸运值提升{0}% -?@"(08B%每次钻石抽奖幸运值提升{0}% -?A" (08B%每次钻石抽奖幸运值提升{0}% -?B"(08B%每次钻石抽奖幸运值提升{0}% -?C""(08B%每次钻石抽奖幸运值提升{0}% -?D"7(08B%每次钻石抽奖幸运值提升{0}% -?E "Y(0 8 B%每次钻石抽奖幸运值提升{0}% -@F -"(0 -8 -B%每次钻石抽奖幸运值提升{0}% \ No newline at end of file + =B0 +>"B0 +?"B0 +@"B0 +A" B0 +B"B0 +C""B0 +D"7B0 +E "YB0 +F +"B0 \ No newline at end of file diff --git a/data/DB_SkinLevel.json b/data/DB_SkinLevel.json index 4e18149..f6591c0 100644 --- a/data/DB_SkinLevel.json +++ b/data/DB_SkinLevel.json @@ -91,10 +91,7 @@ "Id": 11, "SkinId": 300002, "Level": 1, - "SkinSkillId": 30002, - "SkinSkillLevel": 1, - "SkinSkillValue": 1, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 12, @@ -103,10 +100,7 @@ "UpItem": { "310002": 3 }, - "SkinSkillId": 30002, - "SkinSkillLevel": 2, - "SkinSkillValue": 2, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 13, @@ -115,10 +109,7 @@ "UpItem": { "310002": 5 }, - "SkinSkillId": 30002, - "SkinSkillLevel": 3, - "SkinSkillValue": 3, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 14, @@ -127,10 +118,7 @@ "UpItem": { "310002": 8 }, - "SkinSkillId": 30002, - "SkinSkillLevel": 4, - "SkinSkillValue": 4, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 15, @@ -139,10 +127,7 @@ "UpItem": { "310002": 13 }, - "SkinSkillId": 30002, - "SkinSkillLevel": 5, - "SkinSkillValue": 5, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 16, @@ -151,10 +136,7 @@ "UpItem": { "310002": 21 }, - "SkinSkillId": 30002, - "SkinSkillLevel": 6, - "SkinSkillValue": 6, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 17, @@ -163,10 +145,7 @@ "UpItem": { "310002": 34 }, - "SkinSkillId": 30002, - "SkinSkillLevel": 7, - "SkinSkillValue": 7, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 18, @@ -175,10 +154,7 @@ "UpItem": { "310002": 55 }, - "SkinSkillId": 30002, - "SkinSkillLevel": 8, - "SkinSkillValue": 8, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 19, @@ -187,10 +163,7 @@ "UpItem": { "310002": 89 }, - "SkinSkillId": 30002, - "SkinSkillLevel": 9, - "SkinSkillValue": 9, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 20, @@ -199,19 +172,13 @@ "UpItem": { "310002": 144 }, - "SkinSkillId": 30002, - "SkinSkillLevel": 10, - "SkinSkillValue": 10, - "SkinSkillDes": "排位赛积分提升{0}%" + "SkinSkillDes": "0" }, { "Id": 21, "SkinId": 300003, "Level": 1, - "SkinSkillId": 30003, - "SkinSkillLevel": 1, - "SkinSkillValue": 1, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 22, @@ -220,10 +187,7 @@ "UpItem": { "310003": 3 }, - "SkinSkillId": 30003, - "SkinSkillLevel": 2, - "SkinSkillValue": 2, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 23, @@ -232,10 +196,7 @@ "UpItem": { "310003": 5 }, - "SkinSkillId": 30003, - "SkinSkillLevel": 3, - "SkinSkillValue": 3, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 24, @@ -244,10 +205,7 @@ "UpItem": { "310003": 8 }, - "SkinSkillId": 30003, - "SkinSkillLevel": 4, - "SkinSkillValue": 4, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 25, @@ -256,10 +214,7 @@ "UpItem": { "310003": 13 }, - "SkinSkillId": 30003, - "SkinSkillLevel": 5, - "SkinSkillValue": 5, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 26, @@ -268,10 +223,7 @@ "UpItem": { "310003": 21 }, - "SkinSkillId": 30003, - "SkinSkillLevel": 6, - "SkinSkillValue": 6, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 27, @@ -280,10 +232,7 @@ "UpItem": { "310003": 34 }, - "SkinSkillId": 30003, - "SkinSkillLevel": 7, - "SkinSkillValue": 7, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 28, @@ -292,10 +241,7 @@ "UpItem": { "310003": 55 }, - "SkinSkillId": 30003, - "SkinSkillLevel": 8, - "SkinSkillValue": 8, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 29, @@ -304,10 +250,7 @@ "UpItem": { "310003": 89 }, - "SkinSkillId": 30003, - "SkinSkillLevel": 9, - "SkinSkillValue": 9, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 30, @@ -316,19 +259,13 @@ "UpItem": { "310003": 144 }, - "SkinSkillId": 30003, - "SkinSkillLevel": 10, - "SkinSkillValue": 10, - "SkinSkillDes": "VIP赛每日免费报名次数提升{0}" + "SkinSkillDes": "0" }, { "Id": 31, "SkinId": 300004, "Level": 1, - "SkinSkillId": 30004, - "SkinSkillLevel": 1, - "SkinSkillValue": 1, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 32, @@ -337,10 +274,7 @@ "UpItem": { "310004": 3 }, - "SkinSkillId": 30004, - "SkinSkillLevel": 2, - "SkinSkillValue": 2, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 33, @@ -349,10 +283,7 @@ "UpItem": { "310004": 5 }, - "SkinSkillId": 30004, - "SkinSkillLevel": 3, - "SkinSkillValue": 3, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 34, @@ -361,10 +292,7 @@ "UpItem": { "310004": 8 }, - "SkinSkillId": 30004, - "SkinSkillLevel": 4, - "SkinSkillValue": 4, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 35, @@ -373,10 +301,7 @@ "UpItem": { "310004": 13 }, - "SkinSkillId": 30004, - "SkinSkillLevel": 5, - "SkinSkillValue": 5, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 36, @@ -385,10 +310,7 @@ "UpItem": { "310004": 21 }, - "SkinSkillId": 30004, - "SkinSkillLevel": 6, - "SkinSkillValue": 6, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 37, @@ -397,10 +319,7 @@ "UpItem": { "310004": 34 }, - "SkinSkillId": 30004, - "SkinSkillLevel": 7, - "SkinSkillValue": 7, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 38, @@ -409,10 +328,7 @@ "UpItem": { "310004": 55 }, - "SkinSkillId": 30004, - "SkinSkillLevel": 8, - "SkinSkillValue": 8, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 39, @@ -421,10 +337,7 @@ "UpItem": { "310004": 89 }, - "SkinSkillId": 30004, - "SkinSkillLevel": 9, - "SkinSkillValue": 9, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 40, @@ -433,19 +346,13 @@ "UpItem": { "310004": 144 }, - "SkinSkillId": 30004, - "SkinSkillLevel": 10, - "SkinSkillValue": 10, - "SkinSkillDes": "每日礼包金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 41, "SkinId": 300005, "Level": 1, - "SkinSkillId": 30005, - "SkinSkillLevel": 1, - "SkinSkillValue": 1, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 42, @@ -454,10 +361,7 @@ "UpItem": { "310005": 3 }, - "SkinSkillId": 30005, - "SkinSkillLevel": 2, - "SkinSkillValue": 2, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 43, @@ -466,10 +370,7 @@ "UpItem": { "310005": 5 }, - "SkinSkillId": 30005, - "SkinSkillLevel": 3, - "SkinSkillValue": 3, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 44, @@ -478,10 +379,7 @@ "UpItem": { "310005": 8 }, - "SkinSkillId": 30005, - "SkinSkillLevel": 4, - "SkinSkillValue": 4, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 45, @@ -490,10 +388,7 @@ "UpItem": { "310005": 13 }, - "SkinSkillId": 30005, - "SkinSkillLevel": 5, - "SkinSkillValue": 5, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 46, @@ -502,10 +397,7 @@ "UpItem": { "310005": 21 }, - "SkinSkillId": 30005, - "SkinSkillLevel": 6, - "SkinSkillValue": 6, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 47, @@ -514,10 +406,7 @@ "UpItem": { "310005": 34 }, - "SkinSkillId": 30005, - "SkinSkillLevel": 7, - "SkinSkillValue": 7, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 48, @@ -526,10 +415,7 @@ "UpItem": { "310005": 55 }, - "SkinSkillId": 30005, - "SkinSkillLevel": 8, - "SkinSkillValue": 8, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 49, @@ -538,10 +424,7 @@ "UpItem": { "310005": 89 }, - "SkinSkillId": 30005, - "SkinSkillLevel": 9, - "SkinSkillValue": 9, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 50, @@ -550,10 +433,7 @@ "UpItem": { "310005": 144 }, - "SkinSkillId": 30005, - "SkinSkillLevel": 10, - "SkinSkillValue": 10, - "SkinSkillDes": "每日任务金币奖励提升{0}%" + "SkinSkillDes": "0" }, { "Id": 51, @@ -646,10 +526,7 @@ "Id": 61, "SkinId": 300007, "Level": 1, - "SkinSkillId": 30007, - "SkinSkillLevel": 1, - "SkinSkillValue": 1, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" }, { "Id": 62, @@ -658,10 +535,7 @@ "UpItem": { "310007": 3 }, - "SkinSkillId": 30007, - "SkinSkillLevel": 2, - "SkinSkillValue": 2, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" }, { "Id": 63, @@ -670,10 +544,7 @@ "UpItem": { "310007": 5 }, - "SkinSkillId": 30007, - "SkinSkillLevel": 3, - "SkinSkillValue": 3, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" }, { "Id": 64, @@ -682,10 +553,7 @@ "UpItem": { "310007": 8 }, - "SkinSkillId": 30007, - "SkinSkillLevel": 4, - "SkinSkillValue": 4, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" }, { "Id": 65, @@ -694,10 +562,7 @@ "UpItem": { "310007": 13 }, - "SkinSkillId": 30007, - "SkinSkillLevel": 5, - "SkinSkillValue": 5, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" }, { "Id": 66, @@ -706,10 +571,7 @@ "UpItem": { "310007": 21 }, - "SkinSkillId": 30007, - "SkinSkillLevel": 6, - "SkinSkillValue": 6, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" }, { "Id": 67, @@ -718,10 +580,7 @@ "UpItem": { "310007": 34 }, - "SkinSkillId": 30007, - "SkinSkillLevel": 7, - "SkinSkillValue": 7, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" }, { "Id": 68, @@ -730,10 +589,7 @@ "UpItem": { "310007": 55 }, - "SkinSkillId": 30007, - "SkinSkillLevel": 8, - "SkinSkillValue": 8, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" }, { "Id": 69, @@ -742,10 +598,7 @@ "UpItem": { "310007": 89 }, - "SkinSkillId": 30007, - "SkinSkillLevel": 9, - "SkinSkillValue": 9, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" }, { "Id": 70, @@ -754,10 +607,7 @@ "UpItem": { "310007": 144 }, - "SkinSkillId": 30007, - "SkinSkillLevel": 10, - "SkinSkillValue": 10, - "SkinSkillDes": "每次钻石抽奖幸运值提升{0}%" + "SkinSkillDes": "0" } ] } \ No newline at end of file diff --git a/webapi/deprecated.go b/webapi/deprecated.go index 85542df..b6d3d30 100644 --- a/webapi/deprecated.go +++ b/webapi/deprecated.go @@ -309,3 +309,21 @@ type PlatfromPlayerStatusRsp struct { Message string `json:"message"` Success bool `json:"success"` } + +// 查询玩家游戏状态请求 +type PlatfromGamedetailReq struct { + Username string `json:"username"` + Channel string `json:"channel"` + Timestamp string `json:"timestamp"` +} + +// 查询游戏状态返回 +type PlatfromGamedetaiRsp struct { + Code int `json:"code"` + Data struct { + In int `json:"in"` //当局投入 + Out int `json:"out"` //当局收入 + } `json:"data"` + Message string `json:"message"` + Success bool `json:"success"` +} diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index e91de9e..ee5938e 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -3051,12 +3051,18 @@ func init() { pack.Code = int(webapiproto.TagCode_SUCCESS) pack.Message = data.(error).Error() } else { - player.Coin += addcoin + //player.Coin += addcoin + player.AddCoin(addcoin, 0, common.GainWayPlatformUpScore, "platform", "平台上分") player.SendDiffData() } pack.Data.Count = player.Coin + // 玩家在游戏内 + if player.scene != nil { + + } + jsonDataRsp, err = json.Marshal(pack) if err != nil { logger.Logger.Errorf("/api/platform/upscore err: %v", err) @@ -3166,12 +3172,13 @@ func init() { addcoin = -player.Coin remainNum = player.Coin platform := player.Platform - //玩家在游戏内 - if player.scene != nil { - pack.Code = int(webapiproto.TagCode_FAILED) - pack.Message = "Unsupported!!! because player in scene!" - return common.ResponseTag_ParamError, pack - } + ////玩家在游戏内 + //if player.scene != nil { + // pack.Code = int(webapiproto.TagCode_FAILED) + // pack.Message = "Unsupported!!! because player in scene!" + // return common.ResponseTag_ParamError, pack + //} + if len(platform) <= 0 { pack.Code = int(webapiproto.TagCode_FAILED) pack.Message = "player platform forbit!" @@ -3213,7 +3220,7 @@ func init() { pack.Code = int(webapiproto.TagCode_FAILED) pack.Message = data.(error).Error() } else { - player.Coin += addcoin + player.AddCoin(-addcoin, 0, common.GainWayPlatformDownScore, "platform", "平台下分") player.SendDiffData() } @@ -3377,13 +3384,15 @@ func init() { WebAPIHandlerMgrSingleton.RegisteWebAPIHandler("/api/platform/getgamedetailed", WebAPIHandlerWrapper( func(tNode *transact.TransNode, params []byte) (int, interface{}) { - var AccountInfo *webapi.PlatfromCreateAccountReq - err := json.Unmarshal(params, &AccountInfo) + var jsonDataRsp []byte + var msg *webapi.PlatfromGamedetailReq + err := json.Unmarshal(params, &msg) if err != nil { logger.Logger.Error("Unmarshal webapi.PlatfromCreateAccountReq error:", err) + return common.ResponseTag_ParamError, jsonDataRsp } - pack := &webapi.PlatfromGameLoginRsp{ + pack := &webapi.PlatfromGamedetaiRsp{ Success: false, Code: 200, Message: "未知错误", @@ -3391,7 +3400,6 @@ func init() { logger.Logger.Tracef("/api/platform/getgamedetailed %v", pack) - var jsonDataRsp []byte task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { pack.Success = true pack.Message = "返回成功" diff --git a/xlsx/DB_SkinLevel.xlsx b/xlsx/DB_SkinLevel.xlsx index e59ff86c830541f2a2284b4dea5b5a331fdeaf60..cce58e49cc9423bedf50101fadf5e02ac2918a15 100644 GIT binary patch delta 5240 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 PFrg|%D2W_|vA6#RBZYCL