mirror of
https://github.com/BtbN/ClanServer.git
synced 2026-04-24 23:47:55 -05:00
Implement get_pdata
This commit is contained in:
parent
803ca8e02a
commit
6a8dc3f96b
|
|
@ -16,19 +16,21 @@ namespace ClanServer.Controllers.Core
|
|||
[HttpPost, XrpcCall("cardmng.inquire")]
|
||||
public ActionResult<EamuseXrpcData> Inquire([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
string cardid = data.Document.Element("call").Element("cardmng").Attribute("cardid").Value;
|
||||
string cardType = data.Document.Element("call").Element("cardmng").Attribute("cardtype").Value;
|
||||
string update = data.Document.Element("call").Element("cardmng").Attribute("update").Value;
|
||||
XElement cardmng = data.Document.Element("call").Element("cardmng");
|
||||
|
||||
string cardid = cardmng.Attribute("cardid").Value;
|
||||
string cardType = cardmng.Attribute("cardtype").Value;
|
||||
string update = cardmng.Attribute("update").Value;
|
||||
|
||||
if (update != "") // TODO: actually register cards
|
||||
{
|
||||
data.Document = new XDocument(new XElement("response", new XElement("cardmng",
|
||||
new XAttribute("binded", "1"),
|
||||
new XAttribute("dataid", "DD389C3FFB6F47BA"),
|
||||
new XAttribute("refid", "DD389C3FFB6F47BA"),
|
||||
new XAttribute("ecflag", "1"),
|
||||
new XAttribute("newflag", "0"),
|
||||
new XAttribute("expired", "0")
|
||||
new XAttribute("expired", "0"),
|
||||
new XAttribute("refid", "DD389C3FFB6F47BA")
|
||||
)));
|
||||
}
|
||||
else
|
||||
|
|
@ -44,11 +46,35 @@ namespace ClanServer.Controllers.Core
|
|||
[HttpPost, XrpcCall("cardmng.authpass")]
|
||||
public ActionResult<EamuseXrpcData> Authpass([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
XElement cardmng = data.Document.Element("call").Element("cardmng");
|
||||
|
||||
string pass = cardmng.Attribute("pass").Value;
|
||||
string refId = cardmng.Attribute("refid").Value;
|
||||
|
||||
//TODO
|
||||
|
||||
data.Document = new XDocument(new XElement("response", new XElement("cardmng",
|
||||
new XAttribute("status", "0")
|
||||
)));
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
[HttpPost, XrpcCall("cardmng.getrefid")]
|
||||
public ActionResult<EamuseXrpcData> GetRefId([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
XElement cardmng = data.Document.Element("call").Element("cardmng");
|
||||
|
||||
//TODO: register new user
|
||||
|
||||
Console.WriteLine(data.Document);
|
||||
|
||||
data.Document = new XDocument(new XElement("response", new XElement("cardmng",
|
||||
new XAttribute("dataid", "DD389C3FFB6F47BA"),
|
||||
new XAttribute("refid", "DD389C3FFB6F47BA")
|
||||
)));
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ using eAmuseCore.KBinXML;
|
|||
|
||||
using ClanServer.Routing;
|
||||
|
||||
namespace ClanServer.Controllers.Core
|
||||
namespace ClanServer.Controllers.L44
|
||||
{
|
||||
[ApiController, Route("L44")]
|
||||
public class DemodataController : ControllerBase
|
||||
|
|
@ -34,6 +34,14 @@ namespace ClanServer.Controllers.Core
|
|||
return data;
|
||||
}
|
||||
|
||||
[HttpPost, Route("8"), XrpcCall("demodata.get_hitchart")]
|
||||
public ActionResult<EamuseXrpcData> GetHitchart([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
data.Document = new XDocument(new XElement("response", new XElement("demodata")));
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
[HttpPost, Route("8"), XrpcCall("demodata.get_jbox_list")]
|
||||
public ActionResult<EamuseXrpcData> GetJboxList([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
|
|
|
|||
338
ClanServer/Controllers/L44/Gametop.cs
Normal file
338
ClanServer/Controllers/L44/Gametop.cs
Normal file
|
|
@ -0,0 +1,338 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
using eAmuseCore.KBinXML;
|
||||
|
||||
using ClanServer.Routing;
|
||||
|
||||
namespace ClanServer.Controllers.L44
|
||||
{
|
||||
[ApiController, Route("L44")]
|
||||
public class GametopController : ControllerBase
|
||||
{
|
||||
[HttpPost, Route("8"), XrpcCall("gametop.regist")]
|
||||
public ActionResult<EamuseXrpcData> Register([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
//TODO
|
||||
data.Document = new XDocument(new XElement("response", new XElement("gametop")));
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
[HttpPost, Route("8"), XrpcCall("gametop.get_pdata")]
|
||||
public ActionResult<EamuseXrpcData> GetPdata([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
var gametop = data.Document.Element("call").Element("gametop");
|
||||
var player = gametop.Element("data").Element("player");
|
||||
|
||||
string refId = player.Element("refid").Value;
|
||||
|
||||
data.Document = new XDocument(new XElement("response", new XElement("gametop",
|
||||
new XElement("data",
|
||||
GetInfoElement(),
|
||||
GetPlayerElement(refId)
|
||||
)
|
||||
)));
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
public static XElement GetInfoElement()
|
||||
{
|
||||
return new XElement("info",
|
||||
new XElement("event_info",
|
||||
new XElement("event", new XAttribute("type", "15"),
|
||||
new KU8("state", 1)
|
||||
),
|
||||
new XElement("event", new XAttribute("type", "5"),
|
||||
new KU8("state", 0)
|
||||
),
|
||||
new XElement("event", new XAttribute("type", "6"),
|
||||
new KU8("state", 0)
|
||||
)
|
||||
),
|
||||
new XElement("share_music"),
|
||||
new XElement("genre_def_music"),
|
||||
new KS32("black_jacket_list", 64, 0),
|
||||
new KS32("white_music_list", 64, -1),
|
||||
new KS32("white_marker_list", 16, -1),
|
||||
new KS32("white_theme_list", 16, -1),
|
||||
new KS32("open_music_list", 64, -1),
|
||||
new KS32("shareable_music_list", 64, -1),
|
||||
new XElement("jbox",
|
||||
new KS32("point", 1),
|
||||
new XElement("emblem",
|
||||
new XElement("normal",
|
||||
new KS16("index", 50)
|
||||
),
|
||||
new XElement("premium",
|
||||
new KS16("index", 50)
|
||||
)
|
||||
)
|
||||
),
|
||||
new XElement("collection",
|
||||
new XElement("rating_s")
|
||||
),
|
||||
new XElement("expert_option",
|
||||
new KBool("is_available", true)
|
||||
),
|
||||
new XElement("all_music_matching",
|
||||
new KBool("is_available", false)
|
||||
),
|
||||
new XElement("department",
|
||||
new XElement("pack_list")
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private XElement GetPlayerElement(string refId)
|
||||
{
|
||||
int[] musicList = new int[64]
|
||||
{
|
||||
-2013265951, -102760493, 1711275733, -1579088899,
|
||||
-108536, -227069, -33554401, 16383,
|
||||
0, -1377473, -402653185, -2097153,
|
||||
-1231036417, -786433, -444727297, -1,
|
||||
980541439, -33357824, 1077928957, 133988323,
|
||||
1075838048, -32706, -234907777, -196609,
|
||||
33138687, -2097152, -907557381, -2,
|
||||
-134217841, -34734081, -524293, -1641628417,
|
||||
-1, -1, -2177, -7532097,
|
||||
-3, 264241151, 2080768, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0
|
||||
};
|
||||
|
||||
int[] secretList = musicList;
|
||||
int[] themeList = new int[16] { 1023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
int[] markerList = new int[16] { -1, 7167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
|
||||
int[] titleList = new int[160];
|
||||
titleList[0] = 1;
|
||||
titleList[5] = 65536;
|
||||
titleList[11] = 1024;
|
||||
titleList[12] = 1048576;
|
||||
|
||||
int[] partsList = new int[160];
|
||||
partsList[0] = 1;
|
||||
partsList[58] = -2147483648;
|
||||
partsList[60] = 32;
|
||||
|
||||
int[] emblemList = new int[96];
|
||||
emblemList[0] = 1;
|
||||
emblemList[7] = 16;
|
||||
emblemList[13] = 536870916;
|
||||
emblemList[16] = 65536;
|
||||
emblemList[18] = 4194304;
|
||||
emblemList[22] = 268435456;
|
||||
emblemList[24] = 65536;
|
||||
emblemList[25] = 8388624;
|
||||
emblemList[33] = 147456;
|
||||
emblemList[37] = 4194312;
|
||||
emblemList[38] = 33554432;
|
||||
emblemList[39] = 205520896;
|
||||
emblemList[42] = 2080;
|
||||
emblemList[43] = 2;
|
||||
emblemList[45] = 512;
|
||||
|
||||
int[] commuList = markerList;
|
||||
|
||||
return new XElement("player",
|
||||
new KS32("jid", 612645048),
|
||||
new KS32("session_id", 1),
|
||||
new KStr("name", "CLANTEST"),
|
||||
new KU64("event_flag", 2),
|
||||
new XElement("info",
|
||||
new KS32("tune_cnt", 991),
|
||||
new KS32("save_cnt", 0),
|
||||
new KS32("saved_cnt", 45),
|
||||
new KS32("fc_cnt", 40),
|
||||
new KS32("ex_cnt", 0),
|
||||
new KS32("clear_cnt", 946),
|
||||
new KS32("match_cnt", 0),
|
||||
new KS32("beat_cnt", 0),
|
||||
new KS32("mynews_cnt", 0),
|
||||
new KS32("mtg_entry_cnt", 0),
|
||||
new KS32("mtg_hold_cnt", 0),
|
||||
new KU8("mtg_result", 0),
|
||||
new KS32("bonus_tune_points", 320),
|
||||
new KBool("is_bonus_tune_played", true)
|
||||
),
|
||||
new XElement("last",
|
||||
new KS64("play_time", 0),
|
||||
new KStr("shopname", "x"),
|
||||
new KStr("areaname", "x"),
|
||||
new KS32("music_id", 70000183),
|
||||
new KS8("seq_id", 1),
|
||||
new KStr("seq_edit_id", ""),
|
||||
new KS8("sort", 3),
|
||||
new KS8("category", 24),
|
||||
new KS8("expert_option", 0),
|
||||
new XElement("settings",
|
||||
new KS8("marker", 3),
|
||||
new KS8("theme", 6),
|
||||
new KS16("title", 0),
|
||||
new KS16("parts", 0),
|
||||
new KS8("rank_sort", 1),
|
||||
new KS8("combo_disp", 1),
|
||||
new KS16("emblem", new short[] { 0, 823, 0, 0, 0 }),
|
||||
new KS8("matching", 0),
|
||||
new KS8("hard", 0),
|
||||
new KS8("hazard", 0)
|
||||
)
|
||||
),
|
||||
new XElement("item",
|
||||
new KS32("music_list", musicList),
|
||||
new KS32("secret_list", secretList),
|
||||
new KS32("theme_list", themeList),
|
||||
new KS32("marker_list", markerList),
|
||||
new KS32("title_list", titleList),
|
||||
new KS32("parts_list", partsList),
|
||||
new KS32("emblem_list", emblemList),
|
||||
new KS32("commu_list", commuList),
|
||||
new XElement("new",
|
||||
new KS32("secret_list", 64, 0),
|
||||
new KS32("theme_list", 16, 0),
|
||||
new KS32("marker_list", 16, 0)
|
||||
)
|
||||
),
|
||||
new XElement("team", new XAttribute("id", "1"),
|
||||
new KS32("section", 4),
|
||||
new KS32("street", 6),
|
||||
new KS32("house_number_1", 67),
|
||||
new KS32("house_number_2", 1),
|
||||
new XElement("move",
|
||||
new XAttribute("house_number_1", 67),
|
||||
new XAttribute("house_number_2", 1),
|
||||
new XAttribute("id", 1),
|
||||
new XAttribute("section", 4),
|
||||
new XAttribute("street", 6)
|
||||
)
|
||||
),
|
||||
new XElement("jbox",
|
||||
new KS32("point", 700),
|
||||
new XElement("emblem",
|
||||
new XElement("normal",
|
||||
new KS16("index", 1182)
|
||||
),
|
||||
new XElement("premium",
|
||||
new KS16("index", 1197)
|
||||
)
|
||||
)
|
||||
),
|
||||
new XElement("news",
|
||||
new KS16("checked", 0),
|
||||
new KU32("checked_flag", 1)
|
||||
),
|
||||
new XElement("free_first_play",
|
||||
new KBool("is_available", false)
|
||||
),
|
||||
new XElement("event_info",
|
||||
new XElement("event", new XAttribute("type", "15"),
|
||||
new KU8("state", 1)
|
||||
)
|
||||
),
|
||||
new XElement("new_music"),
|
||||
new XElement("gift_list"),
|
||||
new XElement("jubility", new XAttribute("param", "0"),
|
||||
new XElement("target_music_list")
|
||||
),
|
||||
new XElement("born",
|
||||
new KS8("status", 1),
|
||||
new KS16("year", 2000)
|
||||
),
|
||||
new XElement("question_list"),
|
||||
new XElement("official_news",
|
||||
new XElement("news_list")
|
||||
),
|
||||
GenDroplist(),
|
||||
new XElement("daily_bonus_list"),
|
||||
GenClanCourseList(),
|
||||
new XElement("server"),
|
||||
new XElement("rivallist"),
|
||||
new XElement("fc_challenge",
|
||||
new XElement("today",
|
||||
new KS32("music_id", 40000057),
|
||||
new KU8("state", 0)
|
||||
),
|
||||
new XElement("whim",
|
||||
new KS32("music_id", 30000041),
|
||||
new KU8("state", 80)
|
||||
)
|
||||
),
|
||||
new XElement("navi",
|
||||
new KU64("flag", 122)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private static XElement GenClanCourseList()
|
||||
{
|
||||
XElement categoryList = new XElement("category_list");
|
||||
|
||||
for (int i = 1; i <= 6; ++i)
|
||||
{
|
||||
categoryList.Add(new XElement("category", new XAttribute("id", i),
|
||||
new KBool("is_display", true)
|
||||
));
|
||||
}
|
||||
|
||||
return new XElement("clan_course_list",
|
||||
new XElement("clan_course", new XAttribute("id", "50"),
|
||||
new KS8("status", 1)
|
||||
),
|
||||
categoryList
|
||||
);
|
||||
}
|
||||
|
||||
private static XElement GenDroplist()
|
||||
{
|
||||
var res = new XElement("drop_list");
|
||||
var item_list = new XElement("item_list");
|
||||
|
||||
for (int i = 1; i <= 10; ++i)
|
||||
{
|
||||
item_list.Add(new XElement("item", new XAttribute("id", i),
|
||||
new KS32("num", 0)
|
||||
));
|
||||
}
|
||||
|
||||
for (int i = 1; i <= 10; ++i)
|
||||
{
|
||||
res.Add(new XElement("drop", new XAttribute("id", i),
|
||||
new KS32("exp", 0),
|
||||
new KS32("flag", 0),
|
||||
item_list
|
||||
));
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
[HttpPost, Route("8"), XrpcCall("gametop.get_mdata")]
|
||||
public ActionResult<EamuseXrpcData> GetMdata([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
//TODO
|
||||
data.Document = new XDocument(new XElement("response", new XElement("gametop")));
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
[HttpPost, Route("8"), XrpcCall("gametop.get_meeting")]
|
||||
public ActionResult<EamuseXrpcData> GetMeeting([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
//TODO
|
||||
data.Document = new XDocument(new XElement("response", new XElement("gametop")));
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
35
ClanServer/Controllers/L44/Lobby.cs
Normal file
35
ClanServer/Controllers/L44/Lobby.cs
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
using eAmuseCore.KBinXML;
|
||||
|
||||
using ClanServer.Routing;
|
||||
|
||||
namespace ClanServer.Controllers.L44
|
||||
{
|
||||
[ApiController, Route("L44")]
|
||||
public class LobbyController : ControllerBase
|
||||
{
|
||||
[HttpPost, Route("8"), XrpcCall("lobby.check")]
|
||||
public ActionResult<EamuseXrpcData> Check([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
//TODO
|
||||
data.Document = new XDocument(new XElement("response", new XElement("lobby")));
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
[HttpPost, Route("8"), XrpcCall("lobby.entry")]
|
||||
public ActionResult<EamuseXrpcData> Entry([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
//TODO
|
||||
data.Document = new XDocument(new XElement("response", new XElement("lobby")));
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
26
ClanServer/Controllers/L44/Recommend.cs
Normal file
26
ClanServer/Controllers/L44/Recommend.cs
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
using eAmuseCore.KBinXML;
|
||||
|
||||
using ClanServer.Routing;
|
||||
|
||||
namespace ClanServer.Controllers.L44
|
||||
{
|
||||
[ApiController, Route("L44")]
|
||||
public class RecommendController : ControllerBase
|
||||
{
|
||||
[HttpPost, Route("8"), XrpcCall("recommend.get_recommend")]
|
||||
public ActionResult<EamuseXrpcData> GetRecommend([FromBody] EamuseXrpcData data)
|
||||
{
|
||||
//TODO
|
||||
data.Document = new XDocument(new XElement("response", new XElement("get_pdata")));
|
||||
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@ using eAmuseCore.KBinXML;
|
|||
using ClanServer.Formatters;
|
||||
using ClanServer.Routing;
|
||||
|
||||
namespace ClanServer.Controllers.Core
|
||||
namespace ClanServer.Controllers.L44
|
||||
{
|
||||
[ApiController, Route("L44")]
|
||||
public class ShopinfoController : ControllerBase
|
||||
|
|
@ -28,50 +28,7 @@ namespace ClanServer.Controllers.Core
|
|||
new KU32("exist", 0)
|
||||
),
|
||||
new KU64("event_flag", 0),
|
||||
new XElement("info",
|
||||
new XElement("event_info",
|
||||
new XElement("event", new XAttribute("type", "15"),
|
||||
new KU8("state", 1)
|
||||
),
|
||||
new XElement("event", new XAttribute("type", "5"),
|
||||
new KU8("state", 0)
|
||||
),
|
||||
new XElement("event", new XAttribute("type", "6"),
|
||||
new KU8("state", 0)
|
||||
)
|
||||
),
|
||||
new XElement("share_music"),
|
||||
new XElement("genre_def_music"),
|
||||
new KS32("black_jacket_list", 64, 0),
|
||||
new KS32("white_music_list", 64, -1),
|
||||
new KS32("white_marker_list", 16, -1),
|
||||
new KS32("white_theme_list", 16, -1),
|
||||
new KS32("open_music_list", 64, -1),
|
||||
new KS32("shareable_music_list", 64, -1),
|
||||
new XElement("jbox",
|
||||
new KS32("point", 1),
|
||||
new XElement("emblem",
|
||||
new XElement("normal",
|
||||
new KS16("index", 50)
|
||||
),
|
||||
new XElement("premium",
|
||||
new KS16("index", 50)
|
||||
)
|
||||
)
|
||||
),
|
||||
new XElement("collection",
|
||||
new XElement("rating_s")
|
||||
),
|
||||
new XElement("expert_option",
|
||||
new KBool("is_available", true)
|
||||
),
|
||||
new XElement("all_music_matching",
|
||||
new KBool("is_available", false)
|
||||
),
|
||||
new XElement("department",
|
||||
new XElement("pack_list")
|
||||
)
|
||||
)
|
||||
GametopController.GetInfoElement()
|
||||
))));
|
||||
|
||||
return data;
|
||||
|
|
|
|||
|
|
@ -15,9 +15,9 @@ namespace eAmuseTest
|
|||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
string compress = "none";
|
||||
string eamuse_info = "1-5cf04a26-56c5";
|
||||
byte[] data = HexToBytes("a7a4eef0f58176b89e5f6d0c91df45549f0fdb12a7ea731e9f2f52a85db742ed71eceeee848cfcedf8ca2b59161900ba");
|
||||
string compress = "lz77";
|
||||
string eamuse_info = "1-5cf04a26-3fad";
|
||||
byte[] data = HexToBytes("192b636607070f377148b5595cd163d2f224970b04a6aceae90c1885895c265707be27cdb266822bac0a49a9ccdc67218b34e5f52efcd797bc0ac5e2bee85e252b03e152865c6f0fb9e9bfa31c8f76feef59cb00fb6fb2e33f265d91adab4cbb49221b4c3453047cb7ca865cfd904417b526ff8b0310b5a64e3afc303ed3c756d36fd341e5541025ee0d740da97b3e739aaf1e49520fb39d860c6e43c42eab9b31523733942a81d671468301d5f3cb9b2e15ea8de4151ccc6414afb4ed062437257f082b2a446f089b9fa40c4fd9c60c80b612c3990f4002cf983b29616e32f7a545de443531fa0570fed58106a4bb77194f8bea18d347165caabe5332a12fe69e78e91c8b18b02eab9f205cc31021ae63270398e9610e04297b709dacf3310c14df753d8affae0d3f1b6712f8d663b7262a8d351e8184e5cfcf1fb2ac83a4ac2eefb918cae357b3013ea3a45b4906f7e5dbdf0eb9cdaced18acd5836e4ec05cc221b68217f2cd7abe90a0b70e3a7bb19c3dd54c623f554c3ce409c194d6fe104c1dbea3e9e61726336b59c1d27b7fd05f746b767d28209a4dbe432e06d3322fcd3dd92fe7dc950d9d2de6a54999938cbe76f483751b69d969e7cbf20179b91fb97fe5fe285ecdea9b754f649305909afa56b0c85c5335cc805cd1cfce2ac5656da1b46f9a50147dfe1d9d0e98f17c149daba41d9628bd77adad0e9c3e7c8b8ee3f6c1e112f3b770dfe361626107264a618b5db4fc70bd46c147031ccbe07ec7face27d5473f4bc414db4b1d37e913b2c31eac8e3a7819566f7b297495422e77cc7a6a3a9a5bd35d290ea2c32bedde889110400a668312c81b5958c8c2c65797e6cd2bc1e28d70be10e7e873dd5ecea371eba78f13bddf913d37465a5b3b81be08a5e911d34b4801838073b2bd8e53c0c0f559f3b9b39bbc663f9f1b7b907ffc436f3d35517d9c297c0a9a7ed7e492cbce674df575d22025e3b80d630d6fe3142c2b72adbb896b9b08b86ace6af4f38655c18894ccc6ea0ae6bcea31e01b70a642b65e530e5e3cf0d479f6b07faede5c545c139203f6abae96957df6899d7f9a638bb52bb20a53e804218ac031287c415b28de6e1d49b3875125212cd4090915ef1fc88dead3dfa77fff6b4c9fcc93148cd674f84e1fb49d91288b80c298691fdeb98a832fa85b1da2a9a067640849bdef235b2af8baa7ee3e31983e3327a0d4550c72fdf1722e72b98c2431c7f58ca2e76814faee980eaf22f0ba73c6a199d69d36261f118255ccc6e13041a82ad98837c12634c1e0ce5b8461c7e326bbdec46c1f3d2165be3a22a05c2f30be704337f45c455613800a14e333c1dd2a31a4b344e395cbe57a75a340babd40ebbd9e60008a62956c3eb3add3d53891243ca7c4875651b7a5cac07336c55f37548c3576243af80762334af9c66458bfce1946969ca5fdfa4944f957cb5ad029442624b35fa1783b613247ec2c292cc9b59c2ba767b6e083b813f80bbe2120891956f6235b55811af6aae6e80759805ed73e6e1c43c8d8fcefaf844473d7e3f329ab62a705fc04fb68561f76c23fd2ad1bd1c0fd5e8e3ea68b42ee4d220833fe7e488bfc87319decbe512857a55e7505a5c3760d0623ae170ba541afe9cb7880a82607be87c91eefb95ce67cadd30816320641c923a0431aa69d897bf017cb11712170e3d3425de7357fd7c5970dd0611e0645bc0b19489236e00db3a85bcc13846f2432074a373d4766bf88f0eb1e349c63f98d160aafa29ffc2c6da89c3e4036a5573c8883c53f62d83e76a7b0412a1868230cc16c78e24f61e249cd0f66f05a2d976fc9ad5f0d19013866236c8db928b18ccc2e42c27942f3b03a2bdd98160c7c19c06f8b47189e40c56a66482f78c0864d6637247054004c84a7f909fd78351da411d858d0403f15cf7de0b57f716a2c1c3044d1a337a4785c67f278bc82be8b246d0974cffe7305bbae18bbdbe3e1ca00699894e6fb9576cfea806be34e895eaae33f56214fda4b7c9804f5e12153ff2d81b53e7eae5d9afdd3a2d935ce62e757b9afc7086bb44c204e1bc9d9d6e39600bebf3e7f3fd21e825f94dc30cf4e3c73bdf7ea21ba75fd38cc98121d287b5983ec591f06979c875a653923ba34992559b1773e58de0862d1685cf91993511c312b9e16a0e8ec64f456c49c13d9eb0cf4b31c754318a17de0c162e41e79afa0a05dd79c98f61db2d8d500894f0ced55a816a7da3b9ea4361e7912a90258bc0f2b2fa2cbf7e85b70ae067b78291830d1343a8bf91e0127650cdd67d18359a53aed1b71b3adfdb0fbefc3c3fdb133f4241581182a86b4f6783d328c1f4be0180e350704c5ec808ec44322816e084cda96632d4d073afff921f76e1c166716f6a7de2ba5cc555a69561007d96e1fb7acf1b4e6e4a0c979818dde562a17d3d49f6a4a503892f5e04b543c91bdb2150df3fc2eb1860e4643217ebfdab57aff73de05a546ee653eaec1216ed1e8b73f50e2a2a84c1f0437ed16f7ea557a6c32ba46db79edce000b211d5ab0166e82085fda2881d5e22e62131a031c93158a78a4118f5d28d3ce4a0ca9747dac83e0ed2ae1f594b83af110524e252c0dc331f06a2b608396878fe92e531fd76bfb590c202bd2e9a899b44d716e459329b4b6791ff79dfd8b2303ec4e9c0af4bc022727589795d6f7e4c633994824724f2783dbc74b4c79430009505c7c7ffd7c74c361a857aa336776c66d06fde104f68c9931ae2df44eb71280cc8f46a8d546c6c768f3bea7f395c9dc3f28645f72965ae73d0639385e26d2240bcb2f61bb016b9013a4533c32811081c93f88a05e6824edb19b9568ee9693dab036b7ea68693d584455afa0d6169f4e634d848468a2fd2310b0a377de58a2694bc38cb6c9de0ca5eada717ed623db1f637f5a7a67d8642eae3dd6bc605813f2e76c811da394df950d55b40eba83b12b90dd6b5b487fe11bf0ff882a024a85051657c81dbff31dd7bc79da0a7181449c452e67ce6cf012f0e30e37264f034aecc33db1e356371f901439fc2c8d69b3ee0388cbd0ab83692f9a32e113403de48bb10741aa485eca3392a09b0fb64fc7ecd4ab408fd05bd48aa58852f111df8e508e7945ed23c41bb3a2db3e4f4b7f1d83f7ac429f5406b76a83452223db9694668f2b24c7b9ab7c119d64d8c022bc6cd9802868ead9a2182f1385766153c25c77bf512825c2af8aad25eea29a809df5ccc9167316acb13829cd7086ce7dbe03cca7aa4db28ed9ef14ee204c51b5a580495cbf345f731db33783cc8cddffd66f101f110963978a3804fa0fcceab61cd11a8e5c08a6c965a14ee09fd9375b20646b25a7eee4ffa11f5f8ac69d28304c71726f8e75");
|
||||
|
||||
compress = compress.ToLower();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user