From 7f0029ab739ca541c28e56fa471e0dc09fe69814 Mon Sep 17 00:00:00 2001 From: Kokomi <102026640+yoimiya-kokomi@users.noreply.github.com> Date: Fri, 14 Apr 2023 02:56:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E6=9C=8D=E5=8A=A1=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=94=B1**Snap=20Hutao**=E6=8F=90=E4=BE=9B=E7=9A=84En?= =?UTF-8?q?ka=E8=BD=AC=E5=8F=91=E4=BB=A3=E7=90=86=EF=BC=8C=E5=8F=AF?= =?UTF-8?q?=E9=80=9A=E8=BF=87`#=E5=96=B5=E5=96=B5=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E6=9C=8D=E5=8A=A14`=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E9=80=89=E6=8B=A9=20=E9=83=A8=E5=88=86=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=96=87=E4=BB=B6=E7=BB=93=E6=9E=84=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 10 +- config/profile_default.js | 67 +- config/system/cfg_system.js | 4 +- config/system/character_system.js | 6 +- config/system/profile_system.js | 10 +- models/AvatarData.js | 1 + models/Character.js | 8 +- models/character/CharImg.js | 9 +- models/player/HutaoApi.js | 46 + models/player/Profile.js | 10 +- resources/character/character-card.html | 2 +- .../item/atk-bow.webp} | Bin .../item/atk-catalyst.webp} | Bin .../item/atk-claymore.webp} | Bin .../item/atk-polearm.webp} | Bin .../item/atk-sword.webp} | Bin .../meta/character/七七/icons/talent-e.webp | Bin 11330 -> 0 bytes .../meta/character/七七/icons/talent-q.webp | Bin 6052 -> 0 bytes .../meta/character/丽莎/icons/talent-e.webp | Bin 10894 -> 0 bytes .../meta/character/丽莎/icons/talent-q.webp | Bin 9106 -> 0 bytes .../character/久岐忍/icons/talent-a.webp | Bin 12142 -> 0 bytes .../character/久岐忍/icons/talent-e.webp | Bin 9398 -> 0 bytes .../character/久岐忍/icons/talent-q.webp | Bin 9420 -> 0 bytes .../九条裟罗/icons/talent-e.webp | Bin 10788 -> 0 bytes .../九条裟罗/icons/talent-q.webp | Bin 9764 -> 0 bytes .../meta/character/云堇/icons/talent-e.webp | Bin 10944 -> 0 bytes .../meta/character/云堇/icons/talent-q.webp | Bin 10734 -> 0 bytes .../meta/character/五郎/icons/talent-a.webp | Bin 11718 -> 0 bytes .../meta/character/五郎/icons/talent-e.webp | Bin 8102 -> 0 bytes .../meta/character/五郎/icons/talent-q.webp | Bin 10308 -> 0 bytes .../meta/character/优菈/icons/talent-e.webp | Bin 10428 -> 0 bytes .../meta/character/优菈/icons/talent-q.webp | Bin 8370 -> 0 bytes .../八重神子/icons/talent-a.webp | Bin 8220 -> 0 bytes .../八重神子/icons/talent-e.webp | Bin 9210 -> 0 bytes .../八重神子/icons/talent-q.webp | Bin 9412 -> 0 bytes .../meta/character/凝光/icons/talent-a.webp | Bin 8220 -> 0 bytes .../meta/character/凝光/icons/talent-e.webp | Bin 12054 -> 0 bytes .../meta/character/凝光/icons/talent-q.webp | Bin 9286 -> 0 bytes .../meta/character/凯亚/icons/talent-a.webp | Bin 12142 -> 0 bytes .../meta/character/凯亚/icons/talent-e.webp | Bin 10440 -> 0 bytes .../meta/character/凯亚/icons/talent-q.webp | Bin 8850 -> 0 bytes .../meta/character/刻晴/icons/talent-a.webp | Bin 12142 -> 0 bytes .../meta/character/刻晴/icons/talent-e.webp | Bin 12210 -> 0 bytes .../meta/character/刻晴/icons/talent-q.webp | Bin 9212 -> 0 bytes .../meta/character/北斗/icons/talent-a.webp | Bin 10634 -> 0 bytes .../meta/character/北斗/icons/talent-e.webp | Bin 12454 -> 0 bytes .../meta/character/北斗/icons/talent-q.webp | Bin 8332 -> 0 bytes resources/meta/character/卡维/data.json | 8 +- .../meta/character/卡维/icons/talent-a.webp | Bin 10634 -> 0 bytes .../meta/character/卡维/icons/talent-e.webp | Bin 8030 -> 0 bytes .../meta/character/卡维/icons/talent-q.webp | Bin 9460 -> 0 bytes .../meta/character/可莉/icons/talent-a.webp | Bin 8220 -> 0 bytes .../meta/character/可莉/icons/talent-e.webp | Bin 10592 -> 0 bytes .../meta/character/可莉/icons/talent-q.webp | Bin 8484 -> 0 bytes .../character/坎蒂丝/icons/talent-a.webp | Bin 11604 -> 0 bytes .../character/坎蒂丝/icons/talent-e.webp | Bin 11568 -> 0 bytes .../character/坎蒂丝/icons/talent-q.webp | Bin 9902 -> 0 bytes .../character/埃洛伊/icons/cons-3.webp | Bin 7550 -> 10316 bytes .../character/埃洛伊/icons/cons-5.webp | Bin 7550 -> 10684 bytes .../character/埃洛伊/icons/talent-a.webp | Bin 11718 -> 0 bytes .../character/埃洛伊/icons/talent-e.webp | Bin 10684 -> 0 bytes .../character/埃洛伊/icons/talent-q.webp | Bin 10316 -> 0 bytes .../meta/character/多莉/icons/talent-a.webp | Bin 10634 -> 0 bytes .../meta/character/多莉/icons/talent-e.webp | Bin 10524 -> 0 bytes .../meta/character/多莉/icons/talent-q.webp | Bin 9084 -> 0 bytes .../meta/character/夜兰/icons/talent-a.webp | Bin 11718 -> 0 bytes .../meta/character/夜兰/icons/talent-e.webp | Bin 11040 -> 0 bytes .../meta/character/夜兰/icons/talent-q.webp | Bin 9756 -> 0 bytes .../meta/character/妮露/icons/talent-a.webp | Bin 12142 -> 0 bytes .../meta/character/妮露/icons/talent-e.webp | Bin 11512 -> 0 bytes .../meta/character/妮露/icons/talent-q.webp | Bin 12298 -> 0 bytes .../meta/character/安柏/icons/talent-a.webp | Bin 11718 -> 0 bytes .../meta/character/安柏/icons/talent-e.webp | Bin 13116 -> 0 bytes .../meta/character/安柏/icons/talent-q.webp | Bin 8684 -> 0 bytes .../meta/character/宵宫/icons/talent-a.webp | Bin 11718 -> 0 bytes .../meta/character/宵宫/icons/talent-e.webp | Bin 9606 -> 0 bytes .../meta/character/宵宫/icons/talent-q.webp | Bin 9270 -> 0 bytes .../meta/character/托马/icons/talent-a.webp | Bin 11604 -> 0 bytes .../meta/character/托马/icons/talent-e.webp | Bin 12462 -> 0 bytes .../meta/character/托马/icons/talent-q.webp | Bin 11434 -> 0 bytes .../character/提纳里/icons/talent-a.webp | Bin 11718 -> 0 bytes .../character/提纳里/icons/talent-e.webp | Bin 11750 -> 0 bytes .../character/提纳里/icons/talent-q.webp | Bin 9952 -> 0 bytes .../旅行者/anemo/icons/talent-a.webp | Bin 12142 -> 0 bytes .../旅行者/anemo/icons/talent-e.webp | Bin 10228 -> 0 bytes .../旅行者/anemo/icons/talent-q.webp | Bin 8920 -> 0 bytes .../旅行者/dendro/icons/talent-a.webp | Bin 12142 -> 0 bytes .../旅行者/dendro/icons/talent-e.webp | Bin 12770 -> 0 bytes .../旅行者/dendro/icons/talent-q.webp | Bin 9950 -> 0 bytes .../旅行者/electro/icons/talent-a.webp | Bin 12142 -> 0 bytes .../旅行者/electro/icons/talent-e.webp | Bin 10406 -> 0 bytes .../旅行者/electro/icons/talent-q.webp | Bin 10042 -> 0 bytes .../旅行者/geo/icons/talent-a.webp | Bin 12142 -> 0 bytes .../旅行者/geo/icons/talent-e.webp | Bin 9790 -> 0 bytes .../旅行者/geo/icons/talent-q.webp | Bin 7552 -> 0 bytes .../meta/character/早柚/icons/talent-a.webp | Bin 10634 -> 0 bytes .../meta/character/早柚/icons/talent-e.webp | Bin 12270 -> 0 bytes .../meta/character/早柚/icons/talent-q.webp | Bin 9808 -> 0 bytes .../枫原万叶/icons/talent-a.webp | Bin 12142 -> 0 bytes .../枫原万叶/icons/talent-e.webp | Bin 9112 -> 0 bytes .../枫原万叶/icons/talent-q.webp | Bin 8478 -> 0 bytes .../meta/character/柯莱/icons/talent-a.webp | Bin 11718 -> 0 bytes .../meta/character/柯莱/icons/talent-e.webp | Bin 13716 -> 0 bytes .../meta/character/柯莱/icons/talent-q.webp | Bin 12496 -> 0 bytes .../character/流浪者/icons/talent-a.webp | Bin 8220 -> 0 bytes .../character/流浪者/icons/talent-e.webp | Bin 8666 -> 0 bytes .../character/流浪者/icons/talent-q.webp | Bin 11600 -> 0 bytes .../meta/character/温迪/icons/talent-a.webp | Bin 11718 -> 0 bytes .../meta/character/温迪/icons/talent-e.webp | Bin 9368 -> 0 bytes .../meta/character/温迪/icons/talent-q.webp | Bin 10098 -> 0 bytes .../meta/character/烟绯/icons/talent-a.webp | Bin 8220 -> 0 bytes .../meta/character/烟绯/icons/talent-e.webp | Bin 17068 -> 0 bytes .../meta/character/烟绯/icons/talent-q.webp | Bin 8432 -> 0 bytes .../珊瑚宫心海/icons/talent-a.webp | Bin 8220 -> 0 bytes .../珊瑚宫心海/icons/talent-e.webp | Bin 10580 -> 0 bytes .../珊瑚宫心海/icons/talent-q.webp | Bin 10504 -> 0 bytes .../character/珐露珊/icons/talent-a.webp | Bin 11718 -> 0 bytes .../character/珐露珊/icons/talent-e.webp | Bin 12570 -> 0 bytes .../character/珐露珊/icons/talent-q.webp | Bin 9156 -> 0 bytes .../meta/character/珐露珊/imgs/face-q.webp | Bin 37568 -> 120316 bytes .../character/班尼特/icons/talent-a.webp | Bin 12142 -> 0 bytes .../character/班尼特/icons/talent-e.webp | Bin 8726 -> 0 bytes .../character/班尼特/icons/talent-q.webp | Bin 7754 -> 0 bytes .../meta/character/琴/icons/talent-a.webp | Bin 12142 -> 0 bytes .../meta/character/琴/icons/talent-e.webp | Bin 13024 -> 0 bytes .../meta/character/琴/icons/talent-q.webp | Bin 8332 -> 0 bytes .../meta/character/瑶瑶/icons/talent-a.webp | Bin 11604 -> 0 bytes .../meta/character/瑶瑶/icons/talent-e.webp | Bin 8082 -> 0 bytes .../meta/character/瑶瑶/icons/talent-q.webp | Bin 12350 -> 0 bytes .../meta/character/甘雨/icons/talent-a.webp | Bin 11718 -> 0 bytes .../meta/character/甘雨/icons/talent-e.webp | Bin 13560 -> 0 bytes .../meta/character/甘雨/icons/talent-q.webp | Bin 10464 -> 0 bytes .../meta/character/申鹤/icons/talent-a.webp | Bin 11604 -> 0 bytes .../meta/character/申鹤/icons/talent-e.webp | Bin 11316 -> 0 bytes .../meta/character/申鹤/icons/talent-q.webp | Bin 10400 -> 0 bytes resources/meta/character/白术/data.json | 8 +- .../meta/character/白术/icons/talent-a.webp | Bin 8220 -> 0 bytes .../meta/character/白术/icons/talent-e.webp | Bin 10392 -> 0 bytes .../meta/character/白术/icons/talent-q.webp | Bin 11648 -> 0 bytes .../meta/character/砂糖/icons/talent-a.webp | Bin 8220 -> 0 bytes .../meta/character/砂糖/icons/talent-e.webp | Bin 11130 -> 0 bytes .../meta/character/砂糖/icons/talent-q.webp | Bin 8688 -> 0 bytes .../神里绫人/icons/talent-a.webp | Bin 12142 -> 0 bytes .../神里绫人/icons/talent-e.webp | Bin 12250 -> 0 bytes .../神里绫人/icons/talent-q.webp | Bin 8398 -> 0 bytes .../神里绫华/icons/talent-a.webp | Bin 12142 -> 0 bytes .../神里绫华/icons/talent-e.webp | Bin 9712 -> 0 bytes .../神里绫华/icons/talent-q.webp | Bin 9010 -> 0 bytes .../meta/character/米卡/icons/talent-a.webp | Bin 11604 -> 0 bytes .../meta/character/米卡/icons/talent-e.webp | Bin 10190 -> 0 bytes .../meta/character/米卡/icons/talent-q.webp | Bin 9640 -> 0 bytes .../character/纳西妲/icons/talent-a.webp | Bin 8220 -> 0 bytes .../character/纳西妲/icons/talent-e.webp | Bin 12114 -> 0 bytes .../character/纳西妲/icons/talent-q.webp | Bin 11262 -> 0 bytes resources/meta/character/绮良良/data.json | 17 +- .../meta/character/绮良良/detail.json | 824 ++++++++++++++++-- .../character/绮良良/icons/cons-1.webp | Bin 5699 -> 10244 bytes .../character/绮良良/icons/cons-2.webp | Bin 6683 -> 12202 bytes .../character/绮良良/icons/cons-3.webp | Bin 7582 -> 12556 bytes .../character/绮良良/icons/cons-4.webp | Bin 6258 -> 9988 bytes .../character/绮良良/icons/cons-5.webp | Bin 6081 -> 10160 bytes .../character/绮良良/icons/cons-6.webp | Bin 6569 -> 11902 bytes .../character/绮良良/icons/passive-0.webp | Bin 7523 -> 10078 bytes .../character/绮良良/icons/passive-1.webp | Bin 5059 -> 12990 bytes .../character/绮良良/icons/passive-2.webp | Bin 3814 -> 10304 bytes .../character/绮良良/icons/talent-a.webp | Bin 12142 -> 0 bytes .../character/绮良良/icons/talent-e.webp | Bin 7582 -> 0 bytes .../character/绮良良/icons/talent-q.webp | Bin 3381 -> 0 bytes .../meta/character/绮良良/imgs/card.webp | Bin 464246 -> 0 bytes .../meta/character/绮良良/imgs/face.webp | Bin 94746 -> 30158 bytes .../meta/character/绮良良/imgs/gacha.webp | Bin 0 -> 142302 bytes .../meta/character/绮良良/imgs/side.webp | Bin 0 -> 12084 bytes .../meta/character/绮良良/imgs/splash.webp | Bin 1183241 -> 439006 bytes .../罗莎莉亚/icons/talent-a.webp | Bin 11604 -> 0 bytes .../罗莎莉亚/icons/talent-e.webp | Bin 13062 -> 0 bytes .../罗莎莉亚/icons/talent-q.webp | Bin 9422 -> 0 bytes .../meta/character/胡桃/icons/talent-a.webp | Bin 11604 -> 0 bytes .../meta/character/胡桃/icons/talent-e.webp | Bin 11976 -> 0 bytes .../meta/character/胡桃/icons/talent-q.webp | Bin 8484 -> 0 bytes .../艾尔海森/icons/talent-a.webp | Bin 12142 -> 0 bytes .../艾尔海森/icons/talent-e.webp | Bin 8710 -> 0 bytes .../艾尔海森/icons/talent-q.webp | Bin 13558 -> 0 bytes .../character/芭芭拉/icons/talent-a.webp | Bin 8220 -> 0 bytes .../character/芭芭拉/icons/talent-e.webp | Bin 14518 -> 0 bytes .../character/芭芭拉/icons/talent-q.webp | Bin 7936 -> 0 bytes .../荒泷一斗/icons/talent-a.webp | Bin 10634 -> 0 bytes .../荒泷一斗/icons/talent-e.webp | Bin 11242 -> 0 bytes .../荒泷一斗/icons/talent-q.webp | Bin 12208 -> 0 bytes .../meta/character/莫娜/icons/talent-a.webp | Bin 8220 -> 0 bytes .../meta/character/莫娜/icons/talent-e.webp | Bin 11788 -> 0 bytes .../meta/character/莫娜/icons/talent-q.webp | Bin 10984 -> 0 bytes .../character/莱依拉/icons/talent-a.webp | Bin 12142 -> 0 bytes .../character/莱依拉/icons/talent-e.webp | Bin 9734 -> 0 bytes .../character/莱依拉/icons/talent-q.webp | Bin 8782 -> 0 bytes .../character/菲谢尔/icons/talent-a.webp | Bin 11718 -> 0 bytes .../character/菲谢尔/icons/talent-e.webp | Bin 9322 -> 0 bytes .../character/菲谢尔/icons/talent-q.webp | Bin 10184 -> 0 bytes .../meta/character/行秋/icons/talent-a.webp | Bin 12142 -> 0 bytes .../meta/character/行秋/icons/talent-e.webp | Bin 12146 -> 0 bytes .../meta/character/行秋/icons/talent-q.webp | Bin 10548 -> 0 bytes .../character/诺艾尔/icons/talent-a.webp | Bin 10634 -> 0 bytes .../character/诺艾尔/icons/talent-e.webp | Bin 11166 -> 0 bytes .../character/诺艾尔/icons/talent-q.webp | Bin 9438 -> 0 bytes .../meta/character/赛诺/icons/talent-a.webp | Bin 11604 -> 0 bytes .../meta/character/赛诺/icons/talent-e.webp | Bin 10098 -> 0 bytes .../meta/character/赛诺/icons/talent-q.webp | Bin 10832 -> 0 bytes .../meta/character/辛焱/icons/talent-a.webp | Bin 10634 -> 0 bytes .../meta/character/辛焱/icons/talent-e.webp | Bin 6230 -> 0 bytes .../meta/character/辛焱/icons/talent-q.webp | Bin 10172 -> 0 bytes .../达达利亚/icons/talent-a.webp | Bin 11718 -> 0 bytes .../达达利亚/icons/talent-e.webp | Bin 11168 -> 0 bytes .../达达利亚/icons/talent-q.webp | Bin 9658 -> 0 bytes .../character/迪卢克/icons/talent-a.webp | Bin 10634 -> 0 bytes .../character/迪卢克/icons/talent-e.webp | Bin 10912 -> 0 bytes .../character/迪卢克/icons/talent-q.webp | Bin 9044 -> 0 bytes .../character/迪奥娜/icons/talent-a.webp | Bin 11718 -> 0 bytes .../character/迪奥娜/icons/talent-e.webp | Bin 11684 -> 0 bytes .../character/迪奥娜/icons/talent-q.webp | Bin 8522 -> 0 bytes .../character/迪希雅/icons/talent-a.webp | Bin 10634 -> 0 bytes .../character/迪希雅/icons/talent-e.webp | Bin 5770 -> 0 bytes .../character/迪希雅/icons/talent-q.webp | Bin 9896 -> 0 bytes .../meta/character/重云/icons/talent-a.webp | Bin 10634 -> 0 bytes .../meta/character/重云/icons/talent-e.webp | Bin 8156 -> 0 bytes .../meta/character/重云/icons/talent-q.webp | Bin 11382 -> 0 bytes .../meta/character/钟离/icons/talent-a.webp | Bin 11604 -> 0 bytes .../meta/character/钟离/icons/talent-e.webp | Bin 9462 -> 0 bytes .../meta/character/钟离/icons/talent-q.webp | Bin 9052 -> 0 bytes .../character/阿贝多/icons/talent-a.webp | Bin 12142 -> 0 bytes .../character/阿贝多/icons/talent-e.webp | Bin 12560 -> 0 bytes .../character/阿贝多/icons/talent-q.webp | Bin 9926 -> 0 bytes .../meta/character/雷泽/icons/talent-a.webp | Bin 10634 -> 0 bytes .../meta/character/雷泽/icons/talent-e.webp | Bin 9406 -> 0 bytes .../meta/character/雷泽/icons/talent-q.webp | Bin 10252 -> 0 bytes .../雷电将军/icons/talent-a.webp | Bin 11604 -> 0 bytes .../雷电将军/icons/talent-e.webp | Bin 15846 -> 0 bytes .../雷电将军/icons/talent-q.webp | Bin 10980 -> 0 bytes .../meta/character/香菱/icons/talent-a.webp | Bin 11604 -> 0 bytes .../meta/character/香菱/icons/talent-e.webp | Bin 10520 -> 0 bytes .../meta/character/香菱/icons/talent-q.webp | Bin 9280 -> 0 bytes .../meta/character/魈/icons/talent-a.webp | Bin 11604 -> 0 bytes .../meta/character/魈/icons/talent-e.webp | Bin 11592 -> 0 bytes .../meta/character/魈/icons/talent-q.webp | Bin 11272 -> 0 bytes .../鹿野院平藏/icons/talent-a.webp | Bin 8220 -> 0 bytes .../鹿野院平藏/icons/talent-e.webp | Bin 14714 -> 0 bytes .../鹿野院平藏/icons/talent-q.webp | Bin 11450 -> 0 bytes resources/meta/material/data.json | 18 + .../weekly/亘古树海之一瞬.webp | Bin 0 -> 17922 bytes .../weekly/原初绿洲之初绽.webp | Bin 0 -> 19906 bytes .../weekly/生长天地之蕨草.webp | Bin 0 -> 19252 bytes tools/char-data.js | 8 +- tools/sprider/CharData.js | 5 +- 251 files changed, 924 insertions(+), 137 deletions(-) create mode 100644 models/player/HutaoApi.js rename resources/{meta/character/九条裟罗/icons/talent-a.webp => common/item/atk-bow.webp} (100%) rename resources/{meta/character/丽莎/icons/talent-a.webp => common/item/atk-catalyst.webp} (100%) rename resources/{meta/character/优菈/icons/talent-a.webp => common/item/atk-claymore.webp} (100%) rename resources/{meta/character/云堇/icons/talent-a.webp => common/item/atk-polearm.webp} (100%) rename resources/{meta/character/七七/icons/talent-a.webp => common/item/atk-sword.webp} (100%) delete mode 100644 resources/meta/character/七七/icons/talent-e.webp delete mode 100644 resources/meta/character/七七/icons/talent-q.webp delete mode 100644 resources/meta/character/丽莎/icons/talent-e.webp delete mode 100644 resources/meta/character/丽莎/icons/talent-q.webp delete mode 100644 resources/meta/character/久岐忍/icons/talent-a.webp delete mode 100644 resources/meta/character/久岐忍/icons/talent-e.webp delete mode 100644 resources/meta/character/久岐忍/icons/talent-q.webp delete mode 100644 resources/meta/character/九条裟罗/icons/talent-e.webp delete mode 100644 resources/meta/character/九条裟罗/icons/talent-q.webp delete mode 100644 resources/meta/character/云堇/icons/talent-e.webp delete mode 100644 resources/meta/character/云堇/icons/talent-q.webp delete mode 100644 resources/meta/character/五郎/icons/talent-a.webp delete mode 100644 resources/meta/character/五郎/icons/talent-e.webp delete mode 100644 resources/meta/character/五郎/icons/talent-q.webp delete mode 100644 resources/meta/character/优菈/icons/talent-e.webp delete mode 100644 resources/meta/character/优菈/icons/talent-q.webp delete mode 100644 resources/meta/character/八重神子/icons/talent-a.webp delete mode 100644 resources/meta/character/八重神子/icons/talent-e.webp delete mode 100644 resources/meta/character/八重神子/icons/talent-q.webp delete mode 100644 resources/meta/character/凝光/icons/talent-a.webp delete mode 100644 resources/meta/character/凝光/icons/talent-e.webp delete mode 100644 resources/meta/character/凝光/icons/talent-q.webp delete mode 100644 resources/meta/character/凯亚/icons/talent-a.webp delete mode 100644 resources/meta/character/凯亚/icons/talent-e.webp delete mode 100644 resources/meta/character/凯亚/icons/talent-q.webp delete mode 100644 resources/meta/character/刻晴/icons/talent-a.webp delete mode 100644 resources/meta/character/刻晴/icons/talent-e.webp delete mode 100644 resources/meta/character/刻晴/icons/talent-q.webp delete mode 100644 resources/meta/character/北斗/icons/talent-a.webp delete mode 100644 resources/meta/character/北斗/icons/talent-e.webp delete mode 100644 resources/meta/character/北斗/icons/talent-q.webp delete mode 100644 resources/meta/character/卡维/icons/talent-a.webp delete mode 100644 resources/meta/character/卡维/icons/talent-e.webp delete mode 100644 resources/meta/character/卡维/icons/talent-q.webp delete mode 100644 resources/meta/character/可莉/icons/talent-a.webp delete mode 100644 resources/meta/character/可莉/icons/talent-e.webp delete mode 100644 resources/meta/character/可莉/icons/talent-q.webp delete mode 100644 resources/meta/character/坎蒂丝/icons/talent-a.webp delete mode 100644 resources/meta/character/坎蒂丝/icons/talent-e.webp delete mode 100644 resources/meta/character/坎蒂丝/icons/talent-q.webp delete mode 100644 resources/meta/character/埃洛伊/icons/talent-a.webp delete mode 100644 resources/meta/character/埃洛伊/icons/talent-e.webp delete mode 100644 resources/meta/character/埃洛伊/icons/talent-q.webp delete mode 100644 resources/meta/character/多莉/icons/talent-a.webp delete mode 100644 resources/meta/character/多莉/icons/talent-e.webp delete mode 100644 resources/meta/character/多莉/icons/talent-q.webp delete mode 100644 resources/meta/character/夜兰/icons/talent-a.webp delete mode 100644 resources/meta/character/夜兰/icons/talent-e.webp delete mode 100644 resources/meta/character/夜兰/icons/talent-q.webp delete mode 100644 resources/meta/character/妮露/icons/talent-a.webp delete mode 100644 resources/meta/character/妮露/icons/talent-e.webp delete mode 100644 resources/meta/character/妮露/icons/talent-q.webp delete mode 100644 resources/meta/character/安柏/icons/talent-a.webp delete mode 100644 resources/meta/character/安柏/icons/talent-e.webp delete mode 100644 resources/meta/character/安柏/icons/talent-q.webp delete mode 100644 resources/meta/character/宵宫/icons/talent-a.webp delete mode 100644 resources/meta/character/宵宫/icons/talent-e.webp delete mode 100644 resources/meta/character/宵宫/icons/talent-q.webp delete mode 100644 resources/meta/character/托马/icons/talent-a.webp delete mode 100644 resources/meta/character/托马/icons/talent-e.webp delete mode 100644 resources/meta/character/托马/icons/talent-q.webp delete mode 100644 resources/meta/character/提纳里/icons/talent-a.webp delete mode 100644 resources/meta/character/提纳里/icons/talent-e.webp delete mode 100644 resources/meta/character/提纳里/icons/talent-q.webp delete mode 100644 resources/meta/character/旅行者/anemo/icons/talent-a.webp delete mode 100644 resources/meta/character/旅行者/anemo/icons/talent-e.webp delete mode 100644 resources/meta/character/旅行者/anemo/icons/talent-q.webp delete mode 100644 resources/meta/character/旅行者/dendro/icons/talent-a.webp delete mode 100644 resources/meta/character/旅行者/dendro/icons/talent-e.webp delete mode 100644 resources/meta/character/旅行者/dendro/icons/talent-q.webp delete mode 100644 resources/meta/character/旅行者/electro/icons/talent-a.webp delete mode 100644 resources/meta/character/旅行者/electro/icons/talent-e.webp delete mode 100644 resources/meta/character/旅行者/electro/icons/talent-q.webp delete mode 100644 resources/meta/character/旅行者/geo/icons/talent-a.webp delete mode 100644 resources/meta/character/旅行者/geo/icons/talent-e.webp delete mode 100644 resources/meta/character/旅行者/geo/icons/talent-q.webp delete mode 100644 resources/meta/character/早柚/icons/talent-a.webp delete mode 100644 resources/meta/character/早柚/icons/talent-e.webp delete mode 100644 resources/meta/character/早柚/icons/talent-q.webp delete mode 100644 resources/meta/character/枫原万叶/icons/talent-a.webp delete mode 100644 resources/meta/character/枫原万叶/icons/talent-e.webp delete mode 100644 resources/meta/character/枫原万叶/icons/talent-q.webp delete mode 100644 resources/meta/character/柯莱/icons/talent-a.webp delete mode 100644 resources/meta/character/柯莱/icons/talent-e.webp delete mode 100644 resources/meta/character/柯莱/icons/talent-q.webp delete mode 100644 resources/meta/character/流浪者/icons/talent-a.webp delete mode 100644 resources/meta/character/流浪者/icons/talent-e.webp delete mode 100644 resources/meta/character/流浪者/icons/talent-q.webp delete mode 100644 resources/meta/character/温迪/icons/talent-a.webp delete mode 100644 resources/meta/character/温迪/icons/talent-e.webp delete mode 100644 resources/meta/character/温迪/icons/talent-q.webp delete mode 100644 resources/meta/character/烟绯/icons/talent-a.webp delete mode 100644 resources/meta/character/烟绯/icons/talent-e.webp delete mode 100644 resources/meta/character/烟绯/icons/talent-q.webp delete mode 100644 resources/meta/character/珊瑚宫心海/icons/talent-a.webp delete mode 100644 resources/meta/character/珊瑚宫心海/icons/talent-e.webp delete mode 100644 resources/meta/character/珊瑚宫心海/icons/talent-q.webp delete mode 100644 resources/meta/character/珐露珊/icons/talent-a.webp delete mode 100644 resources/meta/character/珐露珊/icons/talent-e.webp delete mode 100644 resources/meta/character/珐露珊/icons/talent-q.webp delete mode 100644 resources/meta/character/班尼特/icons/talent-a.webp delete mode 100644 resources/meta/character/班尼特/icons/talent-e.webp delete mode 100644 resources/meta/character/班尼特/icons/talent-q.webp delete mode 100644 resources/meta/character/琴/icons/talent-a.webp delete mode 100644 resources/meta/character/琴/icons/talent-e.webp delete mode 100644 resources/meta/character/琴/icons/talent-q.webp delete mode 100644 resources/meta/character/瑶瑶/icons/talent-a.webp delete mode 100644 resources/meta/character/瑶瑶/icons/talent-e.webp delete mode 100644 resources/meta/character/瑶瑶/icons/talent-q.webp delete mode 100644 resources/meta/character/甘雨/icons/talent-a.webp delete mode 100644 resources/meta/character/甘雨/icons/talent-e.webp delete mode 100644 resources/meta/character/甘雨/icons/talent-q.webp delete mode 100644 resources/meta/character/申鹤/icons/talent-a.webp delete mode 100644 resources/meta/character/申鹤/icons/talent-e.webp delete mode 100644 resources/meta/character/申鹤/icons/talent-q.webp delete mode 100644 resources/meta/character/白术/icons/talent-a.webp delete mode 100644 resources/meta/character/白术/icons/talent-e.webp delete mode 100644 resources/meta/character/白术/icons/talent-q.webp delete mode 100644 resources/meta/character/砂糖/icons/talent-a.webp delete mode 100644 resources/meta/character/砂糖/icons/talent-e.webp delete mode 100644 resources/meta/character/砂糖/icons/talent-q.webp delete mode 100644 resources/meta/character/神里绫人/icons/talent-a.webp delete mode 100644 resources/meta/character/神里绫人/icons/talent-e.webp delete mode 100644 resources/meta/character/神里绫人/icons/talent-q.webp delete mode 100644 resources/meta/character/神里绫华/icons/talent-a.webp delete mode 100644 resources/meta/character/神里绫华/icons/talent-e.webp delete mode 100644 resources/meta/character/神里绫华/icons/talent-q.webp delete mode 100644 resources/meta/character/米卡/icons/talent-a.webp delete mode 100644 resources/meta/character/米卡/icons/talent-e.webp delete mode 100644 resources/meta/character/米卡/icons/talent-q.webp delete mode 100644 resources/meta/character/纳西妲/icons/talent-a.webp delete mode 100644 resources/meta/character/纳西妲/icons/talent-e.webp delete mode 100644 resources/meta/character/纳西妲/icons/talent-q.webp delete mode 100644 resources/meta/character/绮良良/icons/talent-a.webp delete mode 100644 resources/meta/character/绮良良/icons/talent-e.webp delete mode 100644 resources/meta/character/绮良良/icons/talent-q.webp delete mode 100644 resources/meta/character/绮良良/imgs/card.webp create mode 100644 resources/meta/character/绮良良/imgs/gacha.webp create mode 100644 resources/meta/character/绮良良/imgs/side.webp delete mode 100644 resources/meta/character/罗莎莉亚/icons/talent-a.webp delete mode 100644 resources/meta/character/罗莎莉亚/icons/talent-e.webp delete mode 100644 resources/meta/character/罗莎莉亚/icons/talent-q.webp delete mode 100644 resources/meta/character/胡桃/icons/talent-a.webp delete mode 100644 resources/meta/character/胡桃/icons/talent-e.webp delete mode 100644 resources/meta/character/胡桃/icons/talent-q.webp delete mode 100644 resources/meta/character/艾尔海森/icons/talent-a.webp delete mode 100644 resources/meta/character/艾尔海森/icons/talent-e.webp delete mode 100644 resources/meta/character/艾尔海森/icons/talent-q.webp delete mode 100644 resources/meta/character/芭芭拉/icons/talent-a.webp delete mode 100644 resources/meta/character/芭芭拉/icons/talent-e.webp delete mode 100644 resources/meta/character/芭芭拉/icons/talent-q.webp delete mode 100644 resources/meta/character/荒泷一斗/icons/talent-a.webp delete mode 100644 resources/meta/character/荒泷一斗/icons/talent-e.webp delete mode 100644 resources/meta/character/荒泷一斗/icons/talent-q.webp delete mode 100644 resources/meta/character/莫娜/icons/talent-a.webp delete mode 100644 resources/meta/character/莫娜/icons/talent-e.webp delete mode 100644 resources/meta/character/莫娜/icons/talent-q.webp delete mode 100644 resources/meta/character/莱依拉/icons/talent-a.webp delete mode 100644 resources/meta/character/莱依拉/icons/talent-e.webp delete mode 100644 resources/meta/character/莱依拉/icons/talent-q.webp delete mode 100644 resources/meta/character/菲谢尔/icons/talent-a.webp delete mode 100644 resources/meta/character/菲谢尔/icons/talent-e.webp delete mode 100644 resources/meta/character/菲谢尔/icons/talent-q.webp delete mode 100644 resources/meta/character/行秋/icons/talent-a.webp delete mode 100644 resources/meta/character/行秋/icons/talent-e.webp delete mode 100644 resources/meta/character/行秋/icons/talent-q.webp delete mode 100644 resources/meta/character/诺艾尔/icons/talent-a.webp delete mode 100644 resources/meta/character/诺艾尔/icons/talent-e.webp delete mode 100644 resources/meta/character/诺艾尔/icons/talent-q.webp delete mode 100644 resources/meta/character/赛诺/icons/talent-a.webp delete mode 100644 resources/meta/character/赛诺/icons/talent-e.webp delete mode 100644 resources/meta/character/赛诺/icons/talent-q.webp delete mode 100644 resources/meta/character/辛焱/icons/talent-a.webp delete mode 100644 resources/meta/character/辛焱/icons/talent-e.webp delete mode 100644 resources/meta/character/辛焱/icons/talent-q.webp delete mode 100644 resources/meta/character/达达利亚/icons/talent-a.webp delete mode 100644 resources/meta/character/达达利亚/icons/talent-e.webp delete mode 100644 resources/meta/character/达达利亚/icons/talent-q.webp delete mode 100644 resources/meta/character/迪卢克/icons/talent-a.webp delete mode 100644 resources/meta/character/迪卢克/icons/talent-e.webp delete mode 100644 resources/meta/character/迪卢克/icons/talent-q.webp delete mode 100644 resources/meta/character/迪奥娜/icons/talent-a.webp delete mode 100644 resources/meta/character/迪奥娜/icons/talent-e.webp delete mode 100644 resources/meta/character/迪奥娜/icons/talent-q.webp delete mode 100644 resources/meta/character/迪希雅/icons/talent-a.webp delete mode 100644 resources/meta/character/迪希雅/icons/talent-e.webp delete mode 100644 resources/meta/character/迪希雅/icons/talent-q.webp delete mode 100644 resources/meta/character/重云/icons/talent-a.webp delete mode 100644 resources/meta/character/重云/icons/talent-e.webp delete mode 100644 resources/meta/character/重云/icons/talent-q.webp delete mode 100644 resources/meta/character/钟离/icons/talent-a.webp delete mode 100644 resources/meta/character/钟离/icons/talent-e.webp delete mode 100644 resources/meta/character/钟离/icons/talent-q.webp delete mode 100644 resources/meta/character/阿贝多/icons/talent-a.webp delete mode 100644 resources/meta/character/阿贝多/icons/talent-e.webp delete mode 100644 resources/meta/character/阿贝多/icons/talent-q.webp delete mode 100644 resources/meta/character/雷泽/icons/talent-a.webp delete mode 100644 resources/meta/character/雷泽/icons/talent-e.webp delete mode 100644 resources/meta/character/雷泽/icons/talent-q.webp delete mode 100644 resources/meta/character/雷电将军/icons/talent-a.webp delete mode 100644 resources/meta/character/雷电将军/icons/talent-e.webp delete mode 100644 resources/meta/character/雷电将军/icons/talent-q.webp delete mode 100644 resources/meta/character/香菱/icons/talent-a.webp delete mode 100644 resources/meta/character/香菱/icons/talent-e.webp delete mode 100644 resources/meta/character/香菱/icons/talent-q.webp delete mode 100644 resources/meta/character/魈/icons/talent-a.webp delete mode 100644 resources/meta/character/魈/icons/talent-e.webp delete mode 100644 resources/meta/character/魈/icons/talent-q.webp delete mode 100644 resources/meta/character/鹿野院平藏/icons/talent-a.webp delete mode 100644 resources/meta/character/鹿野院平藏/icons/talent-e.webp delete mode 100644 resources/meta/character/鹿野院平藏/icons/talent-q.webp create mode 100644 resources/meta/material/weekly/亘古树海之一瞬.webp create mode 100644 resources/meta/material/weekly/原初绿洲之初绽.webp create mode 100644 resources/meta/material/weekly/生长天地之蕨草.webp diff --git a/CHANGELOG.md b/CHANGELOG.md index da7c3ca7..fdf8aeba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,9 @@ -# 2.3.7 +# 2.3.8 -* 增加3.6新圣遗物数据及资源 -* 增加绮良良的角色信息,可通过`#绮良良天赋`、`#绮良良图鉴`等查看 +* 面板服务增加由**Snap Hutao**提供的Enka转发代理,可通过`#喵喵设置面板服务4`进行选择 +* 部分角色资源文件结构调整 -# 2.3.1~2.3.6 +# 2.3.1~2.3.7 * 增加`#角色记录``#抽卡统计`功能,可在`#喵喵设置`中开启 * `#角色记录`、`#武器记录`、`#常驻记录` 可查看对应池子的抽卡记录 @@ -24,6 +24,8 @@ * 面板更新的提醒文案逻辑优化 * `#雷神面板` 属性部分样式调整,增加圣遗物评分权重展示 * 圣遗物评级的分数上限微调 +* 增加3.6新圣遗物数据及资源 +* 增加绮良良的角色信息,可通过`#绮良良天赋`、`#绮良良图鉴`等查看 # 2.3.0 diff --git a/config/profile_default.js b/config/profile_default.js index f1625dd2..59e192c1 100644 --- a/config/profile_default.js +++ b/config/profile_default.js @@ -1,48 +1,45 @@ /** -* 如需配置【复制】此文件,改名为profile.js -* 暂未做热更新,修改完毕请重启yunzai -* */ + * 如需配置【复制】此文件,改名为profile.js + * 暂未做热更新,修改完毕请重启yunzai + * */ /** -* Enka面板服务API配置 -* -* 【Enka官网】:https://enka.network/ -* -* 感谢Enka提供的面板查询服务 -* 如果可以的话,也可考虑在Patreon上支持Enka -* 【Patreon】:https://www.patreon.com/algoinde -* -* 目前使用Miao-Plugin的默认UA请求国服UID时 -* 会默认重定向 https://enka.network/ 到 https://profile.microgg.cn/ -* -* 感谢@MiniGrayGay 大佬提供的服务(Github: https://github.com/MiniGrayGay) -* -* 使用代理(科学上网)可以配置proxyAgent -* 例如: http://127.0.0.1:1080 -* */ - + * Enka面板服务API配置 + * + * 【Enka官网】:https://enka.network/ + * 感谢Enka提供的面板查询服务,如果可以的话,也可考虑在Patreon上支持Enka + * 【Patreon】:https://www.patreon.com/algoinde + * + * 目前使用Miao-Plugin的默认UA请求国服UID时 + * 会默认重定向 https://enka.network/ 到 https://profile.microgg.cn/ + * 感谢@MiniGrayGay 大佬提供的服务(Github: https://github.com/MiniGrayGay) + * + * 使用代理(科学上网)可以配置proxyAgent + * 例如: http://127.0.0.1:1080 + * + * */ export const enkaApi = { url: 'https://enka.network/', // 请求API地址,可从上方提供的API地址中进行选择 proxyAgent: '' // 请求的proxy配置,如无需proxy则留空 } /** -* 单个用户请求面板的间隔时间,单位分钟 -* 不同用户的计时独立 -* -* 部分服务会同时返回服务侧更新冷却时间,若服务侧查询冷却大于更新间隔 -* 会以服务侧查询冷却为准(在服务侧冷却时间内,即使请求也不会返回更新数据) -* */ -export const requestInterval = 5 - -/** -* 喵喵Api 私有的面板更新服务 -* 供Yunzai开发者及有投喂的老板们小范围使用 -* -* 喵喵API承载能力有限,Enka可用的情况下建议使用Enka,token有有效期限制,请勿强行投喂 -* token请勿外传,一个token仅供一个bot使用,多bot复用的话可能导致token失效 -* */ + * 喵喵Api 私有的面板更新服务 + * 供Yunzai开发者及有投喂的老板们小范围使用 + * + * 喵喵API承载能力有限,Enka可用的情况下建议使用Enka,token有有效期限制,请勿强行投喂 + * token请勿外传,一个token仅供一个bot使用,多bot复用的话可能导致token失效 + * */ export const miaoApi = { qq: '在此处填写主人QQ', token: '在此处填写QQ对应Token' } + +/** + * 单个用户请求面板的间隔时间,单位分钟 + * 不同用户的计时独立 + * + * 部分服务会同时返回服务侧更新冷却时间,若服务侧查询冷却大于更新间隔 + * 会以服务侧查询冷却为准(在服务侧冷却时间内,即使请求也不会返回更新数据) + * */ +export const requestInterval = 5 diff --git a/config/system/cfg_system.js b/config/system/cfg_system.js index c31b2cc1..283d250c 100644 --- a/config/system/cfg_system.js +++ b/config/system/cfg_system.js @@ -84,8 +84,8 @@ export const cfgSchema = { key: '面板服务', type: 'num', def: 0, - input: (n) => /[0-3]{1,3}/.test(n) ? n : 0, - desc: '面板服务选择:0:自动,1:喵Api(需具备Token), 2:Enka-API, 3:MiniGG-Api。如设置三位数字则为分服务器设置,按顺序分别为 国服/B服/外服,例如112代表国服B服Miao,国外Enka' + input: (n) => /[0-4]{1,3}/.test(n) ? n : 0, + desc: '面板服务选择:0:自动,1:喵Api(需具备Token), 2:Enka-API, 3:MiniGG-Api, 4:Hutao-Enka代理。如设置三位数字则为分服务器设置,按顺序分别为 国服/B服/外服,例如112代表国服B服Miao,国外Enka' }, costumeSplash: { title: '使用自定义面板插图', diff --git a/config/system/character_system.js b/config/system/character_system.js index 402d0950..63552a34 100644 --- a/config/system/character_system.js +++ b/config/system/character_system.js @@ -60,7 +60,7 @@ export const characters = { 10000066: ['神里绫人', 'Kamisato Ayato', 'Ayato', '绫人', '神里凌人', '凌人', '0人', '神人', '零人', '大舅哥'], // 3.0 - 10000061: ['绮良良', 'Kirara', '大猫猫', '大喵喵', '稻妻猫猫', '绮娘娘', '良良', '快递员'], + 10000061: ['绮良良', 'Kirara', '大猫猫', '大喵喵', '稻妻猫猫', '绮娘娘', '琦良良', '良良', '快递员', '草猫', '草猫猫', '草喵', '草喵喵'], 10000069: ['提纳里', 'Tighnari', '提那里', '小提', '驴'], 10000067: ['柯莱', 'Collei', '柯来', '科莱', '科来', '小天使', '须弥安柏', '草安柏', '须弥飞行冠军'], 10000068: ['多莉', 'Dori', '多利', '多力', '奸商'], @@ -100,9 +100,9 @@ export const characters = { export const wifeData = { girlfriend: `琴, 丽莎, 荧, 芭芭拉, 安柏, 香菱, 北斗, 凝光, 菲谢尔, 诺艾尔, 甘雨, 莫娜, 刻晴, 砂糖, 辛焱, 罗莎莉亚, 胡桃, 烟绯, 优菈, 神里绫华, 宵宫, 雷电将军, 珊瑚宫心海, 九条裟罗, 八重神子, 埃洛伊, 申鹤, 云堇, 夜兰, 久岐忍, 柯莱, 多莉, 伐难, - 女士, 萍姥姥, 归终, 柯莱, 多莉, 仆人, 少女, 妮露, 坎蒂丝, 天理, 迪希雅, 莱依拉, 珐露珊, 迪希雅`, + 女士, 萍姥姥, 归终, 仆人, 少女, 妮露, 坎蒂丝, 天理, 迪希雅, 莱依拉, 珐露珊, 绮良良`, boyfriend: `空, 凯亚, 迪卢克, 雷泽, 温迪, 行秋, 魈, 钟离, 班尼特, 达达利亚, 重云, 阿贝多, 枫原万叶, 托马, 五郎, 荒泷一斗, - 鹿野院平藏, 神里绫人, 提纳里, 流浪者, 白术, 提纳里, 富人, 博士, 丑角, 公鸡, 队长, 赛诺, 戴因, 卡维, 艾尔海森, 米卡, 白术`, + 鹿野院平藏, 神里绫人, 提纳里, 流浪者, 富人, 博士, 丑角, 公鸡, 队长, 赛诺, 戴因, 卡维, 艾尔海森, 米卡, 白术`, daughter: '可莉, 七七, 迪奥娜, 早柚, 派蒙, 瑶瑶, 纳西妲', son: '' } diff --git a/config/system/profile_system.js b/config/system/profile_system.js index b8018fa2..f0d60ed6 100644 --- a/config/system/profile_system.js +++ b/config/system/profile_system.js @@ -28,6 +28,14 @@ export const mggApi = { } } -export const requestInterval = 5 +export const hutaoApi = { + url: 'http://enka-api.hut.ao/', + userAgent: 'Snap Hutao/miao', + listApi: ({ url, uid, diyCfg }) => { + return `${url}/${uid}/` + } +} + +export const requestInterval = 3 export const isSys = true diff --git a/models/AvatarData.js b/models/AvatarData.js index 4b74ef1b..0ebc5b2e 100644 --- a/models/AvatarData.js +++ b/models/AvatarData.js @@ -63,6 +63,7 @@ export default class AvatarData extends Base { enka: 'Enka.Network', miao: '喵喵Api', mgg: 'MiniGG-API', + hutao: 'Hutao-Enka', mys: '米游社' }[this._source] || this._source } diff --git a/models/Character.js b/models/Character.js index 97b155ff..52975c03 100644 --- a/models/Character.js +++ b/models/Character.js @@ -16,7 +16,7 @@ import CharCfg from './character/CharCfg.js' let { wifeMap, idSort, idMap } = CharId let getMeta = function (name) { - return Data.readJSON(`resources/meta/character/${name}/data.json`,'miao') + return Data.readJSON(`resources/meta/character/${name}/data.json`, 'miao') } class Character extends Base { @@ -230,7 +230,7 @@ class Character extends Base { this._imgs = {} } if (!this._imgs[cacheId]) { - this._imgs[cacheId] = CharImg.getImgs(this.name, costumeIdx, this.isTraveler ? this.elem : '', this.source === 'amber' ? 'png' : 'webp') + this._imgs[cacheId] = CharImg.getImgs(this.name, costumeIdx, this.isTraveler ? this.elem : '', this.weaponType, this.talentCons) } let imgs = this._imgs[cacheId] return { @@ -253,9 +253,9 @@ class Character extends Base { try { if (this.isTraveler) { - this._detail = Data.readJSON(`${path}/旅行者/${this.elem}/detail.json`,'miao') + this._detail = Data.readJSON(`${path}/旅行者/${this.elem}/detail.json`, 'miao') } else { - this._detail = Data.readJSON(`${path}/${this.name}/detail.json`,'miao') + this._detail = Data.readJSON(`${path}/${this.name}/detail.json`, 'miao') } } catch (e) { console.log(e) diff --git a/models/character/CharImg.js b/models/character/CharImg.js index 558e76ce..8daf301d 100644 --- a/models/character/CharImg.js +++ b/models/character/CharImg.js @@ -82,7 +82,8 @@ const CharImg = { }, // 获取角色的图像资源数据 - getImgs (name, costumeIdx = '', travelerElem = '', fileType = 'webp') { + getImgs (name, costumeIdx = '', travelerElem = '', weaponType = 'sword', talentCons) { + let fileType = 'webp' costumeIdx = costumeIdx === '2' ? '2' : '' let imgs = {} if (!['空', '荧', '旅行者'].includes(name)) { @@ -113,9 +114,9 @@ const CharImg = { for (let i = 0; i <= 3; i++) { tAdd(`passive${i}`, `icons/passive-${i}`) } - for (let k of ['a', 'e', 'q']) { - tAdd(k, `icons/talent-${k}`) - } + imgs.a = `/common/item/atk-${weaponType}.webp` + imgs.e = talentCons.e === 3 ? imgs['cons3'] : imgs['cons5'] + imgs.q = talentCons.q === 5 ? imgs['cons5'] : imgs['cons3'] return imgs } } diff --git a/models/player/HutaoApi.js b/models/player/HutaoApi.js new file mode 100644 index 00000000..71e0044c --- /dev/null +++ b/models/player/HutaoApi.js @@ -0,0 +1,46 @@ +import lodash from 'lodash' +import EnkaData from './EnkaData.js' +import { Data } from '#miao' + +export default { + id: 'hutao', + name: 'Hutao-Enka', + cfgKey: 'hutaoApi', + // 处理请求参数 + async request (api) { + let params = { + headers: { 'User-Agent': this.getCfg('userAgent') } + } + return { api, params } + }, + + // 处理服务返回 + async response (data, req) { + if (!data.playerInfo) { + if (data.error) { + console.log(`Enka ReqErr: ${data.error}`) + } + return req.err('error', 60) + } + let details = data.avatarInfoList + if (!details || details.length === 0 || !details[0].propMap) { + return req.err('empty', 5 * 60) + } + return data + }, + + updatePlayer (player, data) { + player.setBasicData(Data.getData(data, 'name:nickname,face:profilePicture.avatarID,card:nameCardID,level,word:worldLevel,sign:signature')) + lodash.forEach(data.avatarInfoList, (ds) => { + let ret = EnkaData.setAvatar(player, ds, 'hutao') + if (ret) { + player._update.push(ret.id) + } + }) + }, + + // 获取冷却时间 + cdTime (data) { + return data.ttl || 60 + } +} diff --git a/models/player/Profile.js b/models/player/Profile.js index 92bdb367..e911e78f 100644 --- a/models/player/Profile.js +++ b/models/player/Profile.js @@ -5,6 +5,7 @@ import MysAvatar from './MysAvatar.js' import enkaApi from './EnkaApi.js' import miaoApi from './MiaoApi.js' import mggApi from './MggApi.js' +import hutaoApi from './HutaoApi.js' let { diyCfg } = await Data.importCfg('profile') @@ -15,7 +16,8 @@ const Profile = { Profile.servs[key] = new ProfileServ({ miao: miaoApi, mgg: mggApi, - enka: enkaApi + enka: enkaApi, + hutao: hutaoApi }[key]) } return Profile.servs[key] @@ -34,7 +36,7 @@ const Profile = { // 判断国服、B服、外服,获取在配置中的idx let servIdx = { 1: 0, 2: 0, 3: 0, 4: 0, 5: 1, 6: 2, 7: 2, 8: 2, 9: 2 }[uid[0]] - // 获取对应服务选择的配置数字,0自动,1喵,2Enka,3Mgg + // 获取对应服务选择的配置数字,0自动,1喵,2Enka,3Mgg, 4:Hutao let servCfg = Cfg.get('profileServer', '0').toString() || '0' servCfg = servCfg[servIdx] || servCfg[0] || '0' @@ -45,6 +47,8 @@ const Profile = { return Profile.serv('enka') } else if (servCfg === '3') { return Profile.serv('mgg') + } else if (servCfg === '4') { + return Profile.serv('hutao') } return Profile.serv(servIdx === 2 ? 'enka' : 'mgg') }, @@ -84,7 +88,7 @@ const Profile = { isProfile (avatar) { // 检查数据源 - if (!avatar._source || !['enka', 'change', 'miao', 'mgg'].includes(avatar._source)) { + if (!avatar._source || !['enka', 'change', 'miao', 'mgg', 'hutao'].includes(avatar._source)) { return false } // 检查武器及天赋 diff --git a/resources/character/character-card.html b/resources/character/character-card.html index 8fbf1ccd..dc3f11cc 100644 --- a/resources/character/character-card.html +++ b/resources/character/character-card.html @@ -78,7 +78,7 @@
E79xk+t2u6U28*K7DDYzM< zE}}V~N`W+}0kv%k05)?}EI4SiKKFF&h2p&gVa~(=m*-u$yxC(TDNu0<&X>Ze5~@begW+4!hgFaY&N~ zC&PpPz1{ni+p}2(wr$oKol6bLgzGIr0Kn=24DxlW64Y%&{URQoC6l8k?Xw`0PysIS zl2~crsaApEJ=h0` xetJBs6B_{7b%29p zji3Ptc9 NU* zK)RhC#erS>;QWzN0My9NpqCMFU=X8Ri^A}h;pJIURpZ-pPLLs`t&?>dxG*A=G@vA1 z0SI^iF(=sUG9Y`&KuftTG6`s05jj6WXv-L5D$|)&vUV+lQUp-Zw~PTDZ~#K85ac6( z#J2!Yfs__f>NPu$<2JDn0Ky0htuLV8m9W#VfNb!`N&JI5pDb0&Y<$L-loG96CsI#| zZ?LtjNDu%7u}oZtE$|%yFgQKr{NBcy9Tdr^DB*g|W&=_UXbWKg#N2Ui7=Fs9fp6nd zNDgrL`~!sltMR0B9if6|Ci7IS-7^!gm}SiI9Xv7|Vg4x1_q}GRBc$Q%-%kPH-2U&I z-)xftn`Al=Ygah~f{iW?6O@|z52a{ZcKL@WJU+ibLQf{5#0nx$VeRmNcG^t<@S8Wi zzc7WHKRP(4ANLzw8vulQG<@xi4^7d@XZL($A`TD36=blNa8QC-2mwYm)*=Jrrk>}c zpuJaXVWQ;8;Kj_`JN2$#!Z!)iHO#YPK5I580AYcJl7V?C4yJFkH@?{WCRXG5zn=bg zf#YX)K23`lo!lS5TAj4PGkf9K7aPWPW~Z~l7)k(4kDm4tM@I2^NDXv1KDp&!gb@H} zJvcj$^zvfrl>_Gk+w#!`YLxOwm{1xbIO*nGrBN6W1Fai3Hd#pyosK8z%Q`HjIVmPl zvSYgdKKq Ng|rQ|02`?>sMK6DG9OwFsc(KbS$$1 zY?oq{B@%lU?FV}sO-72gOlRRtt>?O?<~&9n06?4V8~xgUP3{$N^`4ksdpDHpR^Krsa<}h2 zcJ-{$H4TJX?#@OJgYNBYdm1~hhz7AO1po*ei21wE{ve!dv~D1#*zR fE)|G0h= Db-7|YtW>jq=iAd6Th;lCdI z_QI#uXJqHwbH$Ar>3rf_J|bF60A^v6J6fc`Tu!6G@u`M&E!)i_9s`_kIC{KY+a{LO zxdy++OyET<=gHfX=Wm->x6cSEr^Q9A#B|oS0N|~0h%{(My<1nf5}1^6)WGE|i4NmY zj(b-giERB|fk0a|p))O$G$0o^n5P TQ*eqG>))Gl~Hr&?h3R+pzsp|NEXsES`>YW!Ej5WP@RNoQ{U40`CV~4cU!P z0CK$+l@W6tAA?c=TB%&*APB)`gh &TGg{QNMHiI%#AvyofdH-75VE`lsN zJvRuc1<)4|Y0Qzc*$EgZ$CWD6vPc@S`D~aY0Hv2tZ5OaN3cuQj>?};UREyUFY5P+h z3INf0%B$xGt+YTEMmDibZ#HtJVF_hfiHuiPyZ%beHoN@j9?t+O#G!NJr<_X+9)xjq zD5+xVViJ%VXav-VI?WXTNXMPzqgCzKJD$ ^JEW9$HEq!2b#E@YkcFb3-j(P)^eC4s3& zDKfzm&UF=N*Y|D1|1-YaBB8!0$_To$(9{St#SCKrN@yw&0H7tnf>)Xpz?gE)PNz9k zfRelY9_S0?!#Rg#AQWhk^F%2CsgYL3hOt9iwgaGRozn;{?lsUN63i{gFq@34*`8Rp zua< E|b*vGg&kG#M_i$ZWZk4)uby9rvH2$8EqBrBSK zAYD!XA&ih%ky{CXyGV eH6v@W) z=+XavV*57p%d`hz5r;KhyRJ?~XIKM(t`1xiTxc^{Q$Huw`SI{@%R?8ya0w$-P*&l0 z9q>Q+aQmBT0DwwBux-_CtEPtG#MG#+4o3=Em?u$J;OZYDOgG&_x3h#ki#HGc+5STN z(_1}nu?SoBSBIxd{;{A(U^*peB|U`XNfP_3;Kyh5xP3ebTb2c&0hPeQzTlZ$3IsuU z`ayUpeGK5B2dgL<{FmLob>&OVI{>+K$}VU}tB^yfP0NHtx=KgOJc3se> TfLFcnim6ew*na)L?+T+BD9)vPm;BFDB`mM6p@ z`MZT9uM!EP0k&V8O+M9ZnZhc7qiojnDK^wtMYi^*T0ZdeX&8%?;6z+NGD4k;VlS|O z35<|qGslXMYdgLbXqe}|167MiwKd>*i#dP_3XUXa%p7r4(wyD2Eu<5kOQkds`Vtsp za# kUPP6IN5D?5&^!Tk&@)t{Ga{iF#fcFu`U`(1Gb07#+_P+e#FJI~Z zSUsRt+je-|bzy#ZT7@2?f# $gJ)0QoRwO+_DPM-(ld?9RsAf@y 2Mc~a8)oO4)7p&*TC_$0~fr4hsPUAZVo zjNI;(yY%@V?(g?3F!n;vEW`+?L1GzT0EC+C^pe|bc7NAcp+?JmkpU!0 ?Qnq&YZRhQYp{G5oHl8JF zVG1JUgOQD|efHK4EkbIL$+Po68Y`%xJ0*@S$F*pw3SHN~J$RJQt1lXA(u<>#0e&Cj zLoW3Kw=1$h#Ap59jcyGs7;cQ7J&Spz9eDP(7j$f=)cCE|=DqRXj~}L@vccKi@o51x zc-5l+6K9JuQBh{%Ty1@8^NwpnDbn!qzq~Q8Isj0UqkDV)R_R0xEc;gegX4!Eo@8QL zjVil4IxF+r%}zgmBS{wfGjXgN!N$$jHRh4>w`LEH{{BT;c`%}r$yw70h+PIk`|yeJ z!+(1eWl#-dGn$nsp9HnKIuQ9{P{-cuT))}!(SppD#V1eS1gH|2B@XtdPyNRAeo*dG zwVkg=*}o3oPSR;UMYv3Z7 +Ca! z{c~ln( ZKE62C7{$tXvP%)LX1#~ zsk7Ve^*x`kvh1K#CQb&=jz_Vs&>jLP8cA!=?@XS!_MY3X`@)1Vul`n*&7!CC_oL}y zJO?l$soDAFEoww#F_!|c>-FH?EHPFJS+nNW+`e057#H${fh2x9{kOw+FcMI$T6vKw zAI*=!rliY!=9GD&*Swa0EtwCqkw_8_GTz&|)2b5Kew~q) vZUta3uxQJ25M&n+3wzac zeilDDKKdX60Hv!xQCdN3gdl!09G ar8%Q=q{Ze~t30|>M8Y&e;Jkc5J#D_ fG&$h6cB*1j>#B8 zpwZ$J4k*`BL9T_8`m$tV0(z7lCxb9LOcR7)S!jR?)ROf5C `rTisCFIq{*j8TVruHB%n OGbaxO)|J9VL@Rc(3!zcC;L1QCp^OR; _=7B@4}#vsH4&CwVkUg_4XqN+_kYERm&bYO(5v%2^9k_yUfJPhCoa+Li5%Hft`L zx@PHv@!3?gnIG6q<^Wj6z+Y=vi&8<02+x6F!ey=gv0GO+U4d~qq!=Y}s%goOn&>49 zyAs;Qh%h?+7mVtSA8hsZyrOeGIr{Cq O z=*1f0`AOz@Z3GXn=i;*V5UfvGu^5bfXZvO z5&vqx!2D2Q5367By$t>}_229t-9K4>uK&*eL-Q~A&j|hu|1J2t_>=Y#_{Z`e>0gU~ z+CSuft@kI}Ew2BA|2gUl>le$vvHx@Zp#J0gZ|uqaXXU@V|6>2pdw~BZ{%`&F`zP&B z_)q+QQ~!|u_2bR #qEt6> 5(`nRHcp1-zywmsJ1O*H<&UP<$BKAaQSM(FBk;eiWq(D4FPBhr3TMbsaLo1 zD?Xf AKR`{HOuw@5&ZF)OMKH}`DD0?XnqpB^G z#+`X6OI0N0Y(vKJ6)q>3O<#>G7MoH3d!gUwTY(POvh%2tau~Ze6#;i6azvY4nzD61 zfcoofPvH?I2^(ZKTN1_K!hTbMO%Ddx)Ch+6170}7)PrH3%g*6gWp)1agfc(mM~0qu zGYUE#LJKJKDm2FwC3bi#7lMuu0092~-&|E+|4l G-<8( g_28kq{;#G z?d0+QxEA(H*&naW0wuyrhzUFutQ-~eL3#vVv*Sd@@p)@eJYjx^R(oXAl|85TiNaj^ zsVNFNP`+Oj1zA*AhrV6_cnhVxIxfQ@%6=!wpX+D^jH8Tln|rxX9{xrgo!;=?-x$su zgIL5QyfmKjD-*cx3-mdd+nN)!%(t*O(O|35q0by`;pd!K(#@ZH^y;*Wu)dnVtK=4A zQdE8wpxHwZqNw~Z(ao~J^X306L+4q?cug|($sG+O|Jm;tx&QiV4}wi-!07p}z19PJ zu8(`|G?ww#1x_p?es>A~eBpB?1QDLsP*tjJhSgtudCdzA4we-pQ}WvhuB11NoH~t^ z?4s3X;KcVESEX9cehb2yob39JLZlbC&($f~>S&JIO rg*abA0}C=0WAEeCPfpjRYw%*e>~hQ5{W6xHN;?%v%XAgL34km5SP=J zaj E=L ku(X+8Mr^9`f9uS- sX*kwM%GY0GUNkdY5#Tn_ zAkx4+fBvS@PGZ7cGJF70d*x69a>94z-vyj |wOyEun?%f$2FKkZg6pouXbyU7c5*%gh~~3o$pB!(QZ_ip&Nk)7{Hh}n8;XBp zSX?8&ZSd+Q-pKzt?KV`HX2XiqozBG6DnO@ygKU!-MFkKE_dmPtaT*Bx%~StXv}x=O zIQVm+_xTuH=zo8VvQl~5hU&oIgN!zH!N?<~dzb4(4pIS$WU`F?`IwC8>cW_apcciZ z7IZ?oW}c&j?SFx8Cq^gRTW`TLoK)yq?(OA{Ff{lrCd?om&wNxFNf!0A+kKC`Fy5U& zD9R|oaZLjo2$jtQ?5Z8My&>tW0;S12=(udQp4!@NRyiKeb#JLNifRnqsQv%S`kC_( zH4uRYY;w3Aa=~SzgM1pd^APCac?`nGttDt3?=rv_mhaEMTUUbq2O$V;Reye6B0J<% zlmEd$wK%1~dtN=-5YEL6&w}?r&Nba4T_!ORVKpMr6wSW=X5Cq*F{F1>^+Tp=&Foc~ z1=bP0q06k1fJbW*OlznD|AT8keypC69uZIxUvm4vj=R-MEtrmEc__{Al+ArIOG3#9 z G_YxJVdkDnCsjli0Al16tlJrBg}`D z7xSUhKo2GMA7i5~pv;eU0H;uy+|0XrchCmA(Lx6QS7^-}4rK9{^tbxuI`IBXvvC$& zJ $2iv5x!(p7|=6%D!^hqcI7T$Z{{08r OmrX#J+Q-)^t3vQ%;KkHs+6s*7DpR1EATOL;2A!}!E1EYheX zFG6)UFV6kRZ6zZ~sk58qvg0zoH|vT#Extk%11p^nHPU2fOfonx>Nd6Oy(nzg@=rea z8exMmuXOTY%HXgS4ho&B;9Kj+7vr$eMB3(#(1hVFaSmgb24fwx!JelXy3ON7U>6Kj zTe3~o_y;LS4sP_<%yJO(2@}1IQ$pQ^zs51sAg5`cqvEvG2d6CZi(;K%ZnS$E(l& z@o1!s2}!D(z_eF@Bt4e=6!-FvvYf2oAx{clf_JKg5UT~w@riCYA1eT>QqKSd<<)5G z56Ar*wJF=QvU5y~Hs}Lv*ByUH5>((DQ#Lnth~o^Jd)0SQ5~47+>rJj{6I!X1`6C(L zK^wCZdyAgQY<*_Fzf$<~FB&Z0*2UvRoC{aBWxM2R @K9rsb&hKN^f#Bna-o}aPa{$M(AuLD?y&wYyF7wA#~AU z3A*1|+F^3bFI`9;`Nsf!9~3mli{>DyC)WOT0X?{iB7TUe>SgmtLW*jc5BGfo u%2S42=*}!&te?Q7x>m8Sr#(+7s^u-p9|G`12K@q8Ip=y;&Mg8k6Y+EF^7)5 zn@J!Xhjf7407&S$aRvMezCm!EM|#-wOB>dy1%rqbMvyc&0V))E2(7Md7_^`GD5g2d zLC#H6g~$2w5#x|ZvYnL*)e_u+6Evo6F05RVX^J9yzNF>{sR!=p)TU=_mFJe$kW~q5 z%%dq`;Kk$$5P^b9PVtEW@^M2ss{B&-m&&OR^RTs%BHOG&Q2lWWeC;K7I}xh$x!Qm) zL{WAvnnufTLqR7P(B;<71?;ycncTnI7{&qH4)jTPU@j_0I&Z-JKkg04a@HCk_E|I+ zCkH2b6?+yjg 5*a$Ff1ms8Vwm0q_OT1&&{ZuF|+(|7&yJK?4`yq+&b%nDm`_>kNt<~csZrh zU@rETurx%v5wyV0-)M3f)2&lzsaX9<$2$aiSzQrisf>cgJ};E-e7nBbwaqNt)F7uv zh%f2h#`=Y$w )DVwXs duwpAXDk$RUy5Kl2TR zN+1lLNCe-b6ih`0c5k3+dlJ3W?ls)k0V9}WX&n?>kvI6IO&Qn2!EwCxDqCMzS%8Z} z68h;fMj1sr2E@a}hd@ZU#{!P$m!29!C`WXftPB9krjuUgEp+fLPQHAbpdu&>_nPg3 z@!B>!;(6i|c>2yS*;#>Y-qjl3<1I-9eM(g3VoyCQ64f5#LTTrK1EfuY3kwR8r{p8U z(XN&+?9Lv9Ic^89iGMElG^thm!**+p7a}fD8wEeAvaq43cw7(3RpH=v??E9e^f+Cr z#${7U>)0$lgc)VTv|<-RDlkhd_t*1V8}Qw8ZRap>N*{M0{Jv}aufJwbApnuTM;(df z0?G${QC7tZ_2uLFI>ij{@AVZ~H{PiC- HYu2XeH!p &(ioC?L?nbR+S^vLDd }=o!DCcCJ%#qX7gpYRS8 }$Qr@S$q0MC%tt2hBZcQER*}8KJ|R>T`uBEDkboPD)5rw|;&(%J zO 4c;jp`O^_`f{t_aP_jMNm$KeNl& z)A!NW>XU!2^g`!zJ~fNkgtJkEZ0`l5A7{mG;hA@S0jqrkq;wKUETd#MQ6^~%hWC{7 zhQ}iP2TUq(aoi?ssTN1VyNA ^x5F`l8HUS&Xn zeg-EN?~1Ni6e4jsacO8|Q5Lc1Pm-p8L@55M!Fio}k}I(M_~1;ikbGMtgk%?tAqTP; zPd{~UjvqKnsh>o$;M~Xl`et-=Uxl-?yG(j0p{lJ+Hg-RPy5wfKbH%&_&f&- >)-u zE^PG1Dn^+DZQbXkLCb#&;4cG1xcGp-YFPh~ETd-#JuM%9Nk_sEFJD@#F?IC@TqKb- z<-umx4)dTq;6>ywm{)$uDkb ym?nMxI;Cvqa?BpmTn5naX8SG1j7-*#L+5V6Y(G!L#`c!sxnx=H0T~iQ z!!=qAmX>S}E%C)j6M}Nt`O|(sDe0dDTH~Sw!@=^ql74=AM8dT=z$pGm*tjQinUhod z18Zd2n?~-MBo77aAB1Z{OLVh)(e_X|k w zEQ;XPhT%|9_hm@jg~oD4EHzg)QZkFUR9na13?-h4n#-<4H*g<*Rbncn6%_xy8zb}K z`AQ47HNs(CV08B1Z};E959&_x)cpf}9Img0WG?3)))!ny(}TX-FY{dfQ#kLx48`&w zgmf7#j^T=D;klWMo_fpzc=~ 97#UXSpi*gqWM@DTX%=0a`+-?Jeq{ z8Fp)bv@R^vkXQyw!B-4sX^&;dSaQ2t6W?tY2b{-ovQ(nWJ&egZj|&6cu$Vrh?O%yh z3lM1_GT{!|yddk>jMV7>6yq)^t>HUFjmG|&;XR-o#cb@fc(ZkBKoS&PR?BRIIS3o) zg>(uKmqplP(bPxD!ucLqAMYN`KrI)^t_%?+jr+7Gb>Btety-9wk#z2Nm2vq3g&aOa zdAR- +jHjtrX4{n;2)TnO&OSLQ6ju@CV?4P koP|6#%a32 JLNk&GBBLDzbMM6+kP&il$0000G0001n004#n06|PpNcj%{01fc8ZJQ!F zwrxGHnYnvlvQjD)S50P~v$dG1z5dzy4b WVIKjig 8&EHLk7bzuORQoDabY_!0s3s-6k)u7$F2}tTAnFS$3BQV?|k^+|4S; z2dT1BwjBi6U14JN Lf c7IZB-@SvyG?5gkyzPbSj(L*Yz_DG{G;%< zmy^0J8y) GH?TP@q9bXfLtrh+y|EHcb!L_C6N7=vO|HWMrwtE}xQCdQD8cqcZ z?sQ>m XOKq&}~9M@zOt>$~6z<}~Yh`jjcA-MOW%C4|w*@FR=qn> A0D|dd!BBHn+c5F!$C~v7u8~?c72c?j;d;Q zZVg-YIvV8p gk)3gJ-RVDyaN8y^35 zaJIOZ?#}SAcQX4{hwK)0 zn_3)@*l`D>7SpW})*%Ci{BCv;Kfm0qgHOU?{g+Gu*{%7SD6FN|&j-DS{?MH=v2RSD zPIqhg-tgBn;;VGgJYUSJ`QjFIOGpl94kKE!-I7y4Bqfp=W;-Vgkl^_A;V(Dy=E|P% zMRVEEDs`mwd`Ge+@CW{5-q*hG`)@!0>J6B!C2gZ!K*;i;HAE^F)>zv%)j@~6dgKJW zrd1t*_1J>2mgRDu4RI_dx>KV7)MUJg7gbw+7>=pQfN0LQ0gmOwwC)FPZxekGt+s-h z1SA|~Dq~wHTtUJCW{wrrg2g8ITXb_hyBz&24yc(mH}z6nWMel>mqhjhYBS;$jzf2o zW-<3m`PdK1fW(g{`~7j)m>XENt@*5)^xs85W2G(PQd9e$dQ6E7o#?bQ#WA8xixgTy z-xYFz@nSIuVGB9+wqSANd#*>xj9D6lrDC{vWtBc)YA_0IaRS=s%j9+1o7GG8)Q=dD zQ>A$`4s2S!IE_!%6SmHkAE>`%vu2pJjAk#bbRV@0v$lHL@_7n8=*`PEH&&m5(q`Lm zu6QSYx!$VQ5*Lf-*?X3=u#q>GQ}Tr+X7q)zqOd6gWm+`O8z7o%^~v<8KF<2S#jWLB zHm J$D^5$Fi$m>VO`9w|IY; zX~}KC4^GM#7T1umzFAzP8}=Cs6Kfh`WkalKD81&jJq&&CS~ghp^1 NEGV{FF~ffFVHGW`qHT05e?tQ~oTyJL)-Y>gd7VhcEw|8?Cl^D-C+$R$7Azyl5BJ zlF2KkJUCZPSY2QntA414U-E`FA+3-$l3pVNNi8l*b;}3gAUm6W@J@gDtd+D@^$NF|Fqdb)&3|N) z&Z`d(K7ab1KmW=98Xx4Nj<1QrklHNi7x>w5(>%Soo-SDedVJQrleY;8!zdW~BIH?< zq*OK+Rw9I1N^Mr-5#Y4c8;sxG`@M9{U-7bmGFJ6>{`}r)PpD;e86GDinb}gOnPY7M z&V&pwOh&u0VF{;zQJVpVk)k~9!d41D#n1CPjhu6@E-v15M82|nnO4&K6dF5IS<8bZ z6?Vy&w$y3ya;4+LcYoUX$=@}fQvr+gdivMj`RS9P_igLCTs@*WiMolg!-$rN)iNAT zvSgywSwpoN#FawGdZ?LMMFPy~G@bVbj*S)%!l(8X-;Hq8lWXeox+O8E?^X$?h(fbw zo@n(wpoj4yt`aX@*9V6uM;9-zAJhGG{*$whN79CT-;bGbnV|5(EY>YXV?nF99>P=8 zbjX7|#yqWJ72Tt}pO^D`vcj~vD);(y3tOQWkA5~jvmf%ny{=)eUsaY;#rpXH!kAc@ zSkV>QLty9C3R>ZV!^v!RMf;S$Ef?wiapqT8J@k9;H0Qiv-`zy$6)|E~Zy*d>N~>)Z zW$Gi0Y277T;dr>H%6Ui07j?9L-? hThP&Y>#`n9h&yWkoiMuhakI7eZUF@3OdP=G)19j6O>hs0Wk@=Jn c)$Pd-jAQe2$p95&jo@&EXwDPQ$y^H6c`HjGPrl| z?8|1_5;o=JU7n4P`uAqvPH*@X{Z9WoSC1|rD~^6)^6fNZ#y84HF950IYvd>4XNE6s zo}XEQcvF8#=qO`V#?oaj5D1C}zxnBpeq!3*!-IP#7cXA?c`Ds0@2Kzo&4cTCRUMp8 zp5OeP&3IvdUG8Tgtl@AN$yhd$Tn7f2K!6Ouxs+tvb4X^^073}w5+IQ*VI(DU5^H}l zcr~r-rRt48HFd53?GeEGFO&w=oK%-ud~}>*=#JwHg1=y_X&4pPXdb)tl=lX#xDF zbU4TY>lcd2Y{{a6Y;&254Oj#6+i>!VO{!D0L}I8Mufj_yriuidF;LK2&ywkQKx=mB zj_iy#X#<6Rb@+1j=H~J;rEKgDwy}J9Y3kpH^o+kszt%e~au2ZvnEz+)lLuN&Ee6b! ztmoTYuABvxZNPIF7O|}B5>w`~ZB;cEdSG+T?8x_=6Ifbm9x+m;HdzaJ;IFTL@t(E# zLGdei9;e#o&9rP0=srj8tUg 8<5IpE)bB~=vuz6A6>qGKku;|bjnYM^LSmyG@F9SAGr6K* {Tj74(ojIrTyjLS{6xG~pF9?&qv%b6^1!4y4prqM>1+ zzQ6>|rP{PYw %aiaEOL!;7&6y@w`9qt)QnxksS9B=7HJYPNjMxi zV1NXcB)V;dPOY|_I-0bU7R?*`V;cL{$H)DuEb^vmW{dCGS7c$@^!<_ !wD|8o*&ps7 1@<@fnBtfb~iCA zv&?6-$u?FuRh0+lcVc}5Z4b&gn_BAMmjg^N2>l$JUaWMsh-o+qfgQ9>>}nlnbF<CH}3MwYTSqUO}+!h?KiZI;338B8F&0m9VAlBwsz-F z>nfUjv1GdY4A5q-t3{3FMIJzG-tLSoMynIJOo6wip-n8BMFn~ATd_N4 Aw3ZO-nlyBYviP&goJ69544MF5=vDu)1v00000C8Pjb zH~E|TuiyvjZ;;>We-^)NeO3Hh @J>mMF{!jAv`^VS^^B?B_+ds5^&3}9Uuk_dWpY;ASJ< AMwApAL&2;{2}@m{SWwm+#mD*{l5Y~mj65d z7yZxt@B3fwAO3&aedT*9{loTb{hUoC6Fnsx;gvZNc!qcMj>C=-s5>?i&MefPGMfCG zQ-pI?vYVC~Y^+I9q6(`LKVt8NsjAo7QB+Q%l3cYbV(ixAr S zfa7oh8!I%=?mx$RQx9{~FZ+Ds`q0qk!FTx*zWEdcpxmMI?%^^XyR_(>WsxPaS5Br& zCo>&8lq(07wn AJCLLrJYp0hF!B6&SJaWm6?0DGF Dq$0qRA8uRW__rvgj96f`P%JfV4#WVzgTQIhzieQ@Iq_X zfE3L!Gg2KzFRab{a`f~Fj`H&1+K$XIeBZuTVSWGr{{P=xMNiXEicNR!SF8drx+uWs zhd8em&nlNRxDhEI97M(cXlkm{&RI2gixs?;9pVZAnXjc#t~!b7k#}wgLu1s+Z1ud_ zmKs+?DY5o6`Gzrc*aKw}5G74M#<#03{64Vps7m}=#TWOz4k%r;0hZ>>GGgY^rqm=C zH%W#H=pLJIV*D+%s0#k?8vfN#7~RHXMK;LM_WDoz7^QV@rm a#?KNmIyAK`dXk6fNtizctbpj=3l3XuOam5@&mj<~a$cF@o8u}euQ`2iHf|)(# zW$l<9a6hSUQm1+7RG9ALU0xO5v#@%p3$gLu7_^F9_DgsFosZW0FX<7N0`7}{+y*Hf z3wz@~MGEO7>_XLrWsRtdq<6m51u<#=+BzjFvbirTS4DLwC70Zi(XK$?!oufYgc$)~ z_5v*@RqOEH9%7NiyGgeFibRBVqQTl5FWncQDuPUT_B>-mkO680qzutD5oP}ejALv4 zJqurCse2#Kzs@GI)*sU*^!x;lIqmi&12tGV&8-J-DY#tqN>9Yl!`p0v#Zj)-3i}|^ zPXa0Amo+UivEYmYn}yR!xs1)$w|l)`5IknYTcjK6T6^Qq;up4Vg*Xx0M?T)Kvhu7f z!b8`fXG`=j=>%LmoOaFo>oh(#T%)L)KYdW6U0ZpCk5UjHLqYi-bO>Sc`g_S A)dxQrc3DKv?2ND0R9+k!~>~vYS%%HoK}p098r|f zB1uuK{v((;JsoP=)B{m36UyC6+}3MxN}q$^Dj34-L9m;0u2Ayf=@51R?S}u-ZsB8b zxw~zup#OJc&OY?^r%?q|`w(YRDek|8Ma)b wV7q{01y|L1*5uAyz{(AcfQCUHJ6zD7by2UfVc znC8y2od7r1!X$5tlQvgFI6vW~-U7nrymvrAkq`OQWYQ*R`xcQq0vc#=piuxlKq5d< z{uA`WEG<@58_ArY(XEWUQ;$b^%sS5!y&rQ#Ge=ZbU~ayRdO0U@ 419sG7^EyT^bnxS7$ybqKm$;qG9%p{4%W>$MMs1B`JzpOf-Dra z>F(Q>;{OWXJ&*!+rcUa?_BNuRR$rY8-x4`xyTncot1P?dlk{Ee!B6FItN_89`{*I? zxlcl?bvV!HgwP$;0ebBEf7cVed{I23GBRusYW2cKPu|jN PQg>9b@Gl%wgyq{(ys;13t>mBwO8+xrJY!0AmFxUCdN z)Mr{_+_`mB^BC?-@hbc5?P(Y6b1Hc~W639x!Tu}Cn8Z+FIf4rWo(kndgL-kJ{&g7S ze*|qhX1LkbPGa%Ds8Q+Fg!em%{`;uykFm_P{@=nP*jaOP>S7pe_dl<7`hIfz1pE>B zdGIH0f$n0< >ppI00nOL#s?KNU4+(JonuegHlXQ;RDX1z3VUqAo){qP*yD7i`yR5 zrv8xfU9p$kM|4l8F*`dCa(*-ZhTUB@ca={uC~a)WoBa$Bc9(COT21&}3;06N4hYnv z>4JF#G$ZOk0DNbTyV!d 26+aXqItTkSYQ@F(~0HQlTxmZ;T z9Cz?$`;%#>C_!D}K=uobwAqZxy|w^O6ecDHe)(<1C70>f(r_XJb|sVV+`DL)e+jDm z%hB9u(s0WtfB@YKXlb$n1g}@FEI6a$A}l|_ai8an8%Kbi21v?oW`+*0Yh84K!X!jP zR!guT-Toq=)z>ct5L2q{0udh)lX4!alr>{q(3$9MOThL*UZd@J$46nTzBPgM|MkNx zI>AgTR=!ax46OajCjHlJMgQ~))l}cK-ezt$ZvZz~(vg@YT!0Q?sOw9!Ski%cfiG{6 zBU&UVRiuAHLp7Rn9AoH0%tvVD84t&7mJLiLI>?&_6k^xBQ{KY%Bs_B5B}!!0cnd zLlP04t4}Y~6R6<;&@Gt}*iTQ{%3jSUiB`5QJmK57hD`EZ+eA{|nW+V!LXkIVby1 zpX02c6fKe|ANo-JIyPIOa{xiNJ9U&)x572wjasZ%>Fs&}zCjf|%NJ;#$G6G^>WbMJ z!lS|xQaoR(!J9paVIV~czj-yaiwajIeS2m?YN8#d$bxxz0X5dc9{KRFgu&&&jK8Vj z6cwnfTch&*9$I781(d87wAAXF^Gh`cyJS~2z^Psvso(w60naFrN$euG2j5xiAZHit z<>Q@I%d7(N&@?M%K$`Tk#nFZ_I640R!*UQgs>HZ(x*}D-5g*)~=aaQ|rS&RoVAk4< zJ=k-YMERn!R`wmF#`U E&ndjZvAz>B>NNP@dQ90J1x4kUoG#ub%e_}?=PtMu?AGaz6OZ}K_ zgyEbqJ{fPh{pha}I>dW1tzZl#-vUSRN{&L+4yf-mf?D9vGq=Ktl-WWckmcTJt@IUM zf65736<7mkl?ck854~LCpKP(lHZA?^IHkdie<$D(c78@ +s^ug(Yg z@-zn|je1sokq~8h1WpH|yha+u$=L2~{i6T~-6Rmxc=b27m)j#0U69l)KIu*B zsn=_aVaA*pT(@M12?X(h86xr?ifl-W+b5M+SV#t)O|EbZ%tC!GDyx?6F#-2N;;&+5 zY|HQ0@v+>CEn4`(A!AA~;{9qr6J*CHQ>(_|w=dy#^Lud^!F)KEWq02T^Sz28`+QAM z%#XuhUrxx(=VgdQDS=pcc5l?8E)yO|JUfR96Jc8q*hnK|2D1U8o-Yi$;Hy4|0xgQF zM`+7xH4K@0zP)c>Z;MSS`#HVm9C|j0dVvg|v~j{HfvDwhxnVYOLIup|i}gi_PZjGF z0Oar?#Eg>m;izy=I5d{i^Z)&Kx}9NUIx0tkcQ`$aHfKw$s2v#68czcFr-ysaC7TVy zyI&Wd6!uSuA!gev6%sT3u-*@ug92!&Yn2V(atDz-oM17~f2opd{|mn%ZG2>iZSOQ6 zTJ$lTP%8zve4A)Pz;qc(I9r(wMGPL*XwhpIn;a~f)0;!eBm5U6-@VeOTqMcwSie*s zVHr8UO=&JLzKT1z!^AFrraR=`uuzXQ1spS-7uV0m2qRo3N()<0pz)yagbMJz2-b&< zF5f1_PuvCDKRUWXSqH%;(rO``39}N-Q7uKQcBFtQI=sl+>6jhSEfdvZmeml>hS1Ou z+D^X1Ir>rIPhr+pKvz=m_!+ci&N?j#4lM^!m2@x;lMc9(*m%RIlt`+{LmwYe0?z>s z^@k}j(wbYjt0@S-0|Hq_$UorR SVcMpFZ6I0O(vEtpX&rfB zHp1j}J|(`?$k>ZyM!lV{x`bGmUR4iFllHcXj=xh36XD$em)zh*W~1pElfr0YlFXnf zwI1hnYkk7js&_)8?AJ6L7cDpe#U1qo?x7LmAu8_+ZrrF%& Z?%79lpbqHqc#~i$0Y^yD!U+%gd9Y;r{9m+*H=>3 zJxIP`g2}91>S$kPv@r{R?*=~D5=zqE7(Sxu68DutuB#k6r;}MZ>27lt zHiZGa{?mq98awib%=Uy&abS;l YmX6R|@->4r!63B+i11|4YOr-32J3;lB#2@69$lE31Z+uCGoCsn@ zMuA6T(6o=tlWAW;*q6dg`BR4bu$Ci18z>N+FYKPZ+*XjcGEdIGbt@li5~%97)-(kC z*$A1Z@*W+Y75@3tcCN;`t-gcEt;X_uLSByydgvW{f5EC#MN9TmhB*GRL%I-+PwRhK zkxiw;{Y{8{1oIOV7}dmuTVlYdUou3vTImQ(2WqwFu$hfz>v|krJ^%8{8FXv`nF=(U z)3aX^^wva&(vo`-2Ikyl-Lx+G>F0}ZN&uE}Q71zWzpVJkiNm5{?DJ9<*Te`ae=mPa zv;^?_%P?rwSg4;+kwYgS)e9*ZSO8Lf&Nu)6%qVb27 )}aNl{rQGcY)6o5nGWQmpz3SETx8lt7h!Utzu+Mk^na$n-~B0eBqkCSLf*r}H% zY3pqO23Wyy!ia) Xm@s<-1kV z!J=mTG(yE%Oee9(#4%oK&`T`)29jd8FVS~*RGw_;I9-r&v^35ko=AdjDmy|le87(A zn}K{LWLsxg+Lv*>!1g|ab`W>#N5CVoNB<_qYFdTid3%mGr#x2Tc1JLZB6D#JlTgKU zO9&EIBr^@#KR1V0h=qx^RUjx=Wd9)esl~ gJ) Q;+BZq*2MSYQUCw|0ELm*C;$Ke diff --git a/resources/meta/character/久岐忍/icons/talent-a.webp b/resources/meta/character/久岐忍/icons/talent-a.webp deleted file mode 100644 index f92293827fdfdc9845c98445e49d65f64ce3c8f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12142 zcmV-!FOkqvNk&FyF8}~nMM6+kP&il$0000G0001n004#n06|PpNTC)0009{?Y1 ef#oY2am-#Vge?>+qP|M z+gjVU@8@|6EVF}cnx+FMGha-9@%kk oIkidRO z*k+kJ@)g^30x*C8(66;>KrQg~AN2krPXG6`__|BF2bnUuoGriJ?65n$^7ddnoBBTw zY)TNOqBSwB-1|v<{;`kVI$S+}RZ+Pkwz-*x&;wv(O%y;f{L8cJD~Q^o(df&YC7`?` z%AJ%1h&%?~ngB=+AHLCFq=2H;8R%@j#GPdjATY!{YvdeDpu<>iO$dx0eeW160Pv k;qz@rOF!jg$z=TBn|5Ip?Fqa#!e#lyUL=$=0*a2JEt;DHU_ z*w^Vlqsd_8WSpD@>`G@4bb5mZ0I(IAN@wqTr+q4DAfT$+UT<(UTUMkYQ?bGQK_`L1 za&kMqv}_>p63r bMG;Kvb_5XapS`sovm^*8p<-I?VKJX)0JI^(#8Dg% zT2YvlMJBg5SzsFgcqV8^BuSBKl~T>?{QK~)Go#_7Z+-ieG&B$ZAfSj2k5=QC*k$nG z!Dx_skE)+s_1dlx_~z9N0w76}Q>fImWb~vLG!*Us^}_>_YN=WQDF9CPx=&xF&3*HA z?4{RC%Qf@qBnq18jaW$_00aneoPr?`>EEB5Mw0!v9}WXT)nLn@-Aiufi$=m$_hDp; zn^lgD^Sp3|&3NEwgu%3BIF_PRTK_&RM79csr{6uYq$;*gI{S;+tu)}0&hYgj%{*#O zb2w~I0D$ybtvd?wrUn66h03`Tg{S}bYQBy6!MDy1AqX8HYqVkkQP{Ji;>9c7$~=1e z MMCWGJw(Q+WHYpFMw^Yn`xt7%Q$^WQnygSOGvNus1q*em$?(IXL;z z_2rFdEkC}B`b~j1Xk;9XEF>AjH_l&tcvWgqQ6T8 zpToEkz#D_Mzgb~Re|sB;je++@%azzdK 8Uxpsg0>sJj-E`D a!8eA;y*Bbr5k|pof<`OnDAEc*B~_J;kU?G+ z)|d@2q9UzMPx7UrNhzKpaE3d9#xKh d*=kly%$TdJPI?QgpHgt7;e!oNPnk9b%VpL$&q^P11T2mB-GX{V%jFLDl(e(9X z*0;NZPF`Njv?&5mWfLG &>8IC6Xr4$f#uFH`1t~U&j15MN+J~BpYD4LK>|2g^1KIgB z2LWg^^wa50u3AR{5XJ;f(T}^MPN8UgIh_PCh`SjKDBcoHvp+IdFD8qMUqe8}i3k=m zy!OVoN=5UNSIZ;Z+3eyV7H`=UkPJ`f=U0`jJ;H}?$x_k$cruwKcSki2=*6%x8}?eo zYTSg54i07$G%w4kYnQ>@F=610h}gzp;-EQSJqImr#+iRAqBPGzg02M0Atw4ew=RfK939i@YB@qoQ}nQs$n8x5~y~NBt0= zm3{-`*N)pMlmHtlZ)fr*L>%t2UuvE>=e;2t0}cj5es;BnF8Yf-DHKH0KAk*!a32sK z+!?~y=Yu2)9U-1%L#i-QXTa +khi=G{W^i~EU+urbKx z(vJG7in|@Q&qg6KK|nzU8a9W1Z@`Pm-*jdRP| x&xoy+zob4ezdP;4ihS9L_7`H7;J*Wqt* -a#=E?^rqJ(bez3U(6i(TOA^4a%Ci5IL_ zqSqU}oM(dF2BU{>?Z+gIAvXHOHKS2r0O~ecx_B6*XkKM;J;}e(2^6{xkXF*y#Vps| z^xpi@1JJ;r=4?@1huwG(3AR>b{lQ_09ZK=^d~y6nLRGA%coX&BxV^qn-9dQtmuE+6 z2v2TWJ-!HA^B4K?!M<14Q<0;i$m &KrQ9EXV7sJ)Q*&7;;Q*SR*qN^9@CkA@Da zN^F#JDX`XO*Fl&J)mK;{#k=TqxkTft7~i~Vj}l{vx=ehrOnSZct3}#`0pNxYzjN$_ z05(v3QNRLH-grhMgL;UP(Mon8+2v$D3`qm6p-fOLf_7(rI$xFzRF8iA?K3X`Q8Qa< zhg1M~a#QpVM;;s1`@#M(c3Qss8TJi{`czmVXLNSFe0I@D*!i1Bhfshubh*sqeV;8W z^Z8AymGotu2nHvb?ZS^=esH)SlW35(6tzct`|r;4?V`Q2HwKXaAU29$6--c;zT%73 z9Bve?QMJ*&rf6RM?e*9lgpO!X4OLZ>ZqHrMvaQ;uKf6b*)RcUMRy!?9td;V-;6d9e z07#e|XV^vY^76JHIfF)(M&WJJdvHEpY%&Dk9{j}{_uz$g1BrQ>yG}HLvjqSFFuoY` z=wQ#HSnQu3Km?|t600xY4+kVc0EE_15UMnglEF6~nhzsutu uSc<+LM zr3$2u_?yCntuQ%sD^Y`nRTtN{^P>)%Q2|jkRMq(48xNmd=Nm>x!>8w|4@tqs%$p<( zQZIn70T$Oc>W+uQ{ahf;m0zCE+JPmSRPg{SuqqzG>0i9_{`ndc{xrS(jIdS|8*^dO zlDq@}MGYk;)7f8~xx5q@G+fTczwRFgj%cRLjaj!=%d?+;{x5S60F1RPl_1tA0Eq(T zrI-pS08E8Ix7{_ kF0brA`SbALt z1;91NjfR8UC7Ks6t5Od4JL#nG3c#SYN(l>Mt?HUGUFjOhe-j_Pq41tCSU zoGZ8{2qPD@x_yIeg&nFcvph&58z|fTD3GEkZVY{3*Qob2MyVC`3UYb%;p0iZ3EBMd zUVjjHFBWUNsSekGmAKsvyPfW6KE`hSY*~yFi|RoVw;|>8z%E;EjfhxBArw$8X)JEP z{LQt;T2TPy%MZ=zH$$trNCZGZoD8D>92kRz4o-jY({?uViXE!v$Sx&m?-9rWzy^Dx z{@@@l@uCAjHHQre8!41PV5uMdzfZ; Q#38;8j3jl;xjV>m?e!9Tc+3ea5x{(sqRskSx4=-nhu@-%c9V?+( znlp++YArHG?yOluW4O)}G|S7UAI EzNH0t6J?ja(>r;HcP| za2D#l28IA&AbDU7E &*MupC; a3b1z5uX zxi9n5I73v$meS^G{HG^3c@qi%>Fm5W=(&}K o z7xrjRRRJggg_7$4nYThs0*lQp!LxVXyTop9Zf5reA(R_{y$8eb|M9&_k>x%J;|_f8 z$xS+&%#+@bP^>2u0)T|FOfv>yNYu?<{QmP-*l|9anqCr7Ys7=${% %QYiow%!?vQ;=rJ8Hh%iqWx6ZOC$nC+i`w1&AOD{ZK7UBbwAF66 z4KOckyUx|C+rzh_6ziz~L4~Rky7Yd3& 5`5Iy&F)128>6X_B{p z@b14^NqoE?8C5`1I~3IX_gVb 5Y8c876h!cMROR0S&}ss?LSio%=K&6l@1?&{>}w`U7r zdTZVqtU;8ZZW=j*jZbed2;H+h>J2wgp~OZK8&y}OMp8_k 1OKN z5s7&&J!d!2gWLJSht3%rb=%AGZb0B#Sy}>d+h0!?XVz?h5 F-F@r~&{v{USaXY#^#d)`_tBov7nbU0l0i3!tJZFsLs} zZ`u}B;wwq;55r++9S9)zGAebQ&wqPAS(hzr7+NUTs2D11NLjkTqN={at#oG~u3Qvv zsAht`$ND0BHE`>EQ99?ao&qINQ&o&HT7g!+nqGo>UPtAId?_7=wJIxXLr^P5RY|P@ zki>d6L){%8l?7_^_97f4fVBWQcK|>Dm{=FWy2=er%P4A^AfoCTDM~u{t?uN(O6s+{ zoqzW-9Uc|M9#-?Spt3f$01BTi3U9-fL2bf#AuFl|UrE=B7pNci2EY0I#w5bntDJ^4 zbTPiPMK+)0dfIb_S_h=47!Xjf5#8PBtz6a#Oa+6Z_<#KVgD?7>tJUDqpu#m@20_%5 zJViW6lGtENqrR|~Xq-Dzz8x {z z09uNWqyY%B6fp+gklQscLIQNBD*;5{SIf)T;vfnLzz+5wmXjGqAq3k>nT9S `KfAre=L>A@i!u%j)~c)u6Qe9k zwU!`*vPgrdwZL6=Ui3}7Dz%b+GU|5#;QzDxdO%eBC;QJ{q!6->iZBR>wOSN~3qplx zF0>?^MUjbGYwl2K+@O<}0FY0Y7{p;^HcflIz*M4c8}sF=u!fsd1jZPwFUx{KU=@V- z-V!u4niqK&cX<}}-dL7vrcWksjU1{cUpy{O6I%g-2b{lJxxj8vFY1iJdMyfRhX#g* zS{7n0K)Q0dJo2(LLjan?wQk 6#|&RU >3FtJd47O+`Ds?QVc^ z`=g6LJhP#e3><3uqO_q!U4|@E?+jt1vyP6(t85o`_~2&%d#ju0(;Sf5`0}kG>MNmP zgxc}&zAZCLW3eTTsRcNLrAI(=aL^48ifn<~^GQST!TvFzi^VL@ivl;}$^IbPWC$24 zSQcgtD@(KTDBxgA1Hh;P#^%da*>|P}2^v$TzLn4iahwEUKwso9yf)H4+UsItmdnM} z?OU-0r~qh4SU{OCqKa8FLot=IaI`@Pz=;6PtfrIcUgT;R1HejFBs~gT)J4(?OVuZ( zZ{+QLLCyK^J_`Dn`T)5HpoJ**C42csB(5S-IROA`GeR9HMm(T0yL$fnEQo55fQwJM z?&a|CI7F2$Y9)HTXrvq0nO*$uWEd#K!x8{2fLjyBU#vLjM}V~!Kn|OrEOSv VNxTL?+?f^9NXOM#EygVXPytaj09Lf|ZCb>gB!U+;Bw!=> zvJ{1ZmZfS`<`+-SCxG}GP(Xd5Ko+-yO+j4dzLCD7W{%-X(Clia{r&*UMIJg60)Pns zfa=qB5a4$8;$ubQp)brP>srga!a5dl@9gs$*(%q>X_GMIq5hUNP_Uz^VFZxN~b^yE_FAt6rmnls}1VDEA z>&NHV@#5yXHR?v|(1LG3%QOyv8{e* zZRxBFqA0RdQQGZ%IZGnN^y;G$WRbPyheB&v1Ma1pvs(Zi^?+-Qk<4`RO~KKEv*XxVV~3XU;55l(fHbfGSyM z{_4N<1|z_Q27nT~R$@Gz9Q9l4R+B$I83Ver&C_{aWNF;$x(c*Tw)oUJ2M~96IiF#$ zA6L@r$DiFSafh>1%CdCMt!tE8q3( CpR8nNnP{j(Bk6VPg<*Yrv<*=EsE=ZLCtXI_0JDb z;ErqMnRB@7mYD?gju>P&go-7ytmUOaPq$Du)1v00000C8PjPcm9*{gU!Fi{#W|v z<2Uwy_TS<@Ccm)!a`GY5Kk0o6{y+8)?EjEo+&}Gqo%u)p2jmCr2d_U7zozvC{Ac+u z^#8|i?SJwA(|tXBkNXbl9eez@`_JzFz`m}0 8a zf5Z0a`X~2q_n+kdbid92|Nray3;dJ$*ZEKF|Kh*j|B3(c{?qQm*%$5yvIpzu{^PS= z*d4@%!^SkKm{`IPiXM1kBdUd(vJm!>B=l 2YHY#wp%+Ip|CvZvP{IkUd(Ryt? zgjp!Q3uUSv-1t@9@AvMgb1a6D7wr!KUy~p6cLl-`A>He8ZOtIbDx_3b^k)kZ`Qq!; z)0Glu{vGp!c616W3T2SnB?Zi#@(F$;07tvUbRe73$v=ATIRNFC*DF%#OiOqL+Eqnm zlNL1 wSo`mxA~!@2~~ zV`_z{Q}cp}!853iyufHbqqrx$Y8ytsvw;64Qe-G1rC%{SFO^v=s2FZ5DM>YpaAV8T zgdx_gQ-U?Bc4_tWUTc_@RX_2R{$d+`{8)Vi(q1Y?;K3o!XV=_c9|^{nQvosXyF2FL zxf#=O2Rr}69upu%wDQ0c2)@8C0092~|5wbJn12a@JzQ*hyqyQG(5LZFyS{y)tYdux zxle0Q?Z?$%lg{gc-nd>p2;DVyFz5~eIYP7|dj23u%=&fvp$1!(ztE&_Ue5SI`&nRM z9MsE~iiuv@%{IE`Ith9w@*23Jw(okn5t+se&`XX@iQ 2@&r+rQK>cVWpfr5XF@N*az!6v0k7IQD6%bT% zUC7s}XZ8p>1(Sb)8IjaSRyhi_&%md*HBz4UEUXv!C<#1`XYX+3Hc*f#btUE7W(D%P z1eH%vDGLxZD-q)w-UhA+y-HnS-RlQD!k|0Ivrx%5QPD}3#+Px-erFlXap)KaV>Vr? z=_uVujn*a(QsPq~U?}2;n^UW(89uyNkmGkC!9b+J5KDANk3Y^dCKqm_)-AToL>G&n zCG(&Mjm}AMJH!&zKo6sS*%!|Em~^OGE}P*spQ!IV#!7XQr7LlKzp2+s@QY|tu`LsP zBg}apEc#s+q=~pafEW8em`^P6zdiaCsM3l4z&Ql1SCpC^U&PH0Kjf3y`|+xx)ZG$O z{Y-C7tP_Kk7 9LP!ZfWLN5-AgB0lgX{&j=1 zAv1|LycpwR4+?yUPaBqV3EBQZ(*M>i!Gb3@#Z;rbPy+jXZ-9&dIWP8iYLN1OABB$3 zATm_xI|$>h%FwtV4r(;rBlZ^jwrB=(0aRVN3E=ES`8P~&nK+0FEw|11b}d WNA8~N+J?#jE|8mM&GElz?gR%c?=JnwWefkRou{;rZxIi^7$ zf9;M(8T-Iguq@E)@Wwmt^Fs3bK0H+YohQ+Hfv^dBrZNb936ToLND&Bu2Nj|pt0U|v zaf%`DG0f`j%3f$#Vs_XXPj?53OJ<9-PCs&>F8hm65u+2jZysV9jYB>fWo#xK_rkL_ zrV7*a_Y5kcIlc6(A}(+k`RvIu){``xvwtH|>HE1R9 sI`63WZR5C01VJ zY4Uxbu;395(IB;h}t z0J15L^e>@8J|PhA)YK0Qp90(!yv)J!00g`1StG^{58pP}Hl8qIZ?*9o{wv2M2#81O z-J`W4lr8`+&n*Mhc{_Q~I`ZE@+t$(>kGhQl!NG&f1;D#AdmAfG$+Ly{KM>4pn4EB6 zDu-Pq+}!U0=%a}aiEL+Y{{l_{>ChOOtXKyZhHUt$cU9Ap7!BZl%zYQ)KNM#ZEG}P) z=DsDc#8UyZZ+Xxw`k$M~g6gdj_zVZ26X1;RxKy70oW@b&|Ic|l 1mmuvLL8NA{m)0{0-?D*;#o)KcS6S;m z=3`k*|I|;d@bGn`7W+PfjrOVG8P&%#LQWyqKn!g72=(&F?6E#reh{>-w0C8+IJspO zll9>rUxQ=_V%6;^j_OhBq&AL&D99;@@`HC+A&T7W*ml2z@W2dM1xuO;ct^7$O;6t_ z%5g5F&cgMamYex5{L7rDlqNdwX)eOT%JYEZlzOs+g{k79ni;w&6wt0{zi58-{+V#w zs2ZA8__e}Oy1B jD6?4kPM)C6nO^J}9z#GdLp0)3 zb~bY@kh~Uhv42;f$~=%x3ZF8XpLlt79D%f7HhP>c3hm$tD1c8^^ec~PSWytwKrtER zpdOJ=-!;RWgq3vQ{Bl4Es*N3-3)Cz)Jl7@(x=Oq`?{HwKdC28DSp7&04#R_B U4I-<;Xra}1{j?TOMBz3lOx^qZ#*6bzsc^A zK@`QH1=g?KweYlXjknc^lUq(huO*k@`O`#iwZMf%Mp1|qgmGOVDGclJ2fYERgw1WK zH-!h;&Nc}3&pq!@!CAQK-b7|>kq=a}wE&7lPFYo7p=P}9wW1LX;pa7g>Enep $o1#H~y9I@I 6C8Bb2gJADQf!x+Y+WWF|6=fHeu1d!VKD(cr!%( Sa8QSI;t8HPS#^rd*aQ zEytgA6V_CspPJh3c(&>V14g5MGcl4FA?UbA@z#q)kWjD$*yd+>_n^JS??)S~RL|07 zt@HiC%mbeo5MKz2sevVgZ| Z_VjTj7R)~AtJ>>kC?SI#x;x@*F80fJ`WPAR@$<-D>k;sdbSuBz z{S~EpVf2zmYV!G@f}#BRK9h=R_gCfb 5whV8zDP3L &f FE>hQ{wO9w>53ay< zsJ=Y*+WYem+?UaCr~jmo@$6glI2b;m2+X<~EqnK@Qb(#0;bisk`BX*tYb==dlX;*u z k|$fP tVv|I*Z&W4mjsx_Ql4{3dY zlK<-(SnYpRHlY$~ZL|YZGq|ZJkkQO6<}Q~K+k+9pyEE(0K)f1$*=oa$+aQ4S2w|i; z2M}<6Ft8XMDrvxMdy~EGqw>=I@u^xh2lz93)hDBu%CFv$VFGuu3YH^D>*F$*Zn5)v zKgVMbMw^>~jSxG3b^7Qs0kt$vZo8229B%@`uX^P1`{vMx)vSDMd0w~7X8~rr* zi7$?#GFZq{hgj5$D*oJ~=8D0dOeY_0 Z_GULn|&=t(3g=doCZW& zT-?6}$hpkFD!Uy?E6q>Uy|H;|N4I _5geJ#x_nI!vFzqDy3ELQ&N|TkxamAZc{D zCN%IRux^ZW|I_Fg=_Z}T8(C=z#qjcO0fUQ#QN6fE0hX#Q1@mhkcSl7P_;{c1Z-?kI zmSF}Pu*fXgq;ree%uNHkJKNo{?)!^H7+e)^0