diff --git a/.gitignore b/.gitignore index ceb8405be..7bcb7e3ed 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ pb.bat cmd/v2/.cache.meta cmd/v2/my.db .idea/ +bin/cross.json +bin/gm.json diff --git a/bin/build_linux.sh b/bin/build_linux.sh index 19e825379..0ece25ba6 100755 --- a/bin/build_linux.sh +++ b/bin/build_linux.sh @@ -2,6 +2,7 @@ CGO_ENABLED=0 GO111MODULE=on GOOS=linux cd ../ +go build -o ./bin/cmd ./services/cmd/main.go go build -o ./bin/mainte ./services/mainte/main.go go build -o ./bin/gateway ./services/gateway/main.go go build -o ./bin/worker ./services/worker/main.go diff --git a/bin/json/game_drawcard.json b/bin/json/game_drawcard.json index 3887b361f..8f9ee6358 100644 --- a/bin/json/game_drawcard.json +++ b/bin/json/game_drawcard.json @@ -3,7 +3,7 @@ "key": 1, "recruitment_type": 1, "card_pool_type": "base_pool1", - "star": 4, + "star": 3, "race": 1, "id": "14007", "weight": 1000 @@ -13,318 +13,264 @@ "recruitment_type": 1, "card_pool_type": "base_pool1", "star": 4, - "race": 2, - "id": "24002", + "race": 1, + "id": "14007", "weight": 1000 }, { "key": 3, "recruitment_type": 1, "card_pool_type": "base_pool1", - "star": 4, - "race": 2, - "id": "35001", + "star": 5, + "race": 1, + "id": "14007", "weight": 1000 }, { "key": 4, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, - "race": 4, - "id": "44006", + "card_pool_type": "base_pool2", + "star": 5, + "race": 1, + "id": "14007", "weight": 1000 }, { "key": 5, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, - "race": 4, - "id": "44005", + "card_pool_type": "base_pool2", + "star": 3, + "race": 2, + "id": "24002", "weight": 1000 }, { "key": 6, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 1, - "id": "15004", + "card_pool_type": "base_pool2", + "star": 3, + "race": 2, + "id": "35001", "weight": 1000 }, { "key": 7, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 2, - "id": "25001", + "card_pool_type": "base_pool2", + "star": 3, + "race": 4, + "id": "44006", "weight": 1000 }, { "key": 8, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 2, - "id": "25004", + "card_pool_type": "base_pool2", + "star": 3, + "race": 4, + "id": "44005", "weight": 1000 }, { "key": 9, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 4, - "id": "45003", + "card_pool_type": "base_pool2", + "star": 4, + "race": 1, + "id": "15004", "weight": 1000 }, { "key": 10, "recruitment_type": 1, - "card_pool_type": "base_pool1", + "card_pool_type": "base_pool2", "star": 4, - "race": 1, - "id": "14007", + "race": 2, + "id": "25001", "weight": 1000 }, { "key": 11, "recruitment_type": 1, - "card_pool_type": "base_pool1", + "card_pool_type": "base_pool2", "star": 4, "race": 2, - "id": "24002", + "id": "25004", "weight": 1000 }, { "key": 12, "recruitment_type": 1, - "card_pool_type": "base_pool1", + "card_pool_type": "base_pool2", "star": 4, - "race": 2, - "id": "35001", + "race": 4, + "id": "45003", "weight": 1000 }, { "key": 13, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, - "race": 4, - "id": "44006", + "card_pool_type": "base_pool3", + "star": 5, + "race": 1, + "id": "14007", "weight": 1000 }, { "key": 14, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, - "race": 4, - "id": "44005", + "card_pool_type": "base_pool3", + "star": 3, + "race": 2, + "id": "24002", "weight": 1000 }, { "key": 15, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 1, - "id": "15004", + "card_pool_type": "base_pool3", + "star": 3, + "race": 2, + "id": "35001", "weight": 1000 }, { "key": 16, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 2, - "id": "25001", + "card_pool_type": "base_pool3", + "star": 3, + "race": 4, + "id": "44006", "weight": 1000 }, { "key": 17, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 2, - "id": "25004", + "card_pool_type": "base_pool3", + "star": 3, + "race": 4, + "id": "44005", "weight": 1000 }, { "key": 18, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 4, - "id": "45003", + "card_pool_type": "base_pool3", + "star": 4, + "race": 1, + "id": "15004", "weight": 1000 }, { "key": 19, "recruitment_type": 1, - "card_pool_type": "base_pool1", + "card_pool_type": "base_pool3", "star": 4, - "race": 1, - "id": "14007", + "race": 2, + "id": "25001", "weight": 1000 }, { "key": 20, "recruitment_type": 1, - "card_pool_type": "base_pool1", + "card_pool_type": "base_pool3", "star": 4, "race": 2, - "id": "24002", + "id": "25004", "weight": 1000 }, { "key": 21, "recruitment_type": 1, - "card_pool_type": "base_pool1", + "card_pool_type": "base_pool3", "star": 4, - "race": 2, - "id": "35001", + "race": 4, + "id": "45003", "weight": 1000 }, { "key": 22, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, - "race": 4, - "id": "44006", - "weight": 1000 - }, - { - "key": 23, - "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, - "race": 4, - "id": "44005", - "weight": 1000 - }, - { - "key": 24, - "recruitment_type": 1, - "card_pool_type": "base_pool1", + "card_pool_type": "base_pool4", "star": 5, "race": 1, - "id": "15004", - "weight": 1000 - }, - { - "key": 25, - "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 2, - "id": "25001", - "weight": 1000 - }, - { - "key": 26, - "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 2, - "id": "25004", - "weight": 1000 - }, - { - "key": 27, - "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, - "race": 4, - "id": "45003", - "weight": 1000 - }, - { - "key": 28, - "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, - "race": 1, "id": "14007", "weight": 1000 }, { - "key": 29, + "key": 23, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, + "card_pool_type": "base_pool4", + "star": 3, "race": 2, "id": "24002", "weight": 1000 }, { - "key": 30, + "key": 24, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, + "card_pool_type": "base_pool4", + "star": 3, "race": 2, "id": "35001", "weight": 1000 }, { - "key": 31, + "key": 25, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, + "card_pool_type": "base_pool4", + "star": 3, "race": 4, "id": "44006", "weight": 1000 }, { - "key": 32, + "key": 26, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 4, + "card_pool_type": "base_pool4", + "star": 3, "race": 4, "id": "44005", "weight": 1000 }, { - "key": 33, + "key": 27, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, + "card_pool_type": "base_pool4", + "star": 4, "race": 1, "id": "15004", "weight": 1000 }, { - "key": 34, + "key": 28, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, + "card_pool_type": "base_pool4", + "star": 4, "race": 2, "id": "25001", "weight": 1000 }, { - "key": 35, + "key": 29, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, + "card_pool_type": "base_pool4", + "star": 4, "race": 2, "id": "25004", "weight": 1000 }, { - "key": 36, + "key": 30, "recruitment_type": 1, - "card_pool_type": "base_pool1", - "star": 5, + "card_pool_type": "base_pool4", + "star": 4, "race": 4, "id": "45003", "weight": 1000 }, { - "key": 121, + "key": 31, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -333,7 +279,7 @@ "weight": 1000 }, { - "key": 122, + "key": 32, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -342,7 +288,7 @@ "weight": 1000 }, { - "key": 123, + "key": 33, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -351,7 +297,7 @@ "weight": 1000 }, { - "key": 124, + "key": 34, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -360,7 +306,7 @@ "weight": 1000 }, { - "key": 125, + "key": 35, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 3, @@ -369,7 +315,7 @@ "weight": 1000 }, { - "key": 126, + "key": 36, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -378,7 +324,7 @@ "weight": 1000 }, { - "key": 127, + "key": 37, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -387,7 +333,7 @@ "weight": 1000 }, { - "key": 128, + "key": 38, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -396,7 +342,7 @@ "weight": 1000 }, { - "key": 129, + "key": 39, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -405,7 +351,7 @@ "weight": 1000 }, { - "key": 130, + "key": 40, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -414,7 +360,7 @@ "weight": 1000 }, { - "key": 131, + "key": 41, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -423,7 +369,7 @@ "weight": 1000 }, { - "key": 132, + "key": 42, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 4, @@ -432,7 +378,7 @@ "weight": 1000 }, { - "key": 133, + "key": 43, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 5, @@ -441,7 +387,7 @@ "weight": 1000 }, { - "key": 134, + "key": 44, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 5, @@ -450,7 +396,7 @@ "weight": 1000 }, { - "key": 135, + "key": 45, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 5, @@ -459,7 +405,7 @@ "weight": 1000 }, { - "key": 136, + "key": 46, "recruitment_type": 2, "card_pool_type": "camp1_pool", "star": 5, @@ -468,7 +414,7 @@ "weight": 1000 }, { - "key": 137, + "key": 47, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 3, @@ -477,7 +423,7 @@ "weight": 1000 }, { - "key": 138, + "key": 48, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 3, @@ -486,7 +432,7 @@ "weight": 1000 }, { - "key": 139, + "key": 49, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 3, @@ -495,7 +441,7 @@ "weight": 1000 }, { - "key": 140, + "key": 50, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 3, @@ -504,7 +450,7 @@ "weight": 1000 }, { - "key": 141, + "key": 51, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -513,7 +459,7 @@ "weight": 1000 }, { - "key": 142, + "key": 52, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -522,7 +468,7 @@ "weight": 1000 }, { - "key": 143, + "key": 53, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -531,7 +477,7 @@ "weight": 1000 }, { - "key": 144, + "key": 54, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -540,7 +486,7 @@ "weight": 1000 }, { - "key": 145, + "key": 55, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -549,7 +495,7 @@ "weight": 1000 }, { - "key": 146, + "key": 56, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -558,7 +504,7 @@ "weight": 1000 }, { - "key": 147, + "key": 57, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -567,7 +513,7 @@ "weight": 1000 }, { - "key": 148, + "key": 58, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -576,7 +522,7 @@ "weight": 1000 }, { - "key": 149, + "key": 59, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 4, @@ -585,7 +531,7 @@ "weight": 1000 }, { - "key": 150, + "key": 60, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 5, @@ -594,7 +540,7 @@ "weight": 1000 }, { - "key": 151, + "key": 61, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 5, @@ -603,7 +549,7 @@ "weight": 1000 }, { - "key": 152, + "key": 62, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 5, @@ -612,7 +558,7 @@ "weight": 1000 }, { - "key": 153, + "key": 63, "recruitment_type": 2, "card_pool_type": "camp2_pool", "star": 5, @@ -621,7 +567,7 @@ "weight": 1000 }, { - "key": 154, + "key": 64, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -630,7 +576,7 @@ "weight": 1000 }, { - "key": 155, + "key": 65, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -639,7 +585,7 @@ "weight": 1000 }, { - "key": 156, + "key": 66, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -648,7 +594,7 @@ "weight": 1000 }, { - "key": 157, + "key": 67, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -657,7 +603,7 @@ "weight": 1000 }, { - "key": 158, + "key": 68, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -666,7 +612,7 @@ "weight": 1000 }, { - "key": 159, + "key": 69, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 3, @@ -675,7 +621,7 @@ "weight": 1000 }, { - "key": 160, + "key": 70, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -684,7 +630,7 @@ "weight": 1000 }, { - "key": 161, + "key": 71, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -693,7 +639,7 @@ "weight": 1000 }, { - "key": 162, + "key": 72, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -702,7 +648,7 @@ "weight": 1000 }, { - "key": 163, + "key": 73, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -711,7 +657,7 @@ "weight": 1000 }, { - "key": 164, + "key": 74, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -720,7 +666,7 @@ "weight": 1000 }, { - "key": 165, + "key": 75, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -729,7 +675,7 @@ "weight": 1000 }, { - "key": 166, + "key": 76, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -738,7 +684,7 @@ "weight": 1000 }, { - "key": 167, + "key": 77, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 4, @@ -747,7 +693,7 @@ "weight": 1000 }, { - "key": 168, + "key": 78, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -756,7 +702,7 @@ "weight": 1000 }, { - "key": 169, + "key": 79, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -765,7 +711,7 @@ "weight": 1000 }, { - "key": 170, + "key": 80, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -774,7 +720,7 @@ "weight": 1000 }, { - "key": 171, + "key": 81, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -783,7 +729,7 @@ "weight": 1000 }, { - "key": 172, + "key": 82, "recruitment_type": 2, "card_pool_type": "camp3_pool", "star": 5, @@ -792,7 +738,7 @@ "weight": 1000 }, { - "key": 173, + "key": 83, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -801,7 +747,7 @@ "weight": 1000 }, { - "key": 174, + "key": 84, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -810,7 +756,7 @@ "weight": 1000 }, { - "key": 175, + "key": 85, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -819,7 +765,7 @@ "weight": 1000 }, { - "key": 176, + "key": 86, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -828,7 +774,7 @@ "weight": 1000 }, { - "key": 177, + "key": 87, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -837,7 +783,7 @@ "weight": 1000 }, { - "key": 178, + "key": 88, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -846,7 +792,7 @@ "weight": 1000 }, { - "key": 179, + "key": 89, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 3, @@ -855,7 +801,7 @@ "weight": 1000 }, { - "key": 180, + "key": 90, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -864,7 +810,7 @@ "weight": 1000 }, { - "key": 181, + "key": 91, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -873,7 +819,7 @@ "weight": 1000 }, { - "key": 182, + "key": 92, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -882,7 +828,7 @@ "weight": 1000 }, { - "key": 183, + "key": 93, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -891,7 +837,7 @@ "weight": 1000 }, { - "key": 184, + "key": 94, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 4, @@ -900,7 +846,7 @@ "weight": 1000 }, { - "key": 185, + "key": 95, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 5, @@ -909,7 +855,7 @@ "weight": 1000 }, { - "key": 186, + "key": 96, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 5, @@ -918,7 +864,7 @@ "weight": 1000 }, { - "key": 187, + "key": 97, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 5, @@ -927,7 +873,7 @@ "weight": 1000 }, { - "key": 188, + "key": 98, "recruitment_type": 2, "card_pool_type": "camp4_pool", "star": 5, diff --git a/bin/json/game_global.json b/bin/json/game_global.json index ff9107cc7..ea051e51e 100644 --- a/bin/json/game_global.json +++ b/bin/json/game_global.json @@ -104,12 +104,12 @@ "camp3_pool1": "camp3_pool", "camp4_pool1": "camp4_pool", "base_pool1": { - "s": 1, - "e": 60, + "s": 0, + "e": 1, "p": "base_pool1" }, "base_pool2": { - "s": 61, + "s": 2, "e": 200, "p": "base_pool2" }, @@ -119,7 +119,7 @@ "p": "base_pool3" }, "base_pool4": { - "s": 1000, + "s": 1001, "e": 99999999, "p": "base_pool4" }, diff --git a/bin/json/game_hero.json b/bin/json/game_hero.json index 4b01336e5..4fbaa81a4 100644 --- a/bin/json/game_hero.json +++ b/bin/json/game_hero.json @@ -654,8 +654,8 @@ "key": "hero_14007", "text": "格里斯特王子" }, - "star": 4, - "color": 3, + "star": 5, + "color": 4, "race": 1, "job": 2, "type": 1, @@ -890,8 +890,8 @@ "key": "hero_15004", "text": "小欧" }, - "star": 5, - "color": 4, + "star": 3, + "color": 2, "race": 1, "job": 4, "type": 1, @@ -1244,8 +1244,8 @@ "key": "hero_24002", "text": "牙仙" }, - "star": 4, - "color": 3, + "star": 3, + "color": 2, "race": 2, "job": 1, "type": 1, @@ -1271,7 +1271,7 @@ "y": 0, "z": 0 }, - "skill": 124002011, + "skill": 0, "skill1": 124002111, "skill2": 124002211, "skill3": 124002311, @@ -1303,8 +1303,8 @@ "key": "hero_24003", "text": "睡神沙人" }, - "star": 4, - "color": 3, + "star": 3, + "color": 2, "race": 2, "job": 4, "type": 1, @@ -1362,8 +1362,8 @@ "key": "hero_24004", "text": "邦尼兔" }, - "star": 4, - "color": 3, + "star": 3, + "color": 2, "race": 2, "job": 1, "type": 1, @@ -1716,8 +1716,8 @@ "key": "hero_25001", "text": "阿宝" }, - "star": 5, - "color": 4, + "star": 4, + "color": 3, "race": 2, "job": 2, "type": 1, @@ -1893,8 +1893,8 @@ "key": "hero_25004", "text": "波比" }, - "star": 5, - "color": 4, + "star": 3, + "color": 2, "race": 2, "job": 3, "type": 1, @@ -2778,8 +2778,8 @@ "key": "hero_35001", "text": "师父" }, - "star": 4, - "color": 3, + "star": 3, + "color": 2, "race": 2, "job": 2, "type": 1, @@ -3781,8 +3781,8 @@ "key": "hero_44006", "text": "悍娇虎" }, - "star": 4, - "color": 3, + "star": 3, + "color": 2, "race": 4, "job": 1, "type": 1, @@ -3808,7 +3808,7 @@ "y": 0, "z": 0 }, - "skill": 144006011, + "skill": 0, "skill1": 144006111, "skill2": 144006211, "skill3": 144006311, @@ -3958,8 +3958,8 @@ "key": "hero_45003", "text": "盖" }, - "star": 5, - "color": 4, + "star": 3, + "color": 2, "race": 4, "job": 3, "type": 1, @@ -5434,7 +5434,7 @@ "text": "致命纳得" }, "star": 4, - "color": 1, + "color": 3, "race": 4, "job": 1, "type": 5, @@ -6379,8 +6379,8 @@ "key": "hero_44005", "text": "小伊" }, - "star": 4, - "color": 4, + "star": 3, + "color": 2, "race": 4, "job": 3, "type": 1, @@ -6439,7 +6439,7 @@ "text": "亚力克斯" }, "star": 5, - "color": 5, + "color": 4, "race": 1, "job": 3, "type": 1, @@ -7125,7 +7125,7 @@ "text": "黑化小伊" }, "star": 4, - "color": 4, + "color": 3, "race": 4, "job": 3, "type": 1, diff --git a/bin/json/game_heroexp.json b/bin/json/game_heroexp.json index 50978f0e0..0a9d920c7 100644 --- a/bin/json/game_heroexp.json +++ b/bin/json/game_heroexp.json @@ -4,27 +4,27 @@ "name": "初级经验精灵", "star": 2, "color": 1, - "heroexp": 1000, + "heroexp": 4630, "skilllevelup": 0, - "needgold": 1000 + "needgold": 5663 }, { "hid": "43911", "name": "中级经验精灵", "star": 3, "color": 2, - "heroexp": 5000, + "heroexp": 9259, "skilllevelup": 0, - "needgold": 5000 + "needgold": 11951 }, { "hid": "44911", "name": "高级经验精灵", "star": 4, "color": 3, - "heroexp": 20000, + "heroexp": 18518, "skilllevelup": 0, - "needgold": 20000 + "needgold": 23324 }, { "hid": "43921", @@ -33,7 +33,7 @@ "color": 2, "heroexp": 0, "skilllevelup": 1, - "needgold": 1000 + "needgold": 5663 }, { "hid": "44921", @@ -42,7 +42,7 @@ "color": 3, "heroexp": 0, "skilllevelup": 1, - "needgold": 1000 + "needgold": 11951 }, { "hid": "45921", @@ -51,6 +51,6 @@ "color": 4, "heroexp": 0, "skilllevelup": 1, - "needgold": 1000 + "needgold": 23324 } ] \ No newline at end of file diff --git a/bin/json/game_herolevelup.json b/bin/json/game_herolevelup.json index 982b5ac4a..5bf1f5533 100644 --- a/bin/json/game_herolevelup.json +++ b/bin/json/game_herolevelup.json @@ -5,7 +5,7 @@ { "a": "attr", "t": "heroexp", - "n": 300 + "n": 40 } ], "hp": 1857, @@ -18,7 +18,7 @@ { "a": "attr", "t": "heroexp", - "n": 320 + "n": 80 } ], "hp": 1953, @@ -31,7 +31,7 @@ { "a": "attr", "t": "heroexp", - "n": 340 + "n": 120 } ], "hp": 2049, @@ -44,7 +44,7 @@ { "a": "attr", "t": "heroexp", - "n": 360 + "n": 160 } ], "hp": 2145, @@ -57,7 +57,7 @@ { "a": "attr", "t": "heroexp", - "n": 380 + "n": 200 } ], "hp": 2241, @@ -70,7 +70,7 @@ { "a": "attr", "t": "heroexp", - "n": 400 + "n": 240 } ], "hp": 2337, @@ -83,7 +83,7 @@ { "a": "attr", "t": "heroexp", - "n": 420 + "n": 280 } ], "hp": 2433, @@ -96,7 +96,7 @@ { "a": "attr", "t": "heroexp", - "n": 440 + "n": 320 } ], "hp": 2529, @@ -109,7 +109,7 @@ { "a": "attr", "t": "heroexp", - "n": 460 + "n": 360 } ], "hp": 2625, @@ -122,7 +122,7 @@ { "a": "attr", "t": "heroexp", - "n": 480 + "n": 400 } ], "hp": 2721, @@ -135,7 +135,7 @@ { "a": "attr", "t": "heroexp", - "n": 1100 + "n": 440 } ], "hp": 2817, @@ -148,7 +148,7 @@ { "a": "attr", "t": "heroexp", - "n": 1200 + "n": 900 } ], "hp": 2913, @@ -161,7 +161,7 @@ { "a": "attr", "t": "heroexp", - "n": 1300 + "n": 975 } ], "hp": 3009, @@ -174,7 +174,7 @@ { "a": "attr", "t": "heroexp", - "n": 1400 + "n": 1050 } ], "hp": 3105, @@ -187,7 +187,7 @@ { "a": "attr", "t": "heroexp", - "n": 1500 + "n": 1125 } ], "hp": 3201, @@ -200,7 +200,7 @@ { "a": "attr", "t": "heroexp", - "n": 1600 + "n": 1200 } ], "hp": 3297, @@ -213,7 +213,7 @@ { "a": "attr", "t": "heroexp", - "n": 1700 + "n": 1275 } ], "hp": 3393, @@ -226,7 +226,7 @@ { "a": "attr", "t": "heroexp", - "n": 1800 + "n": 1350 } ], "hp": 3489, @@ -239,7 +239,7 @@ { "a": "attr", "t": "heroexp", - "n": 1900 + "n": 1425 } ], "hp": 3585, @@ -252,7 +252,7 @@ { "a": "attr", "t": "heroexp", - "n": 2000 + "n": 1500 } ], "hp": 3681, @@ -265,7 +265,7 @@ { "a": "attr", "t": "heroexp", - "n": 6300 + "n": 2120 } ], "hp": 3777, @@ -278,7 +278,7 @@ { "a": "attr", "t": "heroexp", - "n": 6600 + "n": 2240 } ], "hp": 3873, @@ -291,7 +291,7 @@ { "a": "attr", "t": "heroexp", - "n": 6900 + "n": 2380 } ], "hp": 3969, @@ -304,7 +304,7 @@ { "a": "attr", "t": "heroexp", - "n": 7200 + "n": 2520 } ], "hp": 4065, @@ -317,7 +317,7 @@ { "a": "attr", "t": "heroexp", - "n": 7500 + "n": 2680 } ], "hp": 4161, @@ -330,7 +330,7 @@ { "a": "attr", "t": "heroexp", - "n": 7800 + "n": 2840 } ], "hp": 4257, @@ -343,7 +343,7 @@ { "a": "attr", "t": "heroexp", - "n": 8100 + "n": 3020 } ], "hp": 4353, @@ -356,7 +356,7 @@ { "a": "attr", "t": "heroexp", - "n": 8400 + "n": 3200 } ], "hp": 4449, @@ -369,7 +369,7 @@ { "a": "attr", "t": "heroexp", - "n": 8700 + "n": 3400 } ], "hp": 4545, @@ -382,7 +382,7 @@ { "a": "attr", "t": "heroexp", - "n": 9000 + "n": 3600 } ], "hp": 4641, @@ -395,7 +395,7 @@ { "a": "attr", "t": "heroexp", - "n": 15500 + "n": 5700 } ], "hp": 4737, @@ -408,7 +408,7 @@ { "a": "attr", "t": "heroexp", - "n": 16000 + "n": 6000 } ], "hp": 4833, @@ -421,7 +421,7 @@ { "a": "attr", "t": "heroexp", - "n": 16500 + "n": 6330 } ], "hp": 4929, @@ -434,7 +434,7 @@ { "a": "attr", "t": "heroexp", - "n": 17000 + "n": 6660 } ], "hp": 5025, @@ -447,7 +447,7 @@ { "a": "attr", "t": "heroexp", - "n": 17500 + "n": 7020 } ], "hp": 5121, @@ -460,7 +460,7 @@ { "a": "attr", "t": "heroexp", - "n": 18000 + "n": 7380 } ], "hp": 5217, @@ -473,7 +473,7 @@ { "a": "attr", "t": "heroexp", - "n": 18500 + "n": 7770 } ], "hp": 5313, @@ -486,7 +486,7 @@ { "a": "attr", "t": "heroexp", - "n": 19000 + "n": 8160 } ], "hp": 5409, @@ -499,7 +499,7 @@ { "a": "attr", "t": "heroexp", - "n": 19500 + "n": 8580 } ], "hp": 5505, @@ -512,7 +512,7 @@ { "a": "attr", "t": "heroexp", - "n": 20000 + "n": 9000 } ], "hp": 5601, @@ -525,7 +525,7 @@ { "a": "attr", "t": "heroexp", - "n": 24600 + "n": 9600 } ], "hp": 5697, @@ -538,7 +538,7 @@ { "a": "attr", "t": "heroexp", - "n": 25200 + "n": 10200 } ], "hp": 5793, @@ -551,7 +551,7 @@ { "a": "attr", "t": "heroexp", - "n": 25800 + "n": 10800 } ], "hp": 5889, @@ -564,7 +564,7 @@ { "a": "attr", "t": "heroexp", - "n": 26400 + "n": 11400 } ], "hp": 5985, @@ -577,7 +577,7 @@ { "a": "attr", "t": "heroexp", - "n": 27000 + "n": 12000 } ], "hp": 6081, @@ -590,7 +590,7 @@ { "a": "attr", "t": "heroexp", - "n": 27600 + "n": 12900 } ], "hp": 6177, @@ -603,7 +603,7 @@ { "a": "attr", "t": "heroexp", - "n": 28200 + "n": 13800 } ], "hp": 6273, @@ -616,7 +616,7 @@ { "a": "attr", "t": "heroexp", - "n": 28800 + "n": 14700 } ], "hp": 6369, @@ -629,7 +629,7 @@ { "a": "attr", "t": "heroexp", - "n": 29400 + "n": 15600 } ], "hp": 6465, @@ -642,7 +642,7 @@ { "a": "attr", "t": "heroexp", - "n": 30000 + "n": 16500 } ], "hp": 6561, @@ -655,7 +655,7 @@ { "a": "attr", "t": "heroexp", - "n": 48450 + "n": 23600 } ], "hp": 6657, @@ -668,7 +668,7 @@ { "a": "attr", "t": "heroexp", - "n": 49400 + "n": 25200 } ], "hp": 6753, @@ -681,7 +681,7 @@ { "a": "attr", "t": "heroexp", - "n": 50350 + "n": 26800 } ], "hp": 6849, @@ -694,7 +694,7 @@ { "a": "attr", "t": "heroexp", - "n": 51300 + "n": 28400 } ], "hp": 6945, @@ -707,7 +707,7 @@ { "a": "attr", "t": "heroexp", - "n": 52250 + "n": 30000 } ], "hp": 7041, @@ -720,7 +720,7 @@ { "a": "attr", "t": "heroexp", - "n": 53200 + "n": 32000 } ], "hp": 7137, @@ -733,7 +733,7 @@ { "a": "attr", "t": "heroexp", - "n": 54150 + "n": 34000 } ], "hp": 7233, @@ -746,7 +746,7 @@ { "a": "attr", "t": "heroexp", - "n": 55100 + "n": 36000 } ], "hp": 7329, @@ -759,7 +759,7 @@ { "a": "attr", "t": "heroexp", - "n": 56050 + "n": 38000 } ], "hp": 7425, diff --git a/bin/json/game_heroresonance.json b/bin/json/game_heroresonance.json index 089c049bc..fee08d559 100644 --- a/bin/json/game_heroresonance.json +++ b/bin/json/game_heroresonance.json @@ -30,12 +30,7 @@ "hpscale": 736, "atkscale": 90, "defscale": 174, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "13002", @@ -68,12 +63,7 @@ "hpscale": 106, "atkscale": 50, "defscale": 844, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "13003", @@ -106,12 +96,7 @@ "hpscale": 255, "atkscale": 140, "defscale": 605, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "13004", @@ -144,12 +129,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "13005", @@ -182,12 +162,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "14001", @@ -220,12 +195,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "14002", @@ -258,12 +228,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "14003", @@ -296,12 +261,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "14004", @@ -334,12 +294,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "14005", @@ -372,12 +327,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "14006", @@ -410,12 +360,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "14007", @@ -448,12 +393,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "15001", @@ -486,12 +426,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "15002", @@ -524,12 +459,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "15003", @@ -562,12 +492,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "15004", @@ -600,12 +525,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "23001", @@ -638,12 +558,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "23002", @@ -676,12 +591,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "23003", @@ -714,12 +624,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "23004", @@ -752,12 +657,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "24001", @@ -790,12 +690,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "24002", @@ -828,12 +723,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "24003", @@ -866,12 +756,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "24004", @@ -904,12 +789,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "24005", @@ -942,12 +822,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "24006", @@ -980,12 +855,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "24007", @@ -1018,12 +888,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "24008", @@ -1056,12 +921,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "24009", @@ -1094,12 +954,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "25001", @@ -1132,12 +987,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "25002", @@ -1170,12 +1020,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "25003", @@ -1208,12 +1053,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "25004", @@ -1246,12 +1086,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "33001", @@ -1284,12 +1119,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "33002", @@ -1322,12 +1152,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "33003", @@ -1360,12 +1185,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "33004", @@ -1398,12 +1218,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "33005", @@ -1436,12 +1251,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "33006", @@ -1474,12 +1284,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "34001", @@ -1512,12 +1317,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "34002", @@ -1550,12 +1350,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "34003", @@ -1588,12 +1383,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "34004", @@ -1626,12 +1416,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "34005", @@ -1664,12 +1449,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "34006", @@ -1702,12 +1482,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "34007", @@ -1740,12 +1515,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "34008", @@ -1778,12 +1548,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "35001", @@ -1816,12 +1581,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "35002", @@ -1854,12 +1614,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "35003", @@ -1892,12 +1647,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "35004", @@ -1930,12 +1680,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "35005", @@ -1968,12 +1713,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "35006", @@ -2006,12 +1746,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "43001", @@ -2044,12 +1779,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "43002", @@ -2082,12 +1812,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "43003", @@ -2120,12 +1845,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "43004", @@ -2158,12 +1878,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "43005", @@ -2196,12 +1911,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "43006", @@ -2234,12 +1944,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "43007", @@ -2272,12 +1977,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "44001", @@ -2310,12 +2010,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "44002", @@ -2348,12 +2043,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "44003", @@ -2386,12 +2076,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "44004", @@ -2424,12 +2109,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "44006", @@ -2462,12 +2142,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "45001", @@ -2500,12 +2175,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "45002", @@ -2538,12 +2208,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "45003", @@ -2576,12 +2241,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "45004", @@ -2614,12 +2274,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "44005", @@ -2652,12 +2307,7 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 }, { "hid": "15005", @@ -2690,11 +2340,6 @@ "hpscale": 105, "atkscale": 750, "defscale": 145, - "maxnum": 6, - "recommend_percentage": [ - 750, - 175, - 75 - ] + "maxnum": 6 } ] \ No newline at end of file diff --git a/bin/json/game_herostarup.json b/bin/json/game_herostarup.json index ac1fdb2ba..de6ae393b 100644 --- a/bin/json/game_herostarup.json +++ b/bin/json/game_herostarup.json @@ -2,7 +2,7 @@ { "key": 1, "id": "25001", - "star": 5, + "star": 4, "needhero": "", "needherostar": 0, "needheronum": 0, @@ -12,25 +12,13 @@ 3, 4 ], - "needracestar": 5, - "needracenum": 5, + "needracestar": 4, + "needracenum": 4, "gold": 10000 }, { "key": 2, "id": "25001", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 3, - "id": "14003", "star": 5, "needhero": "", "needherostar": 0, @@ -46,8 +34,8 @@ "gold": 10000 }, { - "key": 4, - "id": "14003", + "key": 3, + "id": "25001", "star": 6, "needhero": "", "needherostar": 0, @@ -58,9 +46,9 @@ "gold": 0 }, { - "key": 5, - "id": "14007", - "star": 5, + "key": 4, + "id": "25004", + "star": 3, "needhero": "", "needherostar": 0, "needheronum": 0, @@ -70,12 +58,327 @@ 3, 4 ], - "needracestar": 5, - "needracenum": 5, + "needracestar": 3, + "needracenum": 3, + "gold": 10000 + }, + { + "key": 5, + "id": "25004", + "star": 4, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 4, + "needracenum": 4, "gold": 10000 }, { "key": 6, + "id": "25004", + "star": 5, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 5, + "needracenum": 5, + "gold": 10000 + }, + { + "key": 7, + "id": "25004", + "star": 6, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [], + "needracestar": 0, + "needracenum": 0, + "gold": 0 + }, + { + "key": 8, + "id": "44006", + "star": 3, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 3, + "needracenum": 3, + "gold": 10000 + }, + { + "key": 9, + "id": "44006", + "star": 4, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 4, + "needracenum": 4, + "gold": 10000 + }, + { + "key": 10, + "id": "44006", + "star": 5, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 5, + "needracenum": 5, + "gold": 10000 + }, + { + "key": 11, + "id": "44006", + "star": 6, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [], + "needracestar": 0, + "needracenum": 0, + "gold": 0 + }, + { + "key": 12, + "id": "35001", + "star": 3, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 3, + "needracenum": 3, + "gold": 10000 + }, + { + "key": 13, + "id": "35001", + "star": 4, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 4, + "needracenum": 4, + "gold": 10000 + }, + { + "key": 14, + "id": "35001", + "star": 5, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 5, + "needracenum": 5, + "gold": 10000 + }, + { + "key": 15, + "id": "35001", + "star": 6, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [], + "needracestar": 0, + "needracenum": 0, + "gold": 0 + }, + { + "key": 16, + "id": "44005", + "star": 3, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 3, + "needracenum": 3, + "gold": 10000 + }, + { + "key": 17, + "id": "44005", + "star": 4, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 4, + "needracenum": 4, + "gold": 10000 + }, + { + "key": 18, + "id": "44005", + "star": 5, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 5, + "needracenum": 5, + "gold": 10000 + }, + { + "key": 19, + "id": "44005", + "star": 6, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [], + "needracestar": 0, + "needracenum": 0, + "gold": 0 + }, + { + "key": 20, + "id": "15004", + "star": 3, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 3, + "needracenum": 3, + "gold": 10000 + }, + { + "key": 21, + "id": "15004", + "star": 4, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 4, + "needracenum": 4, + "gold": 10000 + }, + { + "key": 22, + "id": "15004", + "star": 5, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 5, + "needracenum": 5, + "gold": 10000 + }, + { + "key": 23, + "id": "15004", + "star": 6, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [], + "needracestar": 0, + "needracenum": 0, + "gold": 0 + }, + { + "key": 24, + "id": "14007", + "star": 5, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 5, + "needracenum": 5, + "gold": 10000 + }, + { + "key": 25, "id": "14007", "star": 6, "needhero": "", @@ -86,300 +389,27 @@ "needracenum": 0, "gold": 0 }, - { - "key": 7, - "id": "15004", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, - { - "key": 8, - "id": "15004", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 9, - "id": "15005", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, - { - "key": 10, - "id": "15005", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 11, - "id": "24002", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, - { - "key": 12, - "id": "24002", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 13, - "id": "24003", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, - { - "key": 14, - "id": "24003", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 15, - "id": "24004", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, - { - "key": 16, - "id": "24004", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 17, - "id": "25004", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, - { - "key": 18, - "id": "25004", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 19, - "id": "34006", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, - { - "key": 20, - "id": "34006", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 21, - "id": "35001", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, - { - "key": 22, - "id": "35001", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 23, - "id": "35003", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, - { - "key": 24, - "id": "35003", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 25, - "id": "44005", - "star": 5, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [ - 1, - 2, - 3, - 4 - ], - "needracestar": 5, - "needracenum": 5, - "gold": 10000 - }, { "key": 26, - "id": "44005", - "star": 6, + "id": "45003", + "star": 3, "needhero": "", "needherostar": 0, "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 3, + "needracenum": 3, + "gold": 10000 }, { "key": 27, - "id": "44006", - "star": 5, + "id": "45003", + "star": 4, "needhero": "", "needherostar": 0, "needheronum": 0, @@ -389,24 +419,12 @@ 3, 4 ], - "needracestar": 5, - "needracenum": 5, + "needracestar": 4, + "needracenum": 4, "gold": 10000 }, { "key": 28, - "id": "44006", - "star": 6, - "needhero": "", - "needherostar": 0, - "needheronum": 0, - "needrace": [], - "needracestar": 0, - "needracenum": 0, - "gold": 0 - }, - { - "key": 29, "id": "45003", "star": 5, "needhero": "", @@ -423,7 +441,7 @@ "gold": 10000 }, { - "key": 30, + "key": 29, "id": "45003", "star": 6, "needhero": "", @@ -433,5 +451,177 @@ "needracestar": 0, "needracenum": 0, "gold": 0 + }, + { + "key": 30, + "id": "24004", + "star": 3, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 3, + "needracenum": 3, + "gold": 10000 + }, + { + "key": 31, + "id": "24004", + "star": 4, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 4, + "needracenum": 4, + "gold": 10000 + }, + { + "key": 32, + "id": "24004", + "star": 5, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 5, + "needracenum": 5, + "gold": 10000 + }, + { + "key": 33, + "id": "24004", + "star": 6, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [], + "needracestar": 0, + "needracenum": 0, + "gold": 0 + }, + { + "key": 34, + "id": "34006", + "star": 4, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 4, + "needracenum": 4, + "gold": 10000 + }, + { + "key": 35, + "id": "34006", + "star": 5, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 5, + "needracenum": 5, + "gold": 10000 + }, + { + "key": 36, + "id": "34006", + "star": 6, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [], + "needracestar": 0, + "needracenum": 0, + "gold": 0 + }, + { + "key": 37, + "id": "24003", + "star": 3, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 3, + "needracenum": 3, + "gold": 10000 + }, + { + "key": 38, + "id": "24003", + "star": 4, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 4, + "needracenum": 4, + "gold": 10000 + }, + { + "key": 39, + "id": "24003", + "star": 5, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [ + 1, + 2, + 3, + 4 + ], + "needracestar": 5, + "needracenum": 5, + "gold": 10000 + }, + { + "key": 40, + "id": "24003", + "star": 6, + "needhero": "", + "needherostar": 0, + "needheronum": 0, + "needrace": [], + "needracestar": 0, + "needracenum": 0, + "gold": 0 } ] \ No newline at end of file diff --git a/bin/json/game_initial.json b/bin/json/game_initial.json index 1e592d351..e2fd6a2d3 100644 --- a/bin/json/game_initial.json +++ b/bin/json/game_initial.json @@ -179,16 +179,6 @@ } ] }, - { - "index": "22", - "var": [ - { - "a": "hero", - "t": "11001", - "n": 1 - } - ] - }, { "index": "23", "var": [ @@ -598,5 +588,75 @@ "n": 5 } ] + }, + { + "index": "68", + "var": [ + { + "a": "hero", + "t": "43901", + "n": 5 + } + ] + }, + { + "index": "69", + "var": [ + { + "a": "hero", + "t": "43902", + "n": 5 + } + ] + }, + { + "index": "70", + "var": [ + { + "a": "hero", + "t": "43903", + "n": 5 + } + ] + }, + { + "index": "71", + "var": [ + { + "a": "hero", + "t": "14003", + "n": 5 + } + ] + }, + { + "index": "72", + "var": [ + { + "a": "hero", + "t": "24002", + "n": 5 + } + ] + }, + { + "index": "73", + "var": [ + { + "a": "hero", + "t": "15005", + "n": 5 + } + ] + }, + { + "index": "74", + "var": [ + { + "a": "hero", + "t": "35003", + "n": 5 + } + ] } ] \ No newline at end of file diff --git a/bin/json/game_mainline.json b/bin/json/game_mainline.json index b7accc41b..093c27f90 100644 --- a/bin/json/game_mainline.json +++ b/bin/json/game_mainline.json @@ -17,6 +17,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -50,6 +51,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -89,6 +91,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -129,6 +132,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -163,6 +167,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -203,6 +208,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -243,6 +249,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -283,6 +290,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -317,6 +325,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -358,6 +367,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -391,6 +401,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -424,6 +435,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -463,6 +475,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -497,6 +510,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -537,6 +551,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -571,6 +586,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -602,7 +618,7 @@ 101061, 101062 ], - "captainId": "", + "captainId": "240031", "battlescene": "bg_zhandoulmboss", "award": [ { @@ -611,6 +627,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -642,7 +659,7 @@ 101071, 101072 ], - "captainId": "240031", + "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [ { @@ -651,6 +668,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -685,6 +703,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -726,6 +745,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -759,6 +779,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -798,6 +819,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -831,6 +853,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -871,6 +894,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -911,6 +935,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -945,6 +970,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -985,6 +1011,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -1019,6 +1046,7 @@ "captainId": "", "battlescene": "bg_zhandoulmboss", "award": [], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -1059,6 +1087,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -1100,6 +1129,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -1139,6 +1169,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -1178,6 +1209,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -1217,6 +1249,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -1257,6 +1290,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -1297,6 +1331,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -1337,6 +1372,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -1377,6 +1413,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -1417,6 +1454,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -1457,6 +1495,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -1498,6 +1537,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -1537,6 +1577,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -1576,6 +1617,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -1615,6 +1657,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -1655,6 +1698,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -1695,6 +1739,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -1735,6 +1780,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -1775,6 +1821,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -1815,6 +1862,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -1855,6 +1903,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -1896,6 +1945,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -1935,6 +1985,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -1974,6 +2025,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -2013,6 +2065,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -2053,6 +2106,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -2093,6 +2147,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -2133,6 +2188,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -2173,6 +2229,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -2213,6 +2270,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -2253,6 +2311,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -2294,6 +2353,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -2333,6 +2393,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -2372,6 +2433,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -2411,6 +2473,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -2451,6 +2514,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -2491,6 +2555,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -2531,6 +2596,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -2571,6 +2637,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -2611,6 +2678,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -2651,6 +2719,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -2692,6 +2761,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -2731,6 +2801,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -2770,6 +2841,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -2809,6 +2881,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -2849,6 +2922,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -2889,6 +2963,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -2929,6 +3004,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -2969,6 +3045,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -3009,6 +3086,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -3049,6 +3127,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -3090,6 +3169,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -3129,6 +3209,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -3168,6 +3249,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -3207,6 +3289,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -3247,6 +3330,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -3287,6 +3371,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -3327,6 +3412,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -3367,6 +3453,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -3407,6 +3494,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -3447,6 +3535,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -3488,6 +3577,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -3527,6 +3617,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -3566,6 +3657,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -3605,6 +3697,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -3645,6 +3738,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -3685,6 +3779,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -3725,6 +3820,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -3765,6 +3861,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -3805,6 +3902,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -3845,6 +3943,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -3886,6 +3985,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -3925,6 +4025,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -3964,6 +4065,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -4003,6 +4105,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -4043,6 +4146,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -4083,6 +4187,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -4123,6 +4228,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -4163,6 +4269,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -4203,6 +4310,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -4243,6 +4351,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -4284,6 +4393,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -4323,6 +4433,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -4362,6 +4473,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -4401,6 +4513,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -4441,6 +4554,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -4481,6 +4595,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -4521,6 +4636,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -4561,6 +4677,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -4601,6 +4718,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -4641,6 +4759,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -4682,6 +4801,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -4721,6 +4841,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -4760,6 +4881,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -4799,6 +4921,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -4839,6 +4962,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -4879,6 +5003,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -4919,6 +5044,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -4959,6 +5085,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -4999,6 +5126,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -5039,6 +5167,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -5080,6 +5209,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -5119,6 +5249,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -5158,6 +5289,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -5197,6 +5329,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -5237,6 +5370,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -5277,6 +5411,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -5317,6 +5452,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -5357,6 +5493,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -5397,6 +5534,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -5437,6 +5575,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -5478,6 +5617,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -5517,6 +5657,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -5556,6 +5697,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -5595,6 +5737,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -5635,6 +5778,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -5675,6 +5819,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -5715,6 +5860,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -5755,6 +5901,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -5795,6 +5942,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -5835,6 +5983,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -5876,6 +6025,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -5915,6 +6065,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -5954,6 +6105,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -5993,6 +6145,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -6033,6 +6186,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -6073,6 +6227,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -6113,6 +6268,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -6153,6 +6309,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -6193,6 +6350,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -6233,6 +6391,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -6274,6 +6433,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -6313,6 +6473,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -6352,6 +6513,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -6391,6 +6553,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -6431,6 +6594,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -6471,6 +6635,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -6511,6 +6676,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -6551,6 +6717,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -6591,6 +6758,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -6631,6 +6799,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -6672,6 +6841,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -6711,6 +6881,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -6750,6 +6921,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -6789,6 +6961,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -6829,6 +7002,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -6869,6 +7043,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -6909,6 +7084,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -6949,6 +7125,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -6989,6 +7166,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -7029,6 +7207,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -7070,6 +7249,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -7109,6 +7289,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -7148,6 +7329,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -7187,6 +7369,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -7227,6 +7410,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -7267,6 +7451,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -7307,6 +7492,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -7347,6 +7533,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -7387,6 +7574,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -7427,6 +7615,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -7468,6 +7657,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -7507,6 +7697,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -7546,6 +7737,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -7585,6 +7777,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -7625,6 +7818,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -7665,6 +7859,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -7705,6 +7900,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -7745,6 +7941,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -7785,6 +7982,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -7825,6 +8023,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -7866,6 +8065,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -7905,6 +8105,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -7944,6 +8145,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -7983,6 +8185,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -8023,6 +8226,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -8063,6 +8267,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -8103,6 +8308,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -8143,6 +8349,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -8183,6 +8390,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -8223,6 +8431,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -8264,6 +8473,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -8303,6 +8513,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -8342,6 +8553,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -8381,6 +8593,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -8421,6 +8634,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -8461,6 +8675,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -8501,6 +8716,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -8541,6 +8757,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -8581,6 +8798,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -8621,6 +8839,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -8662,6 +8881,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -8701,6 +8921,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -8740,6 +8961,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -8779,6 +9001,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -8819,6 +9042,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -8859,6 +9083,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -8899,6 +9124,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -8939,6 +9165,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -8979,6 +9206,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -9019,6 +9247,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -9060,6 +9289,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -9099,6 +9329,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -9138,6 +9369,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -9177,6 +9409,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -9217,6 +9450,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -9257,6 +9491,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -9297,6 +9532,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -9337,6 +9573,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -9377,6 +9614,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -9417,6 +9655,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -9458,6 +9697,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -9497,6 +9737,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -9536,6 +9777,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -9575,6 +9817,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -9615,6 +9858,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -9655,6 +9899,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -9695,6 +9940,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -9735,6 +9981,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -9775,6 +10022,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -9815,6 +10063,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -9856,6 +10105,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -9895,6 +10145,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -9934,6 +10185,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -9973,6 +10225,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -10013,6 +10266,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -10053,6 +10307,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -10093,6 +10348,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -10133,6 +10389,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -10173,6 +10430,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -10213,6 +10471,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -10254,6 +10513,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -10293,6 +10553,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -10332,6 +10593,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -10371,6 +10633,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -10411,6 +10674,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -10451,6 +10715,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -10491,6 +10756,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -10531,6 +10797,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -10571,6 +10838,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -10611,6 +10879,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -10652,6 +10921,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -10691,6 +10961,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -10730,6 +11001,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -10769,6 +11041,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -10809,6 +11082,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -10849,6 +11123,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -10889,6 +11164,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -10929,6 +11205,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -10969,6 +11246,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -11009,6 +11287,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -11050,6 +11329,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -11089,6 +11369,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -11128,6 +11409,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -11167,6 +11449,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -11207,6 +11490,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -11247,6 +11531,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -11287,6 +11572,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -11327,6 +11613,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -11367,6 +11654,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -11407,6 +11695,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -11448,6 +11737,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -11487,6 +11777,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -11526,6 +11817,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -11565,6 +11857,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -11605,6 +11898,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -11645,6 +11939,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -11685,6 +11980,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -11725,6 +12021,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -11765,6 +12062,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -11805,6 +12103,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -11846,6 +12145,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -11885,6 +12185,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -11924,6 +12225,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -11963,6 +12265,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -12003,6 +12306,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -12043,6 +12347,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -12083,6 +12388,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -12123,6 +12429,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -12163,6 +12470,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -12203,6 +12511,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -12244,6 +12553,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -12283,6 +12593,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -12322,6 +12633,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -12361,6 +12673,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -12401,6 +12714,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -12441,6 +12755,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -12481,6 +12796,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -12521,6 +12837,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -12561,6 +12878,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -12601,6 +12919,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -12642,6 +12961,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -12681,6 +13001,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -12720,6 +13041,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -12759,6 +13081,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -12799,6 +13122,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -12839,6 +13163,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -12879,6 +13204,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -12919,6 +13245,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -12959,6 +13286,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -12999,6 +13327,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -13040,6 +13369,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -13079,6 +13409,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -13118,6 +13449,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -13157,6 +13489,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -13197,6 +13530,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -13237,6 +13571,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -13277,6 +13612,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -13317,6 +13653,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -13357,6 +13694,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -13397,6 +13735,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -13438,6 +13777,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -13477,6 +13817,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -13516,6 +13857,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -13555,6 +13897,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -13595,6 +13938,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -13635,6 +13979,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -13675,6 +14020,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -13715,6 +14061,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -13755,6 +14102,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -13795,6 +14143,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -13836,6 +14185,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" @@ -13875,6 +14225,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -13914,6 +14265,7 @@ "n": 40000 } ], + "exp": 0, "title": { "key": "mainline_title_10001", "text": "第1关:功夫世界" @@ -13953,6 +14305,7 @@ "n": 40001 } ], + "exp": 500, "title": { "key": "mainline_title_10002", "text": "第2关:练功房" @@ -13993,6 +14346,7 @@ "n": 40002 } ], + "exp": 0, "title": { "key": "mainline_title_10003", "text": "第3关:太狼来袭" @@ -14033,6 +14387,7 @@ "n": 40003 } ], + "exp": 0, "title": { "key": "mainline_title_10004", "text": "第4关:乌龟大师" @@ -14073,6 +14428,7 @@ "n": 40004 } ], + "exp": 500, "title": { "key": "mainline_title_10005", "text": "第4关:太狼来袭" @@ -14113,6 +14469,7 @@ "n": 40005 } ], + "exp": 0, "title": { "key": "mainline_title_10006", "text": "第5关:乌龟大师" @@ -14153,6 +14510,7 @@ "n": 40006 } ], + "exp": 500, "title": { "key": "mainline_title_10007", "text": "第5关:太狼来袭" @@ -14193,6 +14551,7 @@ "n": 40007 } ], + "exp": 0, "title": { "key": "mainline_title_10008", "text": "第6关:乌龟大师" @@ -14234,6 +14593,7 @@ "n": 40008 } ], + "exp": 500, "title": { "key": "mainline_title_10009", "text": "第6关:太狼来袭" diff --git a/bin/json/game_mainlinechapter.json b/bin/json/game_mainlinechapter.json index 856db4ffd..eac7f0d3d 100644 --- a/bin/json/game_mainlinechapter.json +++ b/bin/json/game_mainlinechapter.json @@ -148,7 +148,7 @@ }, "desc": { "key": "mainline_desc_10004", - "text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。" + "text": "自负的毒蛇大师虽然给人的感觉稍显轻浮,但对这件事的态度就有如她善变的性格,不太明朗;螳螂大师算是几位高手中最聪明的一个,对阿宝的现状很是无奈,总是暗中帮忙。" }, "icon": "wp_icon_0002", "text": { @@ -189,11 +189,11 @@ "map": "zx_ddt_zj01", "title": { "key": "mainline_title_10005", - "text": "第5章:太狼来袭" + "text": "第5章:激烈战斗" }, "desc": { "key": "mainline_desc_10005", - "text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。" + "text": "最后要将阿宝调教成“功夫高手”的一代宗师“师父”华丽丽地出场了,然而有着一身好功夫并不意味着就是完美的,“师父”因为过去犯下的一个错误,一直纠结着没办法释然。" }, "icon": "wp_icon_0002", "text": { @@ -234,11 +234,11 @@ "map": "zx_ddt_zj02", "title": { "key": "mainline_title_10006", - "text": "第6章:乌龟大师" + "text": "第6章:下山" }, "desc": { "key": "mainline_desc_10006", - "text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。" + "text": "至于那个让人人都如临大敌的太郎,则是一只非常自恋的雪豹,他等待复仇的这一天,已经整整等了20年了,可是他做梦也没想到,自己等来的竟然是一只大熊猫。" }, "icon": "wp_icon_0002", "text": { @@ -279,11 +279,11 @@ "map": "zx_ddt_zj03", "title": { "key": "mainline_title_10007", - "text": "第7章:太狼来袭" + "text": "第7章:事件余波" }, "desc": { "key": "mainline_desc_10007", - "text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。" + "text": "激烈的战斗后,阿宝以自己对武功的悟性和师父传授的武术,战胜了太郎,拯救了山谷,为山谷带来了和平。" }, "icon": "wp_icon_0002", "text": { diff --git a/bin/json/game_model.json b/bin/json/game_model.json index c9a650533..95483e8b4 100644 --- a/bin/json/game_model.json +++ b/bin/json/game_model.json @@ -4,6 +4,7 @@ "preson": "12003", "presonshow": "12003", "presonstory": "12003", + "presondraw": "", "height": 1, "weight": 0.1, "ico": "tx_js_12003", @@ -28,6 +29,7 @@ "preson": "13001", "presonshow": "13001", "presonstory": "13001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_13001", @@ -52,6 +54,7 @@ "preson": "13002", "presonshow": "13002", "presonstory": "13002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_13002", @@ -76,6 +79,7 @@ "preson": "13003", "presonshow": "13003", "presonstory": "13003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_13003", @@ -100,6 +104,7 @@ "preson": "13004", "presonshow": "13004", "presonstory": "13004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_13004", @@ -124,6 +129,7 @@ "preson": "13005", "presonshow": "13005", "presonstory": "13005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_13005", @@ -148,6 +154,7 @@ "preson": "14001", "presonshow": "14001", "presonstory": "14001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_14001", @@ -172,6 +179,7 @@ "preson": "14002", "presonshow": "14002", "presonstory": "14002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_14002", @@ -196,6 +204,7 @@ "preson": "14003", "presonshow": "14003", "presonstory": "14003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_14003", @@ -220,6 +229,7 @@ "preson": "14004", "presonshow": "14004", "presonstory": "14004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_14004", @@ -244,6 +254,7 @@ "preson": "14005", "presonshow": "14005", "presonstory": "14005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_14005", @@ -268,6 +279,7 @@ "preson": "14006", "presonshow": "14006", "presonstory": "14006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_14006", @@ -292,6 +304,7 @@ "preson": "14007", "presonshow": "14007_exhibition", "presonstory": "14007", + "presondraw": "14007_gachashow", "height": 1, "weight": 1, "ico": "tx_js_14007", @@ -316,6 +329,7 @@ "preson": "15001", "presonshow": "15001", "presonstory": "15001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_15001", @@ -340,6 +354,7 @@ "preson": "15002", "presonshow": "15002", "presonstory": "15002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_15002", @@ -362,8 +377,9 @@ { "id": "15003", "preson": "15003", - "presonshow": "15004_exhibition", + "presonshow": "15003", "presonstory": "15003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_15003", @@ -386,8 +402,9 @@ { "id": "15004", "preson": "15004", - "presonshow": "15004", + "presonshow": "15004_exhibition", "presonstory": "15004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_15004", @@ -412,6 +429,7 @@ "preson": "15005", "presonshow": "15005", "presonstory": "15005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_15005", @@ -436,6 +454,7 @@ "preson": "23001", "presonshow": "23001", "presonstory": "23001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_23001", @@ -460,6 +479,7 @@ "preson": "23002", "presonshow": "23002", "presonstory": "23002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_23002", @@ -484,6 +504,7 @@ "preson": "23003", "presonshow": "23003", "presonstory": "23003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_23003", @@ -508,6 +529,7 @@ "preson": "23004", "presonshow": "23004", "presonstory": "23004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_23004", @@ -532,6 +554,7 @@ "preson": "24001", "presonshow": "24001", "presonstory": "24001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_24001", @@ -556,6 +579,7 @@ "preson": "24002", "presonshow": "24002", "presonstory": "24002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_24002", @@ -580,6 +604,7 @@ "preson": "24003", "presonshow": "24003", "presonstory": "24003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_24003", @@ -604,6 +629,7 @@ "preson": "24004", "presonshow": "24004_exhibition", "presonstory": "24004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_24004", @@ -628,6 +654,7 @@ "preson": "24005", "presonshow": "24005", "presonstory": "24005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_24005", @@ -652,6 +679,7 @@ "preson": "24006", "presonshow": "24006", "presonstory": "24006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_24006", @@ -676,6 +704,7 @@ "preson": "24007", "presonshow": "24007", "presonstory": "24007", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_24007", @@ -700,6 +729,7 @@ "preson": "24008", "presonshow": "24008", "presonstory": "24008", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_24008", @@ -724,6 +754,7 @@ "preson": "24009", "presonshow": "24009", "presonstory": "24009", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_24009", @@ -748,6 +779,7 @@ "preson": "25001", "presonshow": "25001_exhibition", "presonstory": "25001_story", + "presondraw": "", "height": 2.2, "weight": 0.1, "ico": "tx_js_25001", @@ -772,6 +804,7 @@ "preson": "25002", "presonshow": "25002", "presonstory": "25002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_25002", @@ -796,6 +829,7 @@ "preson": "25003", "presonshow": "25003", "presonstory": "25003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_25003", @@ -820,6 +854,7 @@ "preson": "25004", "presonshow": "25004_exhibition", "presonstory": "25004_story", + "presondraw": "", "height": 0.8, "weight": 0.1, "ico": "tx_js_25004", @@ -844,6 +879,7 @@ "preson": "33001", "presonshow": "33001", "presonstory": "33001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_33001", @@ -868,6 +904,7 @@ "preson": "33002", "presonshow": "33002", "presonstory": "33002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_33002", @@ -892,6 +929,7 @@ "preson": "33003", "presonshow": "33003", "presonstory": "33003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_33003", @@ -916,6 +954,7 @@ "preson": "33004", "presonshow": "33004", "presonstory": "33004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_33004", @@ -940,6 +979,7 @@ "preson": "33005", "presonshow": "33005", "presonstory": "33005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_33005", @@ -964,6 +1004,7 @@ "preson": "33006", "presonshow": "33006", "presonstory": "33006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_33006", @@ -988,6 +1029,7 @@ "preson": "34001", "presonshow": "34001", "presonstory": "34001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_34001", @@ -1012,6 +1054,7 @@ "preson": "34002", "presonshow": "34002", "presonstory": "34002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_34002", @@ -1036,6 +1079,7 @@ "preson": "34003", "presonshow": "34003", "presonstory": "34003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_34003", @@ -1060,6 +1104,7 @@ "preson": "34004", "presonshow": "34004", "presonstory": "34004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_34004", @@ -1084,6 +1129,7 @@ "preson": "34005", "presonshow": "34005", "presonstory": "34005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_34005", @@ -1108,6 +1154,7 @@ "preson": "34006", "presonshow": "34006", "presonstory": "34006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_34006", @@ -1132,6 +1179,7 @@ "preson": "34007", "presonshow": "34007", "presonstory": "34007", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_34007", @@ -1156,6 +1204,7 @@ "preson": "34008", "presonshow": "34008", "presonstory": "34008", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_34008", @@ -1180,6 +1229,7 @@ "preson": "35001", "presonshow": "35001_exhibition", "presonstory": "35001_story", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_35001", @@ -1204,6 +1254,7 @@ "preson": "35002", "presonshow": "35002", "presonstory": "35002_story", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_35002", @@ -1228,6 +1279,7 @@ "preson": "35003", "presonshow": "35003", "presonstory": "35003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_35003", @@ -1252,6 +1304,7 @@ "preson": "35004", "presonshow": "35004", "presonstory": "35004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_35004", @@ -1276,6 +1329,7 @@ "preson": "35005", "presonshow": "35005", "presonstory": "35005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_35005", @@ -1300,6 +1354,7 @@ "preson": "35006", "presonshow": "35006", "presonstory": "35006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_35006", @@ -1324,6 +1379,7 @@ "preson": "43001", "presonshow": "43001", "presonstory": "43001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43001", @@ -1348,6 +1404,7 @@ "preson": "43002", "presonshow": "43002", "presonstory": "43002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43002", @@ -1372,6 +1429,7 @@ "preson": "43003", "presonshow": "43003", "presonstory": "43003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43003", @@ -1396,6 +1454,7 @@ "preson": "43004", "presonshow": "43004", "presonstory": "43004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43004", @@ -1420,6 +1479,7 @@ "preson": "43005", "presonshow": "43005", "presonstory": "43005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43005", @@ -1444,6 +1504,7 @@ "preson": "43006", "presonshow": "43006", "presonstory": "43006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43006", @@ -1468,6 +1529,7 @@ "preson": "43007", "presonshow": "43007", "presonstory": "43007", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43007", @@ -1492,6 +1554,7 @@ "preson": "44001", "presonshow": "44001", "presonstory": "44001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_44001", @@ -1516,6 +1579,7 @@ "preson": "44002", "presonshow": "44002", "presonstory": "44002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_44002", @@ -1540,6 +1604,7 @@ "preson": "44003", "presonshow": "44003", "presonstory": "44003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_44003", @@ -1564,6 +1629,7 @@ "preson": "44004", "presonshow": "44004", "presonstory": "44004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_44004", @@ -1588,6 +1654,7 @@ "preson": "44005", "presonshow": "44005_exhibition", "presonstory": "44005_story", + "presondraw": "", "height": 1.5, "weight": 0.3, "ico": "tx_js_44005", @@ -1612,6 +1679,7 @@ "preson": "44006", "presonshow": "44006_exhibition", "presonstory": "44006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_44006", @@ -1636,6 +1704,7 @@ "preson": "45001", "presonshow": "45001", "presonstory": "45001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_45001", @@ -1660,6 +1729,7 @@ "preson": "45002", "presonshow": "45002", "presonstory": "45002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_45002", @@ -1684,6 +1754,7 @@ "preson": "45003", "presonshow": "45003_exhibition", "presonstory": "45003_story", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_45003", @@ -1708,6 +1779,7 @@ "preson": "45004", "presonshow": "45004", "presonstory": "45004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_45004", @@ -1732,6 +1804,7 @@ "preson": "43901", "presonshow": "43901", "presonstory": "43901", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43901", @@ -1756,6 +1829,7 @@ "preson": "42911", "presonshow": "42911", "presonstory": "42911", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_42911", @@ -1780,6 +1854,7 @@ "preson": "43911", "presonshow": "43911", "presonstory": "43911", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43911", @@ -1804,6 +1879,7 @@ "preson": "44911", "presonshow": "44911", "presonstory": "44911", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_44911", @@ -1828,6 +1904,7 @@ "preson": "43921", "presonshow": "43921", "presonstory": "43921", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_43921", @@ -1852,6 +1929,7 @@ "preson": "44921", "presonshow": "44921", "presonstory": "44921", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_44921", @@ -1876,6 +1954,7 @@ "preson": "45921", "presonshow": "45921", "presonstory": "45921", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_45921", @@ -1900,6 +1979,7 @@ "preson": "51001", "presonshow": "51001", "presonstory": "51001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51001", @@ -1924,6 +2004,7 @@ "preson": "51002", "presonshow": "51002", "presonstory": "51002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51002", @@ -1948,6 +2029,7 @@ "preson": "51003", "presonshow": "51003", "presonstory": "51003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51003", @@ -1972,6 +2054,7 @@ "preson": "51004", "presonshow": "51004", "presonstory": "51004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51004", @@ -1996,6 +2079,7 @@ "preson": "51005", "presonshow": "51005", "presonstory": "51005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51005", @@ -2020,6 +2104,7 @@ "preson": "51006", "presonshow": "51006", "presonstory": "51006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51006", @@ -2044,6 +2129,7 @@ "preson": "51007", "presonshow": "51007", "presonstory": "51007", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51007", @@ -2068,6 +2154,7 @@ "preson": "51008", "presonshow": "51008", "presonstory": "51008", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51008", @@ -2092,6 +2179,7 @@ "preson": "51009", "presonshow": "51009", "presonstory": "51009", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51009", @@ -2116,6 +2204,7 @@ "preson": "51010", "presonshow": "51010", "presonstory": "51010", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51010", @@ -2140,6 +2229,7 @@ "preson": "51011", "presonshow": "51011", "presonstory": "51011", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51011", @@ -2164,6 +2254,7 @@ "preson": "51012", "presonshow": "51012", "presonstory": "51012", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51012", @@ -2188,6 +2279,7 @@ "preson": "51013", "presonshow": "51013", "presonstory": "51013", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51013", @@ -2212,6 +2304,7 @@ "preson": "51014", "presonshow": "51014", "presonstory": "51014", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_51014", @@ -2236,6 +2329,7 @@ "preson": "53001", "presonshow": "53001", "presonstory": "53001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_53001", @@ -2260,6 +2354,7 @@ "preson": "53002", "presonshow": "53002", "presonstory": "53002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_53002", @@ -2284,6 +2379,7 @@ "preson": "53003", "presonshow": "53003", "presonstory": "53003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_53003", @@ -2308,6 +2404,7 @@ "preson": "53004", "presonshow": "53004", "presonstory": "53004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_53004", @@ -2332,6 +2429,7 @@ "preson": "53005", "presonshow": "53005", "presonstory": "53005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_53005", @@ -2356,6 +2454,7 @@ "preson": "53006", "presonshow": "53006", "presonstory": "53006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_53006", @@ -2380,6 +2479,7 @@ "preson": "55001", "presonshow": "55001", "presonstory": "55001", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_55001", @@ -2404,6 +2504,7 @@ "preson": "55002", "presonshow": "55002", "presonstory": "55002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_55002", @@ -2428,6 +2529,7 @@ "preson": "55002", "presonshow": "55002", "presonstory": "55002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_55003", @@ -2452,6 +2554,7 @@ "preson": "55004", "presonshow": "55004", "presonstory": "55004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_55004", @@ -2476,6 +2579,7 @@ "preson": "55004", "presonshow": "55004", "presonstory": "55004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_55005", @@ -2500,6 +2604,7 @@ "preson": "55006", "presonshow": "55006", "presonstory": "55006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_55006", @@ -2524,6 +2629,7 @@ "preson": "55007", "presonshow": "55007", "presonstory": "55007", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_55007", @@ -2548,6 +2654,7 @@ "preson": "63002", "presonshow": "63002", "presonstory": "63002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_63002", @@ -2572,6 +2679,7 @@ "preson": "63003", "presonshow": "63003", "presonstory": "63003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_63003", @@ -2596,6 +2704,7 @@ "preson": "63004", "presonshow": "63004", "presonstory": "63004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_63004", @@ -2620,6 +2729,7 @@ "preson": "64003", "presonshow": "64003", "presonstory": "64003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_64003", @@ -2644,6 +2754,7 @@ "preson": "74002", "presonshow": "74002", "presonstory": "74002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_74002", @@ -2668,6 +2779,7 @@ "preson": "74003", "presonshow": "74003", "presonstory": "74003", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_74003", @@ -2692,6 +2804,7 @@ "preson": "74004", "presonshow": "74004", "presonstory": "74004", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_74004", @@ -2716,6 +2829,7 @@ "preson": "83002", "presonshow": "83002", "presonstory": "83002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_83002", @@ -2740,6 +2854,7 @@ "preson": "83006", "presonshow": "83006", "presonstory": "83006", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_83006", @@ -2764,6 +2879,7 @@ "preson": "84002", "presonshow": "84002", "presonstory": "84002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_84002", @@ -2788,6 +2904,7 @@ "preson": "94002", "presonshow": "94002", "presonstory": "94002", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_94002", @@ -2812,6 +2929,7 @@ "preson": "94005", "presonshow": "94005", "presonstory": "94005", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_94005", @@ -2836,6 +2954,7 @@ "preson": "64007", "presonshow": "64007", "presonstory": "64007", + "presondraw": "", "height": 1, "weight": 1, "ico": "tx_js_64007", diff --git a/bin/json/game_playerlv.json b/bin/json/game_playerlv.json index eecd3e5d4..729f6a06d 100644 --- a/bin/json/game_playerlv.json +++ b/bin/json/game_playerlv.json @@ -81,6 +81,6 @@ }, { "lv": 21, - "exp": 0 + "exp": 25000 } ] \ No newline at end of file diff --git a/bin/json/game_rdtask.json b/bin/json/game_rdtask.json index 13ad15afc..75aaaeb32 100644 --- a/bin/json/game_rdtask.json +++ b/bin/json/game_rdtask.json @@ -5,7 +5,7 @@ "type": 2, "preTid": 0, "condition": [ - 103 + 104 ], "sidequest": [ 1001, @@ -127,14 +127,13 @@ { "id": 100205, "group": 2, - "type": 2, + "type": 3, "preTid": 100204, "condition": [ 101 ], "sidequest": [ - 2007, - 2006 + 2010 ] }, { @@ -146,7 +145,8 @@ 101 ], "sidequest": [ - 2008 + 2007, + 2006 ] }, { @@ -158,7 +158,8 @@ 101 ], "sidequest": [ - 2009 + 2008, + 2006 ] } ] \ No newline at end of file diff --git a/bin/json/game_rdtaskchoose.json b/bin/json/game_rdtaskchoose.json index 5cfb6710b..31cfaf0de 100644 --- a/bin/json/game_rdtaskchoose.json +++ b/bin/json/game_rdtaskchoose.json @@ -3,6 +3,10 @@ "id": 10001, "num": 1, "preTid": 0, + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "gotoLevel": 0, "needItem": [ 0 @@ -13,6 +17,10 @@ "id": 10002, "num": 2, "preTid": 104, + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "gotoLevel": 0, "needItem": [ 0 @@ -23,6 +31,10 @@ "id": 10003, "num": 1, "preTid": 0, + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "gotoLevel": 0, "needItem": [ 0 @@ -33,6 +45,10 @@ "id": 10004, "num": 1, "preTid": 0, + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "gotoLevel": 0, "needItem": [ 0 @@ -43,6 +59,10 @@ "id": 10005, "num": 2, "preTid": 105, + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "gotoLevel": 0, "needItem": [ 0 @@ -53,6 +73,10 @@ "id": 10006, "num": 1, "preTid": 105, + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "gotoLevel": 0, "needItem": [ 0 @@ -63,6 +87,10 @@ "id": 10007, "num": 2, "preTid": 0, + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "gotoLevel": 0, "needItem": [ 0 @@ -73,6 +101,10 @@ "id": 10008, "num": 3, "preTid": 0, + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "gotoLevel": 0, "needItem": [ 0 @@ -83,6 +115,14 @@ "id": 10009, "num": 1, "preTid": 0, + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "gotoLevel": 0, "needItem": [ 0 @@ -93,6 +133,14 @@ "id": 100010, "num": 2, "preTid": 105, + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "gotoLevel": 0, "needItem": [ 0 @@ -103,6 +151,14 @@ "id": 100011, "num": 1, "preTid": 0, + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "gotoLevel": 101, "needItem": [ 0 @@ -113,6 +169,14 @@ "id": 100012, "num": 2, "preTid": 0, + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "gotoLevel": 0, "needItem": [ 0 @@ -123,6 +187,14 @@ "id": 20001, "num": 1, "preTid": 0, + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "gotoLevel": 0, "needItem": [ 0 @@ -133,6 +205,16 @@ "id": 20002, "num": 2, "preTid": 0, + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true + ], "gotoLevel": 0, "needItem": [ 0 @@ -143,6 +225,16 @@ "id": 20003, "num": 1, "preTid": 0, + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true + ], "gotoLevel": 0, "needItem": [ 0 @@ -153,6 +245,16 @@ "id": 20004, "num": 1, "preTid": 0, + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true + ], "gotoLevel": 101, "needItem": [ 0 @@ -163,20 +265,54 @@ "id": 20005, "num": 1, "preTid": 0, - "gotoLevel": 0, - "needItem": [ - 0 + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true ], - "nextTid": 100206 - }, - { - "id": 20006, - "num": 1, - "preTid": 0, "gotoLevel": 0, "needItem": [ 0 ], "nextTid": 100207 + }, + { + "id": 20006, + "num": 1, + "preTid": 0, + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true + ], + "gotoLevel": 0, + "needItem": [ + 0 + ], + "nextTid": 100208 + }, + { + "id": 20007, + "num": 1, + "preTid": 0, + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], + "gotoLevel": 0, + "needItem": [ + 0 + ], + "nextTid": 100206 } ] \ No newline at end of file diff --git a/bin/json/game_rdtaskside.json b/bin/json/game_rdtaskside.json index 8a4802972..be9f1aafb 100644 --- a/bin/json/game_rdtaskside.json +++ b/bin/json/game_rdtaskside.json @@ -3,21 +3,29 @@ "id": 1001, "objType": 1, "location": "middle", + "point": "model_07", + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "modelaction": "Enter", - "modelstate": 0, "rotation": { "x": 0, "y": 90, "z": 0 }, - "point": "model_07", + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", "storyBegin": 1, + "timeline": "", "chooseId": [ 10001, 10002 ], + "endTid": -1, "storyEnd": 1, - "nextTid": 100101, "reward": [ { "ChooseId": 10001, @@ -50,182 +58,250 @@ ] } ], - "CD": 0, - "endTid": -1 + "nextTid": 100101, + "CD": 0 }, { "id": 1002, "objType": 1, "location": "middle", + "point": "model_04", + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": -150, "z": 0 }, - "point": "model_04", + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", "storyBegin": 2, + "timeline": "", "chooseId": [], + "endTid": -1, "storyEnd": 1, - "nextTid": -1, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": -1, + "CD": 0 }, { "id": 1003, "objType": 2, "location": "right", + "point": "icon_03", + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": -180, "z": 0 }, - "point": "icon_03", + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", "storyBegin": 6, + "timeline": "", "chooseId": [ 10003, 10004 ], + "endTid": -1, "storyEnd": 1, - "nextTid": 100103, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": 100103, + "CD": 0 }, { "id": 1004, "objType": 1, "location": "middle", + "point": "model_04", + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": -150, "z": 0 }, - "point": "model_04", + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", "storyBegin": 3, + "timeline": "", "chooseId": [ 10005, 10006, 10007 ], + "endTid": -1, "storyEnd": 1, - "nextTid": 100101, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": 100101, + "CD": 0 }, { "id": 1005, "objType": 1, "location": "middle", + "point": "model_07", + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": 90, "z": 0 }, - "point": "model_07", + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", "storyBegin": 4, + "timeline": "", "chooseId": [], + "endTid": -1, "storyEnd": 0, - "nextTid": -1, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": -1, + "CD": 0 }, { "id": 1006, "objType": 2, "location": "right", + "point": "icon_03", + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": -180, "z": 0 }, - "point": "icon_03", + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", "storyBegin": 8, + "timeline": "", "chooseId": [ 10008, 10009 ], + "endTid": -1, "storyEnd": 1, - "nextTid": 100104, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": 100104, + "CD": 0 }, { "id": 1007, "objType": 2, "location": "left", + "point": "icon_01", + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": -180, "z": 0 }, - "point": "icon_01", + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", "storyBegin": 10, + "timeline": "", "chooseId": [ 100010, 100011, 100012 ], + "endTid": -1, "storyEnd": 1, - "nextTid": 100105, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": 100105, + "CD": 0 }, { "id": 1008, "objType": 2, "location": "", + "point": "icon_04", + "Entity": [], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": -180, "z": 0 }, - "point": "icon_04", + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", "storyBegin": 12, + "timeline": "", "chooseId": [], + "endTid": -1, "storyEnd": 1, - "nextTid": 0, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": 0, + "CD": 0 }, { "id": 2001, "objType": 1, "location": "middle", + "point": "model_02", + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": -180, "z": 0 }, - "point": "model_02", - "storyBegin": 201, + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", "chooseId": [ 20001, 20002 ], + "endTid": -1, "storyEnd": 0, - "nextTid": 100202, "reward": [ { "ChooseId": 20001, @@ -248,92 +324,140 @@ ] } ], - "CD": 0, - "endTid": -1 + "nextTid": 100202, + "CD": 0 }, { "id": 2002, "objType": 1, "location": "middle", + "point": "model_02", + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": -180, "z": 0 }, - "point": "model_02", - "storyBegin": 202, + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", "chooseId": [ 20003 ], + "endTid": -1, "storyEnd": 0, - "nextTid": 0, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": 0, + "CD": 0 }, { "id": 2003, "objType": 1, "location": "middle", + "point": "model_03", + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "modelaction": "Enter", - "modelstate": 0, "rotation": { "x": 0, "y": -180, "z": 0 }, - "point": "model_03", - "storyBegin": 203, + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", "chooseId": [], + "endTid": -1, "storyEnd": 0, - "nextTid": -1, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": -1, + "CD": 0 }, { "id": 2004, "objType": 1, "location": "middle", + "point": "model_03", + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "modelaction": "Enter", - "modelstate": 0, "rotation": { "x": 0, "y": -180, "z": 0 }, - "point": "model_03", - "storyBegin": 203, + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", "chooseId": [], + "endTid": -1, "storyEnd": 0, - "nextTid": -1, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": -1, + "CD": 0 }, { "id": 2005, "objType": 2, "location": "right", + "point": "icon_05", + "Entity": [ + "Earth" + ], + "EntityChange": [], + "EntityStateChange": [], + "EntityInteractive": [ + false + ], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": 0, "z": 0 }, - "point": "icon_05", - "storyBegin": 204, + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", "chooseId": [ 20004 ], + "endTid": -1, "storyEnd": 0, - "nextTid": 100205, "reward": [ { - "ChooseId": 2004, + "ChooseId": 20004, "Reward": [ { "a": "hero", @@ -343,91 +467,179 @@ ] } ], - "CD": 0, - "endTid": -1 + "nextTid": 100205, + "CD": 0 }, { "id": 2006, "objType": 1, "location": "middle", + "point": "model_02", + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true + ], "modelaction": "Enter", - "modelstate": 0, "rotation": { "x": 0, "y": 90, "z": 0 }, - "point": "model_02", - "storyBegin": 205, + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", "chooseId": [], + "endTid": -1, "storyEnd": 0, - "nextTid": -1, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": -1, + "CD": 0 }, { "id": 2007, "objType": 1, "location": "middle", + "point": "model_03", + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true + ], "modelaction": "Enter", - "modelstate": 0, "rotation": { "x": 0, "y": -90, "z": 0 }, - "point": "model_03", - "storyBegin": 206, - "chooseId": [ - 20005 - ], + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", + "chooseId": [], + "endTid": -1, "storyEnd": 0, - "nextTid": 100206, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": 100207, + "CD": 0 }, { "id": 2008, - "objType": 2, - "location": "left", - "modelaction": "", - "modelstate": 0, + "objType": 1, + "location": "middle", + "point": "model_03", + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true + ], + "modelaction": "Enter", "rotation": { "x": 0, - "y": 0, + "y": -90, "z": 0 }, - "point": "icon_01", - "storyBegin": 207, - "chooseId": [ - 20006 - ], - "storyEnd": 208, - "nextTid": 100207, + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", + "chooseId": [], + "endTid": -1, + "storyEnd": 0, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": 100208, + "CD": 0 }, { "id": 2009, "objType": 1, "location": "middle", + "point": "model_02", + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true + ], "modelaction": "", - "modelstate": 0, "rotation": { "x": 0, "y": -180, "z": 0 }, - "point": "model_02", - "storyBegin": 207, + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", "chooseId": [], - "storyEnd": 207, - "nextTid": 0, + "endTid": -1, + "storyEnd": 0, "reward": [], - "CD": 0, - "endTid": -1 + "nextTid": 0, + "CD": 0 + }, + { + "id": 2010, + "objType": 2, + "location": "right", + "point": "icon_05", + "Entity": [ + "Earth" + ], + "EntityChange": [ + "globe" + ], + "EntityStateChange": [], + "EntityInteractive": [ + true + ], + "modelaction": "", + "rotation": { + "x": 0, + "y": 0, + "z": 0 + }, + "modelstate": 0, + "popup": "", + "special": "", + "boxreplace": "", + "storyBegin": 0, + "timeline": "", + "chooseId": [ + 20007 + ], + "endTid": -1, + "storyEnd": 0, + "reward": [], + "nextTid": 100206, + "CD": 0 } ] \ No newline at end of file diff --git a/bin/json/game_skillatk.json b/bin/json/game_skillatk.json index 2545bcf86..b8e18c027 100644 --- a/bin/json/game_skillatk.json +++ b/bin/json/game_skillatk.json @@ -7,7 +7,7 @@ "key": "skillname_125004011", "text": "波比队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0014", "act": "", "Type": 3, "CD": -1, @@ -19,7 +19,7 @@ }, "Desc": { "key": "skill_1250040111", - "text": "队长技:我方全体效果抵抗增加40%" + "text": "我方全体效果抵抗增加40%" }, "buffid": [], "map": "" @@ -30,9 +30,9 @@ "MaxLV": 6, "Name": { "key": "skillname_125004111", - "text": "波比1技能" + "text": "和谐音律" }, - "ico": "jn_icon_001", + "ico": "jn_icon_004", "act": "Skill_1", "Type": 1, "CD": 0, @@ -44,7 +44,7 @@ }, "Desc": { "key": "skill_1250041111", - "text": "波比对敌方1个目标造成3次攻击力30%的伤害,有40%概率为自身附加2回合【免疫】状态" + "text": "对敌方1个目标造成3次攻击力30%的伤害,有40%概率为自身附加2回合【免疫】状态" }, "buffid": [], "map": "" @@ -55,9 +55,9 @@ "MaxLV": 6, "Name": { "key": "skillname_125004111", - "text": "波比1技能" + "text": "和谐音律" }, - "ico": "jn_icon_001", + "ico": "jn_icon_004", "act": "Skill_1", "Type": 1, "CD": 0, @@ -80,9 +80,9 @@ "MaxLV": 6, "Name": { "key": "skillname_125004111", - "text": "波比1技能" + "text": "和谐音律" }, - "ico": "jn_icon_001", + "ico": "jn_icon_004", "act": "Skill_1", "Type": 1, "CD": 0, @@ -105,9 +105,9 @@ "MaxLV": 6, "Name": { "key": "skillname_125004111", - "text": "波比1技能" + "text": "和谐音律" }, - "ico": "jn_icon_001", + "ico": "jn_icon_004", "act": "Skill_1", "Type": 1, "CD": 0, @@ -130,9 +130,9 @@ "MaxLV": 6, "Name": { "key": "skillname_125004111", - "text": "波比1技能" + "text": "和谐音律" }, - "ico": "jn_icon_001", + "ico": "jn_icon_004", "act": "Skill_1", "Type": 1, "CD": 0, @@ -155,9 +155,9 @@ "MaxLV": 6, "Name": { "key": "skillname_125004111", - "text": "波比1技能" + "text": "和谐音律" }, - "ico": "jn_icon_001", + "ico": "jn_icon_004", "act": "Skill_1", "Type": 1, "CD": 0, @@ -180,9 +180,9 @@ "MaxLV": 3, "Name": { "key": "skillname_125004211", - "text": "波比2技能" + "text": "欢悦之舞" }, - "ico": "jn_icon_002", + "ico": "jn_icon_005", "act": "Skill_2", "Type": 1, "CD": 5, @@ -196,7 +196,7 @@ }, "Desc": { "key": "skill_1250042111", - "text": "波比清除我方所有减益状态,并平均分配我方生命值千分比,为我方全体附加2回合【攻击提升】状态" + "text": "清除我方所有减益状态,并平均分配我方生命值千分比,为我方全体附加2回合【攻击提升】状态" }, "buffid": [], "map": "" @@ -207,9 +207,9 @@ "MaxLV": 3, "Name": { "key": "skillname_125004211", - "text": "波比2技能" + "text": "欢悦之舞" }, - "ico": "jn_icon_002", + "ico": "jn_icon_005", "act": "Skill_2", "Type": 1, "CD": 4, @@ -234,9 +234,9 @@ "MaxLV": 3, "Name": { "key": "skillname_125004211", - "text": "波比2技能" + "text": "欢悦之舞" }, - "ico": "jn_icon_002", + "ico": "jn_icon_005", "act": "Skill_2", "Type": 1, "CD": 3, @@ -261,13 +261,13 @@ "MaxLV": 5, "Name": { "key": "skillname_125004311", - "text": "波比3技能" + "text": "彩虹音符" }, - "ico": "jn_icon_003", + "ico": "jn_icon_006", "act": "Skill_3", "Type": 1, "CD": 5, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 225004311 @@ -286,13 +286,13 @@ "MaxLV": 5, "Name": { "key": "skillname_125004311", - "text": "波比3技能" + "text": "彩虹音符" }, - "ico": "jn_icon_003", + "ico": "jn_icon_006", "act": "Skill_3", "Type": 1, "CD": 5, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 225004321 @@ -311,13 +311,13 @@ "MaxLV": 5, "Name": { "key": "skillname_125004311", - "text": "波比3技能" + "text": "彩虹音符" }, - "ico": "jn_icon_003", + "ico": "jn_icon_006", "act": "Skill_3", "Type": 1, "CD": 5, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 225004331 @@ -336,13 +336,13 @@ "MaxLV": 5, "Name": { "key": "skillname_125004311", - "text": "波比3技能" + "text": "彩虹音符" }, - "ico": "jn_icon_003", + "ico": "jn_icon_006", "act": "Skill_3", "Type": 1, "CD": 5, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 225004341 @@ -361,13 +361,13 @@ "MaxLV": 5, "Name": { "key": "skillname_125004311", - "text": "波比3技能" + "text": "彩虹音符" }, - "ico": "jn_icon_003", + "ico": "jn_icon_006", "act": "Skill_3", "Type": 1, "CD": 4, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 225004351 @@ -388,7 +388,7 @@ "key": "skillname_135002011", "text": "希卡普队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0020", "act": "", "Type": 3, "CD": -1, @@ -400,7 +400,7 @@ }, "Desc": { "key": "skill_1350020111", - "text": "队长技:我方全体效果命中增加40%" + "text": "我方全体效果命中增加40%" }, "buffid": [], "map": "" @@ -411,9 +411,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002111", - "text": "希卡普1技能" + "text": "一往无前" }, - "ico": "jn_icon_001", + "ico": "jn_icon_007", "act": "Skill_1", "Type": 1, "CD": 0, @@ -437,9 +437,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002111", - "text": "希卡普1技能" + "text": "一往无前" }, - "ico": "jn_icon_001", + "ico": "jn_icon_007", "act": "Skill_1", "Type": 1, "CD": 0, @@ -463,9 +463,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002111", - "text": "希卡普1技能" + "text": "一往无前" }, - "ico": "jn_icon_001", + "ico": "jn_icon_007", "act": "Skill_1", "Type": 1, "CD": 0, @@ -489,9 +489,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002111", - "text": "希卡普1技能" + "text": "一往无前" }, - "ico": "jn_icon_001", + "ico": "jn_icon_007", "act": "Skill_1", "Type": 1, "CD": 0, @@ -515,9 +515,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002111", - "text": "希卡普1技能" + "text": "一往无前" }, - "ico": "jn_icon_001", + "ico": "jn_icon_007", "act": "Skill_1", "Type": 1, "CD": 0, @@ -541,9 +541,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002111", - "text": "希卡普1技能" + "text": "一往无前" }, - "ico": "jn_icon_001", + "ico": "jn_icon_007", "act": "Skill_1", "Type": 1, "CD": 0, @@ -567,9 +567,9 @@ "MaxLV": 1, "Name": { "key": "skillname_135002211", - "text": "希卡普2技能" + "text": "无所畏惧" }, - "ico": "jn_icon_002", + "ico": "jn_icon_008", "act": "Skill_2", "Type": 2, "CD": -1, @@ -593,9 +593,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002311", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 1, "CD": 5, @@ -618,9 +618,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002311", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 1, "CD": 5, @@ -632,7 +632,7 @@ }, "Desc": { "key": "skill_1350023112", - "text": "伤害提升至37" + "text": "伤害提升至37%" }, "buffid": [], "map": "" @@ -643,9 +643,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002311", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 1, "CD": 5, @@ -668,9 +668,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002311", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 1, "CD": 5, @@ -693,9 +693,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002311", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 1, "CD": 5, @@ -718,9 +718,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135002311", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 1, "CD": 4, @@ -743,9 +743,9 @@ "MaxLV": 6, "Name": { "key": "skillname_935002411", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 4, "CD": 5, @@ -768,9 +768,9 @@ "MaxLV": 6, "Name": { "key": "skillname_935002411", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 4, "CD": 5, @@ -782,7 +782,7 @@ }, "Desc": { "key": "skill_9350024112", - "text": "伤害提升至37" + "text": "伤害提升至37%" }, "buffid": [], "map": "" @@ -793,9 +793,9 @@ "MaxLV": 6, "Name": { "key": "skillname_935002411", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 4, "CD": 5, @@ -818,9 +818,9 @@ "MaxLV": 6, "Name": { "key": "skillname_935002411", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 4, "CD": 5, @@ -843,9 +843,9 @@ "MaxLV": 6, "Name": { "key": "skillname_935002411", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 4, "CD": 5, @@ -868,9 +868,9 @@ "MaxLV": 6, "Name": { "key": "skillname_935002411", - "text": "希卡普3技能" + "text": "自由之往" }, - "ico": "jn_icon_003", + "ico": "jn_icon_009", "act": "Skill_3", "Type": 4, "CD": 4, @@ -895,7 +895,7 @@ "key": "skillname_124003011", "text": "睡神队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0006", "act": "", "Type": 3, "CD": -1, @@ -907,7 +907,7 @@ }, "Desc": { "key": "skill_1240030111", - "text": "队长技:我方全体效果抵抗增加40%" + "text": "我方全体效果抵抗增加40%" }, "buffid": [], "map": "" @@ -918,9 +918,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124003111", - "text": "睡神1技能" + "text": "梦·呓语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_013", "act": "Skill_1", "Type": 1, "CD": 0, @@ -933,7 +933,7 @@ }, "Desc": { "key": "skill_1240031111", - "text": "一技能:睡神沙人对敌方1个目标造成攻击力110%的伤害,并有70%的概率附加1回合【睡眠】状态。" + "text": "对敌方1个目标造成攻击力110%的伤害,并有70%的概率附加1回合【睡眠】状态。" }, "buffid": [], "map": "" @@ -944,9 +944,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124003111", - "text": "睡神1技能" + "text": "梦·呓语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_013", "act": "Skill_1", "Type": 1, "CD": 0, @@ -959,7 +959,7 @@ }, "Desc": { "key": "skill_1240031112", - "text": "等级2 伤害提升至100%" + "text": "伤害提升至100%" }, "buffid": [], "map": "" @@ -970,9 +970,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124003111", - "text": "睡神1技能" + "text": "梦·呓语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_013", "act": "Skill_1", "Type": 1, "CD": 0, @@ -985,7 +985,7 @@ }, "Desc": { "key": "skill_1240031113", - "text": "等级3 效果触发几率提升至60%" + "text": "效果触发几率提升至60%" }, "buffid": [], "map": "" @@ -996,9 +996,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124003111", - "text": "睡神1技能" + "text": "梦·呓语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_013", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1011,7 +1011,7 @@ }, "Desc": { "key": "skill_1240031114", - "text": "等级4 伤害提升至110%" + "text": "伤害提升至110%" }, "buffid": [], "map": "" @@ -1022,9 +1022,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124003111", - "text": "睡神1技能" + "text": "梦·呓语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_013", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1037,7 +1037,7 @@ }, "Desc": { "key": "skill_1240031115", - "text": "等级5 效果触发几率提升至70%" + "text": "效果触发几率提升至70%" }, "buffid": [], "map": "" @@ -1048,9 +1048,9 @@ "MaxLV": 2, "Name": { "key": "skillname_124003211", - "text": "睡神2技能" + "text": "梦·愉悦" }, - "ico": "jn_icon_002", + "ico": "jn_icon_014", "act": "Skill_2", "Type": 2, "CD": 4, @@ -1063,7 +1063,7 @@ }, "Desc": { "key": "skill_1240032111", - "text": "二技能:睡神沙人为我方全体各净化1个减益状态,并附加2回合【速度提升】。" + "text": "为我方全体各净化1个减益状态,并附加2回合【速度提升】。" }, "buffid": [], "map": "" @@ -1074,9 +1074,9 @@ "MaxLV": 2, "Name": { "key": "skillname_124003211", - "text": "睡神2技能" + "text": "梦·愉悦" }, - "ico": "jn_icon_002", + "ico": "jn_icon_014", "act": "Skill_2", "Type": 2, "CD": 3, @@ -1100,9 +1100,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124003311", - "text": "睡神3技能" + "text": "梦·创世" }, - "ico": "jn_icon_003", + "ico": "jn_icon_015", "act": "Skill_3", "Type": 1, "CD": 4, @@ -1116,7 +1116,7 @@ }, "Desc": { "key": "skill_1240033111", - "text": "三技能:睡神沙人对敌方全体造成攻击力80%的伤害,使敌方目标各减少30%行动值,并有100%概率附加1回合【睡眠】状态。" + "text": "对敌方全体造成攻击力80%的伤害,使敌方目标各减少30%行动值,并有100%概率附加1回合【睡眠】状态。" }, "buffid": [], "map": "" @@ -1127,9 +1127,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124003311", - "text": "睡神3技能" + "text": "梦·创世" }, - "ico": "jn_icon_003", + "ico": "jn_icon_015", "act": "Skill_3", "Type": 1, "CD": 4, @@ -1143,7 +1143,7 @@ }, "Desc": { "key": "skill_1240033112", - "text": "等级2 降低的行动值提升至25%" + "text": "降低的行动值提升至25%" }, "buffid": [], "map": "" @@ -1154,9 +1154,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124003311", - "text": "睡神3技能" + "text": "梦·创世" }, - "ico": "jn_icon_003", + "ico": "jn_icon_015", "act": "Skill_3", "Type": 1, "CD": 4, @@ -1170,7 +1170,7 @@ }, "Desc": { "key": "skill_1240033113", - "text": "等级3 效果触发几率提升至90%" + "text": "效果触发几率提升至90%" }, "buffid": [], "map": "" @@ -1181,9 +1181,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124003311", - "text": "睡神3技能" + "text": "梦·创世" }, - "ico": "jn_icon_003", + "ico": "jn_icon_015", "act": "Skill_3", "Type": 1, "CD": 4, @@ -1197,7 +1197,7 @@ }, "Desc": { "key": "skill_1240033114", - "text": "等级4 降低的行动值提升至30%" + "text": "降低的行动值提升至30%" }, "buffid": [], "map": "" @@ -1208,9 +1208,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124003311", - "text": "睡神3技能" + "text": "梦·创世" }, - "ico": "jn_icon_003", + "ico": "jn_icon_015", "act": "Skill_3", "Type": 1, "CD": 4, @@ -1224,7 +1224,7 @@ }, "Desc": { "key": "skill_1240033115", - "text": "等级5 效果触发几率提升至100%" + "text": "效果触发几率提升至100%" }, "buffid": [], "map": "" @@ -1235,9 +1235,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124003311", - "text": "睡神3技能" + "text": "梦·创世" }, - "ico": "jn_icon_003", + "ico": "jn_icon_015", "act": "Skill_3", "Type": 1, "CD": 3, @@ -1251,7 +1251,7 @@ }, "Desc": { "key": "skill_1240033116", - "text": "等级6 冷却时间减少1回合" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -1262,9 +1262,9 @@ "MaxLV": 2, "Name": { "key": "skillname_924003411", - "text": "睡神2技能" + "text": "梦·愉悦" }, - "ico": "jn_icon_002", + "ico": "jn_icon_014", "act": "Skill_2", "Type": 4, "CD": 4, @@ -1278,7 +1278,7 @@ }, "Desc": { "key": "skill_9240034111", - "text": "二技能:睡神沙人为我方全体各净化1个减益状态,并附加2回合【速度提升】和1回合【防御提升】状态。" + "text": "为我方全体各净化1个减益状态,并附加2回合【速度提升】和1回合【防御提升】状态。" }, "buffid": [], "map": "" @@ -1289,9 +1289,9 @@ "MaxLV": 2, "Name": { "key": "skillname_924003411", - "text": "睡神2技能" + "text": "梦·愉悦" }, - "ico": "jn_icon_002", + "ico": "jn_icon_014", "act": "Skill_2", "Type": 4, "CD": 3, @@ -1318,7 +1318,7 @@ "key": "skillname_134006011", "text": "杰克队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0024", "act": "", "Type": 3, "CD": -1, @@ -1341,9 +1341,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006111", - "text": "杰克1技能" + "text": "冰霜之语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_010", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1366,9 +1366,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006111", - "text": "杰克1技能" + "text": "冰霜之语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_010", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1391,9 +1391,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006111", - "text": "杰克1技能" + "text": "冰霜之语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_010", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1416,9 +1416,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006111", - "text": "杰克1技能" + "text": "冰霜之语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_010", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1441,9 +1441,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006111", - "text": "杰克1技能" + "text": "冰霜之语" }, - "ico": "jn_icon_001", + "ico": "jn_icon_010", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1466,9 +1466,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006211", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 1, "CD": 5, @@ -1491,9 +1491,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006211", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 1, "CD": 5, @@ -1516,9 +1516,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006211", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 1, "CD": 5, @@ -1541,9 +1541,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006211", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 1, "CD": 5, @@ -1566,9 +1566,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006211", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 1, "CD": 4, @@ -1591,9 +1591,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006311", - "text": "杰克3技能" + "text": "极寒领域" }, - "ico": "jn_icon_003", + "ico": "jn_icon_012", "act": "Skill_3", "Type": 1, "CD": 4, @@ -1616,9 +1616,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006311", - "text": "杰克3技能" + "text": "极寒领域" }, - "ico": "jn_icon_003", + "ico": "jn_icon_012", "act": "Skill_3", "Type": 1, "CD": 4, @@ -1641,9 +1641,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006311", - "text": "杰克3技能" + "text": "极寒领域" }, - "ico": "jn_icon_003", + "ico": "jn_icon_012", "act": "Skill_3", "Type": 1, "CD": 4, @@ -1666,9 +1666,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006311", - "text": "杰克3技能" + "text": "极寒领域" }, - "ico": "jn_icon_003", + "ico": "jn_icon_012", "act": "Skill_3", "Type": 1, "CD": 4, @@ -1691,9 +1691,9 @@ "MaxLV": 5, "Name": { "key": "skillname_134006311", - "text": "杰克3技能" + "text": "极寒领域" }, - "ico": "jn_icon_003", + "ico": "jn_icon_012", "act": "Skill_3", "Type": 1, "CD": 3, @@ -1716,9 +1716,9 @@ "MaxLV": 5, "Name": { "key": "skillname_934006411", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 4, "CD": 5, @@ -1741,9 +1741,9 @@ "MaxLV": 5, "Name": { "key": "skillname_934006411", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 4, "CD": 5, @@ -1766,9 +1766,9 @@ "MaxLV": 5, "Name": { "key": "skillname_934006411", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 4, "CD": 5, @@ -1791,9 +1791,9 @@ "MaxLV": 5, "Name": { "key": "skillname_934006411", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 4, "CD": 5, @@ -1816,9 +1816,9 @@ "MaxLV": 5, "Name": { "key": "skillname_934006411", - "text": "杰克2技能" + "text": "寒冰之力" }, - "ico": "jn_icon_002", + "ico": "jn_icon_011", "act": "Skill_2", "Type": 4, "CD": 4, @@ -1843,7 +1843,7 @@ "key": "skillname_125001011", "text": "阿宝队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0029", "act": "", "Type": 3, "CD": -1, @@ -1866,9 +1866,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001111", - "text": "阿宝1技能" + "text": "熊猫拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_x001", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1891,9 +1891,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001111", - "text": "阿宝1技能" + "text": "熊猫拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_x001", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1916,9 +1916,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001111", - "text": "阿宝1技能" + "text": "熊猫拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_x001", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1941,9 +1941,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001111", - "text": "阿宝1技能" + "text": "熊猫拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_x001", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1966,9 +1966,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001111", - "text": "阿宝1技能" + "text": "熊猫拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_x001", "act": "Skill_1", "Type": 1, "CD": 0, @@ -1991,9 +1991,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "", "Type": 2, "CD": 4, @@ -2005,7 +2005,7 @@ }, "Desc": { "key": "skill_1250012111", - "text": "回合结束时获得1回合【引雷】,效果期间回合开始时攻击全体敌方,伤害为自身防御力90%。" + "text": "回合结束时获得1回合【玄御】,效果期间回合开始时攻击全体敌方,伤害为自身防御力90%。" }, "buffid": [], "map": "" @@ -2016,9 +2016,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "", "Type": 2, "CD": 4, @@ -2041,9 +2041,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "", "Type": 2, "CD": 4, @@ -2066,9 +2066,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "", "Type": 2, "CD": 4, @@ -2091,9 +2091,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "", "Type": 2, "CD": 3, @@ -2111,14 +2111,14 @@ "map": "" }, { - "id": 125001312, + "id": 125001212, "level": 1, "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 0, "CD": 0, @@ -2129,21 +2129,21 @@ ] }, "Desc": { - "key": "skill_1250013121", - "text": "回合结束时获得1回合【引雷】,效果期间回合开始时攻击全体敌方,伤害为自身防御力90%。任一技能暴击时冷却时间减少1回合" + "key": "skill_1250012121", + "text": "" }, "buffid": [], "map": "" }, { - "id": 125001312, + "id": 125001212, "level": 2, "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 0, "CD": 0, @@ -2154,21 +2154,21 @@ ] }, "Desc": { - "key": "skill_1250013122", - "text": "防御伤害比例提升至95%" + "key": "skill_1250012122", + "text": "" }, "buffid": [], "map": "" }, { - "id": 125001312, + "id": 125001212, "level": 3, "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 0, "CD": 0, @@ -2179,21 +2179,21 @@ ] }, "Desc": { - "key": "skill_1250013123", - "text": "防御伤害比例提升至100%" + "key": "skill_1250012123", + "text": "" }, "buffid": [], "map": "" }, { - "id": 125001312, + "id": 125001212, "level": 4, "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 0, "CD": 0, @@ -2204,21 +2204,21 @@ ] }, "Desc": { - "key": "skill_1250013124", - "text": "防御伤害比例提升至110%" + "key": "skill_1250012124", + "text": "" }, "buffid": [], "map": "" }, { - "id": 125001312, + "id": 125001212, "level": 5, "MaxLV": 5, "Name": { "key": "skillname_125001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 0, "CD": 0, @@ -2229,8 +2229,8 @@ ] }, "Desc": { - "key": "skill_1250013125", - "text": "冷却时间减少1回合" + "key": "skill_1250012125", + "text": "" }, "buffid": [], "map": "" @@ -2241,9 +2241,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001311", - "text": "阿宝3技能" + "text": "太极零式" }, - "ico": "jn_icon_003", + "ico": "jn_icon_x003", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2268,9 +2268,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001311", - "text": "阿宝3技能" + "text": "太极零式" }, - "ico": "jn_icon_003", + "ico": "jn_icon_x003", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2295,9 +2295,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001311", - "text": "阿宝3技能" + "text": "太极零式" }, - "ico": "jn_icon_003", + "ico": "jn_icon_x003", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2322,9 +2322,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001311", - "text": "阿宝3技能" + "text": "太极零式" }, - "ico": "jn_icon_003", + "ico": "jn_icon_x003", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2349,9 +2349,9 @@ "MaxLV": 5, "Name": { "key": "skillname_125001311", - "text": "阿宝3技能" + "text": "太极零式" }, - "ico": "jn_icon_003", + "ico": "jn_icon_x003", "act": "Skill_3", "Type": 1, "CD": 4, @@ -2376,9 +2376,9 @@ "MaxLV": 5, "Name": { "key": "skillname_925001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 2, "CD": 4, @@ -2391,7 +2391,7 @@ }, "Desc": { "key": "skill_9250014111", - "text": "" + "text": "回合结束时获得1回合【玄御】,效果期间回合开始时攻击全体敌方,伤害为自身防御力90%。任一技能暴击时减少此技能1回合冷却。" }, "buffid": [], "map": "" @@ -2402,9 +2402,9 @@ "MaxLV": 5, "Name": { "key": "skillname_925001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 2, "CD": 4, @@ -2417,7 +2417,7 @@ }, "Desc": { "key": "skill_9250014112", - "text": "" + "text": "防御伤害比例提升至95%" }, "buffid": [], "map": "" @@ -2428,9 +2428,9 @@ "MaxLV": 5, "Name": { "key": "skillname_925001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 2, "CD": 4, @@ -2443,7 +2443,7 @@ }, "Desc": { "key": "skill_9250014113", - "text": "" + "text": "防御伤害比例提升至100%" }, "buffid": [], "map": "" @@ -2454,9 +2454,9 @@ "MaxLV": 5, "Name": { "key": "skillname_925001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 2, "CD": 4, @@ -2469,7 +2469,7 @@ }, "Desc": { "key": "skill_9250014114", - "text": "" + "text": "防御伤害比例提升至110%" }, "buffid": [], "map": "" @@ -2480,9 +2480,9 @@ "MaxLV": 5, "Name": { "key": "skillname_925001211", - "text": "阿宝2技能" + "text": "太极一式" }, - "ico": "jn_icon_002", + "ico": "jn_icon_x002", "act": "Skill_2", "Type": 2, "CD": 3, @@ -2495,7 +2495,7 @@ }, "Desc": { "key": "skill_9250014115", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -2508,7 +2508,7 @@ "key": "skillname_144005011", "text": "小伊队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0019", "act": "", "Type": 3, "CD": -1, @@ -2520,7 +2520,7 @@ }, "Desc": { "key": "skill_1440050111", - "text": "" + "text": "在竞技场中,我方全体攻击增加30%" }, "buffid": [], "map": "" @@ -2531,9 +2531,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005111", - "text": "小伊1技能" + "text": "蛮之力" }, - "ico": "jn_icon_001", + "ico": "jn_icon_019", "act": "Skill_1", "Type": 1, "CD": 0, @@ -2545,7 +2545,7 @@ }, "Desc": { "key": "skill_1440051111", - "text": "" + "text": "小伊对敌方1个目标攻击2次,每次造成攻击力60%的伤害,并有50%概率吸收目标15%。" }, "buffid": [], "map": "" @@ -2556,9 +2556,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005111", - "text": "小伊1技能" + "text": "蛮之力" }, - "ico": "jn_icon_001", + "ico": "jn_icon_019", "act": "Skill_1", "Type": 1, "CD": 0, @@ -2570,7 +2570,7 @@ }, "Desc": { "key": "skill_1440051112", - "text": "" + "text": "伤害提升至55%" }, "buffid": [], "map": "" @@ -2581,9 +2581,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005111", - "text": "小伊1技能" + "text": "蛮之力" }, - "ico": "jn_icon_001", + "ico": "jn_icon_019", "act": "Skill_1", "Type": 1, "CD": 0, @@ -2595,7 +2595,7 @@ }, "Desc": { "key": "skill_1440051113", - "text": "" + "text": "效果触发几率提升至40%" }, "buffid": [], "map": "" @@ -2606,9 +2606,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005111", - "text": "小伊1技能" + "text": "蛮之力" }, - "ico": "jn_icon_001", + "ico": "jn_icon_019", "act": "Skill_1", "Type": 1, "CD": 0, @@ -2620,7 +2620,7 @@ }, "Desc": { "key": "skill_1440051114", - "text": "" + "text": "伤害提升至60%" }, "buffid": [], "map": "" @@ -2631,9 +2631,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005111", - "text": "小伊1技能" + "text": "蛮之力" }, - "ico": "jn_icon_001", + "ico": "jn_icon_019", "act": "Skill_1", "Type": 1, "CD": 0, @@ -2645,7 +2645,7 @@ }, "Desc": { "key": "skill_1440051115", - "text": "" + "text": "效果触发几率提升至50%" }, "buffid": [], "map": "" @@ -2656,9 +2656,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005211", - "text": "小伊2技能" + "text": "蛮力连击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_020", "act": "Skill_2", "Type": 1, "CD": 4, @@ -2670,7 +2670,7 @@ }, "Desc": { "key": "skill_1440052111", - "text": "" + "text": "攻击1个敌方4次,每次伤害为自身攻击力45%,每次有30%概率为目标附加1回合【眩晕】。" }, "buffid": [], "map": "" @@ -2681,9 +2681,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005211", - "text": "小伊2技能" + "text": "蛮力连击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_020", "act": "Skill_2", "Type": 1, "CD": 4, @@ -2695,7 +2695,7 @@ }, "Desc": { "key": "skill_1440052112", - "text": "" + "text": "伤害提升至47%" }, "buffid": [], "map": "" @@ -2706,9 +2706,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005211", - "text": "小伊2技能" + "text": "蛮力连击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_020", "act": "Skill_2", "Type": 1, "CD": 4, @@ -2720,7 +2720,7 @@ }, "Desc": { "key": "skill_1440052113", - "text": "" + "text": "效果触发几率提升至40%" }, "buffid": [], "map": "" @@ -2731,9 +2731,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005211", - "text": "小伊2技能" + "text": "蛮力连击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_020", "act": "Skill_2", "Type": 1, "CD": 4, @@ -2745,7 +2745,7 @@ }, "Desc": { "key": "skill_1440052114", - "text": "" + "text": "伤害提升至50%" }, "buffid": [], "map": "" @@ -2756,9 +2756,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005211", - "text": "小伊2技能" + "text": "蛮力连击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_020", "act": "Skill_2", "Type": 1, "CD": 3, @@ -2770,7 +2770,7 @@ }, "Desc": { "key": "skill_1440052115", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -2781,9 +2781,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005311", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2797,7 +2797,7 @@ }, "Desc": { "key": "skill_1440053111", - "text": "" + "text": "攻击全体敌方,伤害为自身攻击力85%,75%概率驱散目标1个增益,每个驱散的增益提升全体友方5%行动值。" }, "buffid": [], "map": "" @@ -2808,9 +2808,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005311", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2824,7 +2824,7 @@ }, "Desc": { "key": "skill_1440053112", - "text": "" + "text": "伤害提升至90%" }, "buffid": [], "map": "" @@ -2835,9 +2835,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005311", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2851,7 +2851,7 @@ }, "Desc": { "key": "skill_1440053113", - "text": "" + "text": "效果触发几率提升至100%" }, "buffid": [], "map": "" @@ -2862,9 +2862,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005311", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2878,7 +2878,7 @@ }, "Desc": { "key": "skill_1440053114", - "text": "" + "text": "伤害提升至100%" }, "buffid": [], "map": "" @@ -2889,9 +2889,9 @@ "MaxLV": 5, "Name": { "key": "skillname_144005311", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 4, @@ -2905,7 +2905,7 @@ }, "Desc": { "key": "skill_1440053115", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -2916,9 +2916,9 @@ "MaxLV": 5, "Name": { "key": "skillname_944005411", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2933,7 +2933,7 @@ }, "Desc": { "key": "skill_9440054111", - "text": "" + "text": "攻击全体敌方,伤害为自身攻击力85%,75%概率驱散目标1个增益,每个驱散的增益提升全体友方5%行动值。增加目标所有技能1回合冷却。" }, "buffid": [], "map": "" @@ -2944,9 +2944,9 @@ "MaxLV": 5, "Name": { "key": "skillname_944005411", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2961,7 +2961,7 @@ }, "Desc": { "key": "skill_9440054112", - "text": "" + "text": "伤害提升至90%" }, "buffid": [], "map": "" @@ -2972,9 +2972,9 @@ "MaxLV": 5, "Name": { "key": "skillname_944005411", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 5, @@ -2989,7 +2989,7 @@ }, "Desc": { "key": "skill_9440054113", - "text": "" + "text": "效果触发几率提升至100%" }, "buffid": [], "map": "" @@ -3000,9 +3000,9 @@ "MaxLV": 5, "Name": { "key": "skillname_944005411", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 5, @@ -3017,7 +3017,7 @@ }, "Desc": { "key": "skill_9440054114", - "text": "" + "text": "伤害提升至100%" }, "buffid": [], "map": "" @@ -3028,9 +3028,9 @@ "MaxLV": 5, "Name": { "key": "skillname_944005411", - "text": "小伊3技能" + "text": "蛮力冲撞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_021", "act": "Skill_3", "Type": 1, "CD": 4, @@ -3045,7 +3045,7 @@ }, "Desc": { "key": "skill_9440054115", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -3058,7 +3058,7 @@ "key": "skillname_135001011", "text": "师傅队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0026", "act": "", "Type": 3, "CD": -1, @@ -3070,7 +3070,7 @@ }, "Desc": { "key": "skill_1350010111", - "text": "" + "text": "我方全体攻击增加30%" }, "buffid": [], "map": "" @@ -3081,9 +3081,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135001111", - "text": "师傅1技能" + "text": "点到为止" }, - "ico": "jn_icon_001", + "ico": "jn_icon_016", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3097,7 +3097,7 @@ }, "Desc": { "key": "skill_1350011111", - "text": "" + "text": "攻击1个敌方,伤害为自身攻击力100%,攻击溅射随机2个敌方,伤害为自身攻击力70%。攻击前随机获得一种神力,持续1回合;神力包含【气】、【劲】、【法】。" }, "buffid": [], "map": "" @@ -3108,9 +3108,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135001111", - "text": "师傅1技能" + "text": "点到为止" }, - "ico": "jn_icon_001", + "ico": "jn_icon_016", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3124,7 +3124,7 @@ }, "Desc": { "key": "skill_1350011112", - "text": "" + "text": "造成的伤害提升105%" }, "buffid": [], "map": "" @@ -3135,9 +3135,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135001111", - "text": "师傅1技能" + "text": "点到为止" }, - "ico": "jn_icon_001", + "ico": "jn_icon_016", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3151,7 +3151,7 @@ }, "Desc": { "key": "skill_1350011113", - "text": "" + "text": "对额外目标的伤害提升至70%" }, "buffid": [], "map": "" @@ -3162,9 +3162,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135001111", - "text": "师傅1技能" + "text": "点到为止" }, - "ico": "jn_icon_001", + "ico": "jn_icon_016", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3178,7 +3178,7 @@ }, "Desc": { "key": "skill_1350011114", - "text": "" + "text": "造成的伤害提升至110%" }, "buffid": [], "map": "" @@ -3189,9 +3189,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135001111", - "text": "师傅1技能" + "text": "点到为止" }, - "ico": "jn_icon_001", + "ico": "jn_icon_016", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3205,7 +3205,7 @@ }, "Desc": { "key": "skill_1350011115", - "text": "" + "text": "对额外目标的伤害提升至80%" }, "buffid": [], "map": "" @@ -3216,9 +3216,9 @@ "MaxLV": 6, "Name": { "key": "skillname_135001111", - "text": "师傅1技能" + "text": "点到为止" }, - "ico": "jn_icon_001", + "ico": "jn_icon_016", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3232,7 +3232,7 @@ }, "Desc": { "key": "skill_1350011116", - "text": "" + "text": "造成的伤害提升至120%" }, "buffid": [], "map": "" @@ -3243,9 +3243,9 @@ "MaxLV": 5, "Name": { "key": "skillname_135001211", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 3, @@ -3258,7 +3258,7 @@ }, "Desc": { "key": "skill_1350012111", - "text": "" + "text": "攻击1个敌方,伤害为自身攻击力170%。吸收所有神力恢复自身生命,每个神力提供自身最大生命值10%恢复量。" }, "buffid": [], "map": "" @@ -3269,9 +3269,9 @@ "MaxLV": 5, "Name": { "key": "skillname_135001211", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 3, @@ -3284,7 +3284,7 @@ }, "Desc": { "key": "skill_1350012112", - "text": "" + "text": "伤害提升至180%" }, "buffid": [], "map": "" @@ -3295,9 +3295,9 @@ "MaxLV": 5, "Name": { "key": "skillname_135001211", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 3, @@ -3310,7 +3310,7 @@ }, "Desc": { "key": "skill_1350012113", - "text": "" + "text": "伤害提升至190%" }, "buffid": [], "map": "" @@ -3321,9 +3321,9 @@ "MaxLV": 5, "Name": { "key": "skillname_135001211", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 3, @@ -3336,7 +3336,7 @@ }, "Desc": { "key": "skill_1350012114", - "text": "" + "text": "伤害提升至200%" }, "buffid": [], "map": "" @@ -3347,9 +3347,9 @@ "MaxLV": 5, "Name": { "key": "skillname_135001211", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 2, @@ -3362,7 +3362,7 @@ }, "Desc": { "key": "skill_1350012115", - "text": "" + "text": "冷却时间减少至1回合" }, "buffid": [], "map": "" @@ -3373,9 +3373,9 @@ "MaxLV": 4, "Name": { "key": "skillname_135001311", - "text": "师傅3技能" + "text": "上·善若水" }, - "ico": "jn_icon_003", + "ico": "jn_icon_018", "act": "Skill_3", "Type": 1, "CD": 4, @@ -3390,7 +3390,7 @@ }, "Desc": { "key": "skill_1350013111", - "text": "" + "text": "攻击全体敌方2次,每次伤害为自身攻击50%。攻击前获得全部神力,持续2回合;神力包含【气】、【劲】、【法】。" }, "buffid": [], "map": "" @@ -3401,9 +3401,9 @@ "MaxLV": 4, "Name": { "key": "skillname_135001311", - "text": "师傅3技能" + "text": "上·善若水" }, - "ico": "jn_icon_003", + "ico": "jn_icon_018", "act": "Skill_3", "Type": 1, "CD": 4, @@ -3418,7 +3418,7 @@ }, "Desc": { "key": "skill_1350013112", - "text": "" + "text": "伤害提升至55%" }, "buffid": [], "map": "" @@ -3429,9 +3429,9 @@ "MaxLV": 4, "Name": { "key": "skillname_135001311", - "text": "师傅3技能" + "text": "上·善若水" }, - "ico": "jn_icon_003", + "ico": "jn_icon_018", "act": "Skill_3", "Type": 1, "CD": 4, @@ -3446,7 +3446,7 @@ }, "Desc": { "key": "skill_1350013113", - "text": "" + "text": "伤害提升至60%" }, "buffid": [], "map": "" @@ -3457,9 +3457,9 @@ "MaxLV": 4, "Name": { "key": "skillname_135001311", - "text": "师傅3技能" + "text": "上·善若水" }, - "ico": "jn_icon_003", + "ico": "jn_icon_018", "act": "Skill_3", "Type": 1, "CD": 3, @@ -3474,7 +3474,7 @@ }, "Desc": { "key": "skill_1350013114", - "text": "" + "text": "冷却减少1回合" }, "buffid": [], "map": "" @@ -3485,9 +3485,9 @@ "MaxLV": 5, "Name": { "key": "skillname_935001411", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 3, @@ -3502,7 +3502,7 @@ }, "Desc": { "key": "skill_9350014111", - "text": "" + "text": "攻击1个敌方,伤害为自身攻击力170%。为自身附加2回合【护盾】,护盾量为自身最大生命值10%。吸收所有神力恢复自身生命,每个神力提供自身最大生命值10%恢复量、最大生命值5%护盾量和10%额外伤害。" }, "buffid": [], "map": "" @@ -3513,9 +3513,9 @@ "MaxLV": 5, "Name": { "key": "skillname_935001411", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 3, @@ -3530,7 +3530,7 @@ }, "Desc": { "key": "skill_9350014112", - "text": "" + "text": "伤害提升至180%" }, "buffid": [], "map": "" @@ -3541,9 +3541,9 @@ "MaxLV": 5, "Name": { "key": "skillname_935001411", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 3, @@ -3558,7 +3558,7 @@ }, "Desc": { "key": "skill_9350014113", - "text": "" + "text": "伤害提升至190%" }, "buffid": [], "map": "" @@ -3569,9 +3569,9 @@ "MaxLV": 5, "Name": { "key": "skillname_935001411", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 3, @@ -3586,7 +3586,7 @@ }, "Desc": { "key": "skill_9350014114", - "text": "" + "text": "伤害提升至200%" }, "buffid": [], "map": "" @@ -3597,9 +3597,9 @@ "MaxLV": 5, "Name": { "key": "skillname_935001411", - "text": "师傅2技能" + "text": "聚·心神" }, - "ico": "jn_icon_002", + "ico": "jn_icon_017", "act": "Skill_2", "Type": 1, "CD": 2, @@ -3612,7 +3612,7 @@ }, "Desc": { "key": "skill_9350014115", - "text": "" + "text": "冷却时间减少至1回合" }, "buffid": [], "map": "" @@ -3625,7 +3625,7 @@ "key": "skillname_124004011", "text": "邦尼兔队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0027", "act": "", "Type": 3, "CD": -1, @@ -3637,7 +3637,7 @@ }, "Desc": { "key": "skill_1240040111", - "text": "" + "text": "在祭祀神迹、声之神迹的挑战中,我方全体效果命中增加40%" }, "buffid": [], "map": "" @@ -3648,9 +3648,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124004111", - "text": "邦尼兔1技能" + "text": "回旋镖" }, - "ico": "jn_icon_001", + "ico": "jn_icon_028", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3662,7 +3662,7 @@ }, "Desc": { "key": "skill_1240041111", - "text": "" + "text": "攻击1个敌方,伤害为自身攻击力100%,60%概率为目标附加2回合【禁疗】" }, "buffid": [], "map": "" @@ -3673,9 +3673,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124004111", - "text": "邦尼兔1技能" + "text": "回旋镖" }, - "ico": "jn_icon_001", + "ico": "jn_icon_028", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3687,7 +3687,7 @@ }, "Desc": { "key": "skill_1240041112", - "text": "" + "text": "伤害提升至110%" }, "buffid": [], "map": "" @@ -3698,9 +3698,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124004111", - "text": "邦尼兔1技能" + "text": "回旋镖" }, - "ico": "jn_icon_001", + "ico": "jn_icon_028", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3712,7 +3712,7 @@ }, "Desc": { "key": "skill_1240041113", - "text": "" + "text": "效果触发几率提升至70%" }, "buffid": [], "map": "" @@ -3723,9 +3723,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124004111", - "text": "邦尼兔1技能" + "text": "回旋镖" }, - "ico": "jn_icon_001", + "ico": "jn_icon_028", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3737,7 +3737,7 @@ }, "Desc": { "key": "skill_1240041114", - "text": "" + "text": "伤害提升至120%" }, "buffid": [], "map": "" @@ -3748,9 +3748,9 @@ "MaxLV": 5, "Name": { "key": "skillname_124004111", - "text": "邦尼兔1技能" + "text": "回旋镖" }, - "ico": "jn_icon_001", + "ico": "jn_icon_028", "act": "Skill_1", "Type": 1, "CD": 0, @@ -3762,7 +3762,7 @@ }, "Desc": { "key": "skill_1240041115", - "text": "" + "text": "效果触发几率提升至80%" }, "buffid": [], "map": "" @@ -3773,9 +3773,9 @@ "MaxLV": 1, "Name": { "key": "skillname_124004211", - "text": "邦尼兔2技能" + "text": "复活节彩蛋" }, - "ico": "jn_icon_002", + "ico": "jn_icon_029", "act": "Skill_2", "Type": 2, "CD": -1, @@ -3787,7 +3787,7 @@ }, "Desc": { "key": "skill_1240042111", - "text": "" + "text": "攻击时为目标附加2回合【中毒】。" }, "buffid": [], "map": "" @@ -3798,9 +3798,9 @@ "MaxLV": 7, "Name": { "key": "skillname_124004311", - "text": "邦尼兔3技能" + "text": "致命回旋" }, - "ico": "jn_icon_003", + "ico": "jn_icon_030", "act": "Skill_3", "Type": 1, "CD": 4, @@ -3814,7 +3814,7 @@ }, "Desc": { "key": "skill_1240043111", - "text": "" + "text": "攻击全体敌方,伤害为自身攻击力100%,为目标附加2回合【速度下降】和【中毒】。" }, "buffid": [], "map": "" @@ -3825,9 +3825,9 @@ "MaxLV": 7, "Name": { "key": "skillname_124004311", - "text": "邦尼兔3技能" + "text": "致命回旋" }, - "ico": "jn_icon_003", + "ico": "jn_icon_030", "act": "Skill_3", "Type": 1, "CD": 4, @@ -3841,7 +3841,7 @@ }, "Desc": { "key": "skill_1240043112", - "text": "" + "text": "伤害提升至105%" }, "buffid": [], "map": "" @@ -3852,9 +3852,9 @@ "MaxLV": 7, "Name": { "key": "skillname_124004311", - "text": "邦尼兔3技能" + "text": "致命回旋" }, - "ico": "jn_icon_003", + "ico": "jn_icon_030", "act": "Skill_3", "Type": 1, "CD": 4, @@ -3868,7 +3868,7 @@ }, "Desc": { "key": "skill_1240043113", - "text": "" + "text": "伤害提升至110%" }, "buffid": [], "map": "" @@ -3879,9 +3879,9 @@ "MaxLV": 7, "Name": { "key": "skillname_124004311", - "text": "邦尼兔3技能" + "text": "致命回旋" }, - "ico": "jn_icon_003", + "ico": "jn_icon_030", "act": "Skill_3", "Type": 1, "CD": 4, @@ -3895,7 +3895,7 @@ }, "Desc": { "key": "skill_1240043114", - "text": "" + "text": "伤害提升至115%" }, "buffid": [], "map": "" @@ -3906,7 +3906,7 @@ "MaxLV": 7, "Name": { "key": "skillname_124004311", - "text": "邦尼兔3技能" + "text": "致命回旋" }, "ico": "jn_icon_003", "act": "Skill_3", @@ -3922,7 +3922,7 @@ }, "Desc": { "key": "skill_1240043115", - "text": "" + "text": "伤害提升至120%" }, "buffid": [], "map": "" @@ -3933,7 +3933,7 @@ "MaxLV": 7, "Name": { "key": "skillname_124004311", - "text": "邦尼兔3技能" + "text": "致命回旋" }, "ico": "jn_icon_003", "act": "Skill_3", @@ -3949,7 +3949,7 @@ }, "Desc": { "key": "skill_1240043116", - "text": "" + "text": "伤害提升至130%" }, "buffid": [], "map": "" @@ -3960,9 +3960,9 @@ "MaxLV": 7, "Name": { "key": "skillname_124004311", - "text": "邦尼兔3技能" + "text": "致命回旋" }, - "ico": "jn_icon_003", + "ico": "jn_icon_030", "act": "Skill_3", "Type": 1, "CD": 3, @@ -3976,7 +3976,7 @@ }, "Desc": { "key": "skill_1240043117", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -3987,9 +3987,9 @@ "MaxLV": 1, "Name": { "key": "skillname_924004411", - "text": "邦尼兔2技能" + "text": "复活节彩蛋" }, - "ico": "jn_icon_002", + "ico": "jn_icon_029", "act": "Skill_2", "Type": 2, "CD": -1, @@ -4001,7 +4001,7 @@ }, "Desc": { "key": "skill_9240044111", - "text": "" + "text": "攻击时为目标附加2回合【中毒】。附加【中毒】成功时,额外附加1回合【中毒】;每回合对每个目标仅触发1次。" }, "buffid": [], "map": "" @@ -4014,7 +4014,7 @@ "key": "skillname_144006011", "text": "悍娇虎队长技" }, - "ico": "jn_dzj_01", + "ico": "", "act": "", "Type": 3, "CD": -1, @@ -4037,9 +4037,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006111", - "text": "悍娇虎1技能" + "text": "猛虎爪" }, - "ico": "jn_icon_001", + "ico": "jn_icon_025", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4052,7 +4052,7 @@ }, "Desc": { "key": "skill_1440061111", - "text": "" + "text": "对敌方1个目标造成攻击力100%的伤害,自身每损失10%的生命,伤害提升5%" }, "buffid": [], "map": "" @@ -4063,9 +4063,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006111", - "text": "悍娇虎1技能" + "text": "猛虎爪" }, - "ico": "jn_icon_001", + "ico": "jn_icon_025", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4078,7 +4078,7 @@ }, "Desc": { "key": "skill_1440061112", - "text": "" + "text": "伤害提升至105%" }, "buffid": [], "map": "" @@ -4089,9 +4089,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006111", - "text": "悍娇虎1技能" + "text": "猛虎爪" }, - "ico": "jn_icon_001", + "ico": "jn_icon_025", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4104,7 +4104,7 @@ }, "Desc": { "key": "skill_1440061113", - "text": "" + "text": "伤害提升至110%" }, "buffid": [], "map": "" @@ -4115,9 +4115,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006111", - "text": "悍娇虎1技能" + "text": "猛虎爪" }, - "ico": "jn_icon_001", + "ico": "jn_icon_025", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4130,7 +4130,7 @@ }, "Desc": { "key": "skill_1440061114", - "text": "" + "text": "伤害提升至115%" }, "buffid": [], "map": "" @@ -4141,9 +4141,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006111", - "text": "悍娇虎1技能" + "text": "猛虎爪" }, - "ico": "jn_icon_001", + "ico": "jn_icon_025", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4156,7 +4156,7 @@ }, "Desc": { "key": "skill_1440061115", - "text": "" + "text": "伤害提升至120%" }, "buffid": [], "map": "" @@ -4167,9 +4167,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006111", - "text": "悍娇虎1技能" + "text": "猛虎爪" }, - "ico": "jn_icon_001", + "ico": "jn_icon_025", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4182,7 +4182,7 @@ }, "Desc": { "key": "skill_1440061116", - "text": "" + "text": "伤害提升至130%" }, "buffid": [], "map": "" @@ -4193,13 +4193,13 @@ "MaxLV": 1, "Name": { "key": "skillname_144006211", - "text": "悍娇虎2技能" + "text": "胜者为王" }, - "ico": "jn_icon_002", + "ico": "jn_icon_026", "act": "Skill_2", "Type": 2, "CD": -1, - "Target": 3, + "Target": 1, "ChildSkill": { "Id": [ 244006211 @@ -4207,7 +4207,7 @@ }, "Desc": { "key": "skill_1440062111", - "text": "" + "text": "自身造成击杀时,将获得额外回合,且被自身击杀的敌人将无法复活" }, "buffid": [], "map": "" @@ -4218,9 +4218,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006311", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4236,7 +4236,7 @@ }, "Desc": { "key": "skill_1440063111", - "text": "" + "text": "驱散敌方1个目标的全部增益效果,随后对其造成攻击力230%的伤害,同时自身受到此伤害30%的效果附加伤害,但是自身不会因为该伤害死亡。" }, "buffid": [], "map": "" @@ -4247,9 +4247,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006311", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4265,7 +4265,7 @@ }, "Desc": { "key": "skill_1440063112", - "text": "" + "text": "伤害提升至240%" }, "buffid": [], "map": "" @@ -4276,9 +4276,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006311", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4294,7 +4294,7 @@ }, "Desc": { "key": "skill_1440063113", - "text": "" + "text": "伤害提升至250%" }, "buffid": [], "map": "" @@ -4305,9 +4305,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006311", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4323,7 +4323,7 @@ }, "Desc": { "key": "skill_1440063114", - "text": "" + "text": "伤害提升至260%" }, "buffid": [], "map": "" @@ -4334,9 +4334,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006311", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4352,7 +4352,7 @@ }, "Desc": { "key": "skill_1440063115", - "text": "" + "text": "伤害提升至270%" }, "buffid": [], "map": "" @@ -4363,9 +4363,9 @@ "MaxLV": 6, "Name": { "key": "skillname_144006311", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 5, @@ -4381,7 +4381,7 @@ }, "Desc": { "key": "skill_1440063116", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -4392,9 +4392,9 @@ "MaxLV": 6, "Name": { "key": "skillname_944006411", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4414,7 +4414,7 @@ }, "Desc": { "key": "skill_9440064111", - "text": "" + "text": "驱散敌方1个目标的全部增益效果,随后对其造成攻击力270%的伤害,同时自身受到此伤害30%的效果附加伤害,但是自身不会因为该伤害死亡。成功击杀敌人时,自身获得【攻击提升】【暴击提升】效果,持续3回合" }, "buffid": [], "map": "" @@ -4425,9 +4425,9 @@ "MaxLV": 6, "Name": { "key": "skillname_944006411", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4447,7 +4447,7 @@ }, "Desc": { "key": "skill_9440064112", - "text": "" + "text": "伤害提升至240%" }, "buffid": [], "map": "" @@ -4458,9 +4458,9 @@ "MaxLV": 6, "Name": { "key": "skillname_944006411", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4480,7 +4480,7 @@ }, "Desc": { "key": "skill_9440064113", - "text": "" + "text": "伤害提升至250%" }, "buffid": [], "map": "" @@ -4491,9 +4491,9 @@ "MaxLV": 6, "Name": { "key": "skillname_944006411", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4513,7 +4513,7 @@ }, "Desc": { "key": "skill_9440064114", - "text": "" + "text": "伤害提升至260%" }, "buffid": [], "map": "" @@ -4524,9 +4524,9 @@ "MaxLV": 6, "Name": { "key": "skillname_944006411", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 6, @@ -4546,7 +4546,7 @@ }, "Desc": { "key": "skill_9440064115", - "text": "" + "text": "伤害提升至270%" }, "buffid": [], "map": "" @@ -4557,9 +4557,9 @@ "MaxLV": 6, "Name": { "key": "skillname_944006411", - "text": "悍娇虎3技能" + "text": "王·猎杀时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_027", "act": "Skill_3", "Type": 1, "CD": 5, @@ -4579,7 +4579,7 @@ }, "Desc": { "key": "skill_9440064116", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -4592,7 +4592,7 @@ "key": "skillname_115005011", "text": "亚历克斯队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0001", "act": "", "Type": 3, "CD": -1, @@ -4604,7 +4604,7 @@ }, "Desc": { "key": "skill_1150050111", - "text": "" + "text": "在竞技场中,我方全体防御增加40%" }, "buffid": [], "map": "" @@ -4615,9 +4615,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115005111", - "text": "亚历克斯1技能" + "text": "狮子铁拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_022", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4630,7 +4630,7 @@ }, "Desc": { "key": "skill_1150051111", - "text": "" + "text": "对敌方1个目标攻击2次,共造成攻击力90%的伤害,并未我方当前生命值最低的2个队友回复自身5%的最大生命值。" }, "buffid": [], "map": "" @@ -4641,9 +4641,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115005111", - "text": "亚历克斯1技能" + "text": "狮子铁拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_022", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4656,7 +4656,7 @@ }, "Desc": { "key": "skill_1150051112", - "text": "" + "text": "伤害提升至95%" }, "buffid": [], "map": "" @@ -4667,9 +4667,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115005111", - "text": "亚历克斯1技能" + "text": "狮子铁拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_022", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4682,7 +4682,7 @@ }, "Desc": { "key": "skill_1150051113", - "text": "" + "text": "伤害提升至100%" }, "buffid": [], "map": "" @@ -4693,9 +4693,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115005111", - "text": "亚历克斯1技能" + "text": "狮子铁拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_022", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4708,7 +4708,7 @@ }, "Desc": { "key": "skill_1150051114", - "text": "" + "text": "伤害提升至105%" }, "buffid": [], "map": "" @@ -4719,9 +4719,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115005111", - "text": "亚历克斯1技能" + "text": "狮子铁拳" }, - "ico": "jn_icon_001", + "ico": "jn_icon_022", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4734,7 +4734,7 @@ }, "Desc": { "key": "skill_1150051115", - "text": "" + "text": "伤害提升至110%" }, "buffid": [], "map": "" @@ -4745,13 +4745,13 @@ "MaxLV": 1, "Name": { "key": "skillname_115005211", - "text": "亚历克斯2技能" + "text": "净化烟火" }, - "ico": "jn_icon_002", + "ico": "jn_icon_023", "act": "Skill_2", "Type": 2, "CD": -1, - "Target": 3, + "Target": 1, "ChildSkill": { "Id": [ 215005211 @@ -4759,7 +4759,7 @@ }, "Desc": { "key": "skill_1150052111", - "text": "" + "text": "治疗时净化目标1个减益。" }, "buffid": [], "map": "" @@ -4770,13 +4770,13 @@ "MaxLV": 5, "Name": { "key": "skillname_115005311", - "text": "亚历克斯3技能" + "text": "这是我的主场" }, - "ico": "jn_icon_003", + "ico": "jn_icon_024", "act": "Skill_3", "Type": 1, "CD": 5, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 215005311, @@ -4787,7 +4787,7 @@ }, "Desc": { "key": "skill_1150053111", - "text": "" + "text": "提升全体友方20%行动值。治疗全体友方,治疗量为目标最大生命值35%。净化全体友方各1个减益,为无减益的目标附加1回合【免疫】。" }, "buffid": [], "map": "" @@ -4798,13 +4798,13 @@ "MaxLV": 5, "Name": { "key": "skillname_115005311", - "text": "亚历克斯3技能" + "text": "这是我的主场" }, - "ico": "jn_icon_003", + "ico": "jn_icon_024", "act": "Skill_3", "Type": 1, "CD": 5, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 215005311, @@ -4815,7 +4815,7 @@ }, "Desc": { "key": "skill_1150053112", - "text": "" + "text": "治疗量提升至28%" }, "buffid": [], "map": "" @@ -4826,13 +4826,13 @@ "MaxLV": 5, "Name": { "key": "skillname_115005311", - "text": "亚历克斯3技能" + "text": "这是我的主场" }, - "ico": "jn_icon_003", + "ico": "jn_icon_024", "act": "Skill_3", "Type": 1, "CD": 5, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 215005311, @@ -4843,7 +4843,7 @@ }, "Desc": { "key": "skill_1150053113", - "text": "" + "text": "治疗量提升至31%" }, "buffid": [], "map": "" @@ -4854,13 +4854,13 @@ "MaxLV": 5, "Name": { "key": "skillname_115005311", - "text": "亚历克斯3技能" + "text": "这是我的主场" }, - "ico": "jn_icon_003", + "ico": "jn_icon_024", "act": "Skill_3", "Type": 1, "CD": 5, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 215005311, @@ -4871,7 +4871,7 @@ }, "Desc": { "key": "skill_1150053114", - "text": "" + "text": "治疗量提升至35%" }, "buffid": [], "map": "" @@ -4882,13 +4882,13 @@ "MaxLV": 5, "Name": { "key": "skillname_115005311", - "text": "亚历克斯3技能" + "text": "这是我的主场" }, - "ico": "jn_icon_003", + "ico": "jn_icon_024", "act": "Skill_3", "Type": 1, "CD": 4, - "Target": 1, + "Target": 0, "ChildSkill": { "Id": [ 215005311, @@ -4899,7 +4899,7 @@ }, "Desc": { "key": "skill_1150053115", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -4910,13 +4910,13 @@ "MaxLV": 1, "Name": { "key": "skillname_115005411", - "text": "亚历克斯2技能" + "text": "净化烟火" }, - "ico": "jn_icon_003", + "ico": "jn_icon_023", "act": "Skill_2", "Type": 1, "CD": 5, - "Target": 3, + "Target": 0, "ChildSkill": { "Id": [ 215005211, @@ -4926,7 +4926,7 @@ }, "Desc": { "key": "skill_1150054111", - "text": "" + "text": "治疗时净化目标1个减益。治疗量溢出时附加2回合【护盾】,护盾量为溢出治疗量的120%。" }, "buffid": [], "map": "" @@ -4939,7 +4939,7 @@ "key": "skillname_115004011", "text": "小欧队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0020", "act": "", "Type": 3, "CD": -1, @@ -4951,7 +4951,7 @@ }, "Desc": { "key": "skill_1150040111", - "text": "" + "text": "我方全体效果命中增加40%" }, "buffid": [], "map": "" @@ -4962,9 +4962,9 @@ "MaxLV": 4, "Name": { "key": "skillname_115004111", - "text": "小欧1技能" + "text": "煎饼鱼雷" }, - "ico": "jn_icon_001", + "ico": "jn_icon_034", "act": "Skill_1", "Type": 1, "CD": 0, @@ -4977,7 +4977,7 @@ }, "Desc": { "key": "skill_1150041111", - "text": "" + "text": "攻击1个敌方3次,总伤害为自身攻击力100%,每次吸收目标10%行动值。" }, "buffid": [], "map": "" @@ -4988,9 +4988,9 @@ "MaxLV": 4, "Name": { "key": "skillname_115004111", - "text": "小欧1技能" + "text": "煎饼鱼雷" }, - "ico": "jn_icon_001", + "ico": "jn_icon_034", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5003,7 +5003,7 @@ }, "Desc": { "key": "skill_1150041112", - "text": "" + "text": "伤害提升至105%" }, "buffid": [], "map": "" @@ -5014,9 +5014,9 @@ "MaxLV": 4, "Name": { "key": "skillname_115004111", - "text": "小欧1技能" + "text": "煎饼鱼雷" }, - "ico": "jn_icon_001", + "ico": "jn_icon_034", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5029,7 +5029,7 @@ }, "Desc": { "key": "skill_1150041113", - "text": "" + "text": "伤害提升至110%" }, "buffid": [], "map": "" @@ -5040,9 +5040,9 @@ "MaxLV": 4, "Name": { "key": "skillname_115004111", - "text": "小欧1技能" + "text": "煎饼鱼雷" }, - "ico": "jn_icon_001", + "ico": "jn_icon_034", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5055,7 +5055,7 @@ }, "Desc": { "key": "skill_1150041114", - "text": "" + "text": "伤害提升至115%" }, "buffid": [], "map": "" @@ -5066,9 +5066,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 4, @@ -5081,7 +5081,7 @@ }, "Desc": { "key": "skill_1150042111", - "text": "" + "text": "攻击全体敌方,伤害为自身攻击力70%,85%概率为目标附加1回合【眩晕】。" }, "buffid": [], "map": "" @@ -5092,9 +5092,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 4, @@ -5107,7 +5107,7 @@ }, "Desc": { "key": "skill_1150042112", - "text": "" + "text": "伤害提升至75%" }, "buffid": [], "map": "" @@ -5118,9 +5118,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 4, @@ -5133,7 +5133,7 @@ }, "Desc": { "key": "skill_1150042113", - "text": "" + "text": "效果触发几率提升至85%" }, "buffid": [], "map": "" @@ -5144,9 +5144,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 4, @@ -5159,7 +5159,7 @@ }, "Desc": { "key": "skill_1150042114", - "text": "" + "text": "伤害提升至80%" }, "buffid": [], "map": "" @@ -5170,9 +5170,9 @@ "MaxLV": 5, "Name": { "key": "skillname_115004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 3, @@ -5185,7 +5185,7 @@ }, "Desc": { "key": "skill_1150042115", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -5196,9 +5196,9 @@ "MaxLV": 6, "Name": { "key": "skillname_115004311", - "text": "小欧3技能" + "text": "惊喜时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_036", "act": "Skill_3", "Type": 1, "CD": 6, @@ -5211,7 +5211,7 @@ }, "Desc": { "key": "skill_1150043111", - "text": "" + "text": "攻击全体敌方3次,总伤害为自身攻击力90。每次有50%概率驱散目标1个增益,降低目标10%行动值。" }, "buffid": [], "map": "" @@ -5222,9 +5222,9 @@ "MaxLV": 6, "Name": { "key": "skillname_115004311", - "text": "小欧3技能" + "text": "惊喜时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_036", "act": "Skill_3", "Type": 1, "CD": 6, @@ -5237,7 +5237,7 @@ }, "Desc": { "key": "skill_1150043112", - "text": "" + "text": "伤害提升至95%" }, "buffid": [], "map": "" @@ -5248,9 +5248,9 @@ "MaxLV": 6, "Name": { "key": "skillname_115004311", - "text": "小欧3技能" + "text": "惊喜时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_036", "act": "Skill_3", "Type": 1, "CD": 6, @@ -5263,7 +5263,7 @@ }, "Desc": { "key": "skill_1150043113", - "text": "" + "text": "效果触发几率提升至50%" }, "buffid": [], "map": "" @@ -5274,9 +5274,9 @@ "MaxLV": 6, "Name": { "key": "skillname_115004311", - "text": "小欧3技能" + "text": "惊喜时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_036", "act": "Skill_3", "Type": 1, "CD": 5, @@ -5289,7 +5289,7 @@ }, "Desc": { "key": "skill_1150043114", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -5300,9 +5300,9 @@ "MaxLV": 6, "Name": { "key": "skillname_115004311", - "text": "小欧3技能" + "text": "惊喜时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_036", "act": "Skill_3", "Type": 1, "CD": 5, @@ -5315,7 +5315,7 @@ }, "Desc": { "key": "skill_1150043115", - "text": "" + "text": "伤害提升至100%" }, "buffid": [], "map": "" @@ -5326,9 +5326,9 @@ "MaxLV": 6, "Name": { "key": "skillname_115004311", - "text": "小欧3技能" + "text": "惊喜时刻" }, - "ico": "jn_icon_003", + "ico": "jn_icon_036", "act": "Skill_3", "Type": 1, "CD": 4, @@ -5341,7 +5341,7 @@ }, "Desc": { "key": "skill_1150043116", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -5352,9 +5352,9 @@ "MaxLV": 5, "Name": { "key": "skillname_915004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 4, @@ -5367,7 +5367,7 @@ }, "Desc": { "key": "skill_9150042111", - "text": "" + "text": "攻击全体敌方,伤害为自身攻击力70%,每次有85%概率为目标附加1回合【眩晕】。每个被【眩晕】的目标提升自身15%行动值。" }, "buffid": [], "map": "" @@ -5378,9 +5378,9 @@ "MaxLV": 5, "Name": { "key": "skillname_915004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 4, @@ -5393,7 +5393,7 @@ }, "Desc": { "key": "skill_9150042112", - "text": "" + "text": "伤害提升至75%" }, "buffid": [], "map": "" @@ -5404,9 +5404,9 @@ "MaxLV": 5, "Name": { "key": "skillname_915004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 4, @@ -5419,7 +5419,7 @@ }, "Desc": { "key": "skill_9150042113", - "text": "" + "text": "效果触发几率提升至85%" }, "buffid": [], "map": "" @@ -5430,9 +5430,9 @@ "MaxLV": 5, "Name": { "key": "skillname_915004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 4, @@ -5445,7 +5445,7 @@ }, "Desc": { "key": "skill_9150042114", - "text": "" + "text": "伤害提升至80%" }, "buffid": [], "map": "" @@ -5456,9 +5456,9 @@ "MaxLV": 5, "Name": { "key": "skillname_915004211", - "text": "小欧2技能" + "text": "爆米花导弹" }, - "ico": "jn_icon_002", + "ico": "jn_icon_035", "act": "Skill_2", "Type": 1, "CD": 3, @@ -5471,7 +5471,7 @@ }, "Desc": { "key": "skill_9150042115", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -5484,7 +5484,7 @@ "key": "skillname_124002011", "text": "牙仙队长技" }, - "ico": "jn_dzj_01", + "ico": "", "act": "", "Type": 3, "CD": -1, @@ -5507,9 +5507,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002111", - "text": "牙仙1技能" + "text": "小小礼物" }, - "ico": "jn_icon_001", + "ico": "jn_icon_031", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5522,7 +5522,7 @@ }, "Desc": { "key": "skill_1240021111", - "text": "" + "text": "攻击随机2个敌方,伤害为自身攻击力55%,为目标附加【童真】。" }, "buffid": [], "map": "" @@ -5533,9 +5533,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002111", - "text": "牙仙1技能" + "text": "小小礼物" }, - "ico": "jn_icon_001", + "ico": "jn_icon_031", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5548,7 +5548,7 @@ }, "Desc": { "key": "skill_1240021112", - "text": "" + "text": "伤害提升至60%" }, "buffid": [], "map": "" @@ -5559,9 +5559,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002111", - "text": "牙仙1技能" + "text": "小小礼物" }, - "ico": "jn_icon_001", + "ico": "jn_icon_031", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5574,7 +5574,7 @@ }, "Desc": { "key": "skill_1240021113", - "text": "" + "text": "伤害提升至65%" }, "buffid": [], "map": "" @@ -5585,9 +5585,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002111", - "text": "牙仙1技能" + "text": "小小礼物" }, - "ico": "jn_icon_001", + "ico": "jn_icon_031", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5600,7 +5600,7 @@ }, "Desc": { "key": "skill_1240021114", - "text": "" + "text": "伤害提升至70%" }, "buffid": [], "map": "" @@ -5611,9 +5611,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002111", - "text": "牙仙1技能" + "text": "小小礼物" }, - "ico": "jn_icon_001", + "ico": "jn_icon_031", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5626,7 +5626,7 @@ }, "Desc": { "key": "skill_1240021115", - "text": "" + "text": "伤害提升至75%" }, "buffid": [], "map": "" @@ -5637,9 +5637,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002111", - "text": "牙仙1技能" + "text": "小小礼物" }, - "ico": "jn_icon_001", + "ico": "jn_icon_031", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5652,7 +5652,7 @@ }, "Desc": { "key": "skill_1240021116", - "text": "" + "text": "伤害提升至80%" }, "buffid": [], "map": "" @@ -5663,13 +5663,13 @@ "MaxLV": 1, "Name": { "key": "skillname_124002211", - "text": "牙仙2技能" + "text": "童真之语" }, - "ico": "jn_icon_002", + "ico": "jn_icon_032", "act": "Skill_2", "Type": 2, "CD": -1, - "Target": 3, + "Target": 1, "ChildSkill": { "Id": [ 224002211, @@ -5678,7 +5678,7 @@ }, "Desc": { "key": "skill_1240022111", - "text": "" + "text": "攻击时,若目标有【童真】,附加2回合【中毒】。受击时,若攻击者有【童真】,50%概率反击。" }, "buffid": [], "map": "" @@ -5689,9 +5689,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002311", - "text": "牙仙3技能" + "text": "采取指令" }, - "ico": "jn_icon_003", + "ico": "jn_icon_033", "act": "Skill_3", "Type": 1, "CD": 4, @@ -5704,7 +5704,7 @@ }, "Desc": { "key": "skill_1240023111", - "text": "" + "text": "攻击全体敌方3次,总伤害为自身攻击力90%。" }, "buffid": [], "map": "" @@ -5715,9 +5715,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002311", - "text": "牙仙3技能" + "text": "采取指令" }, - "ico": "jn_icon_003", + "ico": "jn_icon_033", "act": "Skill_3", "Type": 1, "CD": 4, @@ -5730,7 +5730,7 @@ }, "Desc": { "key": "skill_1240023112", - "text": "" + "text": "伤害提升至95%" }, "buffid": [], "map": "" @@ -5741,9 +5741,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002311", - "text": "牙仙3技能" + "text": "采取指令" }, - "ico": "jn_icon_003", + "ico": "jn_icon_033", "act": "Skill_3", "Type": 1, "CD": 4, @@ -5756,7 +5756,7 @@ }, "Desc": { "key": "skill_1240023113", - "text": "" + "text": "伤害提升至100%" }, "buffid": [], "map": "" @@ -5767,9 +5767,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002311", - "text": "牙仙3技能" + "text": "采取指令" }, - "ico": "jn_icon_003", + "ico": "jn_icon_033", "act": "Skill_3", "Type": 1, "CD": 4, @@ -5782,7 +5782,7 @@ }, "Desc": { "key": "skill_1240023114", - "text": "" + "text": "伤害提升至105%" }, "buffid": [], "map": "" @@ -5793,9 +5793,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002311", - "text": "牙仙3技能" + "text": "采取指令" }, - "ico": "jn_icon_003", + "ico": "jn_icon_033", "act": "Skill_3", "Type": 1, "CD": 4, @@ -5808,7 +5808,7 @@ }, "Desc": { "key": "skill_1240023115", - "text": "" + "text": "伤害提升至110%" }, "buffid": [], "map": "" @@ -5819,9 +5819,9 @@ "MaxLV": 6, "Name": { "key": "skillname_124002311", - "text": "牙仙3技能" + "text": "采取指令" }, - "ico": "jn_icon_003", + "ico": "jn_icon_033", "act": "Skill_3", "Type": 1, "CD": 3, @@ -5834,7 +5834,7 @@ }, "Desc": { "key": "skill_1240023116", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -5847,7 +5847,7 @@ "key": "skillname_114007011", "text": "格里斯特王子队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0029", "act": "", "Type": 3, "CD": -1, @@ -5859,7 +5859,7 @@ }, "Desc": { "key": "skill_1140070111", - "text": "" + "text": "我方全体防御增加24%" }, "buffid": [], "map": "" @@ -5870,9 +5870,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007111", - "text": "格里斯特王子1技能" + "text": "跳跃头槌" }, - "ico": "jn_icon_001", + "ico": "jn_icon_057", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5884,7 +5884,7 @@ }, "Desc": { "key": "skill_1140071111", - "text": "" + "text": "攻击1个敌方,伤害为自身攻击力30%及防御力50%,50%概率为目标附加2回合【防御下降】。" }, "buffid": [], "map": "" @@ -5895,9 +5895,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007111", - "text": "格里斯特王子1技能" + "text": "跳跃头槌" }, - "ico": "jn_icon_001", + "ico": "jn_icon_057", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5909,7 +5909,7 @@ }, "Desc": { "key": "skill_1140071112", - "text": "" + "text": "防御比例伤害提升至60%" }, "buffid": [], "map": "" @@ -5920,9 +5920,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007111", - "text": "格里斯特王子1技能" + "text": "跳跃头槌" }, - "ico": "jn_icon_001", + "ico": "jn_icon_057", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5934,7 +5934,7 @@ }, "Desc": { "key": "skill_1140071113", - "text": "" + "text": "效果触发几率提升至60%" }, "buffid": [], "map": "" @@ -5945,9 +5945,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007111", - "text": "格里斯特王子1技能" + "text": "跳跃头槌" }, - "ico": "jn_icon_001", + "ico": "jn_icon_057", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5959,7 +5959,7 @@ }, "Desc": { "key": "skill_1140071114", - "text": "" + "text": "防御比例伤害提升至70%" }, "buffid": [], "map": "" @@ -5970,9 +5970,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007111", - "text": "格里斯特王子1技能" + "text": "跳跃头槌" }, - "ico": "jn_icon_001", + "ico": "jn_icon_057", "act": "Skill_1", "Type": 1, "CD": 0, @@ -5984,7 +5984,7 @@ }, "Desc": { "key": "skill_1140071115", - "text": "" + "text": "效果触发几率提升至70%" }, "buffid": [], "map": "" @@ -5995,9 +5995,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007111", - "text": "格里斯特王子1技能" + "text": "跳跃头槌" }, - "ico": "jn_icon_001", + "ico": "jn_icon_057", "act": "Skill_1", "Type": 1, "CD": 0, @@ -6009,7 +6009,7 @@ }, "Desc": { "key": "skill_1140071116", - "text": "" + "text": "防御比例伤害提升至80%" }, "buffid": [], "map": "" @@ -6020,13 +6020,13 @@ "MaxLV": 3, "Name": { "key": "skillname_114007211", - "text": "格里斯特王子2技能" + "text": "绝地反击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_058", "act": "Skill_2", "Type": 2, "CD": 6, - "Target": 3, + "Target": 1, "ChildSkill": { "Id": [ 214007211, @@ -6035,7 +6035,7 @@ }, "Desc": { "key": "skill_1140072111", - "text": "" + "text": "收到致命伤害时,为自身附加1回合【对峙】,重置旋风霹雳舞冷却,目标防御比自身低时,自身伤害提升;每1%差值提供1%额外伤害,不超过40%。" }, "buffid": [], "map": "" @@ -6046,13 +6046,13 @@ "MaxLV": 3, "Name": { "key": "skillname_114007211", - "text": "格里斯特王子2技能" + "text": "绝地反击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_058", "act": "Skill_2", "Type": 2, "CD": 5, - "Target": 3, + "Target": 1, "ChildSkill": { "Id": [ 214007211, @@ -6061,7 +6061,7 @@ }, "Desc": { "key": "skill_1140072112", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -6072,13 +6072,13 @@ "MaxLV": 3, "Name": { "key": "skillname_114007211", - "text": "格里斯特王子2技能" + "text": "绝地反击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_058", "act": "Skill_2", "Type": 2, "CD": 4, - "Target": 3, + "Target": 1, "ChildSkill": { "Id": [ 214007211, @@ -6087,7 +6087,7 @@ }, "Desc": { "key": "skill_1140072113", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -6098,9 +6098,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007311", - "text": "格里斯特王子3技能" + "text": "旋风霹雳舞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_059", "act": "Skill_3", "Type": 1, "CD": 5, @@ -6115,7 +6115,7 @@ }, "Desc": { "key": "skill_1140073111", - "text": "" + "text": "攻击全体敌方,伤害为自身防御力80%,30%概率为目标附加1回合【挑衅】;目标防御比自身低时,概率翻倍。" }, "buffid": [], "map": "" @@ -6126,9 +6126,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007311", - "text": "格里斯特王子3技能" + "text": "旋风霹雳舞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_059", "act": "Skill_3", "Type": 1, "CD": 5, @@ -6143,7 +6143,7 @@ }, "Desc": { "key": "skill_1140073112", - "text": "" + "text": "防御比例伤害提升至85%" }, "buffid": [], "map": "" @@ -6154,9 +6154,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007311", - "text": "格里斯特王子3技能" + "text": "旋风霹雳舞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_059", "act": "Skill_3", "Type": 1, "CD": 5, @@ -6171,7 +6171,7 @@ }, "Desc": { "key": "skill_1140073113", - "text": "" + "text": "效果触发几率提升至40%" }, "buffid": [], "map": "" @@ -6182,9 +6182,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007311", - "text": "格里斯特王子3技能" + "text": "旋风霹雳舞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_059", "act": "Skill_3", "Type": 1, "CD": 5, @@ -6199,7 +6199,7 @@ }, "Desc": { "key": "skill_1140073114", - "text": "" + "text": "防御比例伤害提升至90%" }, "buffid": [], "map": "" @@ -6210,9 +6210,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007311", - "text": "格里斯特王子3技能" + "text": "旋风霹雳舞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_059", "act": "Skill_3", "Type": 1, "CD": 5, @@ -6227,7 +6227,7 @@ }, "Desc": { "key": "skill_1140073115", - "text": "" + "text": "效果触发几率提升至50%" }, "buffid": [], "map": "" @@ -6238,9 +6238,9 @@ "MaxLV": 6, "Name": { "key": "skillname_114007311", - "text": "格里斯特王子3技能" + "text": "旋风霹雳舞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_059", "act": "Skill_3", "Type": 1, "CD": 5, @@ -6255,7 +6255,7 @@ }, "Desc": { "key": "skill_1140073116", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -6268,7 +6268,7 @@ "key": "skillname_114003011", "text": "亚丝翠队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0031", "act": "", "Type": 3, "CD": -1, @@ -6280,7 +6280,7 @@ }, "Desc": { "key": "skill_1140030111", - "text": "" + "text": "在狩猎、维京远征的挑战中,我方全体速度增加25%" }, "buffid": [], "map": "" @@ -6291,9 +6291,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003111", - "text": "亚丝翠1技能" + "text": "双斧劈砍" }, - "ico": "jn_icon_001", + "ico": "jn_icon_040", "act": "Skill_1", "Type": 1, "CD": 0, @@ -6306,7 +6306,7 @@ }, "Desc": { "key": "skill_1140031111", - "text": "" + "text": "攻击1个敌方,伤害为自身攻击力50%,50%概率降低目标30%行动值。每点速度提供攻击力0.33%额外伤害。" }, "buffid": [], "map": "" @@ -6317,9 +6317,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003111", - "text": "亚丝翠1技能" + "text": "双斧劈砍" }, - "ico": "jn_icon_001", + "ico": "jn_icon_040", "act": "Skill_1", "Type": 1, "CD": 0, @@ -6332,7 +6332,7 @@ }, "Desc": { "key": "skill_1140031112", - "text": "" + "text": "伤害提升至55%" }, "buffid": [], "map": "" @@ -6343,9 +6343,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003111", - "text": "亚丝翠1技能" + "text": "双斧劈砍" }, - "ico": "jn_icon_001", + "ico": "jn_icon_040", "act": "Skill_1", "Type": 1, "CD": 0, @@ -6358,7 +6358,7 @@ }, "Desc": { "key": "skill_1140031113", - "text": "" + "text": "效果触发几率提升至75%" }, "buffid": [], "map": "" @@ -6369,9 +6369,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003111", - "text": "亚丝翠1技能" + "text": "双斧劈砍" }, - "ico": "jn_icon_001", + "ico": "jn_icon_040", "act": "Skill_1", "Type": 1, "CD": 0, @@ -6384,7 +6384,7 @@ }, "Desc": { "key": "skill_1140031114", - "text": "" + "text": "伤害提升至60%" }, "buffid": [], "map": "" @@ -6395,9 +6395,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003111", - "text": "亚丝翠1技能" + "text": "双斧劈砍" }, - "ico": "jn_icon_001", + "ico": "jn_icon_040", "act": "Skill_1", "Type": 1, "CD": 0, @@ -6410,7 +6410,7 @@ }, "Desc": { "key": "skill_1140031115", - "text": "" + "text": "伤害提升至70%" }, "buffid": [], "map": "" @@ -6421,9 +6421,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003211", - "text": "亚丝翠2技能" + "text": "十字斩击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_041", "act": "Skill_2", "Type": 1, "CD": 4, @@ -6437,7 +6437,7 @@ }, "Desc": { "key": "skill_1140032111", - "text": "" + "text": "攻击1个敌方,伤害为自身攻击150%,80%概率为目标附加2回合【速度下降】。暴击时为自身附加2回合【速度提升】。每点速度提供攻击0.33%。" }, "buffid": [], "map": "" @@ -6448,9 +6448,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003211", - "text": "亚丝翠2技能" + "text": "十字斩击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_041", "act": "Skill_2", "Type": 1, "CD": 4, @@ -6464,7 +6464,7 @@ }, "Desc": { "key": "skill_1140032112", - "text": "" + "text": "伤害提升至160%" }, "buffid": [], "map": "" @@ -6475,9 +6475,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003211", - "text": "亚丝翠2技能" + "text": "十字斩击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_041", "act": "Skill_2", "Type": 1, "CD": 4, @@ -6491,7 +6491,7 @@ }, "Desc": { "key": "skill_1140032113", - "text": "" + "text": "效果触发几率提升至100%" }, "buffid": [], "map": "" @@ -6502,9 +6502,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003211", - "text": "亚丝翠2技能" + "text": "十字斩击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_041", "act": "Skill_2", "Type": 1, "CD": 4, @@ -6518,7 +6518,7 @@ }, "Desc": { "key": "skill_1140032114", - "text": "" + "text": "伤害提升至180%" }, "buffid": [], "map": "" @@ -6529,9 +6529,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003211", - "text": "亚丝翠2技能" + "text": "十字斩击" }, - "ico": "jn_icon_002", + "ico": "jn_icon_041", "act": "Skill_2", "Type": 1, "CD": 3, @@ -6545,7 +6545,7 @@ }, "Desc": { "key": "skill_1140032115", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -6556,9 +6556,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003311", - "text": "亚丝翠3技能" + "text": "唤龙:风里飞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_042", "act": "Skill_3", "Type": 1, "CD": 4, @@ -6571,7 +6571,7 @@ }, "Desc": { "key": "skill_1140033111", - "text": "" + "text": "攻击1个敌方3次,每次伤害为自身攻击力50%,每次有40%概率降低目标30%行动值。每点速度提供0.33%额外伤害。" }, "buffid": [], "map": "" @@ -6582,9 +6582,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003311", - "text": "亚丝翠3技能" + "text": "唤龙:风里飞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_042", "act": "Skill_3", "Type": 1, "CD": 4, @@ -6597,7 +6597,7 @@ }, "Desc": { "key": "skill_1140033112", - "text": "" + "text": "伤害提升至55%" }, "buffid": [], "map": "" @@ -6608,9 +6608,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003311", - "text": "亚丝翠3技能" + "text": "唤龙:风里飞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_042", "act": "Skill_3", "Type": 1, "CD": 4, @@ -6623,7 +6623,7 @@ }, "Desc": { "key": "skill_1140033113", - "text": "" + "text": "效果触发几率提升至50%" }, "buffid": [], "map": "" @@ -6634,9 +6634,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003311", - "text": "亚丝翠3技能" + "text": "唤龙:风里飞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_042", "act": "Skill_3", "Type": 1, "CD": 4, @@ -6649,7 +6649,7 @@ }, "Desc": { "key": "skill_1140033114", - "text": "" + "text": "伤害提升至60%" }, "buffid": [], "map": "" @@ -6660,9 +6660,9 @@ "MaxLV": 5, "Name": { "key": "skillname_114003311", - "text": "亚丝翠3技能" + "text": "唤龙:风里飞" }, - "ico": "jn_icon_003", + "ico": "jn_icon_042", "act": "Skill_3", "Type": 1, "CD": 3, @@ -6675,7 +6675,7 @@ }, "Desc": { "key": "skill_1140033115", - "text": "" + "text": "冷却时间减少1回合" }, "buffid": [], "map": "" @@ -6688,7 +6688,7 @@ "key": "skillname_145003011", "text": "盖队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0016", "act": "", "Type": 3, "CD": -1, @@ -6700,7 +6700,7 @@ }, "Desc": { "key": "skill_1450030111", - "text": "" + "text": "在竞技场中,我方全体生命值增加40%" }, "buffid": [], "map": "" @@ -6711,9 +6711,9 @@ "MaxLV": 1, "Name": { "key": "skillname_145003111", - "text": "盖1技能" + "text": "一举两得" }, - "ico": "jn_icon_001", + "ico": "jn_icon_037", "act": "Skill_1", "Type": 1, "CD": 0, @@ -6726,7 +6726,7 @@ }, "Desc": { "key": "skill_1450031111", - "text": "" + "text": "对敌方1个目标造成攻击力30%的伤害,附加自身最大生命在5.5%的伤害,并未自身回复本次伤害100%的生命值" }, "buffid": [], "map": "" @@ -6737,13 +6737,13 @@ "MaxLV": 1, "Name": { "key": "skillname_145003211", - "text": "盖2技能" + "text": "最后的馈赠" }, - "ico": "jn_icon_002", + "ico": "jn_icon_038", "act": "Skill_2", "Type": 2, "CD": 0, - "Target": 3, + "Target": 1, "ChildSkill": { "Id": [ 245003211 @@ -6751,7 +6751,7 @@ }, "Desc": { "key": "skill_1450032111", - "text": "" + "text": "自身死亡时,以15%最大生命值的状态复活全部已阵亡的队友,并为我方全体施加其最大生命值50%的【护盾】,持续1回合。随后提升我方全体目标50%的行动值。该被动效果一场战斗仅能触发一次" }, "buffid": [], "map": "" @@ -6762,9 +6762,9 @@ "MaxLV": 1, "Name": { "key": "skillname_145003311", - "text": "盖3技能" + "text": "天降馈赠" }, - "ico": "jn_icon_003", + "ico": "jn_icon_039", "act": "Skill_3", "Type": 1, "CD": 4, @@ -6778,7 +6778,7 @@ }, "Desc": { "key": "skill_1450033111", - "text": "" + "text": "净化己方全部减益状态,并为己方全体目标回复35%最大生命值的生命,随后施加1回合【免疫】效果" }, "buffid": [], "map": "" @@ -6789,9 +6789,9 @@ "MaxLV": 1, "Name": { "key": "skillname_153001111", - "text": "埃雷特1技能" + "text": "夺命之匕" }, - "ico": "jn_icon_001", + "ico": "jn_icon_043", "act": "Skill_1", "Type": 1, "CD": 0, @@ -6804,7 +6804,7 @@ }, "Desc": { "key": "skill_1530011111", - "text": "" + "text": "对敌方随机3名目标发起攻击,每次攻击可造成攻击力150%的伤害" }, "buffid": [], "map": "" @@ -6815,9 +6815,9 @@ "MaxLV": 1, "Name": { "key": "skillname_153001211", - "text": "埃雷特2技能" + "text": "升龙·斩" }, - "ico": "jn_icon_002", + "ico": "jn_icon_044", "act": "Skill_2", "Type": 1, "CD": 0, @@ -6829,7 +6829,7 @@ }, "Desc": { "key": "skill_1530012111", - "text": "" + "text": "对敌方1个目标发起5段攻击,每段攻击可造成攻击力60%的伤害,并会吸收目标10%行动值。" }, "buffid": [], "map": "" @@ -6840,9 +6840,9 @@ "MaxLV": 1, "Name": { "key": "skillname_153001311", - "text": "埃雷特3技能" + "text": "刃·绝影之掠" }, - "ico": "jn_icon_003", + "ico": "jn_icon_045", "act": "Skill_3", "Type": 1, "CD": 0, @@ -6854,7 +6854,7 @@ }, "Desc": { "key": "skill_1530013111", - "text": "" + "text": "对敌方全体发起3段攻击,每段攻击可造成攻击力的伤害,并附加3回合【速度下降】状态。" }, "buffid": [], "map": "" @@ -6867,7 +6867,7 @@ "key": "skillname_135003011", "text": "漆黑队长技" }, - "ico": "jn_dzj_01", + "ico": "jn_dzj_0021", "act": "", "Type": 3, "CD": -1, @@ -6879,7 +6879,7 @@ }, "Desc": { "key": "skill_1350030111", - "text": "" + "text": "在竞技场中,我方全体效果抵抗增加50%" }, "buffid": [], "map": "" @@ -6890,9 +6890,9 @@ "MaxLV": 1, "Name": { "key": "skillname_135003111", - "text": "漆黑1技能" + "text": "绝命之镰" }, - "ico": "jn_icon_001", + "ico": "jn_icon_054", "act": "Skill_1", "Type": 1, "CD": 0, @@ -6904,7 +6904,7 @@ }, "Desc": { "key": "skill_1350031111", - "text": "" + "text": "对敌方1个目标造成2次攻击力65%的伤害,同时偷取目标2个增益状态,并降低目标本次伤害100%的生命值上限" }, "buffid": [], "map": "" @@ -6915,13 +6915,13 @@ "MaxLV": 1, "Name": { "key": "skillname_135003211", - "text": "漆黑2技能" + "text": "噩梦缠绕" }, - "ico": "jn_icon_002", + "ico": "jn_icon_055", "act": "Skill_2", "Type": 2, "CD": -1, - "Target": 3, + "Target": 1, "ChildSkill": { "Id": [ 235003211, @@ -6933,7 +6933,7 @@ }, "Desc": { "key": "skill_1350032111", - "text": "" + "text": "无法获得任意增益和减益状态,受到的所有伤害降低10%。同时,每次被施加增益或减益状态时,自身获得1层【梦魇之惧】;每有1个队友死亡时,自身获得10层【梦魇之惧】。最多可叠加50层。每次战斗中首次受到致命伤害时,免除本次死亡,并根据当前【梦魇之惧】层数回复自身生命值状态,每层回复自身1%最大生命值状态。" }, "buffid": [], "map": "" @@ -6944,9 +6944,9 @@ "MaxLV": 1, "Name": { "key": "skillname_135003311", - "text": "漆黑3技能" + "text": "永恒梦魇" }, - "ico": "jn_icon_003", + "ico": "jn_icon_056", "act": "Skill_3", "Type": 1, "CD": 5, @@ -6959,7 +6959,7 @@ }, "Desc": { "key": "skill_1350033111", - "text": "" + "text": "偷取敌方全体各1个增益状态,并对敌方全体目标造成攻击力110%的伤害,并回复本次伤害30%的生命值。" }, "buffid": [], "map": "" diff --git a/bin/json/game_stroy.json b/bin/json/game_stroy.json index 144292232..b5089c665 100644 --- a/bin/json/game_stroy.json +++ b/bin/json/game_stroy.json @@ -4283,29 +4283,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4339,29 +4339,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4395,29 +4395,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4451,29 +4451,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4507,29 +4507,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4563,29 +4563,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4599,7 +4599,7 @@ "type": 2, "bg": "jqdh_bg01", "place": 0, - "speak": "25001", + "speak": "25004", "listen": "", "des": "啊哈!哈哈哈哈!", "modelstatetarget": "", @@ -4619,29 +4619,29 @@ "z": 0 }, "positionL": { - "x": 0, - "y": -1.2, + "x": -0.1, + "y": -0.8, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4675,29 +4675,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4731,29 +4731,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -0.8, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4787,29 +4787,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4843,29 +4843,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4899,29 +4899,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -4955,29 +4955,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", @@ -5011,29 +5011,29 @@ "z": 0 }, "positionL": { - "x": 0, + "x": -0.1, "y": -1.2, "z": 0 }, "revolveR": { "x": 0, - "y": -180, + "y": -150, "z": 0 }, "revolveL": { "x": 0, - "y": -180, + "y": -210, "z": 0 }, "sizeR": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "sizeL": { - "x": 0.8, - "y": 0.8, - "z": 0.8 + "x": 0.9, + "y": 0.9, + "z": 0.9 }, "perf": "", "cg": "", diff --git a/bin/stup.sh b/bin/stup.sh index b24bc4c4e..ceed5aff4 100755 --- a/bin/stup.sh +++ b/bin/stup.sh @@ -4,12 +4,11 @@ start(){ echo "starting $SERVICE..." - - num=`ps -ef | grep $SERVICE | grep -v grep | wc -l` + num=`ps -ef | grep conf | grep $SERVICE | grep -v grep | grep -v /bin/bash | wc -l` if [ $num -eq 0 ] then - nohup $CMD > /dev/null 2>&1 & - #nohup $CMD > $SERVICE.log 2>&1 & + # nohup $CMD > /dev/null 2>&1 & + nohup $CMD > $SERVICE.log 2>&1 & if [ $? -ne 0 ] then echo "start failed, please check the log!" diff --git a/cmd/v2/FyneApp.toml b/cmd/v2/FyneApp.toml index 4e9b49fc0..797d48dc4 100644 --- a/cmd/v2/FyneApp.toml +++ b/cmd/v2/FyneApp.toml @@ -4,5 +4,5 @@ Website = "http://legu.cc" Icon = "app.png" Name = "RobotGUI" ID = "cc.legu.app" - Version = "1.0.5" - Build = 5 + Version = "1.0.7" + Build = 8 diff --git a/cmd/v2/main.go b/cmd/v2/main.go index 1d47cc07e..b6e45c4a9 100644 --- a/cmd/v2/main.go +++ b/cmd/v2/main.go @@ -37,6 +37,11 @@ var ( func init() { _ = os.Setenv("FYNE_SCALE", "0.9") var err error + // initialize logger + if err = setupLogger(); err != nil { + fmt.Println(err) + os.Exit(1) + } if err = setupConfig(); err != nil { fmt.Println(err) @@ -47,13 +52,6 @@ func init() { fmt.Println(err) os.Exit(1) } - - // initialize logger - if err = setupLogger(); err != nil { - fmt.Println(err) - os.Exit(1) - } - if err = setupWsConn(); err != nil { fmt.Println(err) os.Exit(1) @@ -67,13 +65,14 @@ func init() { func main() { // create a new ui - app := app.NewWithID("protocol-test-tool") - app.SetIcon(theme.ResourceIconPng) + app := app.NewWithID("df-toolkit") + app.SetIcon(theme.ResourceAppPng) appUI := ui.NewUI(app, configService, connService, pttService, obs) // logLifecycle(app) //创建enter w := fyne.CurrentApp().NewWindow("传送门") + w.SetIcon(theme.ResourceAppPng) // 检查版本 if app.Metadata().Build > 1 { checkVersion(app, w) @@ -81,12 +80,12 @@ func main() { w.SetContent(container.NewGridWithColumns(2, widget.NewButton("工具", func() { - toolWindow := ui.NewToolWindow(appUI) + toolWindow := ui.NewToolWindow(appUI, w) toolWindow.CreateWindow(common.APP_NAME, 1366, 768, true) w.Hide() }), widget.NewButton("登服", func() { - mainWindow := ui.NewMainWindow(appUI) + mainWindow := ui.NewMainWindow(appUI, w) mainWindow.CreateWindow(common.APP_NAME, 1366, 768, true) w.Hide() }))) @@ -96,6 +95,7 @@ func main() { w.SetCloseIntercept(func() { app.Quit() }) + logrus.WithField("version", app.Metadata().Version).Info("app starting") w.Show() appUI.Run() diff --git a/cmd/v2/service/connService.go b/cmd/v2/service/connService.go index 71e305d7d..61aa5fb00 100644 --- a/cmd/v2/service/connService.go +++ b/cmd/v2/service/connService.go @@ -26,6 +26,7 @@ type ConnService interface { SendMsg(msg *pb.UserMessage, rsp proto.Message) (err error) ReceiveMsg() (code pb.ErrorCode, msg *pb.UserMessage) ListenerPush() + Close() } type ConnServiceImpl struct { @@ -173,3 +174,9 @@ func (c *ConnServiceImpl) handleNotify(msg *pb.UserMessage) (code pb.ErrorCode) } return } + +func (c *ConnServiceImpl) Close() { + if err := c.ws.Close(); err != nil { + logrus.Errorf("close ws conn err: %v", err) + } +} diff --git a/cmd/v2/theme/icon.go b/cmd/v2/theme/icon.go index 02db64909..b21c57a52 100644 --- a/cmd/v2/theme/icon.go +++ b/cmd/v2/theme/icon.go @@ -10,3 +10,11 @@ var ResourceIconPng = &fyne.StaticResource{ StaticContent: []byte( "\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x01\xf4\x00\x00\x01\xf5\b\x06\x00\x00\x00\x00\x8a\f/\x00\x00\x80\x00IDATx\xda\xec\x9dw\\\x94\xc7\xf6\x87\x11\xe9b\xef1j\xec\x8a\x05, \x88\b\xa2 \xbd\xf7\x0e*6z\xb1$\xfa\xb3\xc4\xdeMb\x12\xd3n\xcaM\xbb7\xbd\xaa\xb1\xa7\xde\x14c\xec\xdd\xd8;\xbd\xb7\xefoμ\xfb\xaeh\xc0.\x12s\xfex>/\xbb\xc0\xb2\xbb\xcc\xce3g\xe6\xcc\x19\x9d\xa2\xa2\"\x1d\x86a\x18\x86a\xfe\xde\xf0\x9b\xc00\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86a\xa13\f\xc30\f\v\x9da\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\f\xc3Bg\x18\x86a\x18\x86\x85\xce0\f\xc30\f\v\x9da\x18\x86a\x18\x16:\xc30\fð\xd0\x19\x86a\x18\x86a\xa13\f\xc30\f\xc3Bg\x18\x86a\x18\x86\x85\xce0\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86a\xa13\f\xc30\f\v\x9da\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\f\xc3Bg\x18\x86a\x18\x86\x85\xce0\f\xc30\f\v\x9da\x18\x86a\x18\x16:\xc30\fð\xd0\x19\x86a\x18\x86a\xa13\f\xc30\f\xc3Bg\x18\x86a\x18\x86\x85\xce0\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86a\xa13\f\xc30\f\v\x9da\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\f\xc3B\xe77\x81a\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86a\xa13\f\xc30\f\xc3Bg\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86\x85\xce0\f\xc30\f\v\x9da\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86a\xa13\f\xc30\f\xc3Bg\x18\x86a\x18\x86\x85\xce0\f\xc30\f\v\x9da\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86a\xa13\f\xc30\f\xc3Bg\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86\x85\xce0\f\xc30\f\v\x9da\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86a\xa13\f\xc30\f\xc3Bg\x18\x86a\x18\x86\x85\xce0\f\xc30\f\v\x9da\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86a\xa13\f\xc30\f\xc3Bg\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86\x85\xce0\f\xc30\f\v\x9da\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86a\xf8M`\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86aX\xe8\f\xc30\fð\xd0\x19\x86a\x18\x86\x85\xce0\f\xc30\f\v\x9da\x18\x86a\x18\x16:\xc30\f\xc30,t\x86a\x18\x86a\xa13\f\xc30\f\xc3Bg\x18\x86a\x18\x86\x85\xce0\f\xc30\f\v\x9da\x1ey6oތ/\xbf\xfc\x12\x1f\u007f\xfc1\xfe\xf5\xaf\u007fI^\u007f\xfdu\xbc\xf1\xc6\x1bx\xf3\xcd7\xb5\xbc\xf5\xd6[\xf8\xe2\x8b/\xb0q\xe3F\xf0\xfb\xc60,t\x86a\x1e0_\u007f\xfd\xb5\x14\xf2\xd3O?\x8d\xb1c\xc7b̘1\x184h\x10z\xf5\xea\x85\xc7\x1f\u007f\x1cmڴAӦMѨQ#\x18\x1b\x1b\xc3\xd0\xd0\x10\r\x1b6\x84\x8e\x8e\x0e\xf4\xf5\xf5\xa1\xa7\xa7'o\xeb\xea\xeaJ趁\x81\x81\xfc9\xfa\x9a\xae\xf4\xbbM\x9a4A\x8b\x16-\xf0\xd8c\x8f\xa1{\xf7\xee\xe8ׯ\x1fF\x8d\x1a\x85\xc0\xc0@$&&b\xfe\xfc\xf9X\xb7n\x9d\x1c(\xf0\xff\x85aX\xe8\f\xc3\xd4\xc0\xdbo\xbf\x8d\x85\v\x17b\xf2\xe4\xc9\xf0\xf4\U00104e79\xb9\x14+\t\xb8A\x83\x06R\xce*t\x9b\x04M2\xae~\xbf\x8a*n\xa2\xa6\xefW\x87\x1e\xa3\xb6\x9f\xab~?\r\f\b\xf5\xef6n\xdc\x18\xad[\xb7\x86\xa5\xa5%|||0u\xeaT\xbc\xf0\xc2\v\xf8\xf4\xd3OY\xf6\f\xc3Bg\x98\u007f\x06\xaf\xbc\xf2\nƏ\x1f\x0f\a\a\a\xf4\xe9\xd3G\x8a\x9b\xa2䚤\xaaF\xdc7\x8a\x97\xa4\xae\xdeV\xbf\xaeI\xcct\x1fIX\x15\xb2*e\xf5\xfb\xf4u\xf5\x01\x83\xfa\xf3գ\xf9\x1b\u007fF\xfd9u@Q\xfd{\xf4\xb5*z\x1a\x98dff\xe2\xf9\xe7\x9fg\xc93\f\v\x9da\xfe\xfe\xd3\xe5K\x96,\x81\x9b\x9b\x1bڷo\xaf\x95)]\xab\x8bS\x95.ɛ\xa6\xc3o\x14\xa8\xfa;FFFrj\xbcU\xabVh۶\xad\x1c\x10\f\x1e<\x18#G\x8e\x84\x97\x97\x17\xc2\xc2\xc2\x10\x1f\x1f\x8f\xd4\xd4T̘1\x03s\xe7ΕS\xe5\x8b\x17/Ʋe˰t\xe9R,X\xb0\x00\xb3g\xcf\xc6SO=\x85\x89\x13'\"66\x16\xc1\xc1\xc1\xf0\xf0𐃌\x81\x03\a\xa2k\u05ee\xf2\xf1i:\x9f\xa2q\x92\xb7:pP\xbf\xae.w\x9a\xb2\xa7\x9f\xabi`B?\u07fcys\xf4\xec\xd9\x13\xee\xee\xee\x987o\x1e\xb6l\xd9\u0092g\x18\x16:\xc3\xd4_h}yѢEr\x9d\x9b$wc\xf4Jr\xab\xbe\xae]\xd3\xf4\xb6\x89\x89\x89\\\x1f\xb7\xb7\xb7\x97\xeb״n>s\xe6L\xbc\xf4\xd2KX\xbf~\xfdC\x11\xe1'\x9f|\"#mz\x1eqqqr\x80bkk+\xc5߲e\xcb\xeb\x9e\u007f\xf5ץ\xae\xe7߸t@\xef\x01\xad\xd7\xfb\xf9\xf9\xc9AǦM\x9bX\xf0\f\xc3Bg\x98\x87\xc7\u007f\xfe\xf3\x1f\x19\xf9\x86\x84\x84H\tW\x8fPՈ\x9a\xe4uc\xa4MS\xe9\x14њ\x99\x99\xc1\xc9\xc9I&\x9d\xadY\xb3\x06\x1f}\xf4\xd1\xdfRl\xef\xbf\xff\xbe\x9c\x89\xa0\x1c\x00z=O<\xf1\x84|/n\\\x06Pg#h\x16\x82\x06\xbd\xfc\xf2\xcbr\x1d\x9d\xb2\xe5齺qpS\xfd\xfd\xa1A\x8ez\x9b\xde+\x9a\xfe\xa7\xdf}X\xb3\x12\f\xc3Bg\x98\xfb\xc0\x8a\x95\xab1h\xb0%Z\xb7i\a#\xe3F\xa2\x93\x17\x91^\x83\x860m\xdc\x14\x83\x87Xa\xe6\xac\xd9ؼe[\x9du\xf44%\x9c\x92\x92\"\xb7s\xdd(#\x9aJ\xa6H\x9c\"nuZ\x99\xc4N§\xe9i\xca^\xe7)e\x05\xda\xf3N\xdb\xef\\\\\\ХK\x179\xed\xaeJ\x9e\xa2\xf7\x1b\x85O\xef'\xbd\x97VVV2\x93\xbeN\x97O>\xf9\f\x89I)\x18\xed4F\xb6C\xd9\x06\x05\xfa\x06F\xe8\xd7\xdf\x1c\xbe~\x012\x17\x81\xff\xaf\f\v\x9daj\x80:PU\xe0\x8dL\x9bh;Q\xc2\xd8\xc4TBbo\xa0\xab'\xbf\x1f\x1d\x1d\xfd\xc0:TJ\xdcJOO\x87\xb5\xb5\xb5V\xd4$\x1c\x9a*Vţ^iʘ\xf6\x84Sb\x19%\x9e\xf1\xff\xf2\xf6\xa7\xeaI\xf0\x94s@\tx4\x05O3\x1c4@\xba1\xf7@]\xaa\xa0\fz\xcaSxP\xcfi\xc3\xc6M\b\t\r\x97\xe2\xd6\xd37Զ?\x93F\x8d\x95\xf6W\xadM\xd2`\x83\x92\a)\xc1\x90\xff\x9f\f\v\x9da\x04\xff~\xfb]4m\xd6Bv\x92\x8d\x9b4\xd3J\x9d\"\xf2\xea\x1d(\x89\xdc\xc0\xd0\x18\r\xf5\f\xe4\xd7\xd4\xe1w\xec\xd8\xf1\xben\x8dz\xee\xb9\xe7\xe0\xe8\xe8(\xa5R}\xfa\x9cnW\xdf\xfbM\xd1e߾}\x91\x96\x96Ɲ\xf9}\xe2\x9dw\xde\xc1\x94)SdF\xbc\x9aTW\xfd\xfdW\xd7\xdc\xd5\xe4Aʚ_\xb1b\xc5}{\xff\x9f\x9a\xf9\u007f\u05f59jg\xd5۞nC}\xed\xd7J\x1b\xbd6\x9b@\xb3\b\xfc?dX\xe8\xcc?\x9a\x8c\xe9OA\xa7\xa1\xe88\x1b\xe8\xa1I\x8b\xd6hhh\"\xbf\xd650\x96זm\x1fC\xf7\xde}\xd1\xee\xf1\xceڟ#\f\x8dL\xb4\x1d\xbc\xa9\xa9\xa9\xdc\x0eu\xb7ρ\n\xa2Pb\x1b=\x0e=\x9eZI\xad\xfa\xfem\x929E\x88\x16\x16\x16\xf7\xf4\xb7\x98\xdb'!!Afӫ\x11;E\xeb\xea\x169\xba\xaa\xf7u\xeb\xd6Mn\xd7\xfbꫯ\xee\xfa\xff\x12\x17?I۶\xdav褴5=C\xe8\x195\x82I\x93\xe6hڲ\x8d\x84\xbe\xa6\xfbH\xeeT\xa1\x8ff\x0ehvA\x15\xfbk\xaf\xbd\xc6m\x83a\xa13\xff<^~\xe559\xb5I\x9dh\xa7\xae=\xc4UD@\r\f\xd1w\x905\xba\xf5\x1b\f{\x17o8\xba\xfb\xc1\xc1\xd5\avΞ\x181\xc6\vC\x1dƠC\xf7\xbe\xa2\xc3U\x84O\x85Y\xd4Δ2\xc5\xef\xe4\xef/_\xbe\\;\xa5NҦ\xa8O\x9d^W\a\v\xb4\uf6e4B\xfb\xb7\xf9\u007f\xf6pضm\x1b(\x11\x91J\xdeVO\x9e\xa3\xffQ\xf5uw\x1a\x90\xd1\xfa\xfc\x9dJ5=c\xaa\x94w\x03}#\xe8\x9b4\x91mРqKt1\x1b\bsk{\xd9\xf6F{\x06\xc0\xd9;H\xb6G+{g\xd9F\x1b\xb7h#\xdb \t^\x9da\xa2<\v*\xd5\xcb\xff7\x86\x85\xce\xfccؾ};L\x1b\x19\xcbNXN\x9f\x8b\x8eѸE{\f\xb0\x1d\r{\xef\b\f\xf3\b\x83\x95k\b\x86\xb8\x86i\xa1\xdb\xc4P\xd7`\fs\xf1G\xa3\x16J\xb2\x12E\xeb\xf4\x18\xf4X\xb7\xf3\xb7SR\xd3ѭ{Om2\x16\x89\\-\xa0\xa2N\xe7v\xee\xdc\x19$|.\x82R\xff\x12\xebh{\x1c\x15թ.\xf3\x1b\xc5N\xdb\bog&\xe5ŵ\xab\xd1PWG\x0e,M\x9a\xb6\x84\x8e\xae1t\x9b\xb6\xc3 Go\xd9Ϊ\xb7\xc1\xea\xed\xcf\xda%\x10\x8e>\xe1\xe8\xda\xcf\x12\rL\x9a\x8b\x01\x81\x89\x8c\xde\xe9q:<֎\xdb\f\xc3Bg\xfe9PU3\xdd\x06\x9a\xbd\xd9z\x06h\xd9\xeeq\xf4\x1ed\v+g\u007fX\xbb\x87a\xb0[\x04\x06\xba\xc5\xc0\xc2\xfd\x1a\x03ݢ$\xf4=\xeaT\a\x0f\x1f\x85\x8e2\xb2\xd7S\"}!wJ\xb0\xaa-S=*:\x16-[)Q\x95\\\xaf\x17\x12\xaf\x1e\xf1\x91\bh]\x96\xf6\x97\xf3\xff\xa8\xfe\xb3v\xedZ\xf8\xfb\xfb\xcbY\x14u\xeb\xa0\xfa?UgZh\xbb\\rrr\xad\xff\xcf\x116Bȴ^od\"#\xf3\x96O\xf4\xc1\x90Ѿ\xb0\xf3\x89ִ\xc1\xa8\x1a\xdb\x1f\t~\xa8[\xa8\x1c|\xf6\x1c<\x1c\xfa\xcdD\xbb\xd2\x15mPO\x1f\r\x1b\xe8\"%a\x12\xb7!\x86\x85\xce<\xfaPE\xb5kEGD\x84ܸ\x05\xfaY\x0e\x87\xa3w\b\x86{\x89N\xd49\x18\xe6\xa2äN\xd4\xdc=\xb6V\xa1\x8f\xf1\x15Q\x93\xdd(400\x85\x9eqce\xddS<ކ\r\x1b\xb4\x9d\xe9G\x1f\xfe\x17\xbe\xde>\x9a\x04+%\xc1\x89\xb2\x97\x95\x04'\x1d\xb9\x16K\xd3\xee\x94m\xcd\xff\x9b\xbf/\xb4g\x9d\n\xf5T\xaf\x83O\x19\xe8\xea\xd2\tͺ\xd0 \xb2\xfa\x16\u0095K\x17\xa1\xa1Z\x8f^O\xb4\x0f}S\fq\xf4Ĩ\xc0\xb1\xb0\xf6\x8c\xbaN\xe67\xb6?\xa2\xaf\x83/\\\xc2&\xc2\xd65\x00\xed{\x0e\x80\x8eA\x13\xd1\x16\x8de\x1bkҸ\x11\xb7'\x86\x85\xce<\xfaP\rq\x9d\x064\xcdi\"\xd7,\xdb?\xd1\x13V\x0e\xaep\xf4\x89\x94ѹ\xb9s\b,\\#\xa5̥\xd0\xddb\xb5\x1d\xaa\x1a\x1dY\t\xa1\x8f\xf4\fŠ\xe1Nr\xbd]G\xbf\x91\xe8LE\x94\xa5\xab\x8f\xf1\xf1\x13e\xa9T\x8a\xb6\xa9cU;\xf46m\xdbk\xa5Nk\x9e\xa1\xa1\xa1\xa0\xc3R\xf8\u007f\xf2\xe8@\xeb\xd7T\xc8\xe6\xc6\xea|4p\xa3A$E\xf3\x94\x00\xf9\xc1\a\x1f\xc0v\x98\xb5\xb2\x16oh,\xf37h\x86h\xa4o\x14\xfa\xd9{)m\xd0=\xe6\xa6B\x1f\xe0\x14\x8c\xa1\x1e\x91\x184\xda\x0fC\x9d|кso\x99\xdba\xd8H\x991xz\xde\x1cn[\f\v\x9dy\xb4\xa1\xb3\xb6\xe5\x1e_=#\xb4|\xbc\x1b\xfaYً\x0e\xd1\vV.A\x18\xec\x12\xaa\xc8\xdc-Zʼ\xbfG\xac6J\xbf^\xe8!\x18\xe6\x16\f\xab\xd1ް\x1a偆\x8d\xdb(\xeb\x9f\xc6M\xa1ol\xaa)\x06\xa2D\xe0͚5\xbb.r\x9b49\x81;\xda\u007f\x00th\rM\xb9\xd3T|\xf5\xfd\xed$v\x99L٠\xa1\xb2\xabB\xb4CZ\a\x1f\xe5\x1b\x81\x11>Q\xe8\xef\xe8/\xdb\xe0\xcdf\x88\bk\xdf\xf1\xe8\xef\x1c&\u007f\xde9$\x1e\xbd-G\xc86hh\xdaL\x0e\x1a\x1dG\xdas;cX\xe8̣\x8d\xb2=LW\xaeY\xb6\xef\xd6\x0f6\xceްq\x152w\x0e\xc4\x10\xf7H\f\xf6\x1a\x8b~.\xa2cu\x1f+\xa9M\xe8\x96c\x02\xe5\x1a\xa6\xb9\xbd\a\xda\xf6\xb0\x10\x9d\xa9\x88\xc6\xf5\x1ai\xb2\xe5\xf54\x85At\xb4k\xa9\\\x00\xe4\x9f\xc7֭[\xe5!7\xaa̩\xed)\xf5\x05t\x95\\\n\xa3FR\u008f\xf5\xb2\x90\x03DsG_8\x04O\xc2\x00ר\x9b\xce\x10ѕ\x06\x9d\xfd]\xa3\xa5\xfcG\x06\x8c\x85\x85\x83't\f\x9b\xa1\x81\x11e\xca\xeb\xcajx\xfc?`X\xe8\xcc#\v\x1d@\"O\xe4\xa2\xceTt\xa4\xedz\x0e\x94\x19ö\x9e\xe12:\x1f\xec\x11\x83A^\xe3\xd0\xd75\xf6\x96B\xa7\x01\x00%&\x91؟\xb0\xb0\x83\x8e\xbe\xe8HMZB\xafQs\xb9\xa7\x9d\x8a\u007f\xf4\xeamV\xe7eC\x99\xfa\t\x1d\x82C\xe7\xb5\xcbB5T\x18F\xdfX\bX\xb4\x19]S\xf4\x1b\xe6\x84!\xce\x010\xb3\xf7\xc1\xf0\xc0I0s\n\xbb\xe9\f\x11]{\x8f\x0e\x93\xeds \xfd\x8cs\x88ܙaھ\xab\xccx\xa7\xf6ݴisnw\f\v\x9dytY\xbdz\xb5\x14\xbai\xb3\x96\":j\x8ev}\x06\xc3\xd2)\x006\x1e\xe1\x18\xe4\x1a.\xa3\x1e\v\x8f8\f\xf0\x18W\x8b\xd0I\xe6\x9a)w\xef\x18\x989x\xc1=\"\x01\xad{\f\x82N\xc3&\xcaԻ\x88\xfc\xf5\x8cM1{\xce|\xeeP\x99\xbf\x90\x94\x94\xa4\xccވv\xa2c\xd0T\xb4\x1b!\xf4᮰\xf7\x8b\x85\xa5G\x14\xccF\x05\x8b6H\"\xaf\xbd\xfd\xc9iw\xef\xf1\x18\xec;I\xb6\xd7\x1eb \xe0\x14\x14\x8f\x96]\xcc\xc4\xe3\x1a+S\xf97$h2\f\v\x9dy\xb4\x8aɼ\xfc\xb2\xdcZ\xa4D\xe8\x8dЪ\x879\x86\x8c\xf6\xc7@\x81\xdc&$:Ҟ\x8e!\xb0\nH\x90R'\xa8Ô\xeb\x99.\x11B\xfa\xa1\xb0v\x8f\x80\xadW\xa4LH\xb2\x12Q\xd1\x10\xa7@#\xbca\xe9\x15'#\x1f\xea(\azO\x80\xb9\xe7x\xad\xd0\xd5)\xcfAcB0HD\xf5\xd4\x01\xf7\x1d\xe1\t\xa7\xe0\xf1\xe8\xd0\xd7Zv\xcc2\xe2\x12B\xffj\xe3f\xeeH\x99Z\x99\xbf`\x91\x92kAS\xee\x06\xcd\xd0\xd5\xc2Vf\xab\xab\xcb>\xb73\xe5\xde\xc7)\x1c\xc3BR\xd0e\xb8\xaf\xcc\xfd\xb0\xf7\x8d\x86Q\xebNJ\xa59\x93\xc6h۶=\xb7A\x86\x85\xce<\xdaP\x82\x92rr\x9a!\x1a4j\x85\xe1\xae~p\x0e\x1a\x8b>\xc3\xdda\xe5\x19\x8d\xe1\xc1\t\xb2\xb3\xa4ut3\x97\x18\x99 G\x1d\xea\x10\xcfX\x19AY\x89\b\xdd\xd2%Xf\xc5\xd3T\xa9\x83O$\x8c\xdbv\x95іA\xd36rm\x94\xdfg\xe6f|\xf6\xf9\x97\xca,\x91f`\xd9BD֎~\xd1r\xa6\x88\xd6\xc3)1\xf3VIq\xfd]\"\xe1\x18\x95\x81.ü0\xcc3B&v\xaa\x03JJ\x8a\xa3\xba\xff\xfc^3,t\xe6\x91\xc6\xd5\xd5Un\x192j\xdc\\v\xa6\xdd\a\f\x85\x93\xbfR,\xc6|t\xa0\x9cZ\x1f\xea7A\x8a\xbc\xaf[\xb4\x9c\xf2\xa4\xa9x\x8a\x9cH\xf84\xd5Nk\xeeTU\xce\xde3\x04]\xc4\xef\x93\xcc\xf5\x1a\xb7\x82a\x93V\xe8\xddϜ;R\xe6\x964k\xdeRs\b\x90\xbe\xdc\x1d\xe1\xe0\x15*\x933i\xa6\x88ښ\xb9\xa6\xed\xc9-\x94\x9a)we\xda]\xc9\xf7\xa0٤\x01c¥\xe0\xa9\x18\xcd\xe3}\x06\xc9\xc71n\xa2\xd4u\x1f?.\x8e\xdb!\xc3Bg\x1em\xa8\x98\v\x15\x961\x96\aa\xe8\xa3E\xfbβ@\x8c\x93\u007f\x8cLv\xebj#\"u\xef\xb12\xdb}\x88O<\xac|&ȈIv\xa8cB崨\xb5{(\x9c|E\x84\xe4\x11\xa8D\xe5\"*\x92\x1d\xa9\xae>\x9e\x9e\xbf\x90;R斄\x86\x04\xc9*qt\xd69\xb5æ\xed\xbb\xcam\x90\xb4\x05\xad\xa7\x9d\xb7ܺV\x1d\x1ah\x12\x03]\xc2$\x94@\xd7\xdb\xceK\xca\xdc\xdc\xce\x05\xfaM\xdbAǰ\xb1\xac:G\xf5\x0f\xa8J!\xbf\xcf\f\v\x9dy\xe4\xe9ԩ\x93\xb6\xf4\xab\x81q\x13\xb4\xea\xd8\x1d\xc3\xc6\xf8`t\xd08Y\xa8c\xb0g\x94\x9cҤ)\xcfA\x9eq\n\xee\xd1rړ:R\x8a\xa4F\xba\a\xe0\x89^\xfd\xa5\xcce\xb4\xdf@\x0f\xed\xdaw\xe0N\x94\xb9-\xb6o\xde(K\xbf\xcaS\xf5Z\xb4\x96\xb3E\x9d\xfa\r\x85[\xc4d\xb9\xac\xa3-pTK\x84N?C\xeb\xe6v\xeeA0l\xf58\x1a\x9a\xb4О\x13\xe04ڑ\xdb!\xc3Bg\xfe\x19,[\xb6\fM\x9b\x98j\xa5\xde\xd0\xc8\x14\x8fu\xef\x0fK'?\xe5T+\xcfh\xf4w\x8e@_\xe7p\xf4\x1b\xa3d\xbf\x0f\xf5\x19'\xa1\xce\xd4\xc2\xd1\a\x9dz\r\x10\xbf\xd7Hv\xa2\x14eQ}\xf6\xf9\xf3y\xab\x1as\aQz\x80\x8f<\x9cE\x96\x05\xa6\xc3U\x8c\x9a\xa3\xfb\x90\x91\xb2\x041%\xba\xc9A\xa4h{\x04}M\xd0\xfd\x96n\xe1\x182&\bC\xc7P\x1dwsY\xf2ՠQs\xb9vަUk\xbc\xf3濸\x1d2,t\xe6\x9f\x03E1z\r\x95S\xb1\xe8,j\x8a\xb4[u\xea\x85\x01\xc3\xc7\xc8b1\x0e\xfeqr\xad\x9c:N\xba\x8e\xf0\x8d\x81\x8d{(zٌA\xfb^\x83d'J'\xb5р\x80\x8eO\xb5\xb4\xb4\xe4N\x94\xb9czv\xed\xa2\x94\x05\x96K6\xc6\xd0\xd1k,w_P\xa1\x18jwա\xfb\b[\xf7\x10\xf4\x1d:\n\xcd;tW~G\f\x06\xe8\\t\x1aT\x8e\x8d\x8b\xe1vȰЙ\u007f\x1eVVV\xca\xe1)\xb4\x8eI\xe58\xf5\f\xe5\xc9iMZ\xb6E73\v\xf4\x1bl\x03\x8b\xa1v\x18b;\x12\xdd\xfb\x0e\x94Ǭ\xcaCX\x1a\xe8\xcbLyYuN\xfc>\xd5\xed\xe6\xf7\x93\xb9\x1b\xbeٰQ\x96i\x95'\xff5i\xae\x14\x85\x11\xed\x8bj\xb2\xb7\xe9\xd8\r\x1d\xbb\x9ba\x80\xa5-\x06\x0fs\xc0`\xeb\xe1\xe8ާ?\x1a\xb7h#~^_\xe6l\xd0`T\x1dX\xc6\xc6\xc6r;dX\xe8\xcc?\x13ggg\xedy\xd6D\x9b6m\x945Mq\x9fr\xe4\xe9\xb5S\xb3(\x81\x89\xee\xa3mo\xf4}U\xe6nnn܉2\xf7L\x8f\x1e=\xb4u\xff\x95z\xefJ\x9b\xa3\xc3]\bjo\u05ce\xfdUN\xf0Sۮ\xdaV\xfd\xfc\xfc\xb8-2,t\xe6\x9f\xc5\u007f\xfe\xf3\x1ft\xed\xdaUv\x94\xd4\x11\xb6k\xd7\x0e-Z\xb4\xb8\xeeT4\xb5\xb3\xa4\x8e\x93ε\xa6\xcc\xe1\xea\x92oٲ%\x16,X\xc0\x1d(sߠ3\xd3e\xadw1hT\a\x8c\xaa\xc4\xe9*\xcfN\xd7\f8U\xe1\xd3U__\x1fʡC:077\xc7g\x9f}\xc6\xed\x92a\xa13\x8f>\xb3g\xcf\xd6v~$h\xb5S\xf4\xf6\xf6FFF\x86\xecL\xe9\xfbjGڪU\xab뢢\xfe\xfd\xfbcҤI\xf8\xf2\xcb/\xb9\xd3d\xee;۶m\x03\xd5J\xa0cw\xa9\xbd\xa9\x83H*Y\xac\xb6U\x1ap\xf6\xea\xd5\vs\xe6\xcc\x01\x1d\a\xac\x0e0\xd56Jdz\xae\\\xb9\x92\xdb'\xc3Bg\x1e]bbb\xb4\x11\x8d\xdaAR\xb43w\xee\xdc\xeb:\xbf\x0f?\xfc\x10\x01\x01\x01\xb2slڴ\xa9\x8c\x96\xfc\xfd\xfd\xf1\xde{\xefq'\xc9\xd4\x19\xff\xfe\xf7\xbfA\xcbBꀲy\xf3\xe6HNN\xc6\xd7_\u007f\x8d\x1b۵\xdcӮ\x99\xaaW\u007fvʔ)\xdc^\x19\x16:\xf3\xe8ѭ[7\xd9\xd1Q\xf4\xa2vz\x14\x05ё\xaa5\xfd}\xba\x9c1\xa26H\xb3E\xef\xbf\xff~\x8d\xed\x90N\x12$\x89\xd3\f\x13\xfd\x9c\xba\x9c\xe4\xe4\xe4\xc4\xed\x96a\xa13\x8f\x06\xaf\xbd\xf6\x9a\x948M\xa1\xab\x82\xa6i\xcc[e\xa6\xd3^u\x8a\xe4\xe9g\xe9w\xa9\xc3\xe4\xf7\x93\xa9khy\xa7zr\xe6W_}Uk;ܸq\xa3\xac\xe1N3J\x14\xb1\xabKKݻw\xc7֭[\xb9\xfd2,t\xe6\xef\xcb\xe2ŋe2\x1bujj\xd2\x1b\xad?FEEݲs{\xe1\x85\x17\xae\xcb,\xa6\xdb\xfc\x9e2uM||\xbcvm\x9c\xda\xee\x96-[n\xd9\x0e\x83\x83\x83\xe5\xefP\xfb\xa5A,ɝf\xa8^}\xf5Un\xc3\f\v\x9d\xf9\xfbA\xd2V#rU\xe64%\xf9\xdcs\xcf\xddV\xa7\xf6\xec\xb3\xcfj\a\x00t]\xbbv-w\x86L\x9d3q\xe2D\xd9\xfeh\n\x9df\x8bn\\?\xaf\x8d\xa7\x9ezJ; \xa5|\x11u\x89\xe9v\xdb?ðЙzAhh\xe8u\x99\xeat\xa5\xe2\x1d\x94\xecv\xbb\x8f\xc1Bg\xfe\xceB'>\xff\xfcs\xed\xf4\xbb\x9aCB<\xf9\xe4\x93ܖ\x19\x16:S\xff\xb1\xb5\xb5\xd5f\xb2\xd3t;MU\x0e\x1e<\xf8\x8e;0\x16:\xf3w\x17\xba\n\xd5\\P\x93;խo\x11\x11\x11ܞ\x19\x16:S\u007f\x190`\x80\xb6\xf0\x86\x1a\x9d{zz\xdeU\xc7\xc5Bg\x1e\x15\xa1\x13={\xf6\x94\xd1:U\xa2S#\xf5\xbb\xfdl0\f\v\x9dy\xa0\xb4o\xdf^vR\x8f?\xfe\xb8v\x9a=..\xee\xae;,\x16:\xf3(\t\x9d\xb0\xb1\xb1\xd1\xee\xf2\xa0%)z\xccQ\xa3Fq\xbbfX\xe8L\xfdA=ߜ\xe4KS\xed\xf4\xf5\xb4i\xd3\uea63b\xa13\x8f\x9a\xd0\t\x0f\x0f\x0fm\xb2(-G\xd1\xc0\x97\xaa\xcd\xf1{ͰЙ\x87ʦM\x9b\xb45\xafiJQݪ3o\u07bc{\xee\xa0\xeaJ\xe8\xff\xfd\xe0SdN}\n\xa3F\xbb\xa2K\xd7^\xe8ة\x1b\xcc\xfaZ\xa0M\xdb\xc7oA\a\xe6\x9eh\u007fSڶ{\xec\xa6P{\xebݻ7\xec\xed푙\x99\x89\xf5\xeb\xd7\xe3\xef t\xf51\xd5b5\xf4\xd8\xf4\xf5\x90!CX\xea\f\v\x9dyx2\xefر\xa3L\xf2\xa1\xf2\xacj\xc4\xf1\xcc3\xcfܗ\x8e\xe9A\v}\xc1\x8aհ\xb2\x1f-\xcfa\xa7\xe32\xf5\x8dM\xa1\xdb\xc0\x00\rtt\xd1P\xa0W\x03\ru\xf4n@\x97\xafw}\xbd{\f\xa8\xadQ\xae\x86N\x03\x18\x93l5\a\xaa\x8cvv\xc2\xeb\xff~\x1b\xf5]\xe8DJJ\x8a6\xcfD=셎\x13澅a\xa13u\x0e\x1duJ\xd3\xeb\x14\x91\x13T\xee\xf2~J\x97\x06\x06\xf4\xb8ԉRgz\xbf*Ž\xf7\xd1\a\xe8ia\x0e\x1d:\xf7ڴ\x19t\x1a7\x87\x8eI#舿р\x06\x10\xb4_X\xd0TsmV\xedv\x13\x8a\xa6\x84DLu\x1aJH(M\xf8z\x97כ\xd3T\x88\xbb6Zь\x90\xb8>Aǝ\n:7m\x06#\x0310\x13\x824n\xd9\x1a\xb6\xa3]\xef[;T+\xc5Q[\xa4\xc1\xe5\xfd\x9c\t\xa0\xc2K\xea\x80U=:\x982\xe2\xb9\u007faX\xe8L\x9dA\x91\xb9Z\x01\x8ehݺ5^z\xe9\xa5\xfb\xda\x11\x91\xd0\xd5r\xb1ԙ\xde\x0f\xa1\x8fOLF\xe7\xce\x1d\xa5\xb8\xe5\xe3R\x82\x92F\xd6]\r\x1a²\x99\t\x1c[6Ƙ\x16\xa6\xf0i\xdd\x14\xbe\xad\x9a¿esqm\t\x1f1`\xf1n\xd5\x06\x1e\xad\xdbI<[\xb7\x11\x88\xfb\x04|\xbd\xffW\x9f6\xad\xe1%\xa8\xe9\xeaת5\x02M\x9a\xc0I\x88\xbf\xa7\xf8ߵW\a`\x8d\x8c`hD\a\xa4\xe8\xa1{\x173\xac[\xf3\xca=\xb7\x99\t\x13&h\x93\xae:\xf5NEhh)\x81\xfb\x19\x86\x85\xce\xd4Id^\xfd,h\xaa~\xf5 \x0eN!\xa1\xd3ߠY\x80\xfbQ\xcb}JJ:\xda\b\x11\x18QD\xa7\xab\x83>\xe2j+\b71\xc4\xd3f=\xf1\xae\xb3=\xb6\ay\xe1\xb7p_\xec\t\xf3ơH\u007f\x1c\x89\xf0\xc7\xd1\b\xba\x06\xe2PD\x10\x0eF\x86`_T\x98 \x04\a\xa2\xbdq \xc6\r\a\xa3\xdd\xf8\xfa\x00\xae\x87b\xdcq0ֽ\xc6\xeb\xbe8\x1f\xfc\x14\x13\x88\xf5\xe1\xfex\xd9s\x14R\a\xf6ưF\rю\xaa\x11\xd2\x00S\f\x00iJ\xbe[\xdb\x0eX\xb9`\xe9=\xb5\x1b\xb5\xf4\xab\x9a\x9d\xbeaÆ\xfb\xde\xd6\xd5H\xbdzR\xe9\xb0a\xc3X\xea\f\v\x9dypt\xee\xdcYv6jt\xfe\xa0d^]\xe84\xdd~\xafB\x9f\xb3`\t\xf4D4\u05c8\xb6\xd5\xc9\xe9Z\x1d\x8c5\xd0\xc1\x9aέ\xb0\xd5\xd9\x16'\xa2\xfdpu| r\xe3|Q\x18\xe3\x81rA~\xc0H\x14\xf8\xdb\vF\"\xdf\u007f\x14r\x03\x9c\x90\x130\x06W\x03]p5\xc8\tY\xc1Ñ\x13<\x94y@\xe4\x86X\xd7ʥp;\x9c\x1d\xef\x81\x03㼱or\bv\xa6\xc6\xe0#\xf1?L\x1f\xdc\v\xb6\x06\xca\xff\xb8\x97\xb1\xa1f\x89D\x17/\xac}\xf1\xaeێ\xba\x86\xae\x16\x86yP\xc9wt\xba`\xf5S\b\xe9jgg\xc7RgX\xe8\xcc\xfd\xc7\xcc\xccLv2\xea~\xf3\x96-[\u07b7\x04\xb8ڒ\xe2H\xe8j=\xec\xbb\x15\xfa\xcbo\xbe\aC}#4\x16ϙ\xd6\\{\v\\\x1b\xea\xe0\x1b?;\x1c\b\x1f\x89\xf3\x13(\x10\xd7l7g亍F\xa1\x973\x8a<\x85\xb0\xddD\x04\xee!\"pϑ\xc8\xf5\x1c%\xc9\xf1\x1a\x85l\xaf\xd1Zr\xbc\xec\x91\xe3m\xc7< \xf2|\xedk%\xd7\xcf\x0eW\xfd\x86\xe3\xaa\xef0\x14{\t\xa9\v\x91\xc3s\x94$\xcf\xdb\x19\xa7\x02ݱk\\0>\x88\xf2\x85Skc\x19\xa5\xb7\x10\x83\xbaf&\xa6x\xf3\xe5\xb7\xee\xa8\x1dEEEi\a\xb34\x05\xfe\xe5\x97_\xd6\xd9g\xc0\xd9\xd9Y~\x06ԩw\xfa\f\xf2y\xea\f\v\x9d\xb9#֬Y#E\xaav$4\xcd\x1e\x16\x16\x86\xba~\x0e\xf7\"t\x17\xbf\x00\xe8\xe96Dk\x1de\x8b\xda\n[\v\x1c\x9c\x18\x86#~B\xc4\xc1c\x90\xe37FD\x82\":\xf7uE\x96\xa7\x13r}\x9cQ\x12\xec\x89\xf2po\x14\x87z\xa2T\\K\"\xaeQ\x14\xa9P\x18\xe9\x83\xc2(O\x14E\x8d\x1183\x0f\x88\xfc\xf0Q\xb5\x92\x171\x1aY\x91n\xc8\n\x11Ѽ\x9f\x13\xca\xc4\x00\v\xee\xa3Q%(\xf6\x1a\x83KA\x1e846\x10\xdb&\x84bJ\xff'\xd0M3\xf5NE\x83\xe6L\x9by\xd7B\xa7%\xa7/\xbe\xf8\xa2N?\a}\xfb\xf6ծ\xe1S\xf6;%\xa5~\xf4\xd1G,u\x86\x85\xceܚ\x8f?\xfe\x18m۶\xd5N\xf75o\xde\xfc\xa1ԙ\xa6)v5\x11\xe9n\x84ެu{\x18S\x05;\xda\xd3+\xa23J\x84;9)\x04\xc7=,\x85\xa0\x9dp5h$.\x85\x8cą\x10\a\x9c\r\xb6\xc7\x15!\x91\xc2\t\xde(K\nDir \xcaR\x82PR\x1b\xa9\x01(N\xf3\x17\xf82\x0f\x88\x8aiA\xb535\x1cy\x93Ð7.\f\x05a~(\xf4qC\x89\x90y\x99\x87\x13J}]\x90\x13\xe2\x89\x13b\xe0\xb5gJ\x14\xd6y:\xc0F_)>CS\xef^..\xb8ө\xef\xeaB\xff\xfc\xf3\xcf\xeb\xfc\xb3@\x9fG\xb5\xfe\x03A\xdbG\xb9\xafbX\xe8\xcc-Q\x8f?\xa5\x8cvZ\xbb\xa3\b\xe1a<\x8f\x15+VȎT\xcd\xf8]\xb4h\xd1m?\x8f-?\xfcO\xfc\x8e>Z\x18\x18\xc9b#^-\x8c\xf0\xf3\xe4\b\x1c\x89p\xc5y\xef\xa1(\v\x1f\x81+\xc16\xb8\x10j\x8b\xf3a\xc3q)\xda\x01y\x93\\\x85\xa8}Q9U\x91F\xc9T\"\xe0\xbakYf\x80\x06q_f0\x8a\xa7\x06\xf3\xf5\x01]\x8b3\x82P$\xde皮\xc5\xe9\x11(N\x1d\x8f\xe2ı(\x8e\vG~\x90'\n{(\x9f\a\x9a-SK!\xd3sqttd\xa93,t\xa6v\xac\xad\xadeD\xac&\xe1б\xa8;v\xecx(\x1dDze\xcb\xe4T\xe3\xdd\b\xfd\xa3O\xbfB\x03!\xf4Vz\x86r\xbbڄ\xee\x8f\xe3\xb7I\xa1\xd8\xe7o\x87\xa2p{\x14\xf9\x0eF\x9e\xbf%\xb2\x04\xd9!6B\n\x8e\xc0\x14O \xcdOR%\"\xc4J\x11\x81W\x8akU\xaa\xbf\xbcMW\b\xe1#\x85\bDUJ\x18*S\xa2P\x95\x1c\xc5\xd7\ap\xadH\x8c@yRD-\xd7H\x94\xa7Ƌ\xff\xc9\x04TL\x8eDA\x84\x97,\x04T\xe8g/\x13\x19\xf3\xfd\x1cp\xc6\xcb\x1e'\xa3}\xf1\xfb\x84\b\x84\x9a\xea\xa1\a\xad\xa3\x93\x94M\x8d\xefX\xe8ꉂ\xb4\xf4\xf4駟>\x94\xcfûᆱ\xad\xff@S\xef\xf4و\x8b\x8bc\xa93,t\xe6\xafP\xc2\x1bu\x18\xedڵ\x93WJ\x86\xa3N\xe4a=\x9f%K\x96h\xcbmR\xe7u'B\u007f\xfb\x9d\xff\xa2\xa1\x10zSM\x81\x91́\xbd\xb1{J\x04\x0e\x06ء2f$\xf2\xdd\xfa\xa2\xc8\xcf\n9>V\"\x9a\x1b\x86\x8a8g Q\xc8<%\x00H\xf2GE\x82\"\xed\xebH&\xfc\xe5\xf7\x91$\xbe\x16bAR\x94\xb8F\xf3\xf5A\\SNJ\xc1U\\-ױ\xa8L\x8a\x012\xc4\xd7\xc9\x11(\x8cqCN\xd0p\x14\x06ڢ$\xc0\x16y>6\xc8\x16r\xbf\x10\xe6\x81#\xf1\x91\x18\xd7\xd4HV\al\xa5\xab\x03\x9d\x86:\xd8\xf0\xcb/\xb8[\xa1\u007f\xf2\xc9'\x0f\xed3\xb1p\xe1B\x99\xa8Z\xbd>\x03Ղ\xe7\xfe\x8b\xe17\x81\xb9\xae\x88\x8bZ0F\xad\x88u\xa7k\xd6\xf7\x1b\x12\xb8\x8e\xe6X\xcc;\x15\xfa\x1b\xaf\xbf\x03\x03!\xf4\x96:\xba2!*\xb5o7\x1cH\x89ƱP\a\x14\x87٠\xc4\xdb\x02\xa5\x81Ñ\xe3-:\u007f\xff\x11(\x17B@B\xb0\x10I\b*ŵ,!H\x88#\\!E\x90\\\x8dDAR\xa8\xf8Z\x90\x12\xaa\xdc\xc7\xd7\xfb~\xad\x9c\x1c\x84\xca)\x015_\x05H\b\x11b\x8f\x92\x83\xad\xfc\xe8\x91\xc8\n\xb4D~\x90%J\x83\x86\xa2\xc8\xd7\x12Ł\x0e\xb8\x1a\xec\x8a\xe3qaHi\xd9D\n\xbde\x03\x1dy\xaa\xde'?\xfdtWB\xa7\xb6H9&\x0f\xf3s\x11\x1e\x1e\xae\x1d誙\xf7[\xb6la\xa9\xb3\xd0\xf9M`\x14H\xe04ڧ\x048\xea$(\xb3\xf7a?'\x8aF\xeeV\xe8o\xbd\xf66\x8c\x85\xd0\xdb\xeb+[\xd6\xc6vl\x89\xe3)\xb18\x1b\xe6\x84,\x9f\xc1\xa8\f\x13\x91\\\x88#r|G \xcb\xd7\x01eў\xc0\x14!\x88\xa4\bT%\x86\xa1\x92\xa4B\xb2PI%qhH\xa6\xab\x88\xceS\x05i\xea5L\\\x89\x90k\xa4\x11\xc1\x9ak\xb5\xfbSn\x13\xf9\xf3aדV\x9dj\x8f{\xc7W\xf51\"nx\xcc\x1a\x1e\xb7:\xe9\x1a\xb4\xaf\xedF\x02\xab]\xab\xa3\xf9~\xaa\x06\xf9u\xf5\xf7D\xfc\xdd\xe4j\xa4\xdc\xf0zk\xfa\x9b\t\x01\xca\xf7\x92\xfc\x90\x17i\x87\xcb~\x83D\x94>\x04\xc5!\xd6(\b\x1c*\x85~%\xc0\x19'\xa3\x82\x90Ѻ\xb9\x1cؙ\x92ЍM\xf0\xc5\xff~\xfd\xdb\n\x9d\xa0\x1a\xef\xf4yU\x0fH\xa2\xb2\xcc\u070f\xb1\xd0\x19FgРA\xb2SP\xf7\x9c[YYՋ\xceaޜ\xa7\xd1@D\xd8ML\x9b\xca\xeb\xf2\xa5+n?B\u007f\xe1_0\x14\x9d\x1de5?&#\xf4\xce8=)\n\x17|F\xa1 \xcc\x11\xd9\xfeÐ\x17$\"8\xbf\x11\xc8\t\x1c\x89\xb28!\xf4\xc4`E\xd4\"\"\x97\xeb\xe3\xa9נ\xdb*$\x9c*\xf1se\xa9\xd1(M\x8dE\x85\x88\xfc+\xa5\xe8#42\x0e\x92QceJ\x00*R\xfdP)\x85F\xf7\x89\xc7O\x16$\x8a\x9f\x99\"\xee\x9bL\x04(\xd0m\x9a\x15\xa0\xe7@ѿ\x84\x06\x18a\nRt\x11\xf2\xef*\xd0s\b\x91\xe0.\xae\xf4\x9a\xca\xc4 \xa54-Z^+Ġ\xa4R<\xae\xf2Z՟\vBU\xaa\x88\x865T\b\xa1\x96i\xa8\xa0ד&\x9ew\n\xe5\x1c\xf8\b\xf9z\x8b\xaf\xbd\xc4s\xf4@e\xa2;*\x12\\\xc5mO\r\xe2\xfeT\x1f\x85d\xf1sI\xe2v\x92\x8ff)#Hy\x9d\t\xe2\xf5M\x11\xef\xdf\xe4(\x85\x04\x9az\x8f\x92\xaf\xb5\x82\x9e\xab\xfc\x9b\x81\xa8HW\xf2\x1a\b\xb9\x04B\xafe\x8a\x1f\n\xa2\xe8\xe0\x1c[\xc9\xd5P\xc2\x0ey\xc1#q%h\f\xce\xc6\x04#\xa1\xb1!:љ\xe3T1\xae\x81!\xbe\xdaz\xfb\x11:m\u05ec~\xba`]\x15\x96\xb9\x15\x94\xa0G\x03p\xf5t6'''\x96:\v\x9d\xf9'\xa3\x96\x98T\x13\xe1h\xfa\xae\xbe<\xb77_\u007f\v͚4\x972'\x9eY\xbd\xf6\xb6\x9f\xdbƏ\xbf\x86\xa1.\x9d\xb4\xa5\x83\xb6$\xf4~\x1dq~B\x14.{9!OD\xe9W\x02\x86#7\xc8Q\n=+h$JU\xa1\xcbH;T\n\xad2\xb5f\xe4\xf7\xa4\xd0cQ\x962VD\xf3\xb1BJњ5u\x12\xb0\"td\b!f\n\xb1g\x04(2R\xd7ᓂ5\x83\x87PE\xf0$z\x12[b \xaa\x92\x02\x04A(O\f\xbcn\x10Ab\x93\x03\x86jT\x97\xfa\x9d\xa2\b]\x19\x90\xd0U\x95:ɓ\xc4]y\x9d\xc8UB\x14\xe4 \x87\xde\x03e\xd0R\x95\x1a\xa8\xc8==PA\xbcnd\xd2m%\xc1PI$\xf4W\xa0\x1c\x84d\xf1=zl\xf1\x9e\xd0\xe3#Y\b=1L#\xf3h\x85)\xd1r-\x9d\x06Jei\x11(\x15\x11z\x99x\xec2\x12z\xba\xb7\"u\x99\x98\x18\"\xa7\xe1\v\"]\xe4\xd2IN\x80\x1d.\x84\xdb\xe3|\x84=.\xf9\xd9\"7\xdc\x03Y\x93b\x90\xda\xca\x14mt\x94\xf5\xf3\xa6-:\xdcQ\x1bOMMלS\xde\x14M\x9a4\x11B__/>#4S\xa0.\x93\xd1\f\x02%\xca͝;\x97\xa5\xceBg\xfe\x89P%6u_+E\x1f\xb4MmժU\xf5\xa6C\b\v\x8d\x82n\x03ڃ\xae\a}=cdf<\x89\xad[\xbe\xd3>\xbfm\x9b6˯7~\xb3\x15\x9b\xbf\xff\t\x9f\u007f\xff#>\xdf\xf6\x03\xbe\xdb\xf2\x13֭|^F\xe8\u007f\x11\xba\xf7\xa8\xfb\"t\x19\xa9'*\xd2A\x02\t\x88d\x14\xa6L\xdb'(rF\xba\xb8f\x04J\x11\x15\t\xa9\x17\xa4\a\xa00#X|\x1d\x86⩡\xc8O\xf3G~\x86?\xf2\xa6\x06 W\x90?=\x18\xb93\x82\x91\xf7d\b\n\x9f\x14ߟ\x1a\x82\xa2\xcc\x10)3\x92\xa8\x8c\xd2i\xc0@\xd1,\t\xf0.e\xae}\xfeb\x10R%\x06#UɊ8I\xe8e\xe2\xf5\xd3\xdf+\x15ϝ\xa0\xe7N\x83\x11\x92o\x95\x94\xaf&\xa2\xa6\xa5\x89\xb4X\x94\xa7\x8f\x95\x83\x82\xa2\xd4\x18IaJ$\x8a\x05%\xa9\x91b \x13+\"\xea\x18\xf1\xb8\xe2\xb1)s\x9d\x12\xddh\xe0C\x03\xa0\xf4h%\xdaOW\x06\rrf\x83\x06D\t\x9a\xe8T\x93yi\x9a2ШL\xd5,g$\xab\xefo\xf0M\x85\x9e\x1f>\x1a\x97\x03\x9dq\xc0\xcf\x15\x99\xed\x9a\xc9\\\n\x93\xc6\xd4֍\xd1汞\"Ro\x0fӦ\xadd\x9b2\x16\x986n\x81FMZ\xca+\xddn&\xdaT\x9b\xf6\x9d\xe4\xf7\xa9\xfd5o\xd1V^\xf5\r\x1a\xa1\x89\xf8^\xb7^f\xe8?p\bb\xc7O\xc4\xe7_?\xbc\xa8}Ĉ\x11\xda\f|\x9ezg\xa13\xff@\x86\x0f\x1f.?\xfcj\xf5){{\xfb\x87\xd2\t,X\xb2\x14]\xbb\xf5\x82N\x03=)o\xe3\xc6̈́\xa0\x1b\x8b\xdb\x06\n:\xb4>h(12j&\xaf\x06\x06t5Rdo`\xa2|_\b^\xa7\x91\xe8x\r\x9b@O\xb71Lu\xc5@E\xb7\x01Lj\x14\xfa\xa8{\x16\xba\x94b\xf5\xf5m\xcd}\x14E*SÁR\xe42\x02M\x0fU\x92\xcfh\x9d\x9d\x06\x01\x93#\x05\xe2>!\xf6\n\x11\xadW\t\xe8g*R\x82\x85\x14\x83D4\x1b \x04\xe9\xafY\x8b\x0fҮ\xc9W\x87\x04[u/B\xa7\xe7M\xb3\nS\xa2\xb4K\x05\x95\x9a\xb5j\x92y\xe1\xd4@q\r\x94¥\b]\xfe\xdd$\x8d\xcc'\x89ߝ(\x18/\x88\x17\xafeB\xa42M\x9e\x10\xa3\x91\xb5\x10}\xe6X\xf1\xf3\xe1\xcaR\x01\xbdv\xf1Z!\x063HW\xc4\\.\x9e\u007f\xd1T\u007fI\xa9\x18\xd4Th\xa6\xdf\xd5\xe5\x00e\xb6@\x91\xb9*teV!\xe4ڀ&)\xf8\xb6\xa6\xdcOG\x05\"\xa5e#\x19\xa1\xeb\x1b5\x80\x8e.\x9536\x15m\xc6Ti7\xd4~\x1a\x10\xa2M\xe9\x1a)Wq[W\xdfT\xb9_\xf3}\x93ƭ\xa0\xa3\xdfH\xde\xd67\x11m\xb0\x81h\x9bz\xf4;\x06\xb2\xfd\x9a\xf5\x1f\x84\x97\xff\xf5\xe6C\xf9\x1cQ\xe58\xfa\x1cӒ\x00e\xbfGFF\xb2\xd4Y\xe8\xcc?\x01:\x86\x91\xa6\xd8i\xedM-\xed\xba~}\xddF\x18\xef\u007f\xf8\x91\x8cp\x1a\xb7h\xadH\x9b:dž\x9aΑn\x8b\xa8\xbc\x81^#y\xa5\x88\xea:t)\xb1\xc9D\n\xbf\xa1\x88\x96t\x1a\x88\xfb\x1a\x8a\xab\x81x=\x06MdgmҰf\xa1_\xf1\xba\u007fB\xa7\xaf\xa5\xc0\xd3B4\x11\xb8\x12٪\x94N\x15\xf2ʌ\x94\xd3\xcbH\x15\xb2\xa3}\xd3$\xbex\xc1\x04!\xa9\xa4H\x94\x88h\xb4<%R\x11\x9f\x14k\xb8\x12\xa5&V\x9b\xbe\u05ecɓ\xc4))\xacLrM\x80w/t\xcd\xccB\x82\"Ju@\"_K\xb5\xe8\x9c\xee\x93\xd3\xedՓ\xd7&\t\xe2\xc5\xedx10\x99\xa8\x81\x06)\x93C\xe4\xb5b\x8a\x18\x98\x88\x9f\xa7A\x8a|\xdf҅|ӕ)s\x9a\xb5(K\xf5\x15\u007f\xe3\xafBW\b\xd1\xcc\x16\x84Ɋp\x8a\xd0#\xae\xbdG\xda\xe7|s\xa1\x9f\xf3\x1a\x8a\xecP7\\\x9d\x18\x8d\xa4\xe6\xc6R\xe8F\x8d\xc4 Ш\xb9\"t\xa2\x01\t\xba\xd1M\xaf\xba\x06͕ۺ\x8d\xb5\xf774i\x81f\xad;\x88\xf6f,\xe5\u07b8E\x1b\xa5\r\v\\\xdc}Dľ\xb1N?O/\xbe\xf8\xe2u\x89{\xb4\x9e\xben\xdd:\x96:\v\x9dy\xe4\xff\xf1\x9aD\x1au\x1f+\x95X\xad˿\xbff\xed\x8b02m\n]C\xea$\xf55\xd1\xd15\fM[\xa0E\xfb.hԴ\x1d\x9a\xb7{\x02m;\xf4\x14\xb7\xbb\xc1\xb4Y\a\x186i'\xee\xef\x80f\xad:\v:\xa2y\xebNh֮\x1b\xf4Z\x8b\b\xa5m'\x18v\xe8\x8efM\xc5\xfd\x8dZ˃Y\x8c\xab\t\xfdb\xfc5\xa1g\x05\f\xbb'\xa1Sr\x18\t\x9c\"\xd9\xfc\xa9AZ\n3C\x945r!\"ZC\xae\x14\"\xaf\x10\"/O\x8cEY\xe28\x94&\x8fGI\xda$!\xb3\x89\xb8\x9a1V\x10\x8b\xbc\xf48\xb9\x0e\x8d\xa4X%ʝ\x12\xa3$\x88Q\x14!\x91a\xa13u\x04\x9doN{V)\x13\x96\xa0\xa9\xf6\xba\xfc\xfb/\xbc\xf2:\x1a\x1a\x99\xca\xceN\x89hD\aج=\x9e0\x1b\x8c\x81\xb6\xa31\xd8\xce\x19\x16\xc3F\xc3\xdcf\x94\xbc*8_\x8f\x8d\x8b\xe8X]%\xe66N\x18h\xe7\x0e\xb3\xa1c\xd0w\x84\a\xba\n\xa9\xf7\x14\xb7\x87\x89\x0e\xb9W\xb7\x81h\xd0@\x89\xd0)2K\xeb\xdfQ\n\xfd\xaa\xe7H\x14\x88ȍ\xf6\xa1ߋ\xd0\xd5u\xe0\n\x11\x81\xd2:xyz\xb8\x90P\xb4R\x964a\x1c\x8a\xe3\x85\xfc&\x8cC~j2\x8a\x16\xcdAś\xeb\x80\xed7?\xd4\x03\xbb6\x00[\xdeE\xde\x1b\xcbqzQ\x1a\x0e\v\x91\x9e\x14ҺJ[\xe42\xe3\x80\xcc\x18e\xbd^ݯN\x89b\x9a\xc40ȩ\xfdp\x94%\x04H\xd4\xd7P\x1b$\xcbr1\x00\xc9O\xf1CI\x92\x9fR\xec\x85\x1e\x9b*\xb0M\nҖ\xb5\xadJ\x88\x94\xb3\a\x053&\xe1L\xe68\xec\x12\x11\xf9\x1fS\xc7b\xff\x8a'q\xee\xeb\xb7q\xe9\xc7[\x1f%\x8aM_\xa2\xf8\xf5u8\xbfp\x0eNLM\xc3\xf1\xd4\x04\x9cM\x8aG\xc9ԉ(\xd5\xd4n\xa7$9\xb9\xdc0\xd1_D\xe0\xfe\xf2\xb5\\\x93\xfa5\xa1˟Uw\x17\xdcB\xe8YA\xf6\xb8\x14\xe0\x84\xf3q\xa1Hlf$\xdb\x01m[kh\xd0\x14}\a\x8e\x94\x826\xb7u\xc7\x00\x1b\x81\x90\xbbz5\x1f\xe6!ﷰ\xf5\x94W\xba\xad~_\xbd\xdfb\xb8\a,Gz\xa2\x9f\x18x\x12\xe6\x82\x0e=\x06\xc8\x1c\x0ej\xd7\xc6͔)\xf8֏u\xc47[\xeb\xee,\x04\xda#\xaf\x9eà\xeeO\u007f\xfd\xf5\xd7Y\xea,t\xe6QC=E\x8d\x12g\xe8J\xdb\xd6\xea\xf2\xef\x0f\x18V\xce\xe8k\xeb\x86\xee\x96N\xe8!n?.\"\xf7.\xe2\xb6\xe50Ot\xebb.\x0fg\xa9I\xe8E\xc1\xf7.t\x19\xd5fFI\tʂ,BrE\xa9q\xb8<)\x02\x97\x13\xc6#\u007f\xc6T\xe0\xf9\xe7\x81\xcf\xef\xfe \x0f\xfc\xf41.\xbf\xba\x10\a\xa7\xc7\xe1\xcf\xc4p\xe4%E\vy\xd1T\xbcf\xeaYD\xee\xb4_\x9d\x04^\x91\xa4I(\x13\x82W%\u007f+\xa1\x17O\x0f\x91\xb3\vũ\x01\xca\x1ey*n3Q\xc8|r\xb8\x9c\xfe/\x8e\x11\xb73\xa7\xa0df\n\x0e%\xc7᷌x\x9c{u9\xf0\xf3\xd7w\xff\x9a6męu\xcf\xe3\xd0\xff\xcd\xc0\xb1)\xb1(L\x8f\x17\xcfe\x02J&\x85+\xc9v\xe9b@\x94A{\xd1\xfd\xae\x8b\xd4+4\x89r\x8aԣ\xe5\xf6\xb7\xca\xe4[\v\x9d\xb2\xdc/\x8c\r\xd3N\xb9\x93\xd0u\xf5\x9b\xc0\xcc\xc2A\xb4/W\xf4\x11\xf4\xb5vEok\x1710t\xd1\xde6\x13퍮\xd5o\xf7\x17\x03\x80~\xb2\xedy\xa2\xbf\x9d'̬\x9dD\xfbt\x82\xb9\x9d\v,\xc4`\x94\xda\xf1c\xdd\xfb\xcbA*\xcd:Q\u009d\xbeI\x13\xd8;\x8e\xa9\xd3\xcfYzz\xbav\u007f:M\xbdӬ\x1c\xf7\u007f,t\xe6\x11\x82JEV\xdfs^\xd7Y\xed\xc9\x19O\xca\xf5\xf1\x06\xa23\xa5\x84\"\x1d\xbd\xc6\xe8m9\x02\xbdE4>\x80\xa6\xcaG\xb8\x88+u\x9c\x8a\xc4\xcdD\x04\xde\xcf\xc6U{\xed+D\xaev\xa8\x03l=\xe4\x95:\xdb~v\xde\xe8!:\xdc\x1e\xf6>\xe88\xc2\x13]Etne\xe7\x83\x1e\x14\xa1\xdf tZK\xd5\n=\xc0\xfa\x1e\xb7\xadQBX\xb0\x92\xb1\x9e>\x0e\xd9\x19\xe3p8%\x06\a\x9eJ@\xf6\xeb\xcf\x02\xdf\u007fs\xdf\xde_\xfc\xef+\xfc9?\x13\x87lj\xc1C\xda\x14@D\xb9\x88\x8f\x91Y\xf3\xf4\\H\xea\xa5\"\xaa%\xa9\xab\xa5RU\xc1\xdfL\xe8\x05\x99\x81(\x9c\x11\x8cҩ!\xf2\xecw\xa5>\xba\"s$\x8f\x17\u007f'\x01\xa7⣰kb4ά^\b\xfc\xb2\xf5\xbe\xb6\x99\xac\xb5+p~j\x12N\x8c\x8b\xc4\xd5\xc9\xe2\xf5\xa4NP\"oJ\xaeK\xd4L\xbf\xa7\\\xabR\xa7\x14\xbe\xa1\x93ؔ}\xf3\xb7+\xf4\x8b\xe3\u0091\xdc\xc2DV\f$\xa1Ӕ{\xaf\x01#d;\xea;\xdc\v}\xc5\x00\xd0LD\xdd굟\xad\x97\xbc\xbf\x8f\xb5;\xfa\x88\xe8\x9c\xee\xa7\xdb\xea\xfdt5\x13\xed\xb1\xfb\x90QB\xec\"r\x1f\xe1.\xc5>\xd0\xde\r\x83\x1d\\\xf1\xb8\x18\xa4\xd2\x14\xbca\x93V\x9a\x1c\x11},XR\xb7\a\xa8XZZj#t\x82\x12a\xb9\x1fd\xa13\x8fP\x01\x19\x1a\xad\xd3\xfa9\x15\xa1\xa8˿\xbf\xe3\xc7\xdfд\xd5c\x9a\f\xf5Fh`\xd4\f\x8fu\xeb'#\x1b\xb3\xe1\x14\x159\xa3\x97\x8d\x93\xb8\xd2m7!kw\xd1qzȨ\xa8\x8f@\xb9\x8a\xdb6\x1e\xd7]\xfb\f\xa3\xb5s?t\x13_\xf7p\xf0GǑ\xbe\xe8\xe6\xe0\x83\xa1#|ѣ\xfb\x10\x99\x05o\xd4@G\x9e\x87\xae\n=\xcbC\fdB\xec\xa5\xd0\xf3\xeeE\xe82K\x9c\xd6rc\x91\x95\x10-\x0f~ٷb\x1a\xb27=\xb8\xd3\xe9\xf0\xde븐\x96\x84\xcb\xe3i[X\xb2\x90]\xb42՞\x11!\x05\xae\x15\xbax\xfe\x14\xb5\xdf\\\xe8A(H\xf5Gɴ`TL\rU\xaa\xc3Q\xd2Y\xc6X\xf1\xf5x䊈\xfcTB\x1c\xceΙ\x8e\xca\x0f\xff\xfd\xc0^Sſ_DZ'3q*u\n\xf2\xd2&\xa1pJ\f\xcaI\xe8\xf4\\\xe4\x1a\xfe\xb5\x04=5J\xafPK\xd5ށ\xd0i\xdbZu\xa1\xf7\xeco'\a\x85fv^R\xe2\xbdm5mj\xb8\"o\xba\x9f\x06\x8b\xfd\xc4@\xb1\xff\b\x1fy\xa5\xdbt?\xfd\\o\x1bw\xd96\a8x\xc96\xdb}\xc8H1\xe8t\xc1P'\x1f9\x05\xdf\xe6\x89>\xd0m\xd4B\xd9\xfef\xd8\b\xdd\xfb\xf4\xab\xd3\xcf\xdc\x1bo\xbc\xa1-6C\x9fyJ\x80ݸq#K\x9d\x85\xce\xfc\xddQ\xf7\xa8҇\x9a\xd6\xce\x17,XP\xa7\x1f\xec\x8c\x19\xb3\xa5\xcc\x1b\xb7\xea$:\xd4\xc6h\xd4\xe2qXڋ\xe8ZD但\xb9\xa0\xa7\xb5\xb3\x88\xb2\x9d\x15y\xdby(2\xd7t\xb4\xd4\xc1\xca\x0eTȻ\xb7\x8d\xa7\xf8Y\x0f\xf4\x12\xf4\x94\x88\xfb\xec\xfc\xd0ٚ\xd6\xcf\xfd\xd1^t\xbc\x9dD\xa7;d\xb8/\xbat\x1b\xf4W\xa1LJ\xdd?\xa1S\xf9\xd5Y\xe9\xc8\x17\x91\xe5~\x11\xa5\x1fyv\x16\nw=\xf8\x1a\xdf\xf8\xec\xbf81o\x16\x0eN\x8aANb\xa8|\xaeRꚨ\x9c\xa0)\xf7[E\xe8r*;Y)\xdbZ\x95\x16,\"\xffp\x94gĠp\xeaX\\\x14R?\x90\x12\x8b?\x17?\t\xfc\xf8̓\u007fM\xdfoʼn\xc5sq0q<\xf2\xa6N\x06\xa6OD\xd9$M\x92\\\xb5}\xf7\x95\xd7M\xbf_\xcb\x1f\xb8\xdb\b\x9d\xa6ٻ۸\xc9\x19\x9en4ˣ\xb9\xf6\x14\xf7\xd1\xfd\xd4\x06{\xdby]w\xed5\\i\x934\x00\xe8;\xc2S\xd2\xdb\xd6M\xb6\xe1^CG\xcbH\x9d\xa6\xdf\a\rw\x92\xeb\xe9\ri\xbfzC\x92\xba\t\x9e}\xee\xc5:\xfd܅\x84\x84\xc8(]-\x1c\xf5\xb0jM0,t\xe6>A\x05&(땢s\xfaP[XX\xd4\xf9\x87\xba[/\v\xe8\x1a4\x952\xd75n\x89.\xbd\a\xc1\xd6\xc9[\n\xbd\x8f\x88n\xa8C$H\xe6\x84\xdaa\xf6\xd1t\x9e}l\xbdo\xc0Wt\xac\xbe\xe8#$\xde\xcf1\x14\xdd\xed\xfc\xd1ct(:\x8d\nB7\xc7 \fu\fA\xcf\xdeCk\x11\xba\x9d\x14z\xae\xbf\xd5=\t\x9d\"\xc4\\\x11M\x9eJ\x1c\x8b+k\xe7\x03\xfb\xb7\xd7\xd9\xfbZ\xf9\xcb6\xfc:'\r\x17\x92\xc3P2\xd9ON\xb9\xabϙ\xbeV#\xf5\x9bW\x8a\xd3$\xd6%(\x19\xed$\xc8\x1c!\xf53\x19Q86k\x02\x0e,ɬ\xd3vR\xb1m=N.\x9d\x8b\xe3i\xf1\xc8J\x8eA\x99\xf6\xa0\x9b@\xa5\x06|\xaa\xbfV\xea\xda\xff\xc5m\b\xbd\xb6\xa48\xb3\x81#E\xe4-\xa2\xed\x11\xdeR\xd6ա\xfb\xccDD\xdec\x98\xbb\x14\xbb\n\xdd&\xa1\xab?#En\xe3\"ڨ;\xfa;P\xbb\x14\x03\x82\xc1\x0e\xe8k3\x1a\xd6N^hթ\x17\xf4\x1a\xb7\xd0l\xc7\xd4GHDt\x9d\u007f\xf6\xbat\xe9r]\x15\xb9Y\xb3f\xb1\xd4Y\xe8\xccߑ\x8f>\xfaH~\x90)*W\xcf9\u07fcys\x9d\u007f\xa0)\x01θY;Y\x94\x83\xa2s\v+G\x11\xc1(\xd3\xeb\xbdGx\\שR\x87\xd9k\xb8\xb7\xa4\xc70\x11\x91\xdbz]\x93\xf7\xc8 \f\x18\x15\x02\xf3Q\xe1\xb0\x18\x1d\x81\x81N\x91\x18\xe4\x1e\x8b\xbeN\x11\xe8\xe71\x16=\xdcc`\xe6\x1e\x05{\xb7\x18\f0\x1fY\xabЋ\x83\xef]\xe8\xc5\xe9Q\xd87.\x00\xd9\xcf\n\x99\xef\xba=\x99\xef8W\x81\xf7\x0e^\xc1\x9a]\xa7\xb0`\xe7\t\xcc\xf9\xed$\xe6\xfcz\x1aKv\x9d\xc1\xcb\a/\xe3\xa3\xe3y\xd8r\xba\xf0\xb6\xff?y\v\x92\xe4\xd4z\xe1\x04oEҚ\xa9w)x\xca\x12\xbfia\x19\xaa\xfa&\xa2\xfb\xf1t\xda[\xb0\x9cn\xbf \xee?2-\x1a\xe7^\x9a\x87\xd2o\xff{[\xcf\xe3\xf3\xec2\xbcu2\v/\xec?\x8bտ\x9fĊ_\xfeIJ\x9f\x8ea\xf9\xf7\x87\xf0\u070fG\xf1\xfe\xees\xb7\xfdz\xf0\xdd\x06\x9c\x9c\x9f\x89\xe3\x93BdV\u007fUu\xa1K\x02\xab폿}\xa1\xd3ikS\x9a\x18\xc8\xed\x8b$t\x03\xe3\x16\x18`鄡.!\x18\xe4\x1a\x8a\x81\xe2Z\x1d\xbao\xb0[\x18\xfa\x8d\xf2\x87\xd9H1x\x14⧤\xcb\xee\xb6\xee\xf2J\xb7{\xdb{˶J\xa2'\xb1\xf7\xb3\xa7\xe5\x1f\x0f\x11\xf5;\xc1\xccz\x94\x8c\xd2iK\x9b~\x93\x96Z\xa1[\xda\f\xaf\xf3\xcf\x1e\t\x9cv\xb3\xa8\xd3\xef\xed۷g\xa1\xb3Й\xbf#T\xd3Y=\xb0\x81\xae\xc9\xc9\xc9u\xfea\xfe\xecˍڂ1\xba\xc6\xcde\x11\x18\v\xea\xf4\xacF\xa3\x97\xb5\vz\x92\xd45\"\xef)\xa2r\x82d\xdeg\x84/\xbaY\xbbK\xa9Ӵz_\x87@\x98\x8b(|\x90K$\xac\xdc\xe2`%\x04>pL\x14\x06{ġ\x9fs$\xfa{\x8eCO\x0f!w!u\a!ys\vG)t\x83jBW\xb2ܯM\xb9g\v\xb1_\xf6W\x84^VM\xe8Ui\xa1\xda\x13\xc6*5EVd\xc1\x13\xf5\x942\xf13Y\xd3\xc6\xe2\xd8\xd2'\x81\x9fo=@\xfab\u007f6^\xf8\xfe\x18\x96\b\x16\xee<\x83\xf9\x87\xaebމ\\\xcc9S\x8e\x99\u007f\x16c\xe6\x91l\xcc\xd9w\x11\v~=\x8e\xd5?\x1e\xc1{\u007f\x9c\xc5\x0e\xf1\xfd[=n\xe1\xdb+\x91;+\x1eW&\xd3\xd4y$0#V>\xd7\xe2D\x1f!\xf7`E\x86\xc9\xeaԵZRU)\xf1*\xefK\xa0\xc4>\u007f\xa5\"]J4ΤFcߜ\x04dmz\xfb\x96\u007f\xfb\xe3\xe3\x17\xb0b\xf7)\xcc\xdd{\x0e\xb3\xf7^\xc0\xdc}W\xb1\xe8`>\x96\x1d.\xc1\x8a\x83\xc5X\xb57\x1f\xeb\xf6\x17\xe2\xc5_.\xe1\xa5oO\xe2\xdd\x1f\xceb\xb3\xb8\uf5b3\x0f\xeb\xdfǹE\x99r\xdf:\xad\x95k\xf7\xa6\v\xa1W\xa5)\xa7\xac\xa9\x87\xcb\xd4&\xf4Ka\xf6R\xea$\xf4\x8b\xfe\xa3q&:\b\x93L\xf5\xd0Z\x15\xbaIK\xb9\xaf\xdc\xc6#\x12\x96\x1eQ\x18\xe2\x1ey\x1dt\x9f\x95g4l|\xe2\xe4\xd7\xe6\xce!\xe8\xe3\xe0'd\xee%\xa4\xee)\xaf=\xed\xbc\xd1\xdf\xd1_\xb6\xdd\x1e\xe2\xb1\bZ*\xa25uJ\xee\xecc9\x12\x03m\x9dЪcw\xad\xd0\r\x1b5\xc1W\x1b\xeb~@mmm-\xcflP#\xf5\x87yf\x03\xc3Bg\xee\x82g\x9f}\xf6\xba\xaaQ\xb4\x8e\xfe0\x9eDze+\xe4IUz\xfa\xc6r\xabZ\xa7ރ0HD7\xcaz\xb9\u05f5iu\x81\xd9p\x1f\tE\xe5\xddm\x84\xdcEd\xdeWD\xe5\x03\xc7D`\x88[\xb4 \x16\x16\xae\xd1R䄔\xbb\x90\xf8\x801\x910\xf7\x1a\x8bޞ1\xe8\xef\x11s-B\xd75\x92B\x97\x85e\x06t¹\xf8H\\\xf2p\x90\x85e\xae\x06\xd9\xe0j\xa8\xe8\xf0\x03\x86\xcb\xf3\xd0+b\x85\xd0\x13\x94\x9a\xebe\x19\xa1\xb2\x12[\xd5\xcc\x10\xe4NtV\x8e\x03M\xf4\x93\xd3\xd3\xf9\xf1~(\x9b\x19\x8f_\x12\xc2P\xf8\xfd\x86\x9b\xbe\xa7\xff9\x96\x835\xbb/`\xc1\uf5f0\xecH\x11\x9e9\t\xac:Z\x86e{\v\xb0|_\x11\xe6\xef-\x15\",ƜÅ\x98\u007f4\x0fK\x8e\xe4`\xf9\x01\x11\xc1\xff~\x01\xcf\xfct\x06\xb3>\xf9\r\x1b\xae\xe2\xa6\u007f\xe3\xfc۫\xb0o\x82\x90Z\xe6\x04\x99$\x96\x1f\xef\x02̏Dn\xa2\xb3rFy\xa2\xbffߺ\xb2\x97\xbbz)\xd5\xfc)\xbe\xc0\xac\xb1@\x9c\xf8\xb9\xe4\x18\x9cH\x9b\x82\xb2\xaf?\xba\xe9\xdf\xdbp\x1exi\xf7\t\xbcx\xf0$\x9e\x11\x03\x93UG\n\xb1\xf2H)\x96\x1c,\xc5\xc2\xfd\xa5Xt\xa0\x02\x8b\xf7\x97a\xe9\xdeb\xf1\xfdR,\xff\xed*\xd6\n\x91?\xbf'\x0f\xab~\xc9\x16\x83\x9aKXw\xe8\xe6\xaf\xe9\xcaǯ`Wz,\nR\xc6ʤC:\x9d\xad`\x82\aJ\xa6:\x01\xff\xe7\x8b\xf2\xc9\xc1\xca\xfdI\xe1\xd7\t=\xdfo\x84\x90\xba\x1d.\v\xa1\x13t\x1e\xfae\u007f'\\\x88\v\x95k\xe8\xed4B\xd71n&wNX\xb9D`\xb0kT\xadX8\x87\xcb6f)\x06\x89\x04}\xdd\u007fT\bz\x89\x01f7\x1b/)v\x8a\xd6\xfb:\xf8\xa2?1\xc2GJ\xbd\x9f\x88\xdaiK\xdc \x11\xb9\xb7\xe9\xd4G)M,k\xc0\xeb\xe3Ï>{(\x9fC\x1a\xd4S?\xa0\xd6z߱c\aK\x9d\x85\xce\xfc]\xa0Q9ɼU\xabV\x0fu\xedl\xf9\xd2eh@\xb3\x04\xfa\x8621\xee\xf1>\x83`\xe1\xe0#\xd7\xc8\xcd4\x89FZ\xb1k\xd6\xc8\xd5)w3\x11\x95S\aJ\x1d)\t}\xa0\x105\t]!\x12\x83I\xe8\"\x92R\x84\x1eW\xa3\xd0\xf5u\x15\xa1\xa7\fxB+tY\xcb=\xd8Ft\xfav8\x1fd+\x84n\x8f\xca\x18Oe˖\x10]If\xa8\xac\x00W4\xd5\x17%\xc9\xee@\xba\x90\xe2$/y\xd2Xմq8\x95\x18\x8e\x8b/-\xb9\xe9\xfb\xf9ũ<\xbc&\xa2\xec%\a\xae\xe2\xc9]\xe7\xf1\xd4\uead8\xbf/\x0fK\xf7\xe4\xe3\x99?\n\xf0\xfc\x1f\xa5X\xb5\xbb\x12\x8b\xf6U\xe0i\x11\xd1\xce=\x92/\xa4\x9e\x83Ňs\xb0l_\x0eV\xee\xca\xc1\xccm\xa71\xfb\xbb\xb3x\xf6H\x01\xb6W\xd5,\xc1\xe2?\xb6\xe0ȓ\xa9(\x9b\x96\x88\xa2I\"\"\x9f\x16\x82\x9c4W\x94\xcc\x10\xcf7\x85\x9e\xb3\x90\xf6\x94 Y\xfb\x9c$^\x98\x11%\x97\v\x8a2\"\x90\x9b\x11\"O\x80CJ8\xf2\xe2C\x91\xb3|\xe9M_\xd3\xd63\xc0\xab\u007f\x00\x8b\u007f\u070f\x15\xbb\x04;O\t\xc4`e\x97x\x9d\xbb\v\xb1T\xbc\x96\xa5\a\xab\xc4k\xaeĒ}\xa5X)\x84\xbe\xf8\x8f\\\xac&\xb1\x1f(Ƽ]EH\xdcv\x01q\x1bΉ\x01M\xd5M\xff\xd6\xf15\xb3q)i\x1c*'lj\xf7\u007f\x12ʒ\xc4\xffc\xc6(T\xccrC\xd9\x04\x12z\xbc\x10z\xe4uB/\xf0\x1d\x81|!t\x1a\xa8\x91\xd0\xf3o\x10\xba:\xe5\xaec\xd2Ln\x87T\x84\x1eS+r\x06H\\i I\fr\x11mmt\xb8h\x97\xc1R\xea\x14\xad\xf7\xb4\xf3Ԯ\xb9S\x16\xbc\xdc\xd6&\x84\xdeO\n\xddC\b\xbd\xafR\xff]+\xf4O\x1e\xca\xe7\x90ri\xa8\x1fP\x13\xe4\xdc\xdd\xddY\xe8,t\xe6\xef\xb4M\xadaÆ\xf2\x03c<\xceO\x12\xbf\xfby\xed\xd1㎣\xc0\xbf\u007f\xad\xc4\xca\x1d\x97\xb0\xfc\xfb]xu\xef\x01\xbcs\xf8\x02\xde\xd8w\x19\xeb\xc4`\xe5\x99?r\xc4\xf3-\x90\x91\xf9ҽ\xa5bPB3\x11\x85X$dOb_v@D\xf1\x87\xaa0\xfd\x97|\x84~r\x04\x13??\x86\x8f\x8f\xd5\x1e\xa9W|\xfd.ΥN\x14\x83\x94\x18 3A\x10\x8e\xa2\xe9N\xe29\x8fA\xe9D!\xf4\xa4\t\x0f\\\xe8*\xaa\xd0\xe9k\v\xe7H)\xf5~\x8e\xc12B\x97k\xea\x9aD9\xb9\xa7] \xeb%\xd43\xa1\x134\xb8\xaf\xbe7\xfd\xe3\x8f?f\xa9\xb3Й\xbfKE\xb8\xa6M\x9b\xca\xeb[o\xbdU\xaf\x85N{|\xe9\xeb\x1eCݥ\xd4\xfb:\xf8cИ0)qe\xaa=Z+ts\x97(\x19\xa9\x0fr\x8f~0BO\x89@yz\xa8\xfc\xf7\xe4el-\xbc&\xae\xedY\xc0'\x87\x8a\xf1\xfcw\x17\xf0\xc2\xee\n,\xdf[\x81\x05\xfb\v0\xef`.\xe6W\x13\xfa*\x11\xe1\xae>(|\xbc\xfe\x04\">\xfc\x05\xb3~:\x81\xf5Wk\x97\xfa\xf1\xe4x\x94\x88\xe7V \x9ewv\xa6\x0fJg\xf8\xdd0\xe5\xae9\xc1L3\xddNy\x00\xe5\xd3#pu\x8a\xaf\x18\xbc\xc4 \u007f\xd1S7}M\x1f\xfc\x96\x85\x17\xbf\xcfƋ?_\xc5\aGNcǕ\xcbڟ\xffF\f6\xfes\xbc\b\xcf\xef\xc9\xc1\xd2_\xb3\xb0tW\x01V\x1e \xa1\x17c\xf1\x9e|\x19\x9d/\x14\xb2_!\x04\xbeD\f\f&m\xbb\x8c\xc9\x1bN!\xfd\xc3=\xd8t\xaa\xb4ֿ\x9b\xb5p\x16\xb2\x13ơ\x8a\n\xcedD\n\xa1;\v\xa1\xbb\xa2\x8cNvK\x9e\xf8\xc0\x85^]\xe4*\x14\xa5\x134\xd0\xec5\xc2G\n]\xcd\xfd\x90\xc5i\xea\xb1Щ\xf4\xb3ZA\x8e\x06\xfbÆ\rc\xa1\xb3Й\xfa^\xaf\x9d>\xb4-Z\xb4\x90kf#G\x8e|\xa8\x1fڛ\t]\xd9˫D\xe8\xf45\t\x9d\xf6\x9b\x0f\x18\x15\x04K7e\x9a]]\xbf$\xa1\x93\xccU\xa1\x0f\x16\xe2\xbe\xefB\x9f\xac\b]M\x8a+OQ\xb6J\x91\x10\xa9N\xfbմ8\xecM\x8a\x06\xb6\xd5\x1eټ\xbf\xe7\n^\xfe\xdfI\xbc\xf9\xc7i|~\xe2B\xad?\xf7\xe5\xd1J\xbc\xb0\xb3\x18+v\x97c\xe1\xbe\x02,8\x94\x8f\x85Gr\x84Ѕ\x00\xf7\x15b\xe9\xee\x12,\xd9[\x85\xf4\xef\xaf\"\xea\xebC\x88\xfe\xe4\x17,\xfa\xe1@\xad\x8f\x97\xbdr\x11\xceO\x1d\x87\x8b\xb4\a}n4\xf2\xd2\xc4\xebI\x15\xd1y\xd25\xa1\xab\t}\x95\x9a\xc48\xaaA_05\x12'\x92\xc5\xeb^_{V\xfb'{\xcea\xdd\xf7\xa7\xf0\xc2\xff\xb2\xf0ɉ\xda\a\x15\x1f\xfdY\x8agw^\xc1\xf2\x9d9Xs\xa0\x1c+\xf6\x97b\xb9`\xe5\xc1r\xccٙ\x87\x85\a+\xb1\x88\x84.\xa2\xfc\xf8\r\xa7\x11\xfb\xce\xefX\xb6\xfd\bnVH\xe7rF\x02\xf2\x12b\xc5\xff\"\x14\x05\x99.(\x9b\xe1-\xeb\xcb\xd7E\x84^\x93Я\xdd\x1f\r\xb3\x91\xfeJ\x06\xfc0w\x89\xac*W\x8f\x85^}\x1b\x9b:\xd8\u007f\xed\xb5\xd7X\xea,t\xa6\xbeB\a3\xd0\x16\x15\x9aZ#\xa1oذ\xa1\xde\n]&©\x85;l\x95\xe21}\xed|a\xe1\x14\x02+\xf7\xa8\xbfD\xe8\xf7S\xe8\x94\x14\xa7\b\xddF\n\x1dR\xe8\xa1J\xc1\x98\xd4p\xe5\x04\xb0\xb4`TQ\x81\x96)\xa1\xa8\xcc\x18\x87\xf3\xe9\xf1\xf8cFb\xed\x92>\x03\xbc\xf8\xdbU<\xf7\xf39\xbcy\x1b۵^\xdaY\x84\x95\xbbK\xb1d\xbf\"\xf4EB\xe6K\x0e\x15\b\x91\x17`\xe1\xaeb,\xda'\\\xfcm\x16\xa26\x9dB\xf8\x17\xbb\x91\xf0\xc5\xcf\xf8ϑ\x8b5>.\xbe\xfd\x06\xfb\x93cpij\xb4\x10z\x1c\xf2R|\x94,\xf7\xa4@\xb9\xf6\xaf\x9cw\xaef\xb8+\xa7\xb7Q\xfd\xf6\x92\x99q8\xfe\xd4ě>\xd7W\xfew\x1c\xab\u007f8\x85W\xf6\xdc:\xf3\xfe߇\x8b\xb0fW.V\x8b\xe8\x9c\xd6\u0557\xed+\xc1\xaa#\x95\x98\xbf\xbb\b\x8b\x0fC\fZ\x80\xf8\xad\xe7\x11\xf3\xf5)$l\xbe\x80I\x1f\xfd\x86\x0fN_\xaa\xf5q\xaf̝\x81+\x93#Q,\x06*\x05\xe9\uea18\ue1ead:fv\xfc_\x92\xe2\x1e\xf4\x94\xfb\xf5D\xcb\xecw\xda\xd6F\xd1\xf9\x8dB\xefk\xedR/\x85\xfe\xfc\xf3\xcfK\x91S\xd6;ѱcG\x16:\v\x9d\xa9\x8fP\xbdf\xfa\xb0\xb6n\xddZ^\xfd\xfc\xfc\x1e\xfa\x87\xf5VBW#u\x19\xad\v\x99\x9b\x8f\f\x94\xd3\xed\x14\xa1Ӵ\xa6\x9a\x10W}ʝ\xae\xf7:\xe5\xaed\xb9\xdb\xe2b\xa0\rr\xab\v=)B&\x89i\xeb\xb5S\t\xd2)B(\xa9\xf18\x91>\t\x97_{\xae\xd6\xf7\xf45Z+\xfe%\x1b\xcf\xee\xca\xc6;\x87\xb2n\xf9\u07bf\xb5\xa7\x14\xcf\xed+\xc7\xf2\x03Er\xcbעC\xb9X,\xae\xb4\x06\xbdhw\x85\x88ցq[\xb3\x10\xb1\xf5\"b\xb6\x9fB\xdc\x17\xbfb\xd9O\x87k}\\\xda\xc3}63\x16\xc5OŢ$Ms\xbe\xb8z\x14j\xb2\"tB\xbe.I \xb2(9\xee\xb5\xda\xeb\x8c\u007f\xba\xfb4\xd6\xfcx\x02\xcf캈\xb7N\x14\xdf\xf25}v\xb2\x1c/\xec\xceê?\n\xb0t\x8fx]{\x8a\xb1\xecP%\x16\b\xb1/\xff\x13X,\x98\xfc\xede\x8c\xddr\t\x93~\xc8C\xf0\x87\xbb0\xf3\xbb\xddؖ_\xf3c_^\xb9\x10\x97\xa8\xd0LZ\x18\nҼP\x96\x19\xa0\b=q\xecC\x13\xba2\xf5\xaelq\x1b\xe0\x14(\xd7\xd0I\xe8է\xdc\xeb\xab\xd0\t:\xac\x85rkh\u007f:\xf5\x13\xeb֭c\xa9\xb3Й\xfa\x06U\x84\xa3\xa9v\xf5\xe8\xc4-[\xb6\xd4{\xa1\xf7\xa2\xea[\x14\xdd\xd0\tV\xf6\xfe\x184:D\x88:\x1cC\\#`\xee\x14\xf6\xc0\x92\xe2T\xa1_\n \xa1\x8f\x10Bw\xbf&t\x9a\x82\xa6SԄ(\xa8\xb69\x12b\x90\x9b0\x16\x87\xe8`\x94\x1d5\xcfxl\xbc\x02,\xfb=\x0f\xb3~\xcc\xc2\x1a!\xaf\x8fϕ\xdf\xf2\xbd\u007f\xef`\x85\xdc\xc2EB_\xb8?\x17\v\x0ed\v\xb1\x17b\xe9\xfe2\x11\xb5\x03\xf3ED\x1b\xb5)\x1b\xc1ۮ\"\xea\xbbK\b\xfe\xf4W<\xb5u/\xb6_\xa9\xac\xf1\xb1+\xdeY\x87\x83S\x82Q<#\x0eU\x19a\x9a3ƃ4\x15\xd7\x14\xa1_w\xf6yJ0N\xd3Q\xa5[>\xa8\xf5\xb9\xfe\xfb\xe7\x93X\xfe\xf3i<{$\x1f\xef^\xa8\xb8\xf5\x9e\xfbSeX\xb7\x9b\xb2\xf4\xf3\xf0\xdc\xe1*\x99\xed\xbeH0\xfb\x0f\x11\xa1\x1f\x03\x16\b\xc6o\xbf\x84h!\xf4\xa0MW\xe0\xff\xd51\x8cߴ\v_\x17֜ w\xeeŕ\xb8\x921N\x9elW\x94\xea\x83Ҵ\x00T$F\x8a\xffI\x1c*\x93\x1f\xac\xd0i\xad\\\x15\xba\xa5{\x9cD\xbd\x9f\xb6\xb4\r\xf5\x8a\x81Ř`e/\xbaF\xe8\x94\xe9NB\xa7#}\xeb\xab\xd0_y\xe5\x15Yd\x8a\xfa\t\xea3\x1eF\xf5H\x86\x85\xceܬ^zF\x86\xfc\x80\xaa\x15\xa1\xa2\xa2\xa2\xeaŇtْ\xa5R\xe8\r\xf5\f\xa4\xd0;\xf4\x1e\bs\xaa\xb2\xa5\x91x\xf5(}\x80C\x80\xecdet\xee\x1c\xfa\x97}\xc14\xd5~\x8d\xdb\x10\xba\x9e\x89\x14:\x15\x14I\xee\xdf\x19\xe7'Dኗ\xa3\xb2\x86\x1eh\x8d\xac\x10;\\\x16B\xcf\x0f\xd0\b}\x8a:\xe5\x1e\xaa\x11_\xb8\\\xa7EJT \xd7Х\xd0\xf7\x96a\xa1x\x9c\xa7\xf6\x01\xe1[\n\xe1&\xc2\xff\xc0\xef\xb2\x11\xbe\xf9O\x8c\xfd|'^\xde}\xbef\xf9\xed\xf8\f{\x13#P:u\x9c\xf2\xdc\xd5CXҔ\xe3R\xaf\t=HN\xb7S\x06\xfc\xc54\xf1s\xbfԼ\x05\xef\xf3\xddYxy\xe7U1\xc0\xc8\xc1\xec=W\xe5ֻ-ٕ7}]\xef\x1c\xcc\xc6s\xbf_\xc5\xda\x03\xa5Xy\xa0DnW\xa3\b}\xbe\x18\xec\xcc=\x04\xcc8P\x89\t?\xe5\xc1w\xe3yx\xedȅ玫\xf0\xdftH\xfc\x8d\x9as\x0e\xf0\xcb\x16\xfcIK\x05i\xc1\xf2\x88\xd7\xe2\x04ZJ\x88\x11\x12\xff\xebik,\xf4ۇ\x92\xe1H\xe4Tp\x862\xde\a\x0f\x1e\xccBg\xa13\xf5\x81'\x9f|R[֑\xa6҂\x83\x83\xeb͇\xb3>\v=/\xc8\x0eY~\xb6(\xf0W\v\xcb(\xa5_+\xd3Ce\xc9WP\x02Y\"I}<\n\x92'\xe3\xe4\x9c'k}_\xd7\xed:\x8b\xa5\xfb\n1_D\xa3\v\x0e\x96á\\|x\xfcj\xed\x99\xe3\x87\xf3\xf1\xfc\xce\\,\x17R_\xbcOH\xfc\xb0\x92\x18\xf7\xf4\xfe\x02,\xde_\x89%\x87\xc5\xd3\xf9\xa1\x1c\x11\xdbK\xe1\xb6)\a\xfe\xdf\xe5 \xe2\xdbs\x88\xfal'V\xfe\xf4g\xcd\xf2\xfbi=\x0e\xa5Ţ*s\xbcR\xf5.9D\xbe\x8e\xd2\xf4\x10\x89L\xf4\xd3D\xed2a.\xc1\x0fY3\xc6\xd7\xfa\x1c\xdf\xfd\xf9\x9c|\x8eT\xf9m\xce>1\xe0\xf8\xfd,\xde?^\xfb@峓\x85xq\xd7E\xac\x12\x83\x805\xfb\x8b\xb1\xfaP\x19\x96\xec+\x16\x03\x94\x121X\x01\xe6\x1d\x15o\xef\xee\n\xc4\xecȆ\xf7\xc6\v\xf0\xfa\xae\x00\x9e\xdfe\xc1s\xd3a\xcc\xfaߟ\xb5>\xee\xe9\xcc\b\x94\xd1~z1\xf8\xa0s\xd0iʽ\x95\x85~稇8Q\x94NW{{{\x16:\v\x9dy\x18\xac]\xbbV[\xb3\x9d\x12\\\\\\\\\xea݇\xb1>\v\xbd\xd4\xcf\x1e\x85^ׄ^\x9e\x1a\x8c\xe2\xe9!ȝ!\xa2\xdai\xfe\"\x8a\xf5\x97\x99\xe0H\x8cF\xf1\xe4X\x9c\xbaI\x96\xfb\x87\u007f\x1c\xc3\xcb\xfbN\x8b\x88\xfb\xa2\x10z.\xe6\x88(u\xda\uf158\xb7\x1f2\xc2] \xae\x8bi*\xfdh\x05\x16\x1c)¬?\xae\xca\x13\xcaH~\v\x8e\x16c\xde\xd1\x02\xc9\\!\xc0\xe9B|\x13\xbf:\x8f\t\x9b\x8b\x10\xb2>O\b/\aA\xdf\xe7!l\xd3I\xc4\u007f\xbd\x17\xaf\x1f\xac\xb9\xc0K\xe5\xf6\xf7\xb1\x97\x0ehI\x8cQ\xaa\xdei\x84N2Ϟ\xae\b\xbd,M\x89\xda\xcb҅\xd0S|q.\xbd\xf6\xdd\x10\x1f\x1c/IJ=\xa5\x98\xbbG<\xff\x03\x14\xa1\x8bAʞB\xac:\x04,=\b\xac8\x019\x95N\xd5\xdf\x16\x1eW\x8a\xc6<}@\xbc>1PY\xb4\x9f\xa2\xf3<\x11\xa9\v\xd1\xef\xcdC\xc6O\x97\x10\xb7\xe5<\x827]\x82\xdf\xe6\\9H\xf1ݞ-\xb8\b\xff\xad\xa7\xb1jw\xcd\xf9\x06Y\xbb7\xe2X\xaa\x90y\x8a\xb7<<\xa7j\xb2\x90zz\xb4\x18|\x85\xb2\xd0\xefsP@E\xa9(\xf3\xbd>-\xd91,\xf4\u007f\f\xb6\xb6\xb62\xab]=\xf3\xfc\xe5\x97_\xae\xf7B\xef\xd8\xeb\xe6B\xa7\xfd\xe7$t\x8b17\x17\xba\xbc\uf784n\xad\x89Е,\xf7R\x8d\xd0K\x84\xfc\x8a\xa6\x05\xa1\x98\"\xf4\xe4\x00\xad\xd0\v&G\xe3x\xfa\x94Z\xdfߏ\xf7\x1d\xc7\xcb\aN\t\xa1\x9f\xc7\xfc}929n\xae\x88l\xffo/0\x87\xf6\x94\x1fQ\x84\xa7$\xcd\x15a\xf1!e\xed|\xc9\xe1b\xcc?\\\x889\x87\v0G\x88~\xe6\xbeB$l\xbf\x84\xe0\x0f\x8fc\xe2\x0f\x15\xf0\xffJYo\x0e\xff>\x1b\xe1\xeb\x0f#q\xfd>\xfc\xb7\x96\x02/U\x1b\xdfŞq\xbe\xf2\xf9\x82\xf6jk\x84N\xd3\xedy7D\xe8r\xda=%\x00\xa7\x12C\x81\x1d\x9bj|\xbc\x0f\x8e\xe6\xc9\xedg\xb4\x04\xb0L\fJH\xee+DľJ\xdc^\xb2\xbb\x12\xf3\xf6V`\xf6\xdeR\xcc>P.\x13\xde\xfe\xef`%\xa6\x8b\x9f\xa7װ\xf0X)\x16\x8a\x81\xca\xc2\xc3ExjW6&n?\x8d\xa8o\xce r\xeb\x15\x04oˁ\xd7\xc6\xcb\b\xd8z\x19A[N#z\xf3\t\xbc\xba\xbf\xe6Aʕ\x1f?\xc0\xa1\x04!tZ\x02\x99,$>A<ߌ\xd8\x1a\xcfC\xbfS\xa1S[S\xdaR\xcc\x1d_\xb5m\xd2%L\b=\xa0\x16\xa1\xdfx|\xaa^\xbd\x14\xfa\xe4ɓ\xb5\xdbר?\x89\x8f\x8fg\xa1\xb3Й\xba\xe4\xbd\xf7\xde\xd3\xee9\xa7Qu\xef\u07bd\xeb凰6\xa1\xf7\xb6Q\nq\x10T2\xb3\xba\xd0e\x05.\x97P\x19\x85W\xe7\xba\xea]\xf7(\xf4\xec\x00k\x14\x05\xd8\"\xd7\xd7\x069A#P4\xce]N\xb9SA\x16\xda\"%\xb7vQa\x99\x89\x94\xed\x1e\x8b\x8a'\x13\xf0\xfb\xa4HT}\xf5\x1f\xd4\\\xf6\xf5\n\x9e\x15B_y\xe4*\x96\x1f*ƒ\xbd\"\xf2\xdeY\x8eet\xa2\x9a\x88h\xe7\x8b+\x9d\u007fN۸\xe8\x9c\xf05\xb4=m\xf7E,=\x9c\x8be'J\xf1\xb4\x10_\xf2\xafY\x88\xd9v\x01ᛯ tk\x0e\x82\xb7\x17\xc2\u007fs6\x82\xb7\b\xf1}u\x1c\xb1\x9f\xeeŲ_k/\x93z\xf1\x99\xc584V\x88on\x8aR\xde59H\x9b\xe5\xaeF\xe7U\xdamk\xe2:u,\x0eD{\x01_\xbfS\xebc\xbe\xb2;\v\x8b\xfewQ\xd6f_\xb5\xa7\x04\xabw\x16⥝\x95x\xfe\x97b\xbcp\xa8\x02\xab\x8f\x94a\xc5\xe1\x12,\x14\xafy\x8e\xe0)\xf1:\xa6\x1f)\xc1t!\xf4YgEP\xbd7\x17\x91;\xfeDȦ\xa3\xe2u\x9dBĖ\xb3\x88\xdar\x01Q[/\"b\xeb9)\xfa\xf4/\xf7\xd5\xfa\xf7\u007f[\x9d\x8e?\xc5s\xa7Z\xee\x98\"^S\xda8\x14\x8f\xa3\x82?1\xf7\xbc\x86N\x11\xb6\x85\xbb\"\xe9;\xbdJ\xc6D\xc9b3}\x1d\x02\xd1u\xa8\x9b\xa6R\x9c\"\xf3\xfe\xb6B\xe8ÝѦso!t1\xe8\xd67\xae\xb7B'H\xe6T\n\x96\xfa\x93\x0e\x1d:\xb0\xd0Y\xe8L]B\xa3h\x8a\xca\xd5\b}Μ9\u007f;\xa1\xf7\x1d\xe6)\xa9.t\xeadU\xa1[\xb8GIn\x14\xfa\x10\x97\xfb#\xf4B\xaa\xe3\xee7\x14Y\xc1õB\xa7,w\x90<\x12\x85\xf0&R\x94\x1e)\xf7\xa2\x17d\xc6\xe3pFP\x84\x05\x87K1\xf7h9f\x1e\xab\xc4\f\xc1\x84]9\b\xfb\xfe<\xfcD\x04\x1e\xb0\xf5$\x82\xb6\x9fE\xf0\xd63\b\xfc\xe6$\x827\x1cG\xc2\x0f\x17\x11\xfc\xe6\x0e\xbc\xf4[탔\x03\v\xa7\xe0|f\xa4\x10z\xa4R\xc9/-\x0e%\x13\x82\xe4\xb4\xfb\xfd\x12\xfa\xdd2pL\xb4\"t\xfb`\x8dн\xab\t\xddY#\xf4\x9e\x1a\xa1\x1b\xd5k\xa1\xfb\xfb\xfb\xcb\x1c\x1c\xf5\x1c\x88\xb9s\xe7\xb2\xd4Y\xe8L]ѩS'\xb9vNR\xa7\xadj\xf5\xf5y\xd6g\xa1\x17Q\x1dw\xdf\xeb\x85.K\xa6R\xa58\x92\xdeD? 3\x06哃\x91+\x84riv2~\x9b6\xb9\xf6$\xb2SY\x98\xf9\xcba\xcc\xfa\u007f\xf6\xce;>\xae\xe2j\xc3\xea\xddr\xef\xbdɖU\xacf\xf5.\xabwiw%\xadz\xef]r\xc7tLI\b&\t\xf0\x91\xe2\x00!\x84\x1a\xaa1\x18\xdch!\x04Hh\x89\tͽʽ\xca\xe5\xfdΙ\xbb\xbb\x96\x84\xdc$\x1b{\xcd\xfc\xf1\xfef\xfb\xde;\xf7\xce\xee\xc4\xc2\xf7\x8e\xa1e\xcd\x014\xbc\xbe\x17U\xaf\xecF\xf5\x1b\xfbP\xfc\xfanh\xdf\u0605쵻\xe9\xdc\xf6\x10\xd0\t\xea\x1f\xeeAއ\xbbQ\xf6\xecG\xf8\xd3g\xe7\x9fq\xe8x\xe86l\xa3\xc1\xc6ٖb%\xc0\x0fϘ\xb4\xe4\xe3\x18\r\xbcN\xb4\xe5\x8a\xeb%\x81~e\xc3\xc1\xb2\x91\xc0V:\a\xa9\x92[\xd8$Х~½\xa3\ft^\xfbZ\xb9r\xa5\x04z\x1f\xd7\xd0\x0f\xa5\x9d\x03\xfaI\x02ĩv-Nq\xa48\x91\xad\x8c\xa0ؐ!\x82\xb00\f\xf7\x10\xd4w-\xae\xc1\xf6\xbb\x16\\\xb0\xbeoy\xf33\x14\xbf\xfc1\x8a6|\x8f\xc2\xf7\t\xf0\u007f߇\xfa\x0f\x0f\xa1\xeeݽ(Y\xb3\r\xd9o~\x8b\x8cU\xdfA\xf3\xf6Ndr\x82\x92\xb5\a\x90\xb1\xe1\b\xd2?8\x89\xd4\x0f;\x11\xff\xf7\xa3\x88}\xaf\x031o\u007f\x8fҏ9\xd5\xe8?p\xe7;\xff:\xbf%\xfb\xeej|\xdcV\x81\x83Kk\xd1Q\xad\x02n\xabƙ\xca\x14\x11\u07b5+\xd0\x15\xa8\xeb\"Ʊ\x95^\xaf\x15\xeb\xd2\a\xc8\xea\xfdς\xb2\v\x9e\xd3/_\xfd\x12\xb5/\u007f\x82\xd2\u007fnB\xda\u007f\xb7#\xfe\xcb\xed\xc8\xfd`\x0f\xca\xd6w\xa0\xfc\xed\x0eT\xbcсʕ\xfbP\xf9J\a\xc1\x9c\x06\"/\xedE\xfd\xaaC\xa8z\xfd\x00\xbd\xb7\x1fū;\x90\xf3\xe6\x0e\xa4\xafڂ\xf4\xb7\xb7\xa2|\xedf\xfcb\xedw\xe7?\xa7/\xd6cۢ*\x1c\xac\xe3\x1c\xf5\x9c.\x95\x8e\xb5F#\x06XG۲p\xb4=[\x02\xfd\n\xeb\x9e{\xee\xe9\x96+\xfdz\x8a8)%\x81~Cjݺu\x86lj\xc605v\xfd\x03=\x80\x80\x1eF@O&\xa0\xe7\xe0$\x87\x19m\xcb\x11\xfb\xb4ў\x853u\xc9\x00\x01\xe4T\xa3\n\xbb*\xd3q\xe2\xe6:|UA0\xf9ۊ\v\xd6\xfb\xb2\xb7\xfe\x87җ\xff\r\xd5k_\"c\xf5\xff\xa0Z\xbf\x99,\xf1\xadЬ\xd9\x04\xd5\xea\xef\xa0^\xbd\x059\x1b\x0eB\xb3\xee\x102\xd7\x1cB\x1a\x95I\x1b\x0e!\xf1݃H\xe0\xe8i\xef\xed\xc0ܕ\xffF\xf6\xea\u007fᾍ\x17έ\xbee\xf9\x9d\xd8|S\xad\x18p\b\xe7\xb1\xf9\xf98[\x95\xac\xc4ko҈\xa9v=\xd0\xd9A\x8e\x01/\x80^\xa3@\xfdp\xa3\x16\xdf,(ƶ\xa7\x1e\xb8\xe0\xff<\xfc\xfeVh_x\x1f\x01o\xbc\x8f\xe8O\xbeCچ\xedbP\xc2\xeb\xfe\xd9o\xeeA\xce\x1b{\x91\xf7\xe6>\x14\xad>\x84\x92ՇQ\xf0\xda\x1e\x1a\x8c\xecEٛ\x1d\xa4=\xf4|3\xb4/}#r\xa1/xk\xd3\x05\xff\xeb\xe0\xa3˰\xa7\xbe@\xa4\xaeEC\x81\x98M\xe0Y\x05\x1e\x900ЏI\xa0_\x15\x8d\x1a5ʐ\xb4\x85\x1f\xcb>W\x02]\xea*;\xc3鷩qy\xf7\xddwK\xa0\xf7\x19\xe8!\xc2˽'\xd0O\xb4\xe7\x88}ژ\xa7ƙ\x86$\xb1e\xaa\xb36Y$\x069=\xbf\f[\xcb5\xf8\xfe\x8e\x96\x8b\xd6\xfbo\xdfنf\x02{ڪ\xcf\x11\xbb\xf6\xbfH\xf9`32\xff\xb1SL\xb5\x17~\xb0\x17\xd9\xef쇚\x00\xce\xd3\xed\x99k;\x90\xf1\xf6\x1e\xd2.\xa8Ȋ\u05ee\xf9\x01\xd5\xef~\x8f;?߁\xb7O\xe2\xfc\x96\xec\xab\u007fŗ\xed\xe5\xd8ws-\xf65\xf01\xe7\xe2tU\x92\x12\xab\xbd+\xd0[\xf2\f@g\x89\xf7k2E\xe0\x9c\xe3\x8dYغ\xa4\x14\xef\xddY\x8d\x8e\xcf^\xbb\xe0yݻz#rW~\x88\xac\x0f\xfe\x87\xf4\x0f\xb6!\xed\xfd\xddH\xa5sI\xfa\xfb^$\xfc}\x1f\xe2?<\x80\xb8\xbf\xefG\xe2\xfb\xfb\x11\xbfn'R\xd7nC\xd6\xdb\xdbP\xf0\xe6&\x94\xbf\xfe-\xda\xe9\U000437dd\xc0\xab\x9b/pN\x1b^\xc4\xd6y\xe58Q\x97/\x12\xb1\b\aEvX\x9c\xa7\x15yޏ7\xabp\xa65K\xf1y\x90@\xbf\xa2*))\x11\xfd\n\x8b\x9d\xe4\xee\xbc\xf3N\tu\tt\xa9\xab\xe9\fǞ\xed\xdc\xd8x\x9b\xc9\xf5~\xbc\xd7?Ѓ\b\xe8\x118Z\x96J@\xcf5\x00\x9dC\xbf\x9ei\xcb\xc0\x99\xe6\x14\x02z\x06NT\xc6\x01\v\v\x81f\xb2~[J\xf1\x9f\xaa,|\xfa\xd0\xed\x17\xad\xff\x15\xff:\x80\xea7\xbfD\xfa\x9b\xffB\xea;_#\xfd\xef?@\xb3\x81\xbd\xbe\xbfG\xea\xdb\xdf!c\xdd\x16h7\xec@\x11\xa9\x8c`W\xbe\x8a@\xfe\xdaFԿ\xfa\x05\x1e\xfb\xfe\xc4E\u007f\u007f\xdb\x1dm\xf8\xbe\x85Ϋ-\x0f\xa7\t\xe6h\xd6\xe0xi,\xb0\xa8P\at\xb2\xc8\xc9r\xef\xd4\x01\x9d\xb7\xaf\x9dlUB\xbf\x8a}\xf6\xb5i\x04\xca|\xec\xa1\xef\u007f\xb2 \x1f\x1f=\xb2\xf8\xa2\xff\xf9\xf4\xb7\x87Q\xf8\xfc;\xd0\xd0@%}ͷH\xdf\xf0\x03\xd2\b\xee\xc94XI\xf8h'b\xa9\x8c\xfb;\xc1\xfe\xc3\xedP\xbd\xf3=\xb4omD\xf9\xca/\xb0\xe0\x8d\x8d\xf8\xbfO\xf6]\xf4\xf77.\xac\xc6A\xaac4\xd29\xb4\x95\xe0l\x83\n\xa7\xc8*?\xb38\x17G[3q\x9a\x8f\xbb9K\x84\xea\x95@\xbf\xb2z\xf2\xc9'\xbbM\xbb\a\a\aK\xa0K\xa0K]\xad\xc8p촢olj\xb5Z\x02\xbd?\xdb\xd6\xd4\xe7\x80~\xac4\x15\xa7\x9ar\t\x1c\x05\xc2ኡw\xba5\x9d,\xc1T\xa0\x85\xa0ޜ\xaa\x00\xb2\x81\xac\xc5\xfa\x02\xb2\x12\xcb\xf1y\x15}\xf6\x85\xc7.z\r\xd6\xee\x04Y\xa5\x1d\xa8Y\xf7\x1f\xa8V}\x8a4\x82{憯\x90\xfc֧H\u007f\xeb\x13h\xdf\xf8T\xac\xb9\xd7<\xfb\x11n}\xe5\v<\xff\xf9\xf1K\xba\xae\xff\xb9\xb9\x19\xbb\x16T`\xff\xbcb\x1cc\xa03\xa4\x9b\xd9\x19.\x9d\x8e3S\xf1\xd4g\xe05\x9d\x03\xbab\xa1+\x81s:\x17e\xe1h\x93\xee\xbc\xe6\x95`\u007fS!6\xce+Ŷg\u007f{I\xff\xff\xd0\xc7{\xb0\xe4\x9dM\xa8y\xfds\x14\xbe\xf6/d\xbd\xf6)2V~\x02\xf5\xea/\x90\xbf~#\xb2V\xfe\x13%\xf4|\xf1\x86\xffⱍ\a.\xe97\x0f\xad\xf8\x15\xbe)\xd3\xe0T]\x81.\xd3\x1d\xef\xa1\xe7\xc8}j!\x11c\x9fϫ\x8e\xb7\xde]\xdf@\xf7\t\x8d\xc3\xd0qS\x05\xd0\xcdm\xec\x8d\x02\xe8\xac)S\xa6\x18\xac\xf4\x91#G\xe2\x95W^\x91P\x97@\x97\xba\xd2*,,4\xa4Ieg\xb8\x87\x1ezH\x02\xbd\x1f@?\xa2\t\xc1\x81\xf4`\x1cPG\xe0D\t\xc1\xbb\x81\xac\xef\xd6\"\x9cj\xd5\x03=S\x01z\xb3N\x8d:H\xd6\x11h\xea\x8aq\xa4\xba\f\xbb\xe65\xe2\xf8\v+.\xf9:u\xeaT\xa3hd\xd7+л\xe6Cg\xa0\x9f,IW¥6\x17\x11D\xf2u!R\xd5\x04\xc9t\x9cmIՁR\x0ft\xf6\x0e'\xf0T\x97\xe3pI!v\xb4\xd7\xe2\xe4s\xbf\xffɮǶ\xdf?\x84\xf7\xaa\x8a\xb1\xbf\xbd\n\x9dͅ\x02\xd4\x1c\xce\xf5l\xb3\x0e\xe8\\6)\xd3\xedh\xcc\x13\x01d\x18\xeal\xa9\xeb\xcf\xebx{&\x0e/T\xe1pK\x06\x9d\x8fZ\x19\xa4T\xe4\x02EY\xd8W\xa1ŷ\xad\xa58\xf2\xfc\xff\xfdd\xe7\xb4o\xc5\xfd\xf8\xbe\xb9\x04{+\xb4b`\xc1Y\xd5\xf4\xe9_\x0f,Pc\xdf\"\xb2\xd0\xe7i\xc4s\xd4\xd2yUK\xa0_M\xb1Ѡߓλjd\xff+\x81.u\x05\xf5\xc8#\x8f\x88\xe9v}V\xb5\xdc\xdc\\\t\xf4~\x02\xfd`\x16u\xfe\x99\n\xd0;\x8b\xd3\x15\x8fj\xceT\xd6T\xa8\xc4\no\xd6Y\xe9\x02\xea\xe9\n$\x1b\xf4۽\n\b\x80\x04\xf5\x86j\x1c\xab+\xc1w\r%ر➫zM\xf0\xfe\x1al\xba\xebV|]_CpkAgS\xb9\x80\xb5\xfeX\xd9Bg1\xd8E\xces\x11\xfe\x95=\xc4\vu\x9f\xcb3|\xae\xb3-\x1d\x9d\v\xb2\x85s\x99p\x8e\xab`e+0\xad+\xc4a\xfa\xce\x0f\xed\xa5\xd8\xff\xc7\xfb\xc0[Ȯ\xe6y\xed|\xf86\xfc\x97\aRK\x1a\x80\xb6*\x9c)\xccT\x82\xc84\xeab\xd1\xcfg\xeb\x9c3\xe0i\x94\xc08\x1c\x02\xb6F+\x81~\x15\xe5\xe5\xe5e\x88s\xc1%ﮑ\xfd\xb0\x04\xba\xd4\x15Rjj\xaah\\\x8e\x8e\x8e\xc2B\u007f\xfc\xf1\xc7%\xd0\xfb\t\xf4\xfd\xd9!\xd4\xe1+@?]D\xc0\xe6L^\r\x04\xf4\x86\"R\x9e\x80\x05[\xb3\fu\x05\xec:\xab\x97\xde\xe3utT\xe7*\x9fo\xae\xc0\xc9\xc62lm*Ʀ{\xe7\xa1\xf3\xddg\xae\xf8\xb59\xf2\xd2\x1f\xf1\xed\xe2\x06l*\xcfǩ\x9ar`^\xb3\x98\xf6\x17\xc7Ѩ\xd5\xed7\xd7\x1d+\xcf,4g\v\x80끮\xa4\x1e\xd5\n\xafw\x83%\xdfH\xd0l\xca\x15\th\xceT\xa5\xd1\xefq\x8c\xf4|\xb1\x9e\x8e\x96b\x1c\xa8Tc[}\x1ev߷\x10x\xfb\xe9+~N\x87\xdf~\f\xff\xbd\xabI\xe4p?2\xaf\x12\xc78\xf1\n\xd7)\r$P\xad\x12\xe7\xc4\xcb\x03'[\x15\xb0+\xfb\xe7\xb5ʀ\x8a\xd5(\x81~\xb5t\xd3M7\t\xc3A\xbf=vѢE\x12\xe8\x12\xe8RWJ\x9c0A\xef\xa82q\xe2D\xa3i\\\xd7+\xd0\xf7\xaa\xfd\xb1\x8f\x80\xbe[\xd5\x05\xe8\xd5\x04\xbd:\x82\tY\xdczP\x9e\xd1A\x85\xa5\xe4\x11Wb\xa0\x9f\x15\xa0\xcc\x15aa\xc1۫ZJq\xac>\x1f[jr\xb0\xe5\xb6F\x1c|\xf2\xfe+r\x8d\x0e\xacy\x02\xff\xbe\xbf\x15\x9f-\xa0c\x9fO\xc76\xaf\\\x19x\x14d(\xa5p\x1c;\atv\x1a\x13\x00\xe45\xf5&>\xceB%\xfb\x9a\xd8˭\xc4w\x170o\xe2\xf3U+\x83\x93\x16-\x8e7e\x922Ğ{\xb1E\xac\x86\xe0^\x97%|\n8\xc5\xeag\xf3\n\xb1\xe9\xffn\x05>~\xbd\xdf\xe7\xd5\xf1\xfeS\xd8\xf8\xf8\x1d\xf8Ǣb|\xddV\x80}\xad\xa5\xe8\xa4A\xc7\xe92:\xb6\n\xb6\xccs\xe8ؕ\xfaV\x06Q\x1a\x9d3\xa2V9W\x9ei`]\xe7\xb1܍\x19\xe8,N\xa7\xca\xc6\x03\xcf\fz{{K\xa0K\xa0K]\t\xadX\xb1B4*=еZ\xad\x04\xfa\x15\x00zGN\x10\x01=@\x00\xfd\f\x03\xbd\x8a,\xf3Z\x82f-\x01\xbd\xae;\xd0\x15P*\x11\xd7N7\x15\nX\x82\u05ee\t~GȲ=\\\xcb\xd61}\u007fa%\x8e\xd7\x17aS~:\xb6ԗb\xff\xbd\xb7\x00+/ߺŚ\x97\xb0\xfdWK\xb0qa)\xfeל\x85\x037\x95\xe0\xc4\xe2|\x1c\xacI±\xf28\x05\xba\xbc\x96_w\x0e\xe8|\x9c콮lMS\x8e\xf3,/!\xd4\x17렮\xd5y\xbe\xeb\x80^\xab\x11k\xec\xc7\xe7\xe5\xe0\xe0<5I\x85cm\x198[\x9fBu\x91\b,\xa5AJ]\x1a6\x93\xb6\xd1\xff\u007f{S9\xbeh/ơ{o\x06^\xff\xdb\xe5\x9fӳO\xe2ز[\xb0\xb7\xb9\x06\xdbi0\xf2=\x1d\u007f\xe7\xed\x8d8A\x83\x8e\xa3\x85\x1cf\xb7\x8c\x06\x1b\x05\xd8_\x9a\x80\x13\xcd*\xc5\x01\xaeI\xb7f\xceNpb\x9a=\x0f'[\n\x84W\xff\xa9&\t\xf4\xab\xa9\x80\x80\x00a\xa5\xf3z:\xf7?\xebׯ\x97P\x97@\x97\xea\xaf\n\n\n\fkYܰ\x1ex\xe0\x01\xa3iX\xf7\xde{/\x1d\xbb\x19\x01\xddFtl\x13fx\xc0+4\x01\xce\x01q\x02\xe6\x9crR\xe4C\x0fL\x11y\xa5\xb9\x93\xf5Jʇ[\\n7\xa0w\x83\xb9N\xde\xf4\x19\x05\xe8\xb9:\xa0\x17\x12\xd0\v\xce\x01\xdd\xdc\x06V\xa6\nЛ\\\xcf\x01\xfd\xa8nʽ\xab\x85\xae\x00\xbd@\x99Ʈ+\xea\x02t\xc51\x8b\xe1\xa2\azg\xb3\xe25\x8e\xb6\\\x91jU\x1f\xac\x85\x03\xb8\x80\xb3\x82\xf1w\xab\t\xa0ue\xd8O\xd6\xfeF\xb2\xde?]Z\x8bO\x97/\xc1\xd7\u007fy\x00\xbb_\u007f\x1c\x1d\x1b\xfe\x86\x8e\u007f\xaeƞ\x8f\xdeB\xc7ڗ\xb1\xeb\xf9DZ\xeb\xf7\x0fb\xfb/n\xc7w\xf3j\xf1E\xa9\x1a\xdb\xc9\xf2?BV\xf9\x89\x05\x858ؐ\x81\xc3\r\xa9\xc0\x02\x02\xdc\xfcL\x11\xe8F\x04\\\xd1[\xe8\x1cEM\x1c\xe3\xb9\xe3\xe4c\xfc\x91\x85.\x80\x9e\xa9\x88\x9d\xff\x1asq\x88\xa0\xb9\xbf-S\xd9\x16FB\x9bF8֝$\xa8\xb3\x85|rI\x01\x0e\xdfT\x8c}dQw\xb4\x15\xe3@M!\xb6R]}9\xbf\x16_\xdf\u007f\vv=\xf6k\x1cx\xe1O8\xfc\xc6\xf38\xb5\xe1u\x9cz\xef\r\x9cZ\xbf\x12\x87_\xfc+\xf6\xfe\xe1!l\xbbc)65\xd5`w\x05\rJ\xcah\xb0TQ*\xea\x06\x8bk\xb1\xa7JE\xff\x93%\x9c\x11Q\xa9Vf\x06\xe6\xe7\x8b\xe01\xc2\x01\xae\xa9\x8b\x13\x9c\x01\xe8y\x06\xa0C\a\xf4\xa3\x04\xf4\xc3\x19݁~H\a\xf4\x1d=\x81n{e\x80>\x9b\x80\xee\x9dX\x8aY\xe1\f\xf4$8w\x01\xba{`w\xa0[\b\xa0\x9b\xe1\xf9\xbf\xbd`4m\xb7\xb2\xb2R\x00]\xef\x1c\xf7\xf0\xc3\x0fK\xa0K\xa0K\xf5WӧO7Dn2\x86`2\xdd\xe2C\xdf\xfb\v\x1d\xcc-`fi\x87Iӝ1'8\x12.s\xc2\xe0\x1aB\xd6yh:\x9cBR1=(\rΑ\x1a\x01p/\xb2\xb4\xdd\xe3\v\xceYB\t\f\xf3b\x82x1|cu\"\xa0\xcf!\x90\xfb\x11\xfc=bs\xe0\x99R\x04\xe7d\xb2ԓ\xf2\x10A\xdfu\xf7\b\xa3\xff\xb4\x12@\x1fEu\xd7\xe26\x01;\xcb\xf3\xb17)\x1cdz\xa3p\x80s\xa1gQǟ\x19,\xf6\xa1w\x16\x13,\xeb\x18\x10\xbc\ue72b\xacK7)q\xcf\x15\xa8\x9fәf\xad\x10\xbf\xdf\xf53ʺ\xb5V\a\xce<\x05\x98\x04\xd5\xc3-\xf4\xbf-\xb9\xd8F\xdf\xf9\x81>\xff}c\x0e\xbei\xcc\xc6\xd7\xf4ٍM\xb9\xf8\x9e\xfesk\xb3\x92\xcat\x1f}\x87?\xcf\xc9`\xd8\x12\x15\x1e\xec\xf4=\xe5\u007f\x95\xfc\xe6g\x9b\x95\x18\xed\x8a\x17\xbbV\x94=\x8fC\x91V9\x9eF\xad\xe1s\x8at\xa0lR\x8eW\x9f^\x95\a\x04\x8a\xb7\xbc\xc6\xf0\x19a\xf9w\x89\x05\u007fR\x1cO\x81\x18\xd4t4\xe4\xd21\xe7b\a\x1d\xff6\xd2\x16:\xfeMt\xfc?\xd0\xe3\xcdd\xf9om\xcc\xc7N*;\x1a\xe8\x9cH\x9d\xbc-P\xac\xe5\xd3\x00\x83\xb7\xd2Q=3\x94y\xea\\\x84vmP\x82\xc5\xf0\xac\aK\xa9\xcfle\xba]\xafF\xa5\xee\xb9Nΰ\x0f@cw\xa0\x1f\"\xa03\xccw\x93\x0edGЀM\x01z\xfd\xd0\xee@w\r\x88\x87O|\x9ea\xf6\xe7r\xc5\xf7\xa5\x1bݓ\xce\xd1\xf9p\"\xa0O\r\xce\x10V\xfa\xb49\xb1p\xf6\x8d%\xa0\xc7\xc1\xc3?\n\xd3\\\xbc\xe9>\xb4\x84\x9d\xe3`*M\xf0\xccsO\x1bU\xfb\xe5~G\x9f\xacEN\xbbK\xa0K\xf5S\xaf\xbe\xfa*\x86\f\x19b\x00ztt\xb4Q5\xaa\x87\x1e\xfd\x83\x80\xb9\xb5\xbd\xa3(\xc7N\x9c\x82\x90\x88\xb9\xf0\f\x8c\x80k(Y\xe6a\x04\xf4\xe0t\xea\x10\xbb\x02\xbd\x84:\xcb.@\xa7\x8e\xf3B@\xe7\xe9y\x06\xfaL\x03\xd0\xc9\xf2\x9a\xad\x00ݦ\v\xd0w\x95\xe5\xa3#\xf1\x1c\xd0\x0fi\xc2\xd1A\x10`\xa0\x9f,I\x16^Ӽ\x9e\xcc\xe9S{\ad\xb6\x012\x97\"\x91\x86U\xff[\x04\x1f\xd6i\xb2\x90Oի\x85z\xfb\xac\xf8\u007fVk\xee%\xffϵ\x92\xe1\x98u\xe7h\x18\xe0\xe8Εϑϗ\xa5\u007f\xad\xb7ϝO\x17\xfd\xff\x06\x05\xe8l\xd5w\x05:\xc3|g\xae\x02\xf4\x9d\xea\x1f\x03\xdd\xd4f\x10ܮ\x00\xd0g'\x97Ù\xac\xf4\xe9\x11Y\x98\x16\xa6\x12\xf7\xb1sp2\r\x16\x12\xe0\xee\x17\x03\xbf\xb0\x048\fe\xdf\x17K\x98\x98\x99\x93L\xc9B\u007fΨ\xda/o\x8f\xd5;ƍ\x1e=Z\x02]\x02]\xaa?jmm5$K`\xdd\u007f\xff\xfdFը^x\xf95\x01r\xc7!\xc3E9p\xe8\b\x04\x86F\xc0\xd3?\x1c\xae\xc1\x89\x98\x19\x92\x06\xa7\xa0\x14L\x0fN\xe9\x06t\xf7^\x80\xae\x87\xba\xa2sS\xee<=\xcfS\xee3R\xf4S\xee\xe7,t\x1b\x93k\a\xf4\xde\xc0g\x00\xb6\x0e\xdaB]\xfe\xb3+\xe8\x8c\x15\xe8\xfas\xe8y~=\a7\xd7\x03\xd0\xfb3\xe5\xee\x91Z\x86Yt\x9f\xb2\x85>=4C\xcc6\xb9\x87\xa5\xc2=(\x11n~Q\xf0\v\x8f\x87\x89\xf5\x00\xb1\xf4cb\xc1V\xfa\x00\xa3\x03bii\xa9\xa1\xef\xe1\xe5\xbe?\xfd\xe9O\x12\xea\x12\xe8R}\x15\xc7R\xe6\x86\xc4\xe2\x18\xee\xc6x\x0e\x83\x86\x8d\x84\xb9\xb5\x1d̬lai\xeb\x00o\xbf@\x05\xe8ԩ\xf2\xba#\xaf\x9f3\xd4]#\xb3\xe0\x95X\xf8#\xa0{$\x14\v\xa8w\x05;\xaf\xa7{\xc5\xe5\xc3'\xb9\x98\x80NVz\xaa\x02t\xd7d\x1d\xd0y\r\xddԦ۔{W\xa0\x1f\xfa\t\x80~>\xeb\xb4'\x04\xbbZ\xee\x9du*\xa1\x93\xb5\x99\xd7=\xd0\xf5秗~\xe6A/\xb4\xe5)\xea1h\xb9R\x03\x96\xfe\x00\x9d\xef\xbd\xfe\xac\xa1\xcf\xd6ɕ\xee\xbd\x19\xe1\x1aL\vL\x15\xbe \xbc\x8c4;8\t\xee\xfes1sv\x00\xec\x06\x0e\x87\xa9\x85-\xac\xec\xec\xe1\xee\xe5it\xed\xf7\x89'\x9e\xe8\x96ݑ\x93\xb7\xc8~Y\x02]\xaa\x8f\x1a:t\xa8\b\xf3\xcaV\xfa\x8c\x193\x8c\xb21\xc5'\xa7\t\xeb\xdc\xc6a L\xcc,\xe1\xec\xe6\x01ߐh\xcc\xf2\x8b\x853\xc1|f@\xb2\x00\xbbk\x94Z8\xc4y&\xe9\xac\xee.\x1dgO\xb0\xb3<\xe2\v\xe1\x9dR*:U\xd7\xd4RLO)¬\xe4\"\x84&\x14\xc1̓\x80n\xd6;\xd0Od\xfd4@\xefiq\xf6\x04\xe0\x85,\\cT\xb7\x99\x88\xf3\xe8\x8a\xfe_\u007f\x81N\x83\xc6ى\xc5}\x14ݗ\t\x85t\x0f拁\xe8\xf4\xc0d8\xf9\xc5\xc3%(\x01\x1e\xc1\xa4\xc0\xb9\x184r\xb2\x00:\xfb\x8e\x98\x98\x9a\xa1\xae\xa9\xd1(\xdb/o_c\x87\\\xde\xc26k\xd6,\tt\tt\xa9\xbe\xe8\xcf\u007f\xfe\xb3hD\fsv\x86cowc<\x8f\xfb~\xf5\xa0\x00:Üˡ#\xc7\xc0\xcd'\x18\xb3|c\xe0\xec\x9fHJ\x16[~\xdc\"\xd5b\xcbZW/\xf7\xd9I\x05ݡ\xae\x9b\x82gG\xb9s@/\xd0\x01\xbd\x84\x80^\xfc#\xa0sG\xde\xec\xfe\xd3\x03\xbd\xe7TsWk\x9cu1 \x1a-\xc8uK\n\x17\x9a>\xbf\x12\xf0\xbf\x96@\xe7\xfb\x90g\x93\xe6\xd0\xfd\xe9\x11\x9d\xad\xec\xd4`\xef\xf6\xa0Da\x9dϘ\x1d\b\x13\x8b\x01\x8a\x87\xbb\xb5\x03̬\xac\xf1\xf2\xca\u05cd\xb2\xfd\x86\x86\x86\x8a\x19B\xee\x87X\xb2o\x96@\x97\xeac\x92\x04\x9e\xeab/S\x8e\x10\xf7\xbb\xdf\xfd\xceh\x1b\x13\xaf\x9bw\x85\xfa\x88\xb1\x93\xe1\xe2\x13\x05\x17\xdf8\xb8\xf8+{\xd2=#U\xf0K\xc8%\xa8\xe7\xc2-6\x9b:\xcd\xe5~\xb15\xe6\x9e\x16{O\x19Ӕ{_\xa6э\x1d\xe8\xec\xbfᗐ\x83\xd9\xe1ib\x1b\xa6[P\x1cY\xe7q\x98\xea⋁#&\x89\xb8\v&&\nГ\xd33\x8c\xb6\xed\xdev\xdbm\x86m\xb3\\\xde}\xf7\xdd\x12\xea\x12\xe8R\x97\xab\xb9s\xe7\n\xcfv}\xcaTc>\x97[\xeeXF\x16\x8b\xb5p\x8a\x13[ج\a\xc0\xd5+\x1c\xaesb\xe0\xe2\x17\v\xb7\xc0\x04xEf\xc0?>\as\x12\xa9\x93\x8cQ\xc13Q\v\x8f\xa4.\"\xb8{vя\xd6Г\x8b\xe0\xda˔{7\xa0'D\xfcdNq\xbd\x01\xaf\xab\xceg\xc1\xebao\x94\xd3\xed=\x9d\xfe\xf4\x8f{9\xcfk\r\xf4\xfe8ű\xa7{@\x12\xdd\u007ft\x9f\xf2\x9e\xf6\x19s\"\x05\xcc=\x83\xa21j\xa2\xb3\x02s3[\xe1\x98ɾ#\u007f}\xeeoF\xdb~_{\xed5\x01\xf2\xc1\x83\a\v\v=''G\x02]\x02]\xear\xc5V9;\xc2qcb\xe78c?\x9ftu\xb6\x02s\xea\xe0\xac\xed\x06\xd3y9`\xdc\x14/\x04\x11\xc8}B\x920sN4<#\xd2\xe0O@\xf7\x8e\xd7\xc03N\x83\xd9\xf1]\x95M\xaf\x9d\x13oYs\x8d\xca\x14\xdb\xd6\xfc4U\x98\x1c\x93\x8d\xa9d\xe5G$\x15uۇ\xae\x9fr\xdf]^\x80}\x89\x918\x96\x15\x89\xfd\x99\xc1?\x99\x97\xbb\xd4U\x1aD\\\x02\xd07\xa7\x86\xe1hS%\xea\x86\xd8b\x18;w9\xf0,\x91\x1d\xa6{\x86\xc17^+\x06\x85\x9e\xb1y\x98\x1d\xad\x85\xfbܜn\xf2\x88\xc9\x15\xef\xf1gؚ\xf7I(\x14%\xbf\xe6\x19\x93\x05_\xba?=\xc3\x12\xe0\x1d\x96\x88\x80\xa8d\xb8x\x87*\x96\xb9\xb9#\xfd\x87=\xec\x1d\x87Si\x8d\xa6\xb6\xf9F\xdfv=<<\f\xde\ue79e\x9e\x12\xe8\x12\xe8R\x97\xa3\x97^zI\xc0\xfcF\xf3.\r\x8b\x8a\x11P\xb7\x1b0\x04\xa6\x96\x83\x04\xd4M,\ac\xba\x9b?\"S\xb4\x88U\x17!$5\aA\xa9\xd9\xf0O\xc9\xe9\xa1\\\xa1\xc0\xe4\\\x04\x91\x02\b\xfc\x81d\xb9\xb3E\xef\x97YL\xd6y\x1e\xbcS\xf3\x91\x90^\x06o\xafH\x11У\xdb>\xf4\x8a\x02t$1\xd0\xe7\n\xa0\x1f\x94@\xbf\xa1\x81ޡ\x0e\xc5ޜx\x1a\xc8\xe5\xa1\xd4V\x89\x18hjc\x023\xdb\xc1\b\x8d\xd5 \"\xbd\x18\xa1\xe9t\xbf\xa5\x15#8\xb5\x00A)\x85\xa4|C\xc9\xc0\xf7\xa5A$/\x03\xf9'jIyb\x8a]\xbcN0O\xc8.Eh\xa2\n\xce\xde\xc1\x18:n:l\a\x8d\x81\x8d\x03{\xb5\x0f\x10S\xed\xbc\xff<5#\xeb\x86h\xb7\xe1\xe1\xe1\xa2\x1f\xe2>\xc9\u0602[I\xa0K]s\xb5\xb7\xb7\x8b\x06\xc4\x1e\xee\\\x1a\xf3\xfay\xb7@9\xabV\xc3\xcb7@tv\xe6V\x03t\xeb\x8c<5i\v3\xea\f\x87Mv\xc6\f\xdf\x10xF\xc6\xc3%4\xba\x9b\\Cb\x85܃\x15\xcd\xf2\vǜ\xc8D\xcc\xf4\x8fƴ\xc0XL\x8dH¬\xc8\x14\xf8\x87\xa6\xc0i\x8a\aL\xe9?lM~\f\xf4#\x04\xf4}*\t\xf4\x1b\x1d\xe8ے}q\xb8(\rۊ\xb2P\xe1`\x8e\xf1f\xbaHqt\xaf9{\x87\x89)\xf2\xd9!qt/ŋ\xd8\xeb\xbc\x06\xae\xdc[\xf1\xa2\xf4\x89LŜ\xa8\x14R\x9a(\xf9\xb97\xddc^\xe1\xc9\xc22\x9f\xea\xe6\x8bq\xd3]1p\xd4D1HP\xeec\x1bX\xda\f\xc4\x00ǡHJ\xce\xc0\xfa\r\xef\xdf\x10\xed\xb6\xb8\xb8X\xf4C#F\x8c\x10\xe5\xf3\xcf?/\xa1.\x81.uɖlX\x98a\x8a\x8b\xad\xf4\x1b\xe9\xdcֽ\xfb\x01\x84\xa5nf\r\x1b\xfbA\x180h8l\x1d\xc9b\xb7\x1b\b\x13\x1b\xb6\xd8m\xc4z\xbb\tu\x8a\x06\r`\r\x17\xd0g\x99;\f\xa5Nt \x1c\x86\x8f\x81\x895Y\xfa\xf6C`2|\x1c}v$\xacmG\xc0\xc2\xc4\x0ef&\xe6\x02\xe8\xa3\x19讓\xb0\xab\xbc\b{\x92\xe7\xe2pv\f\xf6Q\xc7\u007fP\x13)\x81~\x03\x03}gZ\x80\x00\xfa\xe6|\x15j\aۈ\xfb@\x00\xdd\xdc\x1e\x16\x0e#ab7T\x91\xed\x90s\xa2\xe7\xa6\xf6\xc3\xc4=&\xee+\xbd\xac\x06*\xb2tT\xbc\xd7\xcd픀1\xc2ɓ\x93\xaf8\x18\xac\xf2!CG!jn\xfc\r\xd5f\u007f\xf3\x9b\xdf\b\u007f\x9e\xe1Ç\x8b>i\xe9ҥ\x12\xe8\x12\xe8R\x97\xaa\xf1\xe3Nj\x06čgܸq7d\xe3)-\xab\xc0\xb8I\x93\xc5\x1e]\x1333\x98\xdbSGigO\x1d\xab\x1dl\xb9\xe30\xb7\xec.\xea8\r\xe2p\x9a&f0\xb5\xb4\x12S\xebb\x00\xe0@V\x92\x85=Y\xe6v\xb0\xe3N\x9b=s\xbb\x00}G\xc59\xa0\xefUI\xa0\xdf\xe8@?\x9a\x1f\x83=\xd9q\x02\xe8\xfa5t\x13\v\x13%\x1c\xab\xa9\x83p\x9a\x14\xf7NO\x99\xd1=en\r3k{!S+;!\x13K\xdb\xee\xb2P\x80Ο\xe1\xc0I\xa64@\x9d9\xc3\x15\xcb\x1f\xf8\xed\r\xd9^\xf5^\ueb10\x90\x10\tt\tt\xa9K\x15\xafS\xb1w\xbb1\xc6o\xbf\x1cmxw=\x1a\x9b\x9b\xe0\xed\xe7\x8b\x01C\a\xeb,(\x16A\xde\xcaR\x11\xc3Z'3\xeahͩ#\xb6\xa0\x8eԜ\xc3Q\xf24\xaa\xa9\tLmi \xc0Y\xa1Ⱥw Kk\x00\x01ݲ\x17\xa0\xefN\x8e\xc1A\t\xf4\x9f\x05\xd0\x0fi\xa3\x84S\x1c\xaf\xa1\xcf\x1f?L\x01\xba\xb9\xb2\x86nbj/\x02\xbepZ_3\x1a,v\x15\xbf\xa6\xa4\xfb5\xbb\xa0D8cs+\xe1\x13\xe2<\xcb\x1dKo\xba톆\x9c\x93\x93\x93\x809\xf7MÆ\r\x93@\x97@\x97\xba\xa4\x84&\x0f=$@\xceb'\x14^O\xff9\x9c\xf7\xd3/<\x83[\x97ݎ\xb2\x9a\n\xa4iT\x98\x9b\x10'\x14\x1d\x9f\x80ظ\x04đ\xe2c\x13\x90\x18\x93\x84\xa4\x988$F\x85#%&\n1\xd1\x11\x88I\x88GP|<榦C\x95\xaa\x81\xf7LwXS\xe7\xe3\xd0+\xd0\xe3\b\xe8a\x12\xe8?\x03\xa78\x06\xfa\xbe\xea\"\xcc\x1b7\x14c\xf5S\xee\x16\x0e\x88\x8c\xcfD||\"\xe2\xe3b\x10\x17\x1b\x8dؘ\xb9t\x1fEuSRb\xbcP\"݃,~\x9c\x9c\x94\x80Ԕ$\xa4\xa6\xa6\"-=\x13w\xdfs\xdf\xcf\x06l|\xcez\xc78\x8e\x8d\xb1a\xc3\x06\tu\tt\xa9Ku\x88ӏ\x86\x19\xf0\xb2^.O\xab\x9e}\xb9\x9b\x85\xce\xfbзW\x16\v\xa0_\x89)wNᩤ6\xcd\x13)H\x95ה\xbc\xe9J\x1aR]*\xd5\xc6<\x9ci\xe2t\xa3\x858\xd6Z\x8c\xa3m\xc58ޢ\x88ӣr:\xd2^\xa5KUz\xbc5\xcfP\x1eo-\xe8\xa6\v~\xff\x12\xa4\xfc\xe6\xc5u\xde\xef\xb6\x14\n)ǡ\x1cӱ\xb6\x02:\xc7\x02\x1cn\xe7Ry_\xe4\x8e紩\x9c\xbb\xbd^\xabK\x83\xaa1\xa4}\xed\xab\xc4^\xf6.\xf9Џ\xa43\xd0CE\xfaT\x06\xfa\xb1\x82x\xecΊ\xc5\xd6\xe2,\x14Z\x99`\f\xb7)3\x13\x8c\x1a?\x15+\xdf|G\xb6\xa9\xcbT]]\x9d\x00\xb9>Qˊ\x15+d\x1dJ\xa0K]J\xa8E\x0e\xf9\xca\x1e\xeeƚ\x90\xe5Z\xeb\xb9Ǟ\x12k\xe86\xba}\xe8\r\xee\xd3\x04\xd0y\r]ه\x1e\xd8//w\x86\xf9\xb1\xf9e8\xcc@\xab\xa3\xef\xb4\xe7\xe3D\xab\n\x1d\xcd\xc98\xb4(\v\a\x9a\xd3\t\\\xf9\x04\xaer\x1c\xab*Î\xca2lim\xc47\xa4\x8d\x95\x15\xf8\xb6\xb2\x14[ꋱ\x8d 'Ԡ\xd5)\x1b[\x1aY\x1aQn\xa6\xff\xdaB\xafs~\xf1͍\xf9\xd8\xdcPH*\x16\xdaB\xbf\xbf\xa5!\xaf\xcf\xda\xdc\xc8\xf9\xd9ω\x9f\xf7&\xfe\xff\x9e\xe2\xe3\xd9\xd6Z\x85\xed͕\xd8\xddTN*Ŷ\xe6\x12lj-\xc1\xc6y\xc5\xf8ϼR|A\xc7\xfaCC):*\x8ap\xb6\xa2\x18\xa8+\a\xaa\xa9N*2\xa9\x9es\xa9\x9e\xfb\x9e]\x8e\xaféf\xb5\x18D\x9d\xae\xcb\x10\xeb\xe5\xc7\xd2\xc2\x05\xd4;\xb2\xc3\xc9J\x0f\xc7^u$\xf6\xe4$\xe0\x87\xe2l\xd4\rw\x10\xdb\xd6,mLaai'\xdbT\x1f\xf4\xf2\xcb/\v\x98s\x90+.9\x13\x9b\xac\x17\tt\xa9\x8b\xc8\xdd\xdd]\x8c\x80\x19\xe8\xec\x1c'\xeb\xa4o@731\x15\x81e\x86\v\xa0O7\x00\xfdxV\x04\x0ef\xfa\xf7+\xb0\f[\xe6\xc7ZJq\xa4\xa1\x84@E\x96'[\xeb\xedY8N\xd4\x16c[U\x19\xf0\xee\xda^\xaf\xdd\xef\xfe\xf8\x14J*kQ\xdeЊ\xd2\xe6%(n^\xaa\xa8e\x89x\xaeh\x91P\x99\xd0B\x83*\x9a\xbaK|_\xf7\xbd\xbe\x94E\xad\x8b~\xa4\xe2\x96s\xd2\x1fǹc9'>fm=\xa9\xf6f\x14W,AY\xc9|\x14\x97\xb4!\xb7\xa4\x05\x99\xe5\xcdH-o\xc1\\u9\x1e\xfb˛\xbd\xd6î\r/\xe1ۦ\\\tt#Ӛ5k\x84e\xae7:\xe4\xd65\tt\xa9\v\xc8\xc5\xc5E4\x14^C\x9f={\xb6l,}\xd4\vO<}U\x81\xce\xc1c\xf6\xb7e\xe0\xc8\xed\xb9ؽH\x85\x8ey\x04\xa6y\xc58\\\x9e\x83#\xad\r\xc0+/\x9e\xf7\xdań'a\xa6\xab?\xdc\xc3U\x98\xe0\x9f\x8a\xa9!*8GiE9=L\x83Yss1=\\\r\xa705\xa6\x87\xaa058\x03S\x82\xd215 ŠɁ)\xe2\xf3S\xf8\xfd\xf3\x94\xd3B\u0558J\xbfq\xberB`*\xc6\x05\xa5b|p\x1a&\x84\xa4cbh\x06&\x87\xd0\u007f\x85f\n\xf11\xe8\xc5Ǣ?\x9ei!\x99\x98J\xefs\xeeyG\xe7@\x8cu\r\xc6\x14\xf7P\x8cq\xf2\xc1\x04\x8f@\f\xf7\xf2\x87\xd5\fw\x84\xe7V\x9c\xb7\x0e6\xbd\xfd\x14~\x98W \x00.\x960\xb8\xde[s\xbb\xd5\u007f\u007f\x81\xbeG\x15\x81\x9d9\x89\xf8\xbe(\v\xb5\xc3\xecE\xe8W\vk\x92\xb9-6l\xf8\xa7l[}Ԙ1c\f\x81\xaf\x92\x93\x93e=J\xa0K]h[\x88\x1e\xe8r\xcb\xda\xf5\vt\xb6\xd0\x0f\xb5f\xe2\xf8\xcdy蘟)\x1e3\xd0OU\xe6\xe2P}\x05\xf0\xfb\vG\xf7KH\xd1\u0085\xc0\xe8\x97^\x03\xef\xe4\ň̅kL1\\H\xceQ\x05\xf0L\xac\xa0\u05eb\xe0\x93R\xadS\xa5A\xfcy\xaf\x94\n\xb8%\x96\xebT٧\xd2#\xad\x9aT\xf9\xa3\xd23\xb5\x9aT\t\xf7\xf82\xccN,\x85\a\x1d\x8bgr\xb98\xa6\xd9\xf1%p\x8b-\x81Kl>\x86\xfa\xc4\xc2+5\x9f\x06\x181\xf0\x8eJCLf\x1e\x9c|B0= \x1c\xa1\xea\xdc\v\x9e\xff?\x1eX\x82\x1d\xed\xf9\x12\xe8F(ggg\x03Ѓ\x83\x83e=J\xa0K\x9dO<\xdd\xce[BxZ+;;[6\x96\xeb\x14\xe8\\\x9eh \xab|~.:\x1b2q\xba6\x8d\xbe[\b\xd4\xe6\xe1He>\xf6\xdfr\xf1\xf8\xfb\xa1\x89\xb9\bN.\x84{X:<\"Ԙ\xab\xaaEpJ\x19\xbc\b\xeea\xe9\xd5\xf0\x9a\x9b\a\xef\xe8|x\xc7\x16\xc2'\xaeHQ|\x01\xbcb\xf3\x84|\x93Ju*뵜\x93\xc8*9o\xe9\x1d_D*0\x94^q\x85$\xe5\xff\xbc\xa9\xf4O(A@b1\xa9T\x94\xfeq\xc5\xf0\x99\x9b\v\x8f\xf0\x1c\xb8\x91\xb5>'\xa9\x00Cf\xfabNl&\x82c\xd20y\xb2\v\x9c&\xcdB}y\xd3\x05\xcf\x1d\x9f\xac\xc7\xd7m\xe58ؔ\xdb\xcd\xcb]Խ\x04\xfau/64\xf4@\x9f6m\x9a\xacG\tt\xa9\u07b4j\xd5*\x83\xc3\t\x97\x8d\x8d\x8d\xb2\xb1\\\xa7@\xe78\xed\x9d\xd5\x1a\xb2*\t\xe2\xf5TV\x10\xd0\x1br\x84\xe7\xfb\xf1\xaa,\xech)\xc6\xd6\xe5\xb7_\xf4\xfaE\xabr1\xd9\xc3\x0fI\xdaR\x04&d\xc1%(\x81@\x9a\rאd\xf8\xc6k\x85|\xf4\xa2\u05fd\xbb\xc83NC\xca\xee\xa34\xf0I\xcc\xe9Ust\xf2O\xe4\xffφO\xac\x06\x1eQ\x19p\vM\x81s`\x02\x9c\xfcb1mN4\xc6{D\xd0\xfbYp\x0e\x8a\x86\x93G\x00\xa6LvF]q\xf5\x85a\xfe\xd9:\x1c\\\xb6\b\xbbʳ\xd1٨\xed\x0e\xf4.\x92@\xbf~\x95\x95\x95e؋>h\xd0 Y\x8f\x12\xe8R\xbd驧\x9e2$d\xe1\xf2\xf6\xdbo\x97\x8d\xe5:\x05:\bF\xa7*\t>M\x1c\xfa5\x17(\xcf\x00\xaa\x19\xea\x198ݘ\x89\xfd\xad\xb9\xf8\xaa1\x0f\xbb\x1e\xbdx\x1c\x81\xd2\x05\xcd\x184}\x12O\x83\x83\v\x8b\xf1Q\x99\x1a\x1d\u007f\xbax\xb6\xbc%\xcb\u007f\x81I>s0\xce\xc7\x17A\x04r\xafd\x15\xdc\x13\xd4pMP\xc1%>\x133\xe330\x83䔘\x89\x19I*\xccL΄{\xaaF\xc8#\xa5\xf7\xd235\v\xb3Ӳ\xce[\xba$\xa4\xc251\xedGrKP\xe4\x1c\x93\x84\x99Qd\x91G\xc4aZX\x8c\x90\x13i&=w\x8eH\xc4\x04\x9f\b\x8cv\t k=\f\x8f>y\xf1x\t\x9b\xfft/\xbe\x9e_\x84\xa3M\xf9\x04\xf4\xa2~e[\x93@\xbfvZ\xbcx\xb1\xe8\x9f\x1c\x1c\x1cD\u007f\xf5\xe4\x93Oʺ\x94@\x97ꩆ\x86\x06\x11LF?\xfa\xe5\xecF\xb2^\xaeS\xa7\xb8\xe6<\x9ch\xab\xc41\x91\x9c\x85\xb3\xaaq\u0091\x14\x9ci\x89\xc7ɅI86/\x15\ajRqh~%6.\xac\xc7\xde瞸\xe8\xb5\xfc\xf3sk\xe1\x19\x92\x89\x91SC\xe0\x19\x91\v\xaf\xa8bxE\x97\xc2+\xbe\n>ɵ\xf0I\xad\x83WZ\x8dpZ\xf3J\xae\xc2\xec\xd8b!Ϙ\xdeK\xef\xb8RxƗ\x9e\xb7\xf4K.\x17\xe25w\x9f\x04^S\xa7\xff\x8b+\x82WL!<\xa3\v0=\x80\x06\x11\xfe\x19\x98\x19\x90yN\xf4|\x86_:f\xfa\xa6aܴ $\xa5\x97]\xd2=\xda\xf9\xfc\x13\xf8\xac&\x1f[*T4\xe0)¾\x82\xb9?\xb2\xc6/'\x9e\xbb\x04\xfa\xb5\xd3\xddw\xdf-\xfa(\x0eQ\xcd@\x97\x86\x87\x04\xbaT/\xca\xc9\xc9\x11\xebR\xdcX\x06\x0f\x1e,\x1b\xc9u\x0e\xf4S\x8b*q\x90\xa7\xdbk\xb3\x14\x0f\xed\xb6\f\x9cnK\xc2\xc9yI8ڜ\x88S\r\x99\x04\x9c\"\xfc\xd0X\x8cO\xe6\xd5`\xfb\v\x8f]\xd25]t\xd3\xef1|T\x00\\=\xc8\n\xf7\xd5\xc2+\xac\x04~\xb1\xd5\xf0K\xac\x83Ob-<\xe2+\xe1\x16SF\xe0.\xef\xae\xe8\x8an\xf2\x89\xab\x16\x9a\xd3E\xe2w\x84\xaa\xe0\x1f[\x01?\xfaޜ\xb94h\x88(\x82{X>\\Cr1+(\aN\x01Y\x98\xee\xaf\xc1\x8c\xc0l\xb8\x04k\xe9\xf5\x1c\xf1\xfa\f\xdfLL\xf1L\xc3D\xb78<\xf8\xe8K\x97t>\xff\xfb\xd5m\xf8\xb8\\\x8b\x83\xad\xe5b\xaa\x1d\xf3\n\xa8\xec\xbe^~\xb9IZ\xf8:(@\xffq\xfa\xd4}\xba\xf4\xa9\n\xd0\xe3%Я\xb0\x96/_.v\xe1\xf0L\"\x03\xfd\xc1\a\x1f\x94u)\x81.\xd5S\x11\x11\x11\x02\xe6l\xa5Kg\x93\xeb\xdf˽\xb3E\x11\x9a4$5)\x93\xbe\x9b\x89\xb3\xcdj\x92Fq\x9ck.\xc0\x91\xf9\xe5ؽ\xb0\x12?\xdcT\x83\xbd\xbf\xb9\x05x\xff\xe2k\x8e\x1f\xbc\xfd\x15\n5\xcd\xf0p\x8d\xc5ر~\x98M\x16qPB!\xdc\"\xd5p\x8aȀwJ1\xdcc\xf3\xe1\x1eS\x00\x0f\xb2\xaa\xbdy{YB)\\Ȳ\x9e5\x97\xc0\xccV6[\xe3\x89d\x85'U# \xa9\x06\x81\x89\xd5\x02\xe2>Qd\x8dG\x14\xc0;D\x03\xefP\x15\xbcB21;4\x13.!dy\x87\xa4aZh*\xa6\x84\xa4`f\xb4\x1a\x93CS\xe0\x14\x95\t\xa7\xc84\f\x98\x19\x00Ǚ~(h_\x865_n\xbb\xe89\xe0\x8b7\xb1\xf5\xd1[\xf1o\xaa\xab\xdd\xf3\nqvI\x99\b$s\xb22\x85\x06@9\xfd\x9cr'\xa07g\x89\xfa?M\xbfy4?\x0e\xc7\b\xe6\n\xd0\xc3\b\xe8a\x04\xf40\x02z\x1c\xbe/V\xf7\x00\xba=\x01\xfd\x13پ\xfa\x11-N\xbf~\xce\xfd\x95\x8c\x16'\x81.ՋBBB\f@\x97\x99\x8c\xaew\xa0\x93eH\x16\xe2\xe9\xd6L\x9ciQ\v\x88\v\xb07j\x94\xc4-\x8dZ\xb1\xce~\xaa)\x17\xc7Z\xf2\xc9:\xcd\xc7\xf6\xfal\xecl\xcb\a~}\x13\xb0\xe6\xe9K\xba\xbe\u007f{a\x1dT9u\x98\xee\x1e\x86\xd13|0\xce=\x10N\x81ј\x1d\x9d\x01W\x02\xed\f\x82\xfb\x8cp\x15fEg\xc3-.\x17\xae\U0007961dX\x04\x9f\xb4r\xb8Đ\xb5\x1d\xad\x85K\x04YסYda\xabᢓk\xa0\n\xee\x04o\xb7\x90d\xcc\nL\xc0t\xdf\x18L\xf5\x99\x8b\xa9\xbe\xd1d\x95\xc7\xc3%4\x89\xca8\x8c\xf7\bŠi\xb31\xce#\b\xb9\x8d\x8b\xf0\xb7w.\r\x84\xf8\xf0\x15l\xbd\xbf\x1d\xdf.\xc8÷5\xc9\xd8ǃ\x9c\x05t\xee\xedZ\xa5\x9eZ\xfa\x0e\xf3\v\x02=#\xe4\x1c\xd0\xd5!]\x80nw\x0e\xe8f\x03$\xd0\xfb\xa1\x97^zI\xac\x9f\xf3\xd6Z\uebda\x9b\x9be]J\xa0K\xf5\x94\x8f\x8f\x8fa;\bGc\x92ub\xdc@\xe7-mg\x9b\xf3q\xaa\xad\b'ڋ\xd1A\x80\xdfR\xa3Ǝ\xd6\x8e,u\tfz\x84`\xa2\x8b\x1fƻ\xf8c\xaaw8\\B\xe2\xe1\x1a\x9e\b\x97\xb0\x048\x13ܝ\b\xd83C\xe9yh2\xdc\xc3R\x85\xd8\"w\tJ\xc4̠$L\x8eH\xc1\xb8\xd08\x8c\xf4\x0eð\x19s0b\x8a\x17\x9c]C\x10MV\u007f^z\tV\xdc\xff\xa7\xcb>\xb6]\xbf\xbd\x17\xffk\xaa\xc0\xb6\xea|\x1ck\xa0\xf3\x9e_\x01,\xac\x10{\xf4\x8f\xd5e\xe0DK\x16\x8e\xcf\xcb\xc1a\x1e\f\xb5H\xa0\x1b\xabF\x8f\x1e-\xfa)\xee\xaf4\x1a\x8d\xacK\tt\xa9\x9e\x1a?~\xbc!\x02\x13\xc7t\x97ub\f@W\xf7\x0et\x91^5\a\xa7k\t[\x01^C!\xfdv9\xf67\x97\xe2\xfb\xc6R|\xd5V\x89\x8d\xcb\x16b\xefS\x0f\x03\x1f\xad\xfeI\ue363\x1f\xbc\x88\xed\u007f\xfd5\xbe\xba\xbd\x19\xffi.\xc1\x1e\x82\xf9\x99\xb6\x1a:\x87*\xa0\x8a\x8e\xb1\x8e\x01\xadV\xd4\xd85\xb0\x0e{\xfe+\xde\xffbk\x9f\x18\xf8\xe8\xebOٟ\xcfAw\xe4>t\xe3ޑ\xa3߶\xe6\xe4\xe4$\xebR\x02]\xaa\xa7x\xfa\x8a\xc5\r%66V6\x12#\x00zW\x98w\x83zS/\x16{7\xd0k\x14\x887\x13̛\xd8i\x8c\x81\x9e\xa9\xc0\xb1^\x81\xfeY\xb2\x80O\xb7\x96\xe2\xd8\xfc\n\xecm+\xc3\xf7\x04Ս\xad\xe5\xf8fI\x03\xbe\xb9s1\x0e<\xf5'\x1cy\xe5o\xc0\xbbk\xafȽ\x82u\xaf\xe2\xe0ӿ\xc3\xd6\xdfލ\xcdw-\xc4\xf6\xa5\xcd\xd8L\x03\x8aM\xa5j\xec.\xd1\xe0d\r/\x1dp2\x9ab\xa0F\xabX\xe4\xad\n\xbcŹ\xe8ϡ^\xad\x93F\x19\xa44\x9e\x8b\xac\xc7\xd3\xf1G۵8֦\x95^\xeeF\xacY\xb3f\x19\x96\ay\xfa]։\x04\xbaT\xcf\v\xa2[\x93\x92@7\x0e\xa0\x9f\xed\x05\xe6=\xc1\xde+\xe0\xf5\xa1b\r\x10\xef!\xb6v\t\xf8'\xab\xd3q\x8aa\xd8V\x8c\xce\xf6\x12\x1ci)\xc1\xbe\xa6b\xecm)Ş\xf6Z|^Q\x88/j\xc9ro\xa9\xc7w\x8b۱\xed\xae[\xd0\xf1\xc0=8\xf8\xc8\x038\xf2\x87\xdf\x00/=\x03\xbc\xf6<\xb0\xeae\xe0\xcdW\x15\xf1\xe3\xd7h\x10\xf0\xf23\xd8\xfb\x87\a\xb0\xfb\x91{\xb1c\xf9\x1dضl1\xb6.i\xc6֖*l\xab-®\xb2\\\xec/\xc9!+\x9c\x00\xbe\x80\xac\xf2E\xb5T7\f\xf2\x1c%\xb3\x1c\xc1\x9a\xa7ӏ\xcd\xcb4x\xfa\x8b\xe3f\x90בj5\x8a\xea\x94Y\a\xae/\x86\xef\xb1\xf6l\x1c\x9a\x9f\x8d\xc3\xf3\x94\xe7\x12\xe8\xc6)\xdeV\xabw\x8a\x93@\x97@\x97:\x0f\xd0\xf5P\x97S\xee\xc6\r\xf43\xddJ\xf5\x8f$\x80ޠ\xd1Y\xb1:\x182\xe0\xbbM[\xabq\x9a>\xd7I\x90\x17`\xd7\a\xa9\xe1\x04'\xed\x1c\xb0\xa5\x89\xca\x06t6V\xe1Hm)\xf6U\x97`ou1vז`W})6W\x14`se!\xb6T\x15aKM1\xb6\xd2\xfb[\xaa\x8a\xe9\xb5\"l\xa2\xf7\xb67\x14a{]>v\x92彷*\x0fG\xab\n\x14\x807\x95\x03\xad\x95\xf4\xb8\xe8\x9c\x03\x1b\x1f'\xd7\vY\xd8'[58\xd2J\x10\x9d\xa7!\xa9\xc5s\x9eVW<\xfcu\x10\xaf\xcdV$\x1c\xe1\x14\x8fv\xb6\xc8O\xb6*PgI\v]\x02]J\x02\xfd\x86\x15[\xe6\xfai\xac\xa8\xa8(\xd9H\xaes\xa0\xeb\xad\xed\x9e \xef*\xb1Ʈ[K>\xd3\xd2c\xcfz\x83n=\xbdA7\x05ϐg\x98\xb7\xa4\v\xa1-S'zo\x1e}\xae=W\x1c[ge&\x8e\x15'+\xd6r\x8dV\xb7\r\x8cޫ\xcf\xc7\xd9\xfa<\x9cj\xc8#\xc8\x13\x88[Kp\xba\xb5X\xe8TK\x11\x1dO\t\xfdn\xa9\x10\xbf\x87\xf62\xfa\xed\x12\xe5qs\xb1\xce\xc9-_\xf7\xbb\xec\x9dO\x8f\xeb\xb2p\xa6*\r\x9d5\xa98\xc5^\xeb\x04p\xce\xf5~\xb4M\x85\xe3t\\\fh\x01U\xdd\x1a9\x83\xdbpN\r=\xfc\az\x0e\x82\xe4\x1a\xba\x9cr\x97\x92@\xbfQ\xc5ً\xf4\x8e&\x9cyM\xd6\xc9\xf5\x0et\xbd~\ft\xfd\x966Ń\xfd\\i\x88\xffΟ#\x8b\xfbLS\x81\xc1I\xac[\xd66^WoJ\xc1\xd9\xc6d\x9c\xaaK\u0089\xbaDt֧\x12|\xe9\xfd\xc5\x04ޛK\x95u\xeb\x96\f\xe5\xb5v\x86>\xfd\xa7λ\xfc(\xfd\a{\x9a3x\x8f\xf2s\x9e\x1eo='\xb6\xaaO\xd6g\x88\x14\xafg\xe8?϶p\n\xd8la\x81\xf312\xbcO4\xd01\x90%\x8d%48X\x9c\x8b\xb3\xfc\xdbtL\x9d\x8dib\x06A\xef\xe0\xc7\xc7\xce\xcen\x9dTw\xbcu\xedxk\x1eI+į)\x1e\xeeي\x95\xcf\xd6{\x8dn:\xbeA\x02]:\xc5II\xa0ߠ\xe2\xfc\xc2\xfaF\x12\x16\x16&\x1bI?\xf4\xfc\x13\xcf\x12\xd0\xcdaKu9R\x00}\x1a6W\x17c{Z$\x8eP\x87\u007f0ӗ\x80\x1e\xd6\x1d\xe8\r瀮lK\xcb\xee\xe2\x9d}\x0e\xe6\xf8\x91\xce\atM\x17/ﮥ\xeeqs\x9eئv\xa6\x8b\xd7w7\xa87\xa4*\xa0&\x98b\xb1V\x80\xfb$\xbdv\xbc.U\x94h\xcd \x10\xa7\xd2o\xa5\x90\x05\x9eB0Mé\xf6\f\x9c\x9eO\x96\xf4B\x02w[\x1aA=\x1d'橺\xe9$Y\xfd'y \xd0\xc6\xe7\xcb\x03\v\x15:\xe9\xffN\x10\xa4\x8f\xb7(\x03\x01\xd61\x1e\f\xd0\xc0\xe0Xs\x1aN4*\xffy\xaa!\x8d\x8e-C9FᑯlES\x80\xae\x80\xfch{\x9e\xc1\U0004d7dfn\xd1\xd5S\xbd\x0e\xe4\xd5:\xa8\x1b\x80\xae\xedS\xc9\xcb\x11\xa2\xcek3\x04Џ\xa4\x87\v\xedϢ\x81Zv\xb8!}\xea\xb7:\xa0\x8f\xa2\xfb\xc0\xd6BI\x9f\xbaN\x02]n[\x93@\x97\xfa)\"\xc5q\x80\x19OOO\xd9H\xfa\xa1\xbf>\xf9\x1c\xccM,0\x88\xac\xf41T\xa7\xb5.\x93\xb1\xb1\xa5\x18\xdfdG`_\x96?\x0e\xab|p0#\x18\a\xd4\x11\xa2\xe3?R\x18/@\x0e\x02\x10\xc7\x1b?՚\xf3\xa3\xe9d\x03̻N!_\xc0\x82T\xa4\xe9\xa5\xd4\x18\xb6p)۸\xbao\xe1\xea\xe9@wa\xe7;eM\xfeL\x97\x007\xdd\a\x14?Vo\xde\xf9\x17\xfano\x9fW\x8e\xedܠF9g\x05ާ\xf5eϺ\xd3o\xe1\xab\xd7O\xc5\xeb\xcf=\xef\xb2K\xe5:\xa4+\x83\x8bj\x1a\xb4\xe4\xc7\xe3P\xc6\\\x1cL\x8f\xc2AU4]\xd7(\xec\xd7\xcc\xc5\xf6\x9cXl\xaa\xceA\xf5`s̤\xfb\xc0\x91dm倷\xde\xf9H\xb6\xaf~F\x8a\xd3;\xf0\xca0\xd5\x12\xe8R\xbd\x88s\xa03\xd0y\xea\xdd\xcd\xcdM6\x92~\xe8/O>O@\xb7\xc4P\x133\x8c\xa7:\xadw\x99\x88\xff\xb4\x15㿹a؟\xe3\x8f\xe3*o\xb2\xd2\x03\r@?T\x14\xafs\xfa\"˒\x80\xde٦\x00]\x0f\xf5n@ׯ\r7\xf5/\xa7\xb7\x94\x1eҗ/\x03\xd0\x1b\xd3\x04Џ\x15\xc4c\u007f\xe6\\\xecO\x8f\xc6\xe1\xcch\x01u\x06\xfa\xe6\x9c\x18\x91Ƶ|\xa0\t\\\xe8>\x18D\xb2\xb1\x1d\x80\xb7>\xfcT\xb6\xaf~h\xf2\xe4\xc9\x06\xa0\xcb0\xd5\x12\xe8R\xbd\x883\x18q#\xe1\x88qr\x1a\xab\u007f\xfa\xf3\x93\xcf\xc0\xd2\xc4J\x00}\"O\xb9\xcf\x1a\x8f\x8dmE\xf8V\x1b\x8a#Y\xbe8E\x16\xfa\xe1\xf4@\xea\xf8#\xb0\xb7\x17\v\xfd\xa2@o̾\xe0:\xbbԥH\xdbg)\xd7\"S\xb1\xd0k2p\x94\x80ޡ\x8aľ\xcc\b\x1c\xa6k\xca\u05f5#;\x12\x9b\xb4s\xb1\xb1V\x85\xe2A&\x98A\xf7\xc1@\x9e\x01\xb3\x1f\x88\xb7>\xfaL\xb6\xaf~hܸqrG\x8e\x04\xbaԅ\xe4\xea\xea*\x1a\t\x8fze>\xf4\xfe\xe9q\x02\xba\xb9\xa9\x05\x86\x99)@ot\x1e\x8f\xff\xb5\x14\xe2\x87\xecPt\xaa\xfd\x80\xcc98\x9a\x16(:\xff}\x99a\x02\b\xe0,`-\xe7\xa6\xdc\x19\xe4\x9d]\xa6\x8e{N\xb9K\xa0_;\xa0\x8b\xef\xf3n\x01^\x16\xa8\xcb\x103,{\xd5\xe1t-C蚆\xe2\x80&\x14\x1d9a\xf8>7\x12\xff\xa9W\xa3h\xa8\t\xa6\xd3}\xe0\xc0\x10\xb2\x1b\x88U\x1f\xfeK\xb6\xaf~hĈ\x11\x86mk*\x95J֥\x04\xbaTOq\x1aB}#\xe1\x11\xb0\xac\x93\xbe\xebO\u007f}F8\xed\f17\xc1\x04\xaaϦ\x99\xe3\xf0mc\x01\xb6\xa8Cp6\x93\x80\x9e6\a'R\x03q\x84,\xba\xfd\x19ab\xca\x16\x8d\n\xd0O֫p\xe6<@?\xfb\xa3uc\xa9k\x01\xf4Ӻk\xc3\xc9_\xf8z\x1d,\x8e\xc5^\x82\xf8>\x15\r\xd2ԁ8\xa8\t\xc4\x1em\x10\xbe/\x88\xc0\u007f\x9b\xb2P2\xd2\x02N\xec\x14\xc7\xed\xcbv ^y\xffcپ\xfa\xa87\xdex\x03\x8e\x8e\x8e\x86\xbe\xaa\xb4\xb4T֥\x04\xbaTO\xc5\xc5\xc5\x19\x1a\t\x8f\x80e\x9d\xf4\xc3B\u007f\xeey\x98\x9a\x9ba\x90\x99\x89XCop\x1a\x83o\x1b\xf2\xb1-#\x14H\xf7\x05R\xe7\xe0d\x8a\x02\xf4\x83\x04tv\xaaB\x03\x01\x9daQ\xa7\xc2ٖ\x9c^\x1d\xbb\xceJ\x98_\x1f@oV\xb6ȉ\xa5\x11\x02\xfa\xa1\xa2Xth\x82\xc4\xee\x85#j?\x02\xba\x9f\x00\xfaw\x04\xf4/\x1b\xb3Q8\xc2\x12\xd3\f@\x1f\x82W?\x90^\xee}\xd53\xcf<\x03\x1b\x1b\x1bC_\xd5\xd6\xd6&\xebR\x02]\xaa\xa7rrr\f\xdb\xd6\x06\x0e\x1c(\x1bI?\xf4\xe4K\u007f\x83\x89\x99)\x06\x10\xd0\xc7Q}\xd6M\x1d\x83\xff\xd5\xe6cK\x1a\x01=\xd5\x1fH\xf1%\xa0\a\x1b\x80~2O\at\xdeS]\xab2l]\xeb5B\x9c\x04\xfa5\xd7i\xdd6\xb9S\xad\xb9\xe8\xa4\x01ؑ\xa2\x18\x1cP\a\xe0\x10/\xa5\xa8\xe7\xe0`\xd6\x1c\x01\xf4\xaf\xf3#\xf0\xafz\rr\x06\x9bc\x12\xdd\av\xect\xea0\x02k\xfe\xf9\x1fپ\xfa\xa8\x15+V\x88~\x8a}}x\r\xfd\xb6\xdbn\x93u)\x81.\xd5S\xe5\xe5\xe5\xc2Ý\x81noo\x8fu\xeb\xd6Ɇ\xd2W\xa0\xbf\xfa\x12L,LaO@\x1fM\xf5Y5m,\xfeS[\x80\xef\xd2\xc3q*5\bH\xf6ljT\x05\xe8\x87\xd2u@\xe7\xdc\xe5\x9c\xe2\xb3Fe\b.s)\x01Ndy-J%\xd5\xec\xd9\xe6|1\x00;Q\x10\x83\xc3*?\x1c\xcd\xf0Vv0\x90\x85\xbe+/\x1c_\xe5\xcd\xc5?\xaa\xb3\x91\xe1h.\x06v\x0e&fp\x184V\xb6\xab~\xe8\x91G\x1e\x11}\x14\xc7\xcd\xe0e\xad\xfb\xee\xbbO֧\x04\xbaTO͟?_\x8cz\xf5{\xd1\x1f{\xec1\xd9P\xfa!sG;\f%\x8d\xa0\xfa\x8c\xb16\xc1\xc7U\x05\xd8^\x9c\x81}\xc9A8\x9d\x16\x8cS\xaaH\x1c%\x1dH\rAGZ\bN\x16$(@o\xcaU\xa0\xde\xd8[\x10\x99\xec\x1f\xed\xbf\x96\xe5\xb5(\xb5\"Y\xcc\xe9\xea\x1cq\xddNdG\xe2df\x00N\xa6\xfb\xe0x\x86\x8fXC\xdf_\x9e\x88Or\xa2\xf1\xa2*\x16\xd1\x16\x8a/\x85=\x01\xdd\xdfWFa\xec\x8f\x16/^,\xfa(\xfd:\xfa_\xfe\xf2\x17Y\x9f\x12\xe8R=\xc5#]}Nt.\x1fx\xe0\x01\xd9P\xfa!\x9f\xd0\x10\x98R\x873\xc5\xd6\x12s\xa8\xfc\xc3\xdc`l\xa9)ľ\xdcD\x01\xf1=\t\xfe\xc2B?\x9e\x1d\x8d\x03\x99\xe1ؙ\x1c \"ǝ(J\x14\x11͎\x97$\xe1h\xa9\xd4u\xa9\x92\x14\x1c-LÁ\xacxq-\x0f%\xfb\xe1d\xaa/:3\xc8JW\xf9\xa3#+\x14\x1b5\x91\xf8\xb22\x1b\xff77\x04\xb3\xe8\xfa\xbb\xd88`\x88\xa9-R\x93Բ]\xf5C\xad\xad\xad\x02\xe4\xfa@X\xcf=\xf7\x9c\xacO\tt\xa9\x1fE7\xfb\xeb_E\x03\xd1;\x9c,Z\xb4H6\x94~\xa8v\xfe|\x98\x98\x12\xd0\a\r\x12\x8eq\x8dN\x13\xf1\xaf\x9a\x02|\xa1\x89Î\xec8\x1c\xd6\xc6\xe1\xa8&\n\x87ԑB\xfbU\xe1\xd8C\x96\xfb\xae\xf4`t\xa8\xc3ѡ\x890ho\x96ԕWX\x9f\xc5ׄ\x03\xc9\x1cL\x8d\xc4\xe1\xe4\x10\xb1c\xe1tF\x00:U\x818\xa0\n\xc2fu\x04>\xa7\x81ۆ\xe2l\x14\x8d\x1e\x8e\xa9t\xfd\xa7Z\xd9\xc1\xc1\xc4\n\xf7\xdf\xf7\xa0lW\xfdPYY\x99!\x00\x96\xad\xad-V\xadZ%\xebS\x02]\xaa\xa7֮]+\x1a\n7\x12.\xab\xaa\xaadC\xe9\x87^\\\xbd\x16\xb6\x8e\x83aͻ\x068ፕ\tV$G\xe2\xd3\xf2l|W\x94\x8e\x03\x85I\x02\xe2l\x95\x1f\xd5Ơ\xb30\x11Gr\xa2\x05з&\xf9\x89\x803RWS!}\x16\xc7\x0e\xe0P\xaf'3\xa3qV\x15\x853\xf4{\xa73\x83q\x94\x13\xb2h\xc2\xf0UV\f66W\xe0\x97\xc1\xfep\xa5k\xefli+¾N\x1c!\xd7\xcf\xfb\xab\x94\x94\x14CP\x99ѣG\xcb\xfa\x94@\x97:\xefEѭ\x9fsca\xafwY'\xfdSTB\x1a\xccM\xcc0u\xe0 \x11`&o\xdcP\xbcG\x1d\xfdg\x95Y\xf8:=T\xc0\xfb@6Y\xe9\xdah\x91\xa4\x85\x9f3\xe4\x8f\xe7\xc5\xe1\xa0&\xb2\x9b\xf4\x96\xbc^=ߗ\xba\\\x85\xf7Y\xa2\xfeS\xc3\xc9\"\x9fK0\x8f\xc0\xd1\xd4\x00\x1cH\xf1þ\xecpl+J\xc6W\x15Z\xbcQ\x92\x8b\x14GG\xe1\f7\xd2\xcc\x1aVt\x1f\xb4\xb6\xb6\xcb6\xd5O͙3ǰ\x1b\x87\x83a\xc9:\x91@\x97:\x8f\x86\f\x19\"\x1a\v+22R6\x96~\xeao\xab\xd6\xc2\xce~\x90\xb0\xd2'\x99\x9b\x88\x04\x1d\xed^\xceX[\x92\x89\xcdd\x91\x1fʍ\xc1A\x82\xf9\xee\xccP\xecL\v\xc2\x1e*\x05\xbc\xb3\xa2\xba\xc1\xfbH\x17\xb1#\x9d\xfe\xf1!Y\xf6\xa3\f\x17)l\xfbR\xb2\x0e\xa7\x85\xe1DF$\x8e\xa7\x85`\u007f\xb2/:\xd2\x03\xb1\xb7 \x0e\xdfW\xa8\xf1\x8f\xaa|\xd4L\x9d,\xb6\xaa\x8d\xb7\xb0\x83\x85\x89\x05&O\x91i>\xaf\x84Ə\x1fo؍\x13\x1e\x1e.\xebT\x02]\xea|\xe2,k\xfa\xe9,\xceh$\xeb\xa4\xffj\x9a\u007f\x93\xb0ҝ\x86\x0e\xc4X\x13%\xa6\xf7\xcd\x1e\x93\xf1\x99:\x02\xfbr\xa2p0/F\x00\x9da~\x98\x01O@\xdf\x1e\xef\x8bC\x99\xe1\x06\x1d\xce8'Nѩ\u007f\xac\u007fO\x96})C\xa9\f\xc1a\xd2\xe5\x96\xfc\xdd#\xe9\xa18I\xd6\xf9\tz~D\x13\x82\x03\xb9Q\xf8\x8e\x06g\xafF\xfb\xe0\x0e\xb7i\xf0\xd0-\xb5\f\xb6r\x84\x95\xed \xdc\xff\u007f\xbf\x93\xed\xe9\n\x88\x9d\xe1x\xcb\x1a\xf7Qiii\xb2N%ХΧ\xf8\xf8xC\x04&\xde\x16\"\xeb\xe4\xcah\xb6\x87\x8f\x88\xe3\xcd\xc99&\x93\xa5\xce^\xcf\xcb&\x0f\xc5;q\xfe\xd8Y\xad\xc5v\xb2ؿQ\xcd\xc5\x16M4:r\x12\xb1W\x13\x8b\xbd\x99\xd1ؗ\x11%2xuվ\fE{3\xa3H\x11\xdd\xd5s\x9d\xb8\xe7\xfbBQ:E\x1b\xad\xb8^8\x11\n\xafe\xefӝ\xd7\x1eUT7\xf5\xac\x1f\xf1:}w\xb7\x8aE\x8fռ\x1e\x1e\xdc'q\x86\xbcmd\x9doϊ\xc7\xee\xfc$\xec,\xcd\x10\x96\xf9\x1b\xa9\x11\xa8\x1d\xe9 2\xab\xf1\x12\xcb\x18k{\x98\x9aX\"6E\xc6\x1b\xbf\x12Z\xb3f\x8d\xc1χw\xe2h\xb5ZY\xaf\x12\xe8R\xe7See\xa5\x18\xf9\xf2\b\x98\x1b\x8e\xac\x93+'\x0fwO\xb2\xd4M0\xd4\xde\x16\xa3\xd8Q\x8a\x14˻\t\xa6O\xc1\xcb\xea4|Q[\x8eo*\x8b\xf0}A6v\x14h\xb0\xbf0\v\a\xa9<\x94\x9f%t0?\a\xfb\vr\xb0\xaf0\x17\x1dE9\xd8]\x9c\x8e]%)\xa4\xa4s*M0hGq\x1c\x8e5\xe6`GQ\x82\xf8ܡ\xda,\xec-\xcf\xc0\xb6\xfcd\xec)Va\x0f\xfdF\a\xff\x96\x11j_\x91\x06\a\x8b\x92I\x89\xd8W\x9c\x8a=%i\x04U\x15v\x94j\xb0\xb3D#\x1e\xef\xaf\xccBGY\x06v\x11pw\x15\xa5`ka\x1av\x94g\xe3\x87\xe2l|\x93\x9f\x82\x9de\x89\xd8]\x1e\xd3'm\xadH\xc5w\xb5e\xf8\xa2\xae\x16\u007f\xaf.\xc7S\x19\xa9\xa8\x9e2AX\xe5\xbcf\xce\xd7\xd7\xd1̂`n\x86LM\xaelGWHO<\xf1\x84!\xa8\f\x97\xf7\xde{\xaf\xac[\tt\xa9\xf3i\xe9ҥ\xdd<ݟ~\xfai\xd9`\xae\xa0\xfc\x82Babj\x01KS3Lq\x1c \xa6\xe0\x19\x00>\xa6&\xc8\x1c6\x00MS\xc7\xe3^Og\xfc)t\x0e~\xef\xe3\x8c\x15\xde\xcex\xccK)\xff\xe8\xed\x82\xdf\xf9\xb8\xe1Q\x9f\xd9x\xc4\xd7\r\x0f\xf9:\xe1!\xbf\xa9:MV\xe4?Ѡ_\xfbL\xc0\xa3A\xd3\xf1\xa0\xf7D\xfc\xd6w\n\xfe\x18\xea\x8eG\x03g\xe1a?g*\xdd\xf1\x88\x1f\xcb\xc3(\xf5;_W\xac\xf0\x9dJ\x9a\x8c\xdf\xfbM\xc7\xff\xf9\xcf\xc4o\x03\\\xf1\xeb\x00w*\xdd\xe9\xfc]\xb1\xdcc\x12\x1e\xf6\x9e\x8aG|\xa6\xe1\xf7A\xb3\xf0K\x8f\xc9\xe2\xfd\xe5\xc1s\xf0\xdbP\x1f\xfc&\xc0\t\x0f\aL\xea\x93\x1e\f\x98\x81\xa5n\xb3P?}&\x92\x1c\a\x8a\xc1\x19_\xc7\t\x16\x96\x18\xe3\xe0\x00;+k\x98[۠\xa2\xb6A\xb6\x9f+\xa8[n\xb9\xc5\x10\xf8\x8a-\xf4\xc7\x1f\u007f\\֯\x04\xba\xd4\xf9\xc4\rD\x0ft\xb6\xd4\x19\xf0\xb2^\xae\xac\xea\x9aZa;d0L,M\x84\xcc\xedM`G\xb2\xd1M\xc9\x0f'ʹQ\xa6l'\xebďy/\xfb\x18\x9d\xf5\xc7\x1a\xad{~>M1U\xcaѽh\x94\xee\u007f\x86\x19\xa9F\xe8\x00\xcau2\xb6\xc7\xf9\f\u05fd?^\xf7\x19\xd6\x14\xddg\xb8>\x86\x92\x86螏\xed\xa3&\xe8fX\xa6\xe8\xfeg\x82\xf8mS\xd8Si\xc1\xed\xc7\xde\x0e\vo\xbeY\xb6\x9d\xab\xb4e\x8d#Z\x0e\x1e\\[\x98\x9a8\x90\xecu\xb2\xd5\xc9Z'\xe5\xf9\xa8aSt\x9fs$\r\"\r\xd1=\xb6\x14k\xbc\xc6+\xce;\xc0k\xa9\xf6$\x8e\xeb=H'G\xf1\x1a\x9f\x9f\x05}\x8e\xa1β5\xb7\x16\xafq\xbdYZ\x0e\xd6Չ\xbe^.\xb7\xb4\x85\x8d\xb5\xa528 M\x9a2\x1e\xb5Muxs\xdd\x1a\xd9^\xae\xa2\x06\r\x1ad\u0603\xee\xe5\xe5%\xebZ\x02]\xeab\n\n\n2\x00}ذa\xb2\xd1\xfcD\xfa\xfb\x86\xf7\xf1\xf8\x1fW\xe0\xeeewb\xe9͋\xb0p\xf1<\xcc_\xa2hޒ\x05h\xbbi\tږ,E\xebM7\xa3m\xf1\xedX\xb4\xf0\x1e,^p\x1f\xe9\x1eE\v\x97\xe9t\x97\xd0\xd2%\xf7\xe2\xa6\xc5\xf7\xa0\xbef1\xaċ\xd15\x1d\"do=\tS'\xfba\xf2\x14\x1fL\x9a\xe6\x81IS\xbd\x8c\xb2\x9cp\xc0(\x02\xba\x95\b\xe82\xd2q(\x96\xb4/\xc1-\x8boÂy\xb7\xa2\xb5\xf5f,Zp'\xe9\xf6>\x95\xf3\x17݊e\xbf^\x8eG\x9f}\x02\xab\xff\xf9\xbel#?\x81V\xaf^-\xd6\xce\xf5\xfe=YYY\xb2\xde%Х.\xa6\xa2\xa2\"1\xa5\xc5\xd3\xee\xac7\xdf|S6\x1c\xa3\xde\xea\xf3>F\x8d\x9aD\x96\x8d\xa3\xb0Lǎ\x99\x85\xe8\xa4<\x04\xa5\xe4\xc37\xad\x90Tlte@j>\u0092\xb3\x11\x9e\xacAH\xb2\x16\xc1)\xca\xf9pɯG&\xa9a?p\x88H\x8e\xc3\xcb\x11\xd3&ʐ\xabƮ{\xee\xb9ǐڙ\xcbe˖\xc9k*\x81.u1-\\\xb8P\x80\\\xbf5\x84\xb7\x8a\xc8z1b\xa0\u007f\xf0.\xec\x87\r\x85\x89\x99\x05Ḽ\xe00t4\x82\xe23\xe0\x91\x90\v\x97\xa4B\xa3\x94{b.\xbc\x12T\xf0NH\x83G\xa2\n\xb3\x135B\xfc\x98_\xf3\x8bO\x84\xe5@G\xb1DamcB\x03\x1a\x19S\xc1إOʢ\a\xfa\xb3\xcf>+\xaf\xa9\x04\xba\xd4\xc5\xc4\x16y\xd7\xe02rj˸\xf5ʻo\xc2z\xd4 ř\xce\xca\x1cvcF\x925\x9b\x01\x9fx-<㋍R\x1e\x89\x05\x98\x9d\x9c\x05\xb7\x94L\xccJ͂sj\xb6\x10?\xe6\xd7<\x93S`2d\x80\xe2phi\x82\xa1c\x1d\xe4=|\x03D\xb1\xe4\x99C\xf6pg\x83C։\x04\xba\xd4%j\xe0\xc0\x81\x06\xa8\xfb\xfb\xfb\xcb\xc6c\xc4z\x95\x80n3r\x90\xb2M\x8e\x80n?z4B\x933\xe0K@\xf7\x8e/\"\x15\x1b]\xe9\x99P\x00\x8f$-ܒ\xb3᚜\x87Y)\x05pN)\xa22\x8f@\x9f\r\xef\xa4L\x98\f\x1aB\xe7k&\xac\xf4a\xa3\x87\xc8{\xd8\xc85e\xca\x14\x01t\xee\x93\xf8\xb1\xac\x13\tt\xa9K\x14{\xb7\xb3S\x1c7\x9e\xa1C\x87\xca\xc6c\xccS\xeeoo\xc0\x90\xc1#\x85G\xb8\xa9\x89\x1d\x86\x0f\x9d\x84\xa8\xf8,\x01t\xb6t=\x12\x8b\x8c\xae\xf4L(\x82ol1\xa9\x14>\xb1\x95\xf0\x8e\xab\x84g\\\x95(\xfdbJ\x11\x14\x93\ak\xbb\xb103\xb1\x87\x85\x89%\xc6\x0f\x95k\xe8Ƭ\x95+W\x82=\xdc\xd9:\x97\x0eq\x12\xe8R\x97\xa9\xec\xeclC\xe3\xe1Q\xf1\x8b/\xbe(\x1b\x90\x91j\xed[\xefa蠱bk\x9b\x99\xc9\x00\x8c\x182\x15\xd1q\xb9\xf0\x8d\xcb\xd3\x01\xd2\xf8\xc4@\xf7\x8b)'U\xc27\xa6\x06>1u\xf0\x8ei\x10\xa5\u007ft%B\xe6\x16\xc3\xc6v\x02\xccM\x06\xc1\x8a\xce{\xfcP\xb9g٘\xc5\x0ep\xec\xe1\xce\xe2>\xe9\x81\a\x1e\x90\xd7S\x02]\xeaRu\xff\xfd\xf7\x1b\x1cP\xd8Roh\x90!,\x8d\xd6'b͇p\x1c2A\xb7?{0\x06\x0f\x9b\x81\x88\xf8<\xf8\x11н\xe3\v\x8cTEd\x8d\x97\x92U^\t\x8f\xb8\x1a̎\xaf\x83[|\x83(\xf95\xb6\xdeM\x1d&\xc1\xc4l\x90ؓ>r\xf8$y\xff\x1a\xb1\xf2\xf3\xf3\x85a\xa1\xcf3\xf1\xc6\x1bo\xc8\xeb)\x81.uY\x17H\atn@!!!\xb2\x01\x19\xa9V\xad\xfd\x00\x0eC\xc7\x13\xd8\x1c`b:\x10\x03\x87OGDB\xae\x01\xe8>:H\x1a[\xc9V\xbaGB1f'\x94\xc3-\xb1\x12\xae\x89U\xa2\xe4\xd7|h\xc0b\xe28\x16&\x16\x03\xc4Rð\x91\xe3\xe4\xfdk\xc4\xf2\xf5\xf55\xf8\xf4L\x9a$\ag\x12\xe8R\x97-n8<\xc5ţb\xe9\x84b\xc4\x019֮\xc3\xc0\xa1#\xa83\xe4\xc8f6\x182|\x02\"\x13\xb2Ĕ;C\x91\xad]c+\xbd\x13\xf2\xe0\x93\x90\r\xef\xc4,x&\xb2/@\x1ef'\x15\x88қ^\xf7\x8bτ\xb9\xe3\x10\x02\xba\x85\x88\xe46r\x94\xf4\x031V\xad_\xbf^\x04\xb8\xd2G\x88\xe3\x14ϲ^$Х.SIII\x06Ǹ\xe1Ç㭷ޒ\r\xc9\b\xf5\xf6\x9au\x18\xf4A\xf2\xde5R=\xf9䓆\x94\xa9l`\xd4\xd7\xd7\xcbk)\x81.u\xb9b\xc7\x13nH#G\x8e\x14\xe5]w\xdd%\x1b\x921Z\xe8k\xde\xc1\xc0!#E\fs\x13S;\f\x1c1\ta\x899\xc2ʝ\x9dX|\x05T\xfa\x93\x97\xec\x18\xe7\x1bϖ\xb8ZX\xea\n\xcc\xd9:\xd7\xd2\xebY\b\x8cK\x87\xc5\x00\xb2\xd0\xcd\x15\xc7\xceQ#\xa5\x85n\xacjnn\xee\x16P\xe6\x99g\x9e\x91\xd7R\x02]\xearŞ\xed\x0e\x0e\x0e\x86\xbd\x9fZ\xadV6$\xa3\x04\xfa{\x04\xf4\xd1J\x12\x13S\a\f\x1c>\x19\xa1Iz\xa0\x17\xf5C\xc5\xd7Ll\xa9+@\xcfR\x02\xe4$\x14\b\xf19\xf1\xeb\xfe\xf1\x99\x04\xf4a\"2\x9e\x02\xf4\xe1\xf2\xde5R\xe93\xacq\fw\x99aM\x02]\xaa\x1frvv\x16\x8d\x89#3M\x9e~\x867C\\\x04\x9a\xe9\xf2\xba\u007f\x9c\x9a\x80>\x82\x80n-\x81~\x038\xe7\xf2ҟ\x9d\x9d\x1dbbb\xe4u\x94@\x97\xea\xabRRR\f\xa3c\xb6\xd4\xe5:\xba1\xae\xa1\xbf\xa3\x03\xba\xad\x01\xe8\x11\x89Y\x02\x86\x97\x05פ\xd4\x03\x9d\xd5\xd3B\xe7\xd7\xceY\xe8\xd2\xcb\xddX\x95\x91\x91!\xae\x9d\x8d\x8d\x8d\xb0\xd0\xff\xf2\x97\xbf\xc8k(\x81.u\xa5\x8e\xce\xd9\x02\xa6tώ\x182P\u07b3F&\x8eN\xc9\xcb}\xdc\xe7\x8c\x1e=Z^?\tt\xa9+\xa5Y\xb3f\x19\x9cSƍ\x93q\xb1\x8dMC\x85\x85\xae\x84~\xb5#\xcbuNX\"|\xc9\xda\xf5J*ퟒK\xaeI\xe9\x9dT\x04\xbf\xa4|!\xdf\xe4B\xf8$\x17\xc3;\xa5T\x94\x01I\xb9\bI\xd4й\xf2t\xbb\x19l\xac-1q\xec(y\xcf\x1a\x91V\xacX!|v\x06\f\x18 \xfa\x9c\xe4\xe4dy\xfd$Х\xae\x94\xe6ϟ/\x1a\x96>\x85᭷\xde*\x1b\x98\x91\xe8\xcdU\xaba\xcb\x16:\x03\xdd\xdc\x0e\x13&\xcfBBF><\xe7\xaa\xe1\x1a\x9d{^\xb9\xc7\xe6_\x82r\xafI\xe9\x19\x93\x03\x9f\x18\x15\xe6Dg\xc0;FMϳ\xe0\x11\x9b#J~\xdd?:\x05\x03\x87\x8d\x12\xcbD\xe6t\xdfN\x99 \x9d9\x8dI\x1a\x8dF\xf47\x03\a\x0e\x14\xd3\xed\xbc\xdbF\u058b\x04\xba\xd4\x15\xd2ڵkE\xc3\xe2x\xca\\\x86\x85\x85\xc9\x06f$zg\xfd\xbbp\x9e\xe9\x063S\xbevv\x181z\n\xfcC\x13\x10\x91^\x84\xb0\x8cR\xa3TxF\x11\"S\xb3IY\x88H\xcdChZ\x01B\xd2\nE\x19\x91\xaa\xc5ܔ,\xd89*\x1e\xd2\ftw\xe7\xe9\xf2~5\"͘1C\xcc\b\xb23\x9cL\f%\x81.u\x15\xe4\xe2\xe2b\xb0\xd2\a\r\x1a\x84\r\x1b6\xfcl\x1b\xdako\xbc\x85\x87~\xfb(\xee^\xf6\v\xb4\xb5.@yY5\xf2\U000ca453\x9d\x0f\xb5*\a\x19\xe9\x1adg\xe5]P\x1a\xb5\xb6\xcfRkX\xd9\xc8\xcc\xca\x16\xa5:K\x83,5I\xa3B\x8eZQZR\"\xb4\x9a,\xc4̍\x85\x8d\xb5\x03LM\xac\x84\x95nc?\x04\x13\xa6\xb8`\xd0\x18'8\x8e\x99\xd9G9)\x1a;\xed\x9ahИ\xa9\x18\xc7@קO5\xb3t\x10\x8f\x05\\hP\xd0w\x99^Cѹ\x99)\x01G\xc4\xd64\v=\xd4\x19涆\xedjVf\xe7\x068\x16\xba\x00%\x02\x98f\xd6W\xa0\xfe\xaf\x80t\xf0\xe6\xfbK9\x87s\xe2A\xa3\xfe^\xe3\xc7\xfe\xc1a\xb8\xfb\x17\xbf\xba\xe1\xe1\xc6\x1e\xed\xfa>F提@\x97\xba\x8a\xf2\xf4\xf4\x14\r\x8d\xe3*ߨAf\xdex{\x1dr\xf2\x8b`e7\x80,>\x02\xaf\x05Aښ@aik\xb0\xacL\xad\x1c\x94}\xdd,3[E\xa66\xe7dnw\xee\xfd\xf3\x89\xbfcn\xdb\xf7\x92ŝ?[\xa3\f(\x86\x18\xc9`\xb9\x120\xcc-l\f\xcepª\xb6\x18\x00K\x87\x11\xcac\xfa\x8e\xa9\x99\xd5y\xc5߽\xb0\xac\xae\xa9\x94\x19\n:73]}\x9b;\xe8d\xa7\xbcƃ.s\xcb.\xb3J\x04s3+ef\xc1\xc2\xe1\\\x1d\x9a]\x9b\xd2\xd4f\x10Ll\x06\xd2}E\xc7b\xc6\xe0\xb6՝\v_';\x9d\xb5\xce\xf7\x9a\x1dl\x06\f2\xc0\u007f\x9a\xb3+j\x1b[nȶ\xa7\x0f5\xcd\x1e\xee\\\xb2s\x9c\xecw%Х\xae\x92\xf49\xd2\xf5R\xa9T7T\x83knm\xd1Y\xbd\x04E+\xeaX\xadt\x9d\xac\xa9\xae#\xb6\x1a\b\vǑ\xb0\x1b6\x01#&\xb9b\xf4\x14OL\x98ዩ\xaeA\x98\xee\x1e\"ď\xa7\xb8\x04\x8a\xf2B\x9a\xe2\x1e\x8cɳ\x83\xfb\\*\n\x14\x9a\xe2~1\xf5\xfc^\xf0%|\xc78\xa4?\x9f\x89:\xfd\xe8\xfcf\xfb+r\x0f\xd4\xd5W\xcfz\xb8:\xe5\xd4\xd9!\x98\xe2\x11r\xder\xf4\xac@\x8cq\t\xc1X\xd7`\x8cu\t\xc2H\xba\x8f\x86Nvǀ\xb1N\xb0\x1b9\t&\xf6C\xe9~sP\x06k<\x80\xb1\xa6A\x80-\r,\xady\xe0f\x8e1\x13\xc6\xe3\xceew\xddP\xed/88X\xf4+\xfa\xedj\xb2ϕ@\x97\xbaʚ4i\xd2\r7%\xf6\xe6\xea\x95\x18?~\xac\x98\xbe\x1e3a\"\xac\x1d\x06\xea\xa6A\xed`j7\x18փ\xc7`Иi\x18;\xc3\x1b3}\xc21;$\x01ξ1p\xf1\x8f\x87{P\x12\xc44\xcf\x06\xca\xfeV\x02]\xea*\x8b\xbdN\xbb:\xad\xdcs\xcf=F\xdd\xf0\xda\xe75+\xf1\xa2\xad,1`\xf0\x10\xddԦ\xa5\x98\xfat\x18:\x96\xacm\x1f\xf8\x84\xc6!8&\x03~Q\xe9\x98\x1d\x14\x8f\x99\xbeQ\x04q\x02wh\nf\x87\xa5\x1a\xc4\xcf\x19Ԭ\xae\xafK\xfd\xfc\xc4\xf7\xc2\xf9\xe4\x16\x9a\x86\x19\x01\xc9p\nJ\x83sP:f\x05\xa7\xc15$\x95\x94,\x80\xeeF\x03F\xff\x98tx\x85\xc7Ӡ1\x1cS=|1\xd6\xc9\x15\x03\xc7L ˝\x06\x9b\xe6\xbc\xd4`\x86q\x93&\x8b\xa5\x04^Zx\xea\xaf\xcf\x18u;\xac\xa8\xa8\x10\xed\x90w\xd0py\xc7\x1dwH\xa0K\xa0K]m=\xfe\xf8\xe3b?:\xafs\xf1>Q\u007f\u007f\u007f\xa3mx\x99j\x95\xe2TF\xb2!\xab\xdc\xcc\xdaN\xac\x97[\xd8\x0f\x86\x9bO0\xdc\xfd\xc8\x1a\x0f\x88\x82{`\f\xdc\x02b\xe1\x1a\x10O\x16v\x02Y\xe1deQ\xc9r\xa6\xd7f\xfa\xc7a\x86_l7\xe9ߗ\xfay\x8a\xef\x8b\xf3if@\xa2\x808\xc3|f`\x8a\x90s`\x92\x90\xf2\xfdx8\xf9D\x90\x95\x1e\r\x9f\xc8D\x04Ʀ\xc1o.\xbd\xef\x1b\x8a\x11S]`7|4\x06\x0e\x1b)\x96\x87\xd8Y\xd3\xda\xdeA\xf8L\x94\x96U\x19m[d\x87[\xbdoΈ\x11#$\xcc%Х~*q@L\xb1\x8f\x9c\xe0\x04\x8f\x80H\xf8\x85%\x90e\x9e@\x8f\xe30\xcb7\x063}\xe6b\xe6\x9c\x181e\xce\x16\x98[0YTA)B.\x81\xc9B\xfc\x98_w\x0fIì\x80$\xa9\x9f\xb1\xf4\xf7\xc4\xf9\xe4\x11\xc1S\xec*\xb2\xd63\xc82O7\xdcK\xe2\x1e\"K}\xfa\x9ch8\xf9F\xd3\x00 \x06\xee\xc1\xf1\xf0\bM$р2(FX\xed\xa3'9\x19f\x93\x06\f\x19\xaeےh\x89\x92\xf2\x1a\xa3k\x8b\xf7\xdf\u007f?\xba\xe6\x8b\xe0\xadk\xb2\x9f\x95@\x97\xfa\x89\xc4{лf`\xcb\xc9\xc91\x9a\x06\xb8\xee\xdd\x0f\x90\x90\x92.\xbc\x9d\x85\xb7:\x83\xdcԖ\xac\xf2\xe1\x98\xed\x1f\x81Иt\xcc\xf0T\x9cܜ\xe7D\xc1+4\x05\xbeQ*̉T\vX\xcf\xf0\x8d\xc74\xef\x18\xd1)\v\x8b\x8a;\xf0 ]G\x1d\xac\x00\x9d\xa7T\x05\xe8\x83Sz-\xbb\x0e\x02\xa4nLu\x05to\x9a闄\x19\xfe\xe74ӏ\xacz\xff\xc4n\x03\x02\xb6\xd6\xc5\xec\x0f\x89Kgz\xee\x1a\x9c(|8\xbc\x82\"\xe1\xe9\x1f\n[\xc7a\xe2^\xe6\x01)\xcf.\r\x184\x1cA\xa1QF\x05D???C|\v\x0e*\xf3\xd4SOI\xa0K\xa0K\xfd\x94rvv\x16\r\x90-\xf4aÆaݺuF\xd1\bS2\xd4ª\xe1\xf5q\x133\x0e\xb0\xe2\x80qN\x1e\xf0\f\x8a\x85\xb3w\x18\\\xe7\xccEp\x9c\x06>a\xe9\xc2\xd9ͅ:\xd9\xe9>\xb1\x98\xea\x15\x8b\xe9\xbe\t\u009a\xf2\x8c\xd4\xc0\xc9/\x1e\xd3\xfd\xe3E\xe9\x14\x90@\x9dnB\xb7\x92!\xef\x1c\x9c\xdck)$\xad؟\xb5\x85\xde۬\x8eP\xd8\xff\xb7w\x9f_U\x9dk\xbb\xc0Y\xbd\xd0AP\x14\x11Qz\xef\xbd\t\xd2\x11E@D\x8a5nc\xacɎ)\x1aM\xd1Dc\x8a=E\x8d%\x1a{\xef&\xb1\xec${\xbf\xe3=\xe7\x8c3\xde\xf7\x8c\U000e772f\xf7y\xee{\xad9a\xa1Q\xb7\x11X\xc0\xf5\xe17&\vY\x80\x8b5\xe75\x9fv?\xf3\x05\x87<\xdf0\xca\xd8z\xf9\\y\xdfq\xd7|\\~\xa3\xb4\xdeS\xf2*(\xaf\\\xddXf\x15Q\xd0\xc4i\xe4c\rp-\xc939\xc8\xe2\f\xa2w7\x8f\x8e\xfd\x16\x8e\x1f?\xae\xd7m\xe7cuu5\xc2\x1c\x81\x0eí\xbb\xbb\xdbc\xcd(o\xe0\xe2\xed\xbf\xf3\xca\xd5k\xa5\x9b\xd2\xe2T\x17?\xa7j٘\x02)<&C&\xba%\xaa\x8bd\xa6j\x8d\x17\xcc\ue818\xf4\nJ\xc8U-\xa2\x02\xbeઋi\xc9|J.n\xa5\xc4¹J\xab\xba\xb0Ε1P\x99\xad\\֢\xe3\xc7\x1c\xda\t\xc5M\x1e\x9f\u007f\xaa\x929\xcfm\xc5\xc1\xe8\xf5\xdc0W7\x8a\xc9\xee\x16\xb9\xf69\xfe8\x91\xc7\xd4\v\x9b݁\xae\xdeO\xc5-\xee\xb1\xf6\xb9\xee\xf7]\xab\x84|R^5%\xe7\x96S~e\xa3\xf4,9C#]\xcb+9\xd8-\xbe\x12\ue1fe\xf3\xfe*k\xb3f\xcd\xd2'\xc3q+}4\\G\x00\x81>\xe6\xf02\x13\x9e\xbc\xa2-a\xe3\xf1/o\xfe}\xb7|\xf8\t\x19,v!\x85;\xac!\x14\x16\x93%\x93\xdcxf1OV\xe2\xe5d\xdcJ\xe2\x10\xe70O(h\x11\xf1\x85\xf3\xfa\x15\xb4\xba?n\xa6آ\x97\xc3\xcfM\x801M\xefJw?\x96pvKR!=\xb8\x95.7x2\xd3}\x9e\xe0\x10\xef\xa7Z\xec\x03p\xc8\xe7T\xaa\xf7`v\xb9,\xa3\xe4\xedp\xb9\xc5\x1e\xc0\xebץ\xd7\xc9A\xce\xc00\t\xf5{\xbfxw]xm\"\x1c*\xc3!\xd0a\x84\xf1>\xc5|\"\x06\x04\x04\xc8\xf1\xd3O?\xf5\xca\x13\x927\xbb\x88\x8a\x89u\xd5˖\x89D6\n\x88L\xa4\xe8\xccJʨ\xe4.\xcey\xd2\r\x9eR\xd6J\x19\xb3:(\x9d',U.p[H\xa9JzE\x97:v\xb9\x8f\xeas\xb3\x16(\xed/\xcd\xf53\xda]\x93\xa3p\x1cs\xc7L\xed}T\xd1&\xef+WH\xb7\xe8-p\x19\x82q\xcf\xc1\xd0g\xb8\xf3\\\x8c\x92\xb9\x83\x02}\xfeS\x03\x9do>\x93\v\xea\x04\xf70\xa5\x14TStR\x0e\xf9\x86M\x93\x02H>&_\xb2\xfb\x87RRj\x96׆$Ͻ\x91\x9a\xfb\xee\xb5\xe7\xbc_\x04\xae\xab\bt\x18!\xa7N\x9d\x92\xfa\xd8Z\xa0{\xeb\x1dvUm\x83^:\xd3hu\x90\xd5?\x8c\xe2\xf3k(\xa3\xaa\x8d\xf2꺥\xb0Gr\xc5|ʘ\xddE\xd9u=\x94U\xdbMٵ}\xba\xac:>.V\xc7\xc5\xee#\u007fN}]\xfd\xa2\x97\x92]\xd7/\xb7\x16DZx̯\uf85c\xfanʩ\xe9R\xef\xabN\xb9QL\xa9t\x85{\xb2\nl}\x88F\x05y|Q\xa3\xe0\xa1\x1a\x0ekג\xb6\x16\xbd\xbb\xfdI-43\xb7Vf\xc33.r\x94\xa6\x02>\xa7b\x0e\xcdH\xcd'{\xf0dW+=x\xa2\xcc\x17Y\xbd\xf6M\xaf>ޫNL\xde\xf2T۸\x847\\\x89\x98\x1aM\xb5s\x17PAc\x17\xe54\xabpnZL\x19\xaa5\x95\xd9\xd0\xeb\xf18\xa3\xbe\xef9z\x00\xfeT:\xf7\xfc(\xdac~\u007fe5\xf6\xc9\xfb+\xbbY\xdd86q\xe8\xab\xd6{\xed\x02J\xa9\x9aO\x89\x15s\xf5`g<\xb9\xd2cU\x84\x9bL\x9e㏋T+\xbft\xbeL\x92Krw\xc1s+\x9d\xbb\xdf\xd3\vg\x93-(B\x02= 4Bnd\xabg\xd7{\xd5y\xc9\xdd\xec\xdcB\xe7\x89p|\xed\xc0\xb5\x14\x81\x0e^\xa2\xa2\xa2\xc2cS\x05.\x14\xe1\r\xbf\xd7\xfeo\xbe\x97\x8bY\x90T\xd52˄\xb8\xea\xbaF\xaa\xa8\x9fK9\r\x9d\x94\xd1ث\xcbj^\xec\xd2\xd8\xe7\xbe\x00/~\x8e\u07bfd\xe0φ\xf1'\xa7E\x05{K\x0fe5-\xa2\xf4\xfaNJ\xa9i\xa7\xe4Y\xad\x94X\xd6\"\xc1\xee\n\xf4F\x15\xd6.2f^\xdc\xe0:\xaaPO\xab\xe8P-\xf9V\xc1]\xf8\xdcu\xcf\xcb\xd9xL=o\xd6\x1c\x8aI\xc9#\xa3o\x88\xcc\x171;\xfc\xd4{\xdfJ\x0f\x1ey\xc7\xd2Ү\xae.\x8fM\x9e\xb0\xab\x1a\x02\x1d\xbc\xc8\xe1Ç\xe5.[+\x0e\x91\x9c\x9c\xec\x15'hzv\x9e\x049O\x86\xe3\x12\x99a\x11\x91\xd4ջD\xd6\xefr\xa0\xa75\xf6\x88\f\xeevWқ\xfa/\xb8\x99MK\xe411-\xd4G\xba\x95~\xe7\xe7\a\xfd\x1b\xad\xb8\xf7\xc1\x9e\xd58\x97\xca\xebZ\xa4>6wyJ\xa8Jx\xbb\x8e\xe9\r=r̞\xb3DZ\xe1\x19\x8dh\xa1\xc3\xcb\xe1\xf7\x92\xf6~z\x9a\xe4\xbaN\x15\xec]*\xec\xbb)k\x8e\xd2\xd4#\xa1\x9e^\xd3!c\xeb\xae@\xf7l\x9dK\xa8\xbb\x03\x9d'\xce\xf1\xe6.q\x05s(\xbeе܍\xc7\xd3y,\x9d'\xc9e\x955Ќ\xe4<\xd7^\xeb\x16\x87\x9c\v\xa1\x13G\xbeFz__\x9f\xde2\xe7kECC\x03\xc2\x1c\x81\x0e\xde\xe6\u0085\v\x1e\xdd\xeeqqq#z\xa2v\xf7\xa8\v\x87\xc9FFG\xa0\xac͝\xaa.n%s\xba(kv\x1be\xd5vʤ\xa5g\x05.OzӎC\xe1\xaf\xde\x10\xc0\xe860\xdc3\x1b]\xefE~O\xca\xccx\x85W_dUwJ\xadw^\xe6\xc6\x15\xe2\xb4BG\xe9e\xf3\xf41v\x9dǤ\xb9f\x9a\x96^Ne\xea\x86\xc1\x1e\x12\xe5Z\x9bn\xe2}\xd5m\xf4\xd1'\x1f\x8f\xe8y\x19\x1a\x1a\xaa\x879õ\x13\x81\x0e\xa3`\xc6;\xd7y\xe7\x9a\xef#\xb6\x81L^\x81\xabunV\x173G\b\xc5\xe6Ϧ\xfc&\xd7d\xa5\xac\xe6\xa5C\x16\xd4\x00/zC'a\xde\xe0y\xe3\x98\xe3\x96[\xdbCٳ\x17QF\xc5\x02\xa9R\xa8\x159J.\x9a'!\xafu\xc9k-y\xcfen-\x12\xfe\x99e-4qF\xa6j\xa1\a\xb9\xcaªVz[\xfb\xc8u\xbb\xb7\xb5\xb5\xc9\x04Zm\xdd\xf9믿\x8e@G\xa0\x83\xb7\xbar\xe5\x8a\xc7\x12\xb6\xe8\xe8\xe8\x119ao߾M\xfe\x01A\xee\xeev\a\xf9EĨ\vd;e\xd7-\x94\to9-\xcb\x11*0\xe2\x81>\xb8Gh \xae\x85\xc0rj\xba\xa5\xc0\x91\x16\xea\\~\x98\x8b\xcf5jd\xceɛ7o\xeaEdxh.,,\fa\x8e@\x87\xd12\xe3]\xebZ{\xe3\x8d7\x86\xfd\xc4ݹs\xa7\xfa\xd9F\xd9}\x8a\x03=21\x8bf\xb5-\xa5̚\x05\x12\xe8h\xa1\x83\xb7\azf\xcd\"i\xa9\xe7\xd7\xf7I\xa8\xa7\x95\xb5K\x98K\xa8\xf3:\xf5\xe7\x04zz\xd9|\xd9\xee7C}\x8d߄i\xb2i\x8bkN\x89\x89\xae\\\xbb:\xec\xe7d}}\xbdǐܚ5k\x10\xe8\bt\xf0v\u05ee]\x930ת\xc7M\x9c8\x91\x1e=z4\xac'\xefҥK%Н\x81\xa1\x12\xe833\x8b\xa8\xaa}\x99\x04\xba\xab\xabs1B\x05FG\xa07-\xa1܆>ʬZH)em\xb2A\v\xef\x05\xf0\xbc@\x8f\xcbm\xa0\xec\x8ay\x94RPC\xa1S\xe2\\\xdb\x04\x9bmr^\f\xf78\xfa\x9e={V?\xb28\xfd\xc9l\xb1Qwoϰ\x9e\x8f\t\t\tr\x1d\xb0Z\xadr\x1cɹ5\x80@\x87\x970u\xeaT\x99\x00\xc3'0\x8f\x99\x1d=zt\xd8Nb\xaeV\xc7-\x11^\xaef\xf2\v\xa5\\^\xa6Vۮ.\x8c\xee\xea]\bt\xf0\xf2@\xd7J\x10\xf3\x9e\x019\xaa\x85Ώ\xf9\xe3\x94\xca\x0eٱ\xefy\x81\x9e\x90\xdfD\xe9%\xcdR9.!\xa3X\xc6\xd0m~\x81r^\xd4\xd6\xd7\r۹\xf8\xfe\xfb\xef{t\xb5\xf3\xcd6\xae\x8f\bt\x18e>\xfc\xf0C\x8fn\xb6\x94\x94\x94a;\x91\xb9\x9b_\x02\xdd`\xa1\xc0IӨ\xa2\xb9\x83\xb2\xaa[\xa9\xa0\xb9\x97Rk\xba(]] \x11*\xe0́\x9e\xc7ŌT\x80g\xd4,\x92\xc7\xf9\xcdK%\xd4SU+}fq3ŗ>;\xd03\xca\xdb(6\xab\x8a\xf2\xab\xe6QFA\x95\x04\xba\xdd?H\u038b\xf2ʊa;\x17}}}\xe5\xfc\xd76b9x\xf0 \x02\x1d\x81\x0e\xa3Qvv\xb6^\x11\x8a\x97\xb1}\xf0\xc1\a\xc3r2s\xd5:\xa3ɢ\az\xe5\x9c\x05\xd2Bϩ\uf8b4\xdaER\xf9\r\xa1\x02\xde\x1c\xf0Ϭ\x91\xd0\xd0M\xb1\xdc\xf2V\xb4@\xe7\r]\xb8+\x9e\x8b\xcc\xf0ǩ%\xf3(\xa5\xb0A&ť\xe5U\x92\xd5?T\x1fCOHJ\x1c\x96\xf3\x90'\xc2q\xef\x9c6\xf4\xc6s[p]D\xa0\xc3(\xb5c\xc7\x0e\x9a0a\x82\x9c\xccv\xbb]B\xfd\xe1á\xaf'\x8d@\x87\xb1\x18\xe8\xfa\xba\xf5\xc6n\x8a\x93\xd6y\x83\xd7\x06\xfa\xfe\xfd\xfb)88X\xcey\x1e;牲\xc3q\xee\x03\x02\x1d\x86P]]\x9d~bs\xb0WWW#\xd0\x01\x9e\x13\xe8O-'\xdb\xd4_Y.\xb1\xbc\x99\x92J\xdda^ܠo\xbbʳ\xe0\xbd!\xd0y\x88M\xbb\x91\xe7\xe3\x96-[\x10\xe6\bt\x18\vBBB\xe4\xa4\xe6`\xe7\xe3W_}E\bt\x80\x17\vtm\x83\x17M\x86\n\xf4\xd4*\x15\xd8\xe5\xcd^\x19\xe8\xbc\xd7\xf9\xc0U.\x19\x19\x19\bs\x04:\x8c\x15\x1f\u007f\xfc\xb1\x9c\xd8\xda\x04\x99\xf0\xf0pz\xf0\xe0\x01!\xd0\x01\x9e\x1d\xe8\x03\x83<Ս\x03=S\xbd\x9f\xd3ܻ\xb2\xc5\x17\xd5K\x88k\x93\xe2F2Џ\x1f?.;/j\x13b\xb9^\xfb\xf5\xeb\xd7\x11\xe8\bt\x18Kx-\xba\x16\xea\xdc\xfd^[[\x8b@\axJ\xa0?+\xccS\xe5q7\xe54.\xa4\x8c\xaay\x12\xe8q\x85u^\x13\xe83gΔ\xf3\\\x9b\f\xdb\xdbۋ0G\xa0\xc3X\x14\x14\x14$\xcbW\x18\x87\xfa\xae]\xbb\b\x81\x0e㑶\t\xcb\xe0@\u007fZW\xfb\xc00Oiv\x05z^\xf3\"ʚ=_\x0ft\x9e\x10\xc7[\xaa\xf2\xde\xe8#\x15\xe8o\xbd\xf5\x96\xbe\xe6\x9c\xc7\xce\xd3\xd3\xd3\x11\xe6\bt\x18\xab6o\xde\xecQ1\x8a\xbbއ*\xd0}̼1\x8b{\x1d\xfa\x9c\x85\x1e\x81\x9e\xd5ȁ\x8e\xe22\xe0}\x81\xfe\xbc\xf1\xf3T\xf7\xb1\xa0\xa5O\xba\xddy\xeb\xd48\x15\xdc\t\x85\x8d\xb2i\v\xe3-Ty\u007f\xf4\xa4\xc2&\x15\xe8M\x94\x9a_\xa5\x02=\xcc\x15\xe8\x06\x1fJL\x8c\u007f\xe5\xe7\xddO?\xfd\xa4\xefs\xaeu\xb9\x9f>}\x1a\x81\x8e@\x87\xb1,??_Z\xe7<\xb6\xc6'}ii\xe9+?\xe9\x8df\xf5\xbd\xf9\xa6A\xb5\xd2\x03&M\xa7\xb2\x96\x85\x94]\xd3.\xfbL\xa7\xd6\xf0\xdeӋ݁\x0e\xe0}\xf8\xfd\xf9\xf9Tk\x99\u007f\xff\xfd\xf7\bs@\xa0\xc3\xd0ٴi\x93\xab\xe0\x8c\xc1\xc7\xc5=\xa6\xbe|\xf9rڰa\x83\xec\xc9\xec\xe3c$\x93\xd9.-tg\xc0D\n\x9f\x96@\x13\xa7\xa7RHt*\x05E\xa7S\xe0\xb4\x14rFD+Q\x03Dz\x9a\xd9\xf6!ݽ}\x8fΞ\xbeH?\x1c=M\u05eeܧ\xb3go҉\x1f\xafЏ\xa7\xaf\xd1\xc9ӗ\xe9\xfc\xa5\x9bt\xee\xdc5:q\xea\x02\x9d=w\x99\xce^\xb8J\x97.ߠ\xdb\xf7\x1eЭ\xdb\xf7\xe9ڭ\xbbt\xfd\xc6\x1d\xbaq\xe7>ݻ\xff\v\xdd\xf9\xf9\x17\xba}\xe7\x1e]\xbb~S\xfd\xfb\xdd!u\xe7\xee\xfdg\xba{\xef\xe7\x11\xf5\xbc\xdf\xefy\xf8\xf5\x1c\xfc\xbd\xf8\xb5}U\x86\xfa\xef3\xa2\xeeܦ_\x1fܣ\x1b7\xafЍ\xeb\x97\xe9\u07bd;\xca\xcft\xf5\xda-\xbau\xf3\x1e=|\xf4\x87z}\x1f\xd2\xe5k\xb7\xe9\xfa\xad\xfbt\xeb\xee\xaf\xf4\xf8\x8f\xff\xa0\x9f\x1f\xfe\x83V\xac^--t\x8b͵\xfcS+\x1e\x830\a\x04:x\x85\xad\xdb>r\xad\x9du8\xa5\xb4\xa5\xd5h\xa0\xc8I\x11t\xee\xccy\\\xa4\x00\xb4z\x0eG\u007f _.\xd2\xe4\x1e\xaa\xe2s&,,\xec\xdf\xda\xf8\b\x00\x81\x0eC\x8eg\xe5ʄ8\x8b\x89\x82\x02\xfde\xac\x91\xc7\xd3\xf7\xedُ\x8b\x15`\xceɦ\xf7\\\x95⌮\xb1w\xb3\xd5\"\x1b\xaf`\x9d9 \xd0\xc1+]\xb8p\x81LF\x1f\tr\xbbU\xdb%\xcaH[\x05\x17-\x18\xb7\x96\xafX%\xadr\xbb\x9f/\x99\xed6\x99w\x92\x95\x95\x85s\x02\x10\xe8\xe0\xdd._\xba@S#'땮d\xb2\x90\xba\x98\xf5-_\xe9q\x01{\xfc\xc7\u007f\xe1\x82\x06c^Aa\xa9,\xdf\f\n\x0e\xd5k7\xa4\xa4%\xe3\xbd\x0f\bt\x18=\xca\xcbKei\x19_\xc0\xac\x1c\xecF3U66ѽ\xdf\xff\x89\x8b\x19\x8cy7o\xfeB\xd3c\xe2%\xcc\xcd\x16\x1b\x19M\x16\n\b\n\xa4\x86\xa6z\xbc\xff\x01\x81\x0e\xa3\xcb\xe3\xc7\x0f\xa9\xb6\xbe\x86\x9cA\x01R\x04Ƈ\xc7\x0f\xcdf\xf2\x8d\x98L'\xaf\xde\xc0E\rƬ\x1f\xcf^\xa6\x88\xc8\x19\xb2d- 0\x94\xa6DF\xc9\xd0Sk\xdb|\xbc\xef\x01\x81\x0e\xa3\xd7\xfc\x05\x1d\xaa\x85\xee${p\x10\xf9\xd8\xec\xe4íu\x15\xec\x1f\xed\xfa\xc2\xe3\xe2v\xef\x11Z\xee0\xfa\xbd\xb7\xe5\x13}\xfdyX\xf8\x14w\xb5D#\xed\xfc|\x17\xde߀@\x87\xd1\xef\xfd-\x9be\xdbH\x1eK\x97\x99\xbe\xb2l\xc7L\x1d]=\xfaE\xee\xf1?\xff\xf3\xb9\x17\xbcG\xff\xfco\\\x14\xc1kͮ\xa9\x93\xf06\x18\xcdd\xe1\n\x88\xea\xe3\x993\xe3\xe8\x87\x1f~\xc0\xfb\x16\x10\xe80v\x9c;wN\xf6x\xe6\x9d\xda\\ۯ\x1a\xc9? \x88RR3\xe9\xd8\xf1Sϼ\xe0=\xfe\xd7\xff\xf5\xf8\xf7_\u007f\xfb\xdfCz\x81ܱ\xebs\xfa䳝ϴ}\xc7g#\xea\xd3\xcfv\xd1\xde}\ah\xcf\xde\xfd\xc4u\x00\xde{\u007f\v}\xf5\xf5\xd3k\x80s!\x9e\xcfw\u007f)\xcf\xe3ぃ\xdf\xc8sv}\xfe\x85<\u007fǧ;\xe9䏧\x9fx\xee\xe5+\xd7\xe8\xdd\xf76\xcb\xf3>\xdb\xf9\xb9\xf8\xf0\xa3Oh\xe7\xae\xdd\b\xa8\x01\x8e\x1f?.\x1b\xach\xbb\xa4i\x1b\xad\x14\x15\x15\xd1\xe5˗\xf1Z\x01\x02\x1dƦ\xe9ӧ\xcb\xfa[\xbb\xc3W\xdf\xc0%|\xe2\x14\xfah\xfb\x93]\x92\xbf>\xfe\x9f\x1e\x9f{\xf8\xc7\xff\x19\xf2\x8bc\xfb\xc2.\xd9ϝ{\x12\x9e\xc55{\u007f\x04ɎvVi\r\xf2\xc7N_\u007fQXT\xe2\xf1\x1aq\x05\xb8Ĥ\x14\xfd9\u007f\x86\x9f\xbbv\xdd\x06\xfd\xb9\x1c\xf6\x93\"\xa6\xe8\xff\xce\u007f/\x9eܥ=\xaekjFP)\xebׯ\x97͉\xf8F\x95K\xb9\xbanV}\xa8\xb3\xb3\x13\xaf\x0f \xd0a\xeckii\x91P\x90\xa5<2\xc6h&\x93\u0557\x9aZ\xda\xf4\x8b\xe0\xfd\a\xff\x1a\x91\v\xe2\x8c\xf8\x04}h\xe0\x99x\xf7\xad\x11d\xb59\xf4\xee]\x9eA\x1d\x16>I\x1e\a\x04\x06{\xbcn\xdf\x1f>\xea\x11\xca\xe1\x13#\xc8\xe1\xf4\x93\x8f\x19\u007f\xbd\x9f\u007f\xa0\xfc{m]\x83\xfe\xdcU\xaf\xbf!\x9f\xe3\xaec\xfe\xfeڑ?'\xc1\xae^\xa3\x9f\x1f>\x1a\xb7\xa1\xf5\xe0\xc1#\xca\xcc\xcc\xd4w\x17\xe4\x9bT\xfe\x98[\xe7\xef\xbc\xf3\x0e\xc2\x1c\x10\xe80~\xecٳO\xb5lB% |\xfd\x02d\x03\v\x9bݏ2s\ni\xdf\xc1##vAl\xedX\xe0\x1a\xe37\x99\x9fi\xa4\x03\x9dC\x99_;\x9b\xdd)-u-p\a\xb7й\xbb}Zt\x8c~\x03\xe0aP\xab\xfd\xad\xbfoҟ{\xe4\xe81\n\t\r\x93\xef\xcd_7\xf0\xf9\x81A!T^U=nC\xeb\x9b\xc3GTp\a\xcbv\xa7\xda\x1e\xe6\xbc[\xdaԩS1^\x0e\bt\x18\x9fxC\x8b\x8c\xccl\t\r\xa7o\xa0\xbb\xb5\xaeZ\x81&;\xbd\xb6j\xfd\x88]\x18\xcf\\\xb8H_\xed\xdb\xffL<~=\x92v\u007f\xf1\x95\x8cm\xf3x8\x8fi\xb3\x13'\x9f>\x17\xe1\xd2\xe5\xabt\xea\xf4\x19\xda\u007f\xe0\x10\xed\xdb\u007f\x90\xbe\xfb\xfe\b}\xf1\xe5ׂ?\xfe\xe9\xcc9\xe2\xf1\xf2\xc1\xcf\xe3\xefw\xf0з\xf2u_~\xb5\x87\xbe\xf9\xf6{\xf9\xd9\xfcx\xbc\xbeg\xbb\x17/\x93\x1b'm\x0fsn\x91s뼪\xaa\nA\x0e\bt\x80\xb6\xb6\x0e\n\x0e\t\x97\xb1t\x8bթZ\x9f\x81\x12\xecy\x85\x15t\xf2\xf4E\\(a\xc4}\xfb\xddaJM\xcb\x18У᪄\xe8p8h\xe3ƍx\x8f\x02\x02\x1d@\xef\x82\xff\xfa\x80\x04:\xb7\xd2\xed\x0e\u007f\xb2:\x02$ԝ\xfe!\xb4|\xe5Zz\xf8\xfb\u007f\xe2\xa2\t#\xa2s\xe1\"}\xfe\x806g\x81\x03\xbd\xb0\xb0\x90n\xdc@\x91$@\xa0\x03<\xd5k+W\xe9\xb3\xdf\xfd\xfc\x83\xc9l\xf7\x95`OHΠ\xfd\x87\xb0g4\f\x1f^\xa275*Z&\x01\xf2\x1c\x02mE\x01\a:\xcfn\xc7k\x04\bt\x80\xe7\xe05\xd1\xcfrl\x88\xfd\xa0~\x87\xe3\xea\xffp\xe2ď\xba\x93\xeaw;u\xea'yM\x86\xea\xb5_\xb6l\x19\xf9\xfb\xfbK\x97:\xe3bH<\xe9\x8d\vǬ]\xbb\x16A\x0e\bt\x80\x97\xb5w\xff>\x8aOL \x9b\xaf\x93L6W\xd9X.\xfc\xc2\xdd\xf0\x89)ٴ\xff\xd0Q\x1aK-C\x9e\xf5\xcf]\xbb\xfd\x85w\xfa\xa5\xa5gz\xfc_\xb9\u009b,+\xd3\xd7\xf4\xf7\u007f-\u007f\x9e\xbb\x8aYUu\xcd\x13\xaf\x11\xb7@\xb5\xa5oښt\xed\xb9̭ܽ\xd2g1\r1\xab\xd5.l\xeaw\xb1\xa8\xff\x83\xf6y\xb3{\x89\xde\xee/\xf6\xbcҿ\xfb\xf6\xed\xdb\xf5eh\x1c\xe2\\,\x86\x97\xa2\xf1㒒\x12\xba\u007f\xff>\xc2\x1c\x10\xe8\x00\xafd\xb9P\xef\"\xb2\xd8̲\x1d\xab\xdd頉S\"\xc9\xc7h\x92n\xf8\x82\x92r\xba~k\xf4_p\xb9\x85\xcck\xbe9\xb08`y\xbd7\x97\xc7\xe5\x8am\\ɍÖ˯j_?q\xd2d}-\xbaVT\x86\xbb\x899\xdc\xf9c~\xae6\x91\x8bףk\xcf\xe3ֻ\x8c\a\xab\x9f\xc5?G\xfb\xdeZ\x98\xbf\b\xdb\x10\xe3\x10\xd7B\xfdi\x81\x9e\x99\x95\xf7J\xfe\xde\xe7ϟ\xa7\xb4\xb44\xf5\xbdMR\xe5\x8d[\xe3\\\xf5\x8d\x1fs\xab|ӦM\br@\xa0\x03\xbcj7n]\xa7\xf2\xca2\xd7>\xebF\x1f\x114!T\xdf\xf0\xa5i\xee|\xbay\xf7\xe7Q{\x01>{\xee\x02M\x9e2\xb5\xbf\xe0ˠ\xc2/3c\xe3=\xc6oy3\x10n-k-클\t\\\x8cK\xbf\x0e\xfeY\xdad\xaf\xc1\xcf\xd1Z\xfc\xde\u00a0^\x03\x8dQ\xfd~\x1c\xe8|C\xb1vݛ\u007f\xf9\xef\\WW'-p^S\xce!\xaeu\xb3\xb3\x86\x86\x06\x049 \xd0\x01\x86\xda7\xdf\x1d\xa0ؤ\x99\x148!\xc0\x15\xec\x16\x03\xd9\xfd|%\xd4'N\x89\xa2\x05]}\xf4\xf8\xf7\xff1*/\xc8W\xafݠ\xf5\x1bޤ\x15\xaf\xfdM\xacY\xbb^\x1e\xbf\xb1f\x1d]\xbfq\xeb\x89\xff\xd3ʿ\xbdN\xcbW\xac\xa4\xcd[\xb6\xd2\xe2%\xcbh\xf5\x1bk\xe5k\u05ed\xdf(\x9f߰\xf1-\xbar\xf5:=m\xfc\x9c+\xc3-\xec\xea&^Y\xc0_\xff\xfa\xea5\xc4ߏ\x1f\xf3\xf1Y\xfe6\xc4V\xadZM\xaf\xbf\xfe\x06\xadV\xbf\x93\xe6\r\xf5\u007f[\xb7n\x83\xbc\x1e/\xfb\xfa^\xbbu\x97z\x97.\x93^\x00-\xbc\xb9k\x9dדs\xa8Ϛ5\x8bΜ9\x830\a\x04:\xc0pZ\xbd\xfeu\xf2\x0ftJ\xa8;|\x9ddu:\\\x1b\x96X\xec\x14\x12:\x89z\x16\xaf\xa0۷\x1f\xe0\xe2\f>\x0f\x1f\xfdN\xbc\xf1\x8e\u007f@\x88k\xe6\xba\xd1H\x01\x01\x01z\r\xf6\x193f\xd0\xee\xdd\xd8E\x0e\x10\xe8\x00#\xaawq\x9f\x8cw\x1aLF\xb9@\x0f\xec6\x9e1#V\xb5TWѵ\xab\xb7p\xb1\x1e\x87\xeeܹG\x1d\x9d\vd\xdf\x00~\u007f\xf0\x98<\x87\xb96\x93=,,\x8c>\xf8\xe0\x03\xbc7\x00\x81\x0e\xe0-\xeeݻG\xcd\xcd\xcd2C\x99/ء\xa1\xa1\xb2\v\x96֭\xca\xfbTwuu\x11\xefˎ\xd7k\x1c̷\xb8q\x83\xe6ϟ\xaf\xcfT\x1f\xf8^\xe0\xaeu\xae\xc1\xbef\xcd\x1a\xbc\x17\x00\x81\x0e\xe0\xadnݺ%{Q\x0f\xbex\x1b\f\x06\xbdE6\xbb\xa6\x81\x8e\xff\x88\x1a\xf1c\xd1\xd7_\u007fM\x15\x15\x15\xfaߟ'\xbc\xf1ߟo\xf2\xf8qtt4\xb5\xb7\xb7\xe3o\x0f\bt\x80Q3f\xfa\xf0!utt\xe8\x17v\xee\x92\xe7ֻ\xeb1_\xdcm\x94\x96YD[?\xfa\x9c~y\xf8\x1f\xb8\xc0\x8fr[\xb7n\xa5\xe9ӧ{\xccT\xe71r\x9e\xec\xc6\x1f\U000d2d1e\x9e\x1ez\xf4\xe8\x11\xfeր@\a\x18\x8d\x1e\xa5\xa6\xa6J5\xb7\x81\xcbδa\x15\x0e\xf3\x94\x94\x14z\xef\xbd\xf7\xf0w\x04\x04:\xc0X\xf6\xf1\xc7\x1f\xd3\xf4\x98\x99RMM/b\"E\\\xdcA\xefc\xa1\xa0\xe0p\xaa\xaaj\xa4ݻ\x0f>\x11\n\x8f\u007f\xff_\b\x8aa\xb6}\xc7gTRZ\xae\x97\xb8\xe5\xf0\xe6 \xe7ֹ\xd6B\xe7q\xf2ٳg\xd3\u07bd{\xf1\xf7\x01\x04:\xc0xr\xe2ǓT[_G\xbe\xfe~\x12\xe8\\\x02\xd5\xe9\xab\xc2\xc1`!\x83\xd1&\xc1\xce]\xf2\x93&\xc5\xd0ܹ]\xb4\u007f\xffQ\x04\xc50:\xf4\xcdw\xd4\xd0\xd8L\xc1!\x13\xf4\x1b/\xad,.\a\xba6э\x03}\xc1\x82\x05t\xe7\xce\x1d\xfc}\x00\x81\x0e0\x9e=\xfe\xed\x11\xad۰\x9e\x92R\x92\xa5\xac\xa8\xb6\x1f\xbb+\xd0U\xb8\x1b\x1c\xfax{||&\xb5\xb6\xf7\xd2g\xbb\x0f\xd0\xf5{\x0f\x11 \xaf\xd8'\xdb?\xa5\xba\xfaF\x9a\x12\x19\xa5o[\xca%i\xb5z\xf5\x8cK\xddr\x98\x97\x96\x96\xa25\x0e\x80@\ax:ގt\xed\xba\r\xaaU\x18\xae\xc2]\xb5\x04\x8dV\x15&\xfe*D\x02U\xc0\xd8\xf5`\xf71\xd8\xc874\x9cr\x8b*h\xf5\x9boә\x8b\xd7\x11,/3\xb1\xed\xdc\x05)9\x9b\x93\x9bO\xa1\x13¥\x05\xae\xed\x16\xa7\xb5\xc6\a֜ONI\xa3\xbe\xc5K\xf1Z\x03 \xd0\x01^ܾ}\a\xa8\xa2b\x169\x1d\x01\xd2b7\xab@\xb7Y\xfdT\xd88\xc8\xe9\x1fBV_\xf5y\x0ey\x83\xab5?yZ\f\xb5w\xf6\xd0';wӹ\x8b\xd7\xe8\xd7\u007f\xfc\x81\xe0\x19\xe4\xe2ŋ\xb4\u007f\xff~i]\xc7\xc4\xc4xl\x8a\xc2;\x9c\xf1\xb88\x1f\a.?\xe3\xe5h\xbd\xbd\xbdt\xfc\xf8q\xbc\x9e\x00\bt\x80\xbf\xe6\xb3\xcfvQCC\x13M\x9b6\x9d\xecZ\xf7\xaf\xc1\xd55\xcf\xfb\xb3\x9b-\x0e\xfd1\x1f\xed\x0e\u007f\x8a\x89\x8b\xa7\xe69\xad\xb4\xf1\xedMt\xf0\xd0\xf7t\xe3\xce\xddq\x15H\xbc\xe6\xfb\xe0\xc1\x83\xb4q\xe3F\xa9\xe2\x17\x1b\x1b\xab\xd7N\xd7\xf0\x8ct\xad\xba\x9f\xf69~\xcc[\x9a\xf2\xba\xf1cǎ!\xc4\x01\x10\xe8\x00C4\x99\xee\xc41\xa96\xc6c\xee\xb2\x04\xce\xe0*Vc\xb5\xdbT\x18\xf9S@P\xa0;\xf0}\xf4\xa3\xd3\xe9G\x91QS)/\xaf\x80\xeaՍ\xc1\x9b\x9bޣϿ\xdaK\x97\xaf\x8f\x9d\x1a\xf3'N\x9c\xa0u\xeb\xd6Qcc#eddPdd\xa4\x14t\xe1\xd0\xd6Z\xe2<\x99\x8dC=((H/˪\xd5\aHOO\xa7\xf5\xeb\xd7\xd3\xe9ӧ\x11\xe2\x00\bt\x80\xe1u\xff\xfe}ھ}\xbb\x84XDD\x84\x1eP\x1cd\x03\x03k`\xb72\x87\x97\xec\xf8eu\x90\u007f\xf0\x04\x8a\x8a\x89\xa5\x82\x92r\xea\xec\xee\xa3w\xb7l\xa3/\xf7\x1e\xa0K\xd7n\xd2\xed\xfb\xbfzU\xb0=\xfc\xed\x9ft\xfe\xf25:z\xe2$\xbd\xff\xfe\x16iAgeeI\x15>\xfe\xbfj\xeb\xc0\a\xd2\x02\\\xdbs\x9c\xbfN+\xfa2a\xc2\x04\xaa\xad\xad\xa5\x9d;w\"\xc0\x01\x10\xe8\x00\xde\xe5ԏ'h\xdb\xd6-TR\\H\t\xf1\xb1\x14\x1a\x12DN\x87\x8dlV\x1e\x837\x90A\xebj\xe6\xd9\xf4f[\u007fq\x9b\x81ܟ\xb7:\xfd)bj4e\xe4\xe4Sm\xe3\x1c\xeaY\xb2\x9cֽ\xf9\xb6\x84\xfe\x81o\x0fӷG\x8e\xd1\xf1Sg$d9\xfc\x1f\xfd\xfe\xaf\u007f;\x18\xef\xfd\xfaHz\tN\x9c>K\a\xbf;B_\xec\xd9O\x9f\xed\xfe\x8aV\xae^K]\xbdK\xa8\xba\xae\x91R2\xb2e\x9fy\xbb_\xa0\xfbw3\xaa`\xb6z\x048\a5\a7\x875\u007f\xcc74\xae\x1b\x97\xfe\u007f\x8f\x8b\x8b\xa3y\xf3\xe6ɦ(\x8f\x1f?F\x88\x03 \xd0\x01F\x8fsg\u007f\xa2\xed\x9f|DK\x97\xf4QA~.\x85\x04\a\xf6ד\xd7\xc6\xdc\xcd\x16\xb2XU\x8b\xde\ue431x\x83\xc5JF\x93M>\xcfk\xe2\a\x8e\xcd\xcb\xd1h\xea\u007f\xac\xfe\xddd\xb3\x93\xaf_\x10\x05\x84\x84҄\xb0\b\n\x8b\x98LS\"\xa3)2z:M\x8f\x89\x93\xb1\xfc\x193\x13(*f\x86|>|\xf2\x14\xf2\xf3\x0fV\x01\xed/c\xfd\xfc|\x9e\xcd\xff\xc4\xcf\x19\xf8\xf3\xf8\xf70\x99\xe5\xf7rmO\xdb\xdf\x02\u007fZ˜׆\x17\x15\x15\xd1ڵk\xe9\xc0\x81\x03X#\x0e\x80@\a\x18\x83\xeb\xdeU\xebtǎ\x1d\xb4r\xd5ߨ\xac\xacB\xc6\xd6\xfd\xfc\x02\xc8b\xb3\x92\x89\xd7^\x1b|d\xdfn\x93\xc5\xfc\xc4X<\x8f\xd9\x1b\xcd&\xf9z\xa7\x9f/9\x1c\xbe2vo\xb1\xd8\xe4\xf3\x06\xaex7\xe0\xeb\a\x1f\xe5ߍ\x06\xf9z\xfe\xfe\xdc\xd26[-2\xd1\xcf\xeetx|?\xfe}\xf88\xf8\xfbhC\t܅\xce\xe5Wy\xb6zyy9\xad^\xbd\x9a\x8e\x1c9B\\?\x1f\u007fg\x00\x04:\xc0\xb8u\xf5\xeaUڽ{\xb7\xcc\n\xaf\xaa\xaa\x92\xa5]\xd9\xd9\xd9\xd2U=y\xf2di\xf5jcу[\xc4ϢUU\xe3\xf1{~\xee\xc0\xbd\xc1\xff\xeck\xf9c\xae\x8f\xce?799\x99JJJd\xa6z__\x9f\x04\xf7ɓ'\xe9\xeeݻ\bn\x00\x04:\x00\xbc\xcc\x1ann\x01\xf3:\xeem۶\xd1\xe6͛\xe9\xef\u007f\xff\xbb\x04\xec\x92%K\xa4\xfc)\xef>\xc6\x13\xf4\xca\xca\xcat\xdcz\xae\xac\xac\x94\x9b\x04\xaeu^SSC\xad\xad\xad\xb4p\xe1BZ\xbe|\xb9t\x8boڴ\x89>\xfc\xf0C\xb9\xa1طo\x1f]\xb9r\x85x\xc2\x1f^w\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@Nj\x00\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x00\x81\x0e\x00\x00\x00x\x11\x00\x00\x00\x10\xe8\x00\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x10\xe8\x00\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x10\xe8\x00\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x10\xe8\x00\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x10\xe8\x00\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x10\xe8\x00\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x10\xe8\x00\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x10\xe8\x00\x00\x00\x80@\a\x00\x00\x00\x04:\x00\x00\x00 \xd0\x01\x00\x00\x10\xe8\x00\x00\x000\x1a\xfd\u007fDFA\xa7&G\xed\xa7\x00\x00\x00\x00IEND\xaeB`\x82"), } +// auto-generated +// Code generated by '$ fyne bundle'. DO NOT EDIT. + +var ResourceAppPng = &fyne.StaticResource{ + StaticName: "app.png", + StaticContent: []byte( + "\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\x00\x000\b\x06\x00\x00\x00W\x02\xf9\x87\x00\x00\x00\tpHYs\x00\x00\x0e\xc4\x00\x00\x0e\xc4\x01\x95+\x0e\x1b\x00\x00\x15\xdfIDATh\x81\x95\x9ay\x94\\\xd5}\xe7?\xf7\xbe\xf7j\xaf\xea\xaa\xea}W\xabi\xedha\x11H,\x02,6\xb3\x18\x821\xb6\x99\xc4\xf1d\x1b\xcf؞\xe1@2!\xfe#\xe4\xccI\xe2$\xf6x2\xc1NNb\a\x88\xf1\xb1s\x8c\xc1\x18\x10\x10@\b$\x83vh-\xb4ZK\uf6fa\xaa\xbb\xba\xf6\xe5\xbdw\xef\xfcQխ\x960\xc7\xe3{\xce\xeb~[\xbd\xf7[\xbe\xbf\xfd\x89\x89\xa9\t-\x84\x00@\b\xc1\xa5\xfbˏ/\xbd\a\xe0ĉ#\xfc\xc3\xdf\xff\x1f\x1e\xf8\xec\x83\xdcq\xe7}\f\x0f\x9f\xe6\xe5\x97^\xe0\xf3_\xf8m\x1a\x1b\xdb)\x95\xf2|\xe7\u007f\xff5Cg\x87\xf8淾CCC\xf3\xd2o\xd1\xfcʥѠA\xeb\v7,\xee_zN.\x12$\xa5d\xf9\xfe\xf2\xe3K\xef\xd1\xda]:w\xe8\xe0~\x86\x87\xc6\xf8\xee\x93\xdfe.9\xcb\xd3O\xfd\v/\xbe\xf02\xdf{\xf2\xff\x92HL\xf1\xcdo\xfe\x05/\xbd\xf8\x1a'O\x9e\xe6\xc8\xc1\xfd\x80\xa6R\xca\xe38\x15\x84\x14 \xf8ض\xf4NY\xdb\xc4'o楒\x96R.qx\xe95\x80w\xf6\xbc\xc6\x0f\x9f~\x8a{\xef\u007f\x80\xfb\xee\xff\x9f\xe1\xfb\xdf\u007f\x8amۯ\xe6ϟ\xf8\x16Bꋤ\xba\\\v\x82\xda{\x05\b-~\xe5}\xe6\xa5\x1c}\x12\xe1\xd5}͞=\xbb)\x15*\xfc\xf0\x99\u007fô\f\xf6\xbe\xbb\xafv\xaf\xc1йq@W\x85 \x05\x862Q\xa2R\x13-<\xff\xb3\x17\x97T\xbfj\xf5\xba%i\xff\xaa%\x84\x00\xadы\xb0Y\xd4\xcc%\x8c\xc8_G\xfc\xc5\x102\xe8\xeb[\x8d\xd2\xe0\xf5zy\xfa\xa9\xa7\x99K$\x91\xc8e*7\x10\x02\x84\xd0\xf8\xbc\x16\xc1\x80\x1fC\n\xa4\x10\xa0%h\x81a\x1a45֓\x98\x9d@\xf0q\xa8\nQ\x93}\xf5AUZ\x84@\xb2\fV\x8b\xdb\xf9\xc4y\xfdIZ\xa8JN#e\xf5\x01\x99\xf4<\xdfx\xfc\x8f9?\x9d\xa0X*\xe386\xcaU\b\xa1\x10Z`(\x9b\x80ph\xf2j\xa2>\x89ǐ\x94\x1cE\"g3ST䵁\xab\f\x14\xa0\xd0\xc4\xeb\xeb\xf8\xe9\xcf~N(\x1c\x05@i\x8dr\x8ad\xd3\vH!\xf0\xfa\xfcX^\x1fBzaѰ\x17\x01V\xd3\xc2'B\b\x04\xe3\xe3C\xfc\xe0_\xff\x11W\xd9xL/\xa3C#\xe4\ve2\xd9\x1cO\xf1\xfa\xb4\xcd@NRT&\x9b6m\xc4\xe7\v,\xc1%\x95\x1cg\xcfKO\xd3\xd1ԄUZ\xc0u\\l\xc7eA\x1b(O\x18]\xd2\xec\xb8\xeb\xb3\x04c\xad,\"\xefcF\xbc\xfc\xf8С\xf7H\x15\xe6\xf0\xfb=\x14\xd3y\x9c\x8a\x8b\xb2]\x84v\x90(\x9a\xad\x02\x0f]\x1e\xe1\xa6M\xed\xf8#\xaa\xe6E\\\x04n\x15\xabH\x84Ob\xba&\x9dm\xf5\xc4\xdd\"M\xbe\nό9\xfc\xde_~\x8b\xab\xaeށ\x94&\x88\xaad\x8f\xbe\xbf\x8b{\xbf\xf8%\xfc\xb9\x14T\x16@W5\xe5\x16\xf3\x9c<\xb0\x97\u007f{\xf65~\xf9\u008f\xf9\xccW\x1f\xe5ڛ~\v->\x89\x01Yݿ\xf3\xd3\xf71t\xee\x1cÓC8\x05\a\xad$\xb6c\xe3W%\xee\xe9\xf3\xf0Ў\x15\x84B\x06\xbaj\xb3hYu\x19\u0095\xe4s\x0eS\x89\x1c3s.\v)\x17\xdbQ\x18\xf92\x01C\x1035\xab.[\x854\xcc%cT\xca\xc6gJ|\x1e\x1f\xa8\x12\xc8*j\x84\x02\xc34\xf1\x9ap[\x9b\x85t\x8b\xbc\xf6\xb7O\x90N$\xb9\xeds\u007ft\x81\x01`\xc9\xe7\x02\xe4ri\x16\xe6\xe7ظi3\xa7N\x0f\xa0]\x81\xa1\x1cZ\xad<_{`%\x1b\xda\x05¬\x80p\x10\xc2\x02m13U\xe2\xf8\xd9\x14\x89\x92\x17\u007f\xbc\x95\xf6\x8eut\xf66\xb2*\xe2\xc5u+d\x92)F\x86ƈ\xb7\v\xea\xe2-\x17<\x90\x86l:I\xac\xa1\x010\x91\u0083\xc6\x01\\А??\xc1\xe0\x87\x83켩\x1d1\x9e\xa5%\xb0\xc0\x8f\x9f\xfe\x1e\xa1\xa6\xa6e\f,\xb9)x\xe9\xe5\xe7\xf8\xc5/\x9eG\x18\xe0\xf1x\b\x05\x82dg\xe6\xe8\f\x14\xf9\xe3\xdf\xd9I4?\x88\x14\n\xf0P*W8zr\x81\x89\xacA˚M\\\xf3Е4\xb56#L\x0f\v\xe9,c\xa3c$\x92YLU\xa1\xbb\xb5\x99\x80\a|\xa2\x1bix\x96\xfbL\xe6\x12\x93\xd4\xc5\x1a\x90\x02\xf0\x86\x10\x85<\xaek3}\xec\b\xa7O\x9d\xa53\\\xc4\x1b\t\xc2\xea\x18=\xae\xe6\x9a\xec\x1co>\xfb\x83*\x03\x17\f\x17\xb4P\xbc\xfe\xea.<\x01\x83P,\f\xb6f\xe6\xec$\xeb\x1a\x14\x8f~\xed\xf3\x04\xcc\"\xceٓ\x94\xf3\x92}\xfdsd\xac&\xae\xfe\xd4]\xecX\xbb\xba\xeaBѠ\r\xc6\x06?\xe2\xf0\xb1\x13DB!,Ӣ$M\\m\xe0\x0f\x87I\x8d\xcd \x97\x11\xbf\xe8\xd5\x05\x1a-\x04\"\x14\aSr`\xd7s\x1cڳ\x97\x0eY\xe4\xba\xebZ\x10F\x05\x84\xc2\xd7\x1bgc\xbaHR\xfa0\xfe\xf4\xf1?}\xe2\xe2pm\xb0\xfd\xba\xedLOLr\xb2\xff\x14\xa1\xb0\x87n\xab\xc8\xe3\x8f\x9a\x9bڸ|\xcb\r\b\xc3ba!\x81\xcf\x17\xc0\xe7\xf5\xf0\xfcw\xbeƙ\xd3#|\xe5\xaf\xfe\x95\xfa\xb8\x9fw~\xf2\xcf\xf4t4\x12\xb1\x1c\xc6\xce\rq|\xe4<7>\xf89V\xb4t\x81]\xc0-\x15INM0x\xee$7\xde|7\xd20\xaa\xd8\x06\xb4r\x198\xf4\x1e~Kq\xec\xf8\x19F\xcb\x06_~\xec\xdb\xf8\x02\x91\x8f\xe5CU\xa3\\L\xa3\x05\xda-\xf1\xcaS\u007f\xc9j\u007f\x91εk\t4ub\xbe\xbb\xfbg\x14\x8bE\xae\xbf\xfe6\x12\xb3\x93\xecz\xe1_\xb8\xed3_&\x16o\xaaEH\xc1u\x9f{\x8cЁ\xddd\xf2Y\xea\xeb#\xdc|\xdb-\x942\xb3\x8c\x9d8A\xaehs痿J\xba\x92\xc0\x11\x9a\xf1\xa3\xefQ\\\x98cxd\x14o\xac\x19a\xd6\xf2\x19-(\x962\x1cy\xfbm\xa2\xe1\x10\xd1\xfa8\xf1x\x88`\xd7v\xfc\x81\xba\xc5|\xef\xa2D\xcduʜ\xfe\xf0=\xa6\xce\x1eö\xf3h\xb7\xc2ș3\x04\x9a|\xb4\xf69\b)1\xeb\xe3\xcdlڲ\x03\x84\"\x1a\xab\xa7\xa9\xa5\x997^~\x8a;?\xf3\x87\x18\x96\a!\xa1m\xc5jںW\xf2\xfa/\x9e\xa1g\xc5\xc3\b\u007f=d\x12\xf4]\xb9\x9d>\x01\xd2\xe7\xa3R\t\xf1\x1f\xbb\x9eG\xce\xceP\xaa@\xdf\xc6m\xac\u07fc\x05)\x05\xae\xe32\xf0a?\xd3\xe3gغ\xedF\xc2\xe1\b\xc5\xd4$Z\x800\x8c%\xe2\x17ᬵfl\xf8\x04\a_y\x86\xab֬b\xe7\xb6MH\x8f\t\xdaA\u07fc\x9d\xa9\xb1q\x1c\xa7\xea\xfa\xcd\xcd[\xaeG\xab\fP\x02$\xd1P\x80m۶\xf1\xd6\xeb\xcfp\xfb\xdd\u007f\xb0\x18&9zx\x0f#C\xa7Иh\u007f\f\u007f\xac\rT\x19\xd0H\x95\xa7\xb3>J\xe3λ1\x9c\x12\x96i\x01\n\xe5\nΞ8\xce\xc8\xe9\x01zV\xaf\xe1Sw=\x880%\xc5l\x06\xad\x15łMc\xb4\xf1c\xa89;p\x88\xb3o\xff\x88\xfbn݁/܈\x10\x02%\x14\x02\x03ay\xe9X\xd9G69\x85t,L\xa5\xe60JyD!\r\x86\x84P\x9c\xfa\xd6.\xe4\xc1\xbd\x14\x8a\v\x04\x021N\u007ft\x80\xec\a\xaf\xd3\x134\xd0\xcaE\b\x03\u00adP\xc9\"\x9c\"Z9\b\xd7\xc6'5\xda\xe3!\x97^\xe0\xdc\xc9~\xd2\xc9\x05\xba{Wp\xcb=\xf7!\r/h\x89BQ\xa9\x941\\M2\x9dcc\xe7\n\x8a\xe5\x02\xd9R\x06\x9f/\xc8B&ə\xbd\xcfq\xeb\xf5W\xe1\xf3\xd7!$\x80\xaa\xc6\x17\x04\x1a\x01RQ\xb25Nb\x02S\x16\xe7\x11\xd9y\xd0\x1a\xe9\x02\v\x15\xa8o\xc5q\xc1k\xf9\x10B0>|\x82\xde\xf6\x16\xceͤ\xb0]\x1bӬ>\xd2\x11\x1e\xf2\x95\"\xe9\xe4\x02\xf33Ӕ\xd3\tL\xb7B$\x14\xa4o\xcdF\x02\x81\b\xc9T\n\x1c\x816\x04#\x13\x93\xf4t\xb6\x13\xf2\x19\xa4REr\xb6A0R\xc7\xd7\xff\xe6\x11\x92=&\x81\xba\x10\xfe\xc11\xfe\xee\xfa\x1b1\xa4D(\xc5bR$j\x9eM\xd4\xea\x8aP]\x84\x89ӧ0\x9d\xc93$&\x86\xd0\xfe\x10-\xedmx\xfca\xce\x1d\xd9CO\xdf\x15\x18V\x00\x00\xcb\xf0\xa3d\x89\xa1\xe1Q6-\xcc\xe3\x8f\a\xe8\u007f\xe3Gx\xa5\x0f\xad!\x18\f\xd1\xd7\xda@xm\x0f\xd20\x11\x15\x17!\xaaUT<\x1c\xa0\x94\x9eG\x06Ctv\xb5\xa0Q\xe0\x94\x99\x9d\x99#\x95H\xf0\xea\x93\u007f\xc2\x1df\x99g\xc6\x1d귮ek\xa6L\xd0\xeb\a\x04\x8eS\xc2\xc4Ǣ\x91\b\tZU\xeb\x1c\xa5\x1c\\\xd7Ÿ\xa5n\xf6\x893#\xe7\xd9\u007f\xe08٩Q\x06O\f0]0\xb9\xfe\xce\xff\xb4\x14\xdc\x1a[:y\xe3\xad\xd7(j\x81\x16\x06+W]N[S\x1d---4u\xb4c\xfa\x03\x04\x82aL\x8f\xc9\xd8\xe8\x04u\xa1 HM)\x97f\xff\xfb\xefq\xe0\x83\x0fi_\xd9C8\x14©\x94\x99\x1a\x19b\xcf{G\xe9i\x89\x13\x16\x0e^C\x92(\x96\xc8w5\xb0:\x95e}C\a\xc2\x10\xe0T(\xe4\xb2xCu5\v_Ԁfbd\x8c\x88\xcfļf\x93\x97d\"ORǰ\xbd\x1el_\x9c\x9d\xf7\u007f\x99\xa5\x8a\x01\bD\xe2\xfc\xf6\u007f\xff\x1b\x94S\xe6\xfb\xff\xf0\xe7\xdcp\xd3\x1d\xf8\u00ad\x90\x99\x02\xd7&\x14\n\xd6\x12BM{{\v\x99\xf1\x11f\xceO395C\xd0g\xf0\xc0\xe7\xee\xc7\xf0E\xaa>\xbdRfl|\x92\x81\xe1\x19:\xaf\xbb\x82\xed\xb7\xec\xc0\x92&\xb9\xf7\xdf\xe6ٙ$\v\x15\xa7jgH4\x9a\xe4\xf80\x81X3\x86e-3s\xc1\xf4\xd0(W_\xbd\x1eSH\xcd̂\xe2\xc1\xc7\xfe\x0e\x8f7\x84/\x10FJ\xab\x8a\xbb\xc5Do1Z\x9b^\xee\xba\xffw\xf9\xe9\x0f\xff\x89/\xfc\xe7\xafcFL\x12\xa3\xe7h\x8ezp*Er\x85\x12\xb1H\x88\xba\x95}\xe8\xfa\x16\x9az2D⍔]\x85\xaaؘ\x96\xc9\xc4\xd9A\x8e\xf6\x9f\xe3\xeb_\xfb\x03\xba{V\x02\x1a\xb7\x90gMo/\xf6\xc4G̖+(\xed \xa9\x12\x1c\x89Ƙ\x19\x1f\xa3c\xe5\xaaZ\xbfH\xb0\x90\x98\xc5PE\xa4i!K\xb92\xe9J\x94H\xac\x15\u007f0V\xab\x90t\x15u˺\x18B\x83\xabl\xe2\xed+\xd8t\xd5V\xbe\xf7\xedo0\xbfP$\xb6b\x15*چ\x11n \x14\x89\xa2\x84\x00$\xc1P\x98hs\x1b\xa6\xc7\xc2\xe7\xf7\xe2\xf5x9\xb2\xff]v\xef=\xcc\xef\u007f\xf5\xf7\xe9\xee\xed\x05\xbb\x84\x93\x9a&1r\x84\x85\xe48ҔL\t(\xabR\r\xf5\x9a`(Dz>Q\xa3BR)\x95x\xe7\xcd7ٸi\x03Ұ0\x0f\r\xe4\xc9\xf5\xee@\b\x03\x8dC\xe2\xfc\x18\x13C\xa7(\xe52\ba\x12\x8b7ѵz\x03/\x1e\u007f\x9b\xdd\xf3Gh\x9b1\xb9\xb7w\x15\xb7nYˮg\xbf\x83\x15oe\xed\x96-\xb44\xb6\xd1\xd4\xd4\xce\xd8\xf0(]\xad\x8d,\xcc\xce\x12\x0eyp\xed\fg\xfb\xfby\xeb\xed\x03X\x06|\xe5\xbf\xfd!\x96LJ[ʡr\xf38\xae\x83v\x04\x93\xe9<\xc1\x15Q\x92\xb6\xc3|&G\xc8\x1fE\b0\xa4\xc4)W\xd0(R\x89\x19^\xfb\xd9/\xb8n\xdbF,\xcbBx\xbc\x98\xa2g+\xd7\xdd\xf3EΞ>ʇ\aw\xd3\xd1\xd5Ǫ\xcb:\xa93\x9aP\x99$\xc9\xe4\b\x87w\xed嗳C\xb4\xdf\u007f\x15b\xdf<\xb1\xfafZ\x83\x06\x95b\x81\xfe\x13\xa7\xf8\x8f\xe3\x1f\xe0\x0fX\xf8\xfd~<\xfe0\x8eR\xe4\xf3y\xb4S\xc4c\x97\x88\x05|DM\x87\a\xbe\xf4;X\x1e?\xaa\x9cC\xe5S\x80FUʸ\xaebob\x8e\xf8\x8dk(\x84\xfd\xec\xf9h\x82\x87\x1b[1\xa5\x89\xeb\xba$\xd3\x19\xdeܵ\x8b\xb1\xc1\xd3\xec\xb8n3\xcd\xcd\xcd`H\x84LJ\xb9u\xe3:~\xf0\x8f\u007f͆\x9bo灇\x1f\xc14LP\xf3\x18\xc54Z:\xac\x88F\xe8\xe9\xebesq3\u007fvl\x0fy\xe1дj+u\xba\xc0\x15\xad\xbd\\\xb1SU\x13-lT\xb9\x88\x93O\x93\x9e\x9d`\xec\xdc9&&&)\x164=\x1d\r\x04\"\xf5Dc\xf5h\xb7\x82\x9bOWݩR\x14\xb2)^\x9c\x1c\xe7D\xa3\x97\r^\x0f\x91\xe6z\xde\xde?\xc8}\xc5\x1c\x91`\x1d\xc5b\x81\x93\x1f\x1cgMO+;\xb7\xae\xa3\xb9\xbb\x1d)\x05\x86/\x88Fc|\xe5\xe1;\x9e\x88]v\r7\xec\xb8\x1f!A\xb89\x84*#\nI\xd0v\xb5烉\xdf\xf412:\x8e\xb3\xbe\x9e\x91\xa3Cl]s\r\xc2\xc9W\xaf\xd7\x1aZ\xd2\xf2b\x06#\x84\x1a;h[\xb9\x8a\xbe\xcbV\xd2\xd5\xd2\xc0\x99s\xe3\xac\\w9\xe1h\fU\x98G\xd96(\x97\x91\xf9\xf3\xfc\xfd\x81\xa3\xfc\xb4\x94\xa4\xdci\x82\x84X(J\xd6\xd0X\x13\t.k\x8e3tn\n\x9ftY\xd9\xdeD[\xdf*\fi\x80!\xb1B\x8d \x05\xa6U\x17\xe3ʍ\xb7\xa0U\x01\xa1\xf2\b'\x83\xccσS\xa9\xf6&\xb5\x89\xaa\xe5[\xb7^\xb6\x81\xef\x16\xcf\xf0V\xf18ۆNqM\xcfjt%\x85\xc0\xaeZ\xf9\xa2\xe1\v\x10^?fC\x17\xd1H\x13\xb7v\xf4b\x98\x16\xda.\xe1\x94\v\f\xe7R\xfct\xff\x87\xbc\x92\x9a\xa4\xd8\x17\xc1\b\x84\xd0B365\x82\xc7㥥\xaf\x8b\x9f\xf7\xef冮6\x06O\x0f\xd3\x1c4hh\xef\xc40L\xb4И\xc1\x18\x98\xd5^\x8c\xc8\x0f>\xaf]\u007f\f\u007f \x02v\ti\xdb\b\xe1\xd6\xe2\x80 =9B]G7\xa0p\xb5ˣ\xfb_\xc6ؾ\x92\x81W\x8f\xf3?\xaf\xfd]nX}%\xb2\x92\x06U@\xe0.\xe5\xef\x8b]=\rh\xa1I\xcdO\xb3\xaf\xff=^\x1a8N\xbf\xcac\xac\x8aaDo\x10\xb2\xfc\x18\xcbʿ\x8avQ\x8e\x83\xd4b\x89\xf8E\xa9^\x10\xf1\x85\xffBH\x84\xd7\x02\x8f\x89^V\x91\x19%p\as\\q\xf3\xb5\x04\xa2A<>/\xfa\xa6\r\x16\xdc\f\xa9d\x1aW+J\xb9B\x15ZEȦSl\xdep%^\xd3Kq.\xcd\xfa𦚮5&\xb5\xf9\x93F\"\xa4\xc2\fE\xa9\v\x84\x11\xe52\xba\\\xc1U\xe5\xaa\aQ\n\xff\xaa\x10\xe5\x8ab\xe1|\x8a\xdd{N\x11\xac\x8f\xe0\vz(*\x9b\x804\tX~\xf2\xe5ڋ\x17Gtbٰn\x99v\xfc\x1dq\xe8\xd4\b\xc7E\xe5+\xb8\x8es\xb1v\x16Q\xa65J+P\xa0]\x8d9\x98\xe6S\xbf\xb5c)p\x9aj~\x0e#Z\x0f\x86q\xe1\xe7\xd2@\xf8C\x88@\xb5\xac\xc0\xd1h\xc7ƴ\xf3\xac\xdf\xec%\x9c\x18\xe7\xcd\xe9I\xf2\xb3\x19&f\x93\xd8\xdaE\x06\xbd\x18\x96\x85\xa5]\n\x85\x02\x15\xe5`D,\xbc\xcda.e\xe1\x02\xbc\x04H\x03i\b\xf4\x85a&Z\xab\xaa=\xd5l$\x18\x8a\xe05-R\x1f\x8d\xf3\xbfn\xf9#|\xa6\xaf\x16\xf15\xe6\xeb\xef\xbc\xc7\rWm P׀\fx\x91\xa6\a\xa4\x01R]\xe8ט L\v\xe1\xaf'\xe0\v\xd1j\b\xe4\xec\x04\xbd\xd7\xf4\x12ʴ2\x97\xcb3\x9dI\x92\xceT\xa5o\xd6\x051\xfdV\xade\xaf\x97\xbb\xfaKd\\\x9b\xfbI\x03!\xd4\x05#W\x8b\x00\xa9\xfe\x89\xc7\x1aPe\x87J\xff,]\xb7w]\xf4\x1cs˃\x8f\xb0\xe7\xad\xe7\xf0\x14\x06\xd8\xd8\xd3M\xac1\x8eiXT˒\xaa\xe4l@\xfb\x02(\xad\t\xd6Ő\xe1(\xe9\xf9\x1cJ\t\n\xe5\n\x15\x1cʆƌ\xfa>N\xa9\xfe5\xc6|\xc98\x17@9.\x8bnJ\bA8\x18\xa6X*\x11omD\xd6J\xcd%\x06\x1a[V\xf0\xe9/>F>;G\xff\xd1=\xa4\x0e\x1fG\x962\xf8,A\xd8\xefG\x02\xe9\\\x81\xb3\xe3\xd3tuwq\xf7}wa\xfa\xfc\xa4R\x19\x12\vY\xca\xca!\xeb\x94.\xb8\xd0%\xd1\xfd\xff/\xad\xd5\x05\x8dh\rJ]D\xa4%M2\xe9$]\x91Ѕ\xb3\x8b6P\x1d\"\v\x02\x91z\xb6\xdf\xfcY\xb8\xf9\x01\x94m\x93˦ȧ\xe7\xc9\x16\xd2D\x84\xc9\xc6\xfa&\x86\a\x8e0\xd0\u007f\x82\x96\xb5=\x94\x94\xcb\xd8\xe44\xc1\xa6\x18%\xc7^F\xcdoF<\xd5xy\xf1\x92\x12\xdc\xdae\xa5Ѯ\x8b\xe5\xb5H\xe6Ӹ\xda\xc1\x10\x17\xec\xd5\xe4cK -\x0fu\xf5-\xd4շ\\8+\x04\x9eX\x8c\xff\xfa\xe8\xc3\xdcr\xae\x8f\xa2\xd4\xcc\xcd\xce\x13l\xaav\x1b\xc4oJ\xf8\xf27^\xf2E\x804\r\xb0Y\x1a}e\x8ay\xdaZZ\x98\x1c=\xcd\xf0\xcc0\x97\xb5\xf5^\xe0\xf57yQ23\x8f\xeanaO*\x83\x8c\xfb\xc9gKKS\xfa_\a\xf5O$\x1e@\\\xfc\xbd\x84a\x18\xb5Μ\x06\xadI\xa6Σ54o\xe8\xe6\xd9}\xcf_\xfc\xa9\x01|\xf2\xa7,\x17\x0e\xaa\xd4U\xec\n\xc7&\x879*g\xd1\x1e\x03\xdb.\xe3\x15&~\xc3\xf3\x1b#g\xd1\x0fi\x00\xaf\x896\xaaƹ\xf8^\xcb\xe3A\xbb\n\xedj\xd2\xe9\x05R\xd9\x05\x8c\x80\x8f\x01o\x82w\x8e\xbd\xbb\xf4\x94\xff\a\xf7\x1e\t\x1d\xa3\xb5\x99:\x00\x00\x00\x00IEND\xaeB`\x82"), +} diff --git a/cmd/v2/ui/mainwindow.go b/cmd/v2/ui/mainwindow.go index 65c439900..68eba4f88 100644 --- a/cmd/v2/ui/mainwindow.go +++ b/cmd/v2/ui/mainwindow.go @@ -32,18 +32,20 @@ type MainWindow interface { type MainWindowImpl struct { UIImpl WindowDefaultOptions - w fyne.Window - tb *toolBar //工具条 - toys *toys // side - sb *statusBar //状态栏 - at *appContainer //tabs + parent fyne.Window + w fyne.Window + tb *toolBar //工具条 + toys *toys // side + sb *statusBar //状态栏 + at *appContainer //tabs } -func NewMainWindow(ui *UIImpl) MainWindow { +func NewMainWindow(ui *UIImpl, parent fyne.Window) MainWindow { gobase.NewScheduler().Start() gobase.RegisterAtExit(gobase.GlobalScheduler.Stop) mw := &MainWindowImpl{ UIImpl: *ui, + parent: parent, } globalWin = mw @@ -53,12 +55,7 @@ func NewMainWindow(ui *UIImpl) MainWindow { logrus.Debug("即将与服务器断开链接") conf := dialog.NewConfirm("链接中断", data.(error).Error(), func( b bool) { - if b { - globalWin.w.Close() - } else { - dialog.NewInformation("提示", "重启登录", globalWin.w) - return - } + ui.app.Quit() }, globalWin.w) conf.SetDismissText("取消") conf.SetConfirmText("退出") @@ -109,7 +106,7 @@ func (ui *MainWindowImpl) SetStatusMsg(msg string) { } func (ui *MainWindowImpl) quiteHandle() { - ui.w.Close() + ui.app.Quit() } // CreateWindow .... @@ -126,8 +123,20 @@ func (ui *MainWindowImpl) CreateWindow(_ string, width, height float32, _ bool) w.Resize(fyne.NewSize(width, height)) } - w.SetMaster() + // w.SetMaster() w.CenterOnScreen() + w.Canvas().SetOnTypedKey(func(ke *fyne.KeyEvent) { + switch ke.Name { + case fyne.KeyEscape: + { + w.Close() + ui.parent.Show() + } + } + }) + w.SetCloseIntercept(func() { + ui.parent.Show() + }) _ = ui.createChooseServerPopUp(w) } @@ -183,6 +192,10 @@ func (ui *MainWindowImpl) createChooseServerWindow( w.SetFixedSize(true) w.Resize(fyne.NewSize(500, 200)) w.Show() + w.SetCloseIntercept(func() { + ui.parent.Show() + w.Close() + }) w.CenterOnScreen() return w } @@ -316,4 +329,8 @@ func (ui *MainWindowImpl) NewWelcomeLabel(data string) { )), )) ui.w.SetContent(c) + ui.w.SetCloseIntercept(func() { + ui.w.Close() + ui.parent.Show() + }) } diff --git a/cmd/v2/ui/protocol.go b/cmd/v2/ui/protocol.go index 650b5ce1c..2c14144ce 100644 --- a/cmd/v2/ui/protocol.go +++ b/cmd/v2/ui/protocol.go @@ -94,6 +94,7 @@ var ( ff(comm.ModuleRtask, "rtest"): &formview.RtaskTestView{}, ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart): &formview.RtaskBattlestartView{}, ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish): &formview.RtaskBattleFinishView{}, + ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): &formview.RtaskRecordView{}, // linestory ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart): &formview.LinestoryStartView{}, ff(comm.ModuleLinestory, linestory.LinestorySubTypeDotask): &formview.LinestoryTaskView{}, @@ -186,9 +187,11 @@ var ( ff(comm.ModuleRtask, rtask.RtaskSubTypeApply), ff(comm.ModuleRtask, rtask.RtaskSubTypeChoose), ff(comm.ModuleRtask, rtask.RtaskSubTypeReward), - ff(comm.ModuleRtask, "rtest"), + ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleStart), ff(comm.ModuleRtask, rtask.RtaskSubTypeBattleFinish), + ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord), + ff(comm.ModuleRtask, "rtest"), }, "linestory": { ff(comm.ModuleLinestory, linestory.LinestorySubTypeDostart), @@ -675,6 +678,13 @@ var ( SubType: rtask.RtaskSubTypeBattleFinish, Enabled: true, }, + ff(comm.ModuleRtask, rtask.RtaskSubTypeGetrecord): { + NavLabel: "任务数据", + Desc: "任务数据", + MainType: string(comm.ModuleRtask), + SubType: rtask.RtaskSubTypeGetrecord, + Enabled: true, + }, ff(comm.ModuleRtask, "rtest"): { NavLabel: "测试条件", Desc: "测试任务触发", diff --git a/cmd/v2/ui/toolwindow.go b/cmd/v2/ui/toolwindow.go index dcb1892bc..04fc85cdd 100644 --- a/cmd/v2/ui/toolwindow.go +++ b/cmd/v2/ui/toolwindow.go @@ -16,15 +16,17 @@ type ToolWindow interface { type ToolWindowImpl struct { UIImpl - w fyne.Window - tb *toolBar //工具条 - sb *statusBar //状态栏 - at *appContainer //tabs + parent fyne.Window + w fyne.Window + tb *toolBar //工具条 + sb *statusBar //状态栏 + at *appContainer //tabs } -func NewToolWindow(ui *UIImpl) ToolWindow { +func NewToolWindow(ui *UIImpl, parent fyne.Window) ToolWindow { mw := &ToolWindowImpl{ UIImpl: *ui, + parent: parent, } toolWin = mw @@ -75,7 +77,21 @@ func (ui *ToolWindowImpl) CreateWindow(title string, width, height float32, _ bo logrus.WithField("appName", appName).Error(err) } w.Resize(fyne.NewSize(width, height)) - w.SetMaster() + // w.SetMaster() + + w.Canvas().SetOnTypedKey(func(ke *fyne.KeyEvent) { + switch ke.Name { + case fyne.KeyEscape: + { + w.Close() + ui.parent.Show() + } + } + }) w.CenterOnScreen() + w.SetCloseIntercept(func() { + ui.parent.Show() + w.Close() + }) w.Show() } diff --git a/cmd/v2/ui/ui.go b/cmd/v2/ui/ui.go index 5580b2af4..fe2aa68f9 100644 --- a/cmd/v2/ui/ui.go +++ b/cmd/v2/ui/ui.go @@ -27,8 +27,7 @@ type UIImpl struct { obs observer.Observer } -func NewUI( - app fyne.App, +func NewUI(app fyne.App, configService service.ConfigService, connService service.ConnService, pttService service.PttService, diff --git a/cmd/v2/ui/views/baselistview.go b/cmd/v2/ui/views/baselistview.go index 0a566a27f..4580256c6 100644 --- a/cmd/v2/ui/views/baselistview.go +++ b/cmd/v2/ui/views/baselistview.go @@ -93,7 +93,6 @@ func (this *ListBaseView) listBtnFun() func() { // set data func (this *ListBaseView) reloadListData() { if this.itemListData != nil { - logrus.Debugf("list record:%v", len(this.itemListData.DataList)) d := this.itemListData.AsInterfaceArray() this.dataBinding.Set(d) } diff --git a/cmd/v2/ui/views/rtask_record.go b/cmd/v2/ui/views/rtask_record.go new file mode 100644 index 000000000..22ee30aa3 --- /dev/null +++ b/cmd/v2/ui/views/rtask_record.go @@ -0,0 +1,24 @@ +package formview + +import ( + "go_dreamfactory/cmd/v2/model" + "go_dreamfactory/cmd/v2/service" + "go_dreamfactory/pb" + + "fyne.io/fyne/v2" + "github.com/sirupsen/logrus" +) + +type RtaskRecordView struct { + BaseformView +} + +func (this *RtaskRecordView) CreateView(t *model.TestCase) fyne.CanvasObject { + + this.form.OnSubmit = func() { + if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.RtaskGetrecordReq{}); err != nil { + logrus.Error(err) + } + } + return this.form +} diff --git a/cmd/v2/ui/views/task_activelist.go b/cmd/v2/ui/views/task_activelist.go index 77bf8ddcf..d62f02be2 100644 --- a/cmd/v2/ui/views/task_activelist.go +++ b/cmd/v2/ui/views/task_activelist.go @@ -22,7 +22,7 @@ import ( type TaskActiveListView struct { ListBaseView - activeVal int32 + activeVal *widget.Label } func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject { @@ -46,7 +46,7 @@ func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject }) //label - activeLabel := widget.NewLabel(fmt.Sprintf("当前活跃度:%d", this.activeVal)) + this.activeVal = widget.NewLabel("") //receive button receiveBtn := widget.NewButtonWithIcon("领取", theme.ConfirmIcon(), func() { @@ -56,14 +56,14 @@ func (this *TaskActiveListView) CreateView(t *model.TestCase) fyne.CanvasObject } if err := service.GetPttService().SendToClient( t.MainType, "activereceive", - &pb.TaskReceiveReq{Id: this.selItemIds[0], TaskTag: cast.ToInt32(tagSelect.Selected)}); err != nil { + &pb.TaskActiveReceiveReq{Id: this.selItemIds[0], TaskTag: cast.ToInt32(tagSelect.Selected)}); err != nil { logrus.Error(err) return } }) // layout - split := container.NewHSplit(this.dataListWidget, container.NewVBox(activeLabel, this.form, taskListBtn, receiveBtn)) + split := container.NewHSplit(this.dataListWidget, container.NewVBox(this.activeVal, this.form, taskListBtn, receiveBtn)) split.Offset = 1 //data listener for @@ -86,7 +86,7 @@ func (this *TaskActiveListView) dataListener() { logrus.Error("unmarshal err") } - this.activeVal = rsp.Active + this.activeVal.SetText(fmt.Sprintf("当前活跃度:%v", rsp.Active)) this.itemListData = model.NewItemModelList() for _, v := range rsp.List { diff --git a/comm/gameconfig.go b/comm/gameconfig.go new file mode 100644 index 000000000..91c8999ee --- /dev/null +++ b/comm/gameconfig.go @@ -0,0 +1,36 @@ +package comm + +//游戏区服配置 +type GameConfig struct { + AreaId string //区服id 每个区服id都必须是唯一 + Loglevel int32 //日志文件输出级别 + MaxAgeTime int32 //日志文件保存时长 + ConsulAddr []string //区服Consul + IsCross bool ///是否是跨区区服 + BelongCrossServerId string //所属跨服Id (区服id) 不是跨服区服才有效 + LoaclDB *DBConfig //本地db + Mainte string //维护服 + MaintePort int //维护服通信端口 + Gateways []string //网关服务["127.0.0.1:7895"] + GatewayPorts []int //网关通信端口 + Workers []string //工作服 +} + +//区服db配置 +type DBConfig struct { + RedisIsCluster bool //redis 是否是集群模式 + RedisAddr []string //redis 地址 + RedisPassword string //redis 密码 + RedisDB int //redis db + MongodbUrl string //mgondb 地址 + MongodbDatabase string //数据库地址 +} + +//跨服服务列表配置 +type CrossConfigs map[string]*CrossConfig + +type CrossConfig struct { + AreaId string //区服id + LoaclDB *DBConfig //本地db + ServiceList map[string]*DBConfig +} diff --git a/comm/imodule.go b/comm/imodule.go index 5d588d99f..c504444e8 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -97,7 +97,7 @@ type ( } IMainline interface { // 修改章节信息 - ModifyMainlineData(uid string, objId string, data interface{}) (code pb.ErrorCode) + ModifyMainlineData(uid string, id int32) (code pb.ErrorCode) /// 查询章节ID GetUsermainLineData(uid string) (mainlineId int32) } @@ -160,4 +160,8 @@ type ( IGm interface { CreateCmd(session IUserSession, cmd string) (code pb.ErrorCode) } + // 修改爬塔 + IPagoda interface { + ModifyPagodaFloor(session IUserSession, level int32) (code pb.ErrorCode) + } ) diff --git a/lego/core/cbase/servicebase.go b/lego/core/cbase/servicebase.go index 67ac0dbdc..57774cb9f 100644 --- a/lego/core/cbase/servicebase.go +++ b/lego/core/cbase/servicebase.go @@ -49,6 +49,7 @@ type ServiceBase struct { //服务初始化过程 完成 系统 和 服务组件的 初始化过程 func (this *ServiceBase) Init(service core.IService) (err error) { + defer lego.Recover("Service Init") this.closesig = make(chan string, 1) this.service = service this.modules = make(map[core.M_Modules]*defaultModule) @@ -80,6 +81,7 @@ func (this *ServiceBase) OnInstallComp(cops ...core.IServiceComp) { //启动服务 完成服务组件的启动过程 func (this *ServiceBase) Start() (err error) { + defer lego.Recover("Service Start") for _, v := range this.comps { err = v.Start() if err != nil { @@ -93,6 +95,7 @@ func (this *ServiceBase) Start() (err error) { //运行模块 func (this *ServiceBase) Run(mod ...core.IModule) { go func() { + defer lego.Recover("Service Run") for _, v := range mod { //初始化模块对象 分配配置参数 if sf, ok := this.service.GetSettings().Modules[string(v.GetType())]; ok { this.modules[v.GetType()] = &defaultModule{ diff --git a/modules/battle/fight/attribute/attributenumeric.go b/modules/battle/fight/attribute/attributenumeric.go index d4393f6d3..9137887c2 100644 --- a/modules/battle/fight/attribute/attributenumeric.go +++ b/modules/battle/fight/attribute/attributenumeric.go @@ -45,7 +45,7 @@ func (this *AttributeNumeric) Value() float32 { } func (this *AttributeNumeric) SetBase(value float32) float32 { - this.BaseValue.Set(value) + this.BaseValue.SetFloat(value) this.onChange() return this.BaseValue.Value() } diff --git a/modules/battle/fight/attribute/fixednumeric.go b/modules/battle/fight/attribute/fixednumeric.go index 496f2c7c0..7ec29cc63 100644 --- a/modules/battle/fight/attribute/fixednumeric.go +++ b/modules/battle/fight/attribute/fixednumeric.go @@ -2,7 +2,7 @@ package attribute func NewFixedNumeric(pData float32) FixedNumeric { fixed := FixedNumeric{} - fixed.Set(pData) + fixed.SetFloat(pData) return fixed } @@ -10,17 +10,38 @@ type FixedNumeric struct { baseValue FixedPoint } -func (this FixedNumeric) Set(value float32) float32 { - this.baseValue = NewFixedPoint(value) - return this.baseValue.Scalar() -} func (this FixedNumeric) Fixed() FixedPoint { return this.baseValue } + func (this FixedNumeric) Value() float32 { return this.baseValue.Scalar() } +func (this FixedNumeric) GetValue(pDefault float32) float32 { + if this.Value() != 0 { + return this.Value() + } else { + return pDefault + } +} +func (this FixedNumeric) SetFloat(value float32) float32 { + this.baseValue = NewFixedPoint(value) + return this.baseValue.Scalar() +} +func (this FixedNumeric) Set(value FixedPoint) float32 { + this.baseValue = value + return this.baseValue.Scalar() +} + +/// +/// 增加基本值 +/// +func (this FixedNumeric) Add(value float32) float32 { + this.baseValue.Add(value) + return this.baseValue.Scalar() +} + /// /// 减少基本值 /// diff --git a/modules/battle/fight/attribute/fixedpoint.go b/modules/battle/fight/attribute/fixedpoint.go index d1340d857..5f0385e55 100644 --- a/modules/battle/fight/attribute/fixedpoint.go +++ b/modules/battle/fight/attribute/fixedpoint.go @@ -36,6 +36,12 @@ func (this FixedPoint) ToString() string { return fmt.Sprintf("%f", this.Scalar()) } +/// - +func (this FixedPoint) Add(v float32) { + y := NewFixedPoint(v) + this.rawValue = this.rawValue + y.rawValue +} + /// - func (this FixedPoint) Reduce(v float32) { y := NewFixedPoint(v) diff --git a/modules/battle/fight/attribute/healthpoint.go b/modules/battle/fight/attribute/healthpoint.go index baf3c39d2..261a90ed5 100644 --- a/modules/battle/fight/attribute/healthpoint.go +++ b/modules/battle/fight/attribute/healthpoint.go @@ -36,6 +36,12 @@ type HealthPoint struct { CurrMaxHpAppend *AttributeNumeric } +/// +/// 重置当前生命值为最大值 +/// +func (this *HealthPoint) Reset() { + this.Hp.SetFloat(this.CurrMaxHp.Value()) +} func (this *HealthPoint) Value() int32 { return int32(this.Hp.Value()) } @@ -43,10 +49,35 @@ func (this *HealthPoint) MaxValue() int32 { return int32(this.CurrMaxHp.Value()) } +/// +/// 扣血 +/// +/// func (this *HealthPoint) Minus(value float32) { this.Hp.Minus(value) } +/// +/// 加血 +/// +func (this *HealthPoint) Add(value float32) { + if FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)).rawValue > this.CurrMaxHp.Fixed().rawValue { + this.Reset() + } else { + this.Hp.Add(value) + } +} + +/// +/// 获取治疗溢出值 +/// +func (this *HealthPoint) Overflow(value float32) float32 { + if FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)).rawValue > this.CurrMaxHp.Fixed().rawValue { + return FixedPoint_Divide(FixedPoint_Add(this.Hp.Fixed(), NewFixedPoint(value)), this.CurrMaxHp.Fixed()).Scalar() + } + return 0 +} + /// /// 剩余血量百分比 /// diff --git a/modules/battle/fight/fightrole.go b/modules/battle/fight/fightrole.go index 25a251664..6a895b33b 100644 --- a/modules/battle/fight/fightrole.go +++ b/modules/battle/fight/fightrole.go @@ -6,6 +6,7 @@ import ( cfg "go_dreamfactory/sys/configure/structs" ) +///战斗角色 type FightRole struct { /// /// 战斗实例 @@ -15,7 +16,15 @@ type FightRole struct { /// 角色数据 /// data core.FightRoleData - CurrentHealth attribute.HealthPoint + CurrentHealth *attribute.HealthPoint +} + +func (this *FightRole) Initialize(pData core.FightRoleData) { + // this.data = pData + // this.CurrentHealth = attribute.NewHealthPoint(this.data.Hp) + // this.CurrentHealth.Reset() + // this.data.BuffStore.OwnerRole = this + // this.data.PassiveStore.OwnerRole = this } /// @@ -28,7 +37,7 @@ func (this *FightRole) ReceiveDamage(DamageValue float32) { //有不死buff生命值设置为1 for _, v := range this.data.BuffStore.HasBuffTypes { if v == cfg.GameBuffType_UNDEAD { - this.CurrentHealth.Hp.Set(1) + this.CurrentHealth.Hp.SetFloat(1) break } } diff --git a/modules/chat/options.go b/modules/chat/options.go index a25c94c81..5b5a721a4 100644 --- a/modules/chat/options.go +++ b/modules/chat/options.go @@ -34,8 +34,7 @@ func (this *Options) LoadConfig(settings map[string]interface{}) (err error) { return } } - - if this.Log = log.NewTurnlog(this.Debug, log.Clone("", 4)); this.Log == nil { + if this.Log = log.NewTurnlog(true, log.Clone("", 4)); this.Log == nil { err = errors.New("log is nil") } return diff --git a/modules/gateway/configure_comp.go b/modules/gateway/configure_comp.go index 4403fddff..0955db306 100644 --- a/modules/gateway/configure_comp.go +++ b/modules/gateway/configure_comp.go @@ -40,7 +40,9 @@ func (this *configureComp) GetMsgDistribute(msgmid, msguid string) (rule string, rule = item.Routrules } else { msgid := strings.ToLower(fmt.Sprintf("%s.%s", msgmid, msguid)) - item, ok = v.(*cfg.GameMsgdistrib).GetDataMap()[msgid] + if item, ok = v.(*cfg.GameMsgdistrib).GetDataMap()[msgid]; ok { + rule = item.Routrules + } } } return diff --git a/modules/gm/api_cmd.go b/modules/gm/api_cmd.go index a46c761ee..b81f0befe 100644 --- a/modules/gm/api_cmd.go +++ b/modules/gm/api_cmd.go @@ -13,6 +13,11 @@ import ( /* GM 在控制台输入的字符串类型 //bingo:item,10001,1 //bingo:attr,gold,1000000 +2、修改主线关卡进度:bingo:mapid,102(102代表关卡位置) + +3、修改心魔塔进度:bingo:pataid,10(10代表层数) + +4、修改玩家经验值:bingo:exp,1000(1000代表新增的经验值 // */ //参数校验 func (this *apiComp) CmdCheck(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode) { @@ -31,7 +36,8 @@ func (this *apiComp) Cmd(session comm.IUserSession, req *pb.GMCmdReq) (code pb.E if len(keys) == 2 { if keys[0] == "bingo" { datas := strings.Split(keys[1], ",") - if len(datas) == 3 { + if len(datas) == 3 && (datas[0] == comm.AttrType || datas[0] == comm.ItemType || + datas[0] == comm.HeroType || datas[0] == comm.EquipmentType) { num, err := strconv.Atoi(datas[2]) if err != nil { code = pb.ErrorCode_ReqParameterError @@ -48,6 +54,28 @@ func (this *apiComp) Cmd(session comm.IUserSession, req *pb.GMCmdReq) (code pb.E session.SendMsg(string(this.module.GetType()), "cmd", &pb.GMCmdResp{IsSucc: true}) return } + } else if len(datas) == 2 && (datas[0] == "mapid") { + module1, err := this.service.GetModule(comm.ModuleMainline) + if err != nil { + return + } + num, err := strconv.Atoi(datas[1]) + if err != nil { + code = pb.ErrorCode_ReqParameterError + return + } + code = module1.(comm.IMainline).ModifyMainlineData(session.GetUserId(), int32(num)) + } else if len(datas) == 2 && (datas[0] == "pataid") { + module1, err := this.service.GetModule(comm.ModulePagoda) + if err != nil { + return + } + num, err := strconv.Atoi(datas[1]) + if err != nil { + code = pb.ErrorCode_ReqParameterError + return + } + code = module1.(comm.IPagoda).ModifyPagodaFloor(session, int32(num)) } } } diff --git a/modules/gm/module.go b/modules/gm/module.go index f76f4eb3e..785c342e1 100644 --- a/modules/gm/module.go +++ b/modules/gm/module.go @@ -23,6 +23,7 @@ func NewModule() core.IModule { type GM struct { modules.ModuleBase api_comp *apiComp + service core.IService } //模块名 @@ -33,6 +34,7 @@ func (this *GM) GetType() core.M_Modules { //模块初始化接口 注册用户创建角色事件 func (this *GM) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { err = this.ModuleBase.Init(service, module, options) + this.service = service return } @@ -49,7 +51,8 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC if len(keys) == 2 { if keys[0] == "bingo" { datas := strings.Split(keys[1], ",") - if len(datas) == 3 { + if len(datas) == 3 && (datas[0] == comm.AttrType || datas[0] == comm.ItemType || + datas[0] == comm.HeroType || datas[0] == comm.EquipmentType) { num, err := strconv.Atoi(datas[2]) if err != nil { code = pb.ErrorCode_ReqParameterError @@ -62,6 +65,32 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC N: int32(num), }, }, true) + if code == pb.ErrorCode_Success { // 成功直接返回 + session.SendMsg(string(this.GetType()), "cmd", &pb.GMCmdResp{IsSucc: true}) + return + } + } else if len(datas) == 2 && (datas[0] == "mapid") { + module1, err := this.service.GetModule(comm.ModuleMainline) + if err != nil { + return + } + num, err := strconv.Atoi(datas[1]) + if err != nil { + code = pb.ErrorCode_ReqParameterError + return + } + code = module1.(comm.IMainline).ModifyMainlineData(session.GetUserId(), int32(num)) + } else if len(datas) == 2 && (datas[0] == "pataid") { + module1, err := this.service.GetModule(comm.ModulePagoda) + if err != nil { + return + } + num, err := strconv.Atoi(datas[1]) + if err != nil { + code = pb.ErrorCode_ReqParameterError + return + } + code = module1.(comm.IPagoda).ModifyPagodaFloor(session, int32(num)) } } } diff --git a/modules/hero/api.go b/modules/hero/api.go index 1e682f6fe..53d8e8809 100644 --- a/modules/hero/api.go +++ b/modules/hero/api.go @@ -26,6 +26,7 @@ const ( //消息回复的头名称 Awaken = "awaken" // 英雄觉醒 HeroLock = "lock" // 英雄锁定 DrawCard = "drawcard" // 抽卡 + DrawCardFloor = "drawcardfloor" // 抽卡保底 ) //组件初始化接口 diff --git a/modules/hero/api_drawCard.go b/modules/hero/api_drawCard.go index 4ca6e4a05..bb1812152 100644 --- a/modules/hero/api_drawCard.go +++ b/modules/hero/api_drawCard.go @@ -29,6 +29,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq heroRecord *pb.DBHeroRecord pool string _mapAddHero map[string]int32 + strPool []string // 10连跨多个卡池情况 ) _mapAddHero = make(map[string]int32, 0) cfgDraw = this.module.configure.GetGlobalConf() // 读取抽卡配置文件 @@ -45,7 +46,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq heroRecord, _ = this.module.modelRecord.GetHeroRecord(session.GetUserId()) drawCount = heroRecord.Drawcount - pool = this.module.modelHero.CheckPool(drawCount, cfg) + if req.DrawType == 0 { // 普通卡池抽卡 // 获取普通抽卡池 if req.DrawCount == 1 { @@ -60,27 +61,43 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq } for i := 0; i < int(req.DrawCount); i++ { + drawCount += 1 + pool = this.module.modelHero.CheckPool(drawCount, cfg) + strPool = append(strPool, pool) + sz := make([]int32, 0) if cfgDraw.BasePoolStar3 != 0 { sz = append(sz, cfgDraw.BasePoolStar3) } if cfgDraw.BasePoolStar4 != 0 { sz = append(sz, cfgDraw.BasePoolStar4) - } if cfgDraw.BasePoolStar5 != 0 { sz = append(sz, cfgDraw.BasePoolStar5) - } starIndex := this.module.modelHero.GetRandW(sz) + heroRecord.Star4++ + heroRecord.Star5++ if starIndex == 1 { + heroRecord.Star4 = 0 star4Max++ } else if starIndex == 2 { star5Max++ + heroRecord.Star5 = 0 } if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max { starIndex = 0 } + + // 普通卡池保底 + if cfgDraw.DrawFloorStar4 <= heroRecord.Star4 { + heroRecord.Star4 = 0 + starIndex = 1 + } + if cfgDraw.DrawFloorStar5 <= heroRecord.Star5 { + heroRecord.Star5 = 0 + starIndex = 2 + } szStar = append(szStar, starIndex+3) if len(szStar) >= int(req.DrawCount) { break @@ -91,6 +108,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq switch req.DrawType { case 1: pool = cfg.Camp1Pool1 + costAtn = cfgDraw.Camp1PoolCost case 2: @@ -103,6 +121,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq pool = cfg.Camp4Pool1 costAtn = cfgDraw.Camp4PoolCost } + strPool = append(strPool, pool) } else { costAtn = cfgDraw.Camp1PoolCost switch req.DrawType { @@ -120,6 +139,9 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq pool = cfg.Camp4Pool1 costAtn = cfgDraw.Camp4Pool10cost } + for i := 0; i < int(req.DrawCount); i++ { + strPool = append(strPool, pool) + } } costRes = append(costRes, costAtn) @@ -156,28 +178,33 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq } } } - _data := this.module.configure.GetPollByType(pool) - if _data == nil { - code = pb.ErrorCode_ConfigNoFound - return - } - for _, star := range szStar { // szStar 转 szHeroId + for index, star := range szStar { + _data := this.module.configure.GetPollByType(strPool[index]) + if _data == nil { + code = pb.ErrorCode_ConfigNoFound + return + } sz := make([]int32, 0) for _, v := range _data[int32(star)] { sz = append(sz, v.Weight) } randomIndex := this.module.modelHero.GetRandW(sz) - szCards = append(szCards, _data[int32(star)][randomIndex].Id) + if v, ok := _data[int32(star)]; ok { + if int32(len(v)) > randomIndex { + szCards = append(szCards, v[randomIndex].Id) + } + } } - // 更新record 配置信息 - update := map[string]interface{}{} - if drawCount != -1 { - drawCount += req.DrawCount + + if req.DrawType == 0 { + update := map[string]interface{}{} + update["star4"] = heroRecord.Star4 + update["star5"] = heroRecord.Star5 update["drawcount"] = drawCount + this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update) } - this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update) // 消耗道具 code = this.module.ConsumeRes(session, costRes, true) if code != pb.ErrorCode_Success { diff --git a/modules/hero/api_drawCardFloor.go b/modules/hero/api_drawCardFloor.go new file mode 100644 index 000000000..86cd35a1f --- /dev/null +++ b/modules/hero/api_drawCardFloor.go @@ -0,0 +1,23 @@ +package hero + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +func (this *apiComp) DrawCardFloorCheck(session comm.IUserSession, req *pb.HeroDrawCardFloorReq) (code pb.ErrorCode) { + + return +} + +//抽卡 +func (this *apiComp) DrawCardFloor(session comm.IUserSession, req *pb.HeroDrawCardFloorReq) (code pb.ErrorCode, data proto.Message) { + rsp := &pb.HeroDrawCardFloorResp{} + heroRecord, _ := this.module.modelRecord.GetHeroRecord(session.GetUserId()) + rsp.Star4 = heroRecord.Star4 + rsp.Star5 = heroRecord.Star5 + session.SendMsg(string(this.module.GetType()), DrawCardFloor, rsp) + return +} diff --git a/modules/hero/api_strengthenUplv.go b/modules/hero/api_strengthenUplv.go index b77fd61e2..e01c8e81e 100644 --- a/modules/hero/api_strengthenUplv.go +++ b/modules/hero/api_strengthenUplv.go @@ -114,7 +114,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren _data := this.module.configure.GetHeroLv(curLv) if _data != nil { - if maxLv == _hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级 + if maxLv == curLv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级 code = pb.ErrorCode_HeroMaxLv return } @@ -123,7 +123,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren if len(_data.Heroexp) == 0 { break } - if maxLv <= _hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级 + if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级 // 超过的经验值 leftExp := curExp - _data.Heroexp[0].N this.module.Debugf("经验溢出%d", leftExp) diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go index dd915b201..43fd6c4cf 100644 --- a/modules/hero/model_hero.go +++ b/modules/hero/model_hero.go @@ -490,7 +490,7 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe maxLv = hero.Star * comm.HeroStarLvRatio _data := this.moduleHero.configure.GetHeroLv(curLv) if _data != nil { - if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级 + if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级 code = pb.ErrorCode_HeroMaxLv return } @@ -499,7 +499,7 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe if len(_data.Heroexp) == 0 { break } - if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级 + if maxLv <= curLv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级 curLv = maxLv curExp = _data.Heroexp[0].N break diff --git a/modules/mail/model_mail.go b/modules/mail/model_mail.go index 94063f0f9..d558fbe1d 100644 --- a/modules/mail/model_mail.go +++ b/modules/mail/model_mail.go @@ -32,7 +32,7 @@ func (this *modelMail) Init(service core.IService, module core.IModule, comp cor func (this *modelMail) MailQueryUserMail(uId string) (mail []*pb.DBMailData, err error) { - if _data, err := this.DB.Find(comm.TableMail, bson.M{"uid": uId}); err == nil { + if _data, err := this.DB.Find(comm.TableMail, bson.M{"uid": uId}, options.Find().SetSort(bson.M{"createtime": -1})); err == nil { for _data.Next(context.TODO()) { temp := &pb.DBMailData{} if err = _data.Decode(temp); err == nil { diff --git a/modules/mainline/api_challengeover.go b/modules/mainline/api_challengeover.go index 9f55cd5ce..c4e8e6f1d 100644 --- a/modules/mainline/api_challengeover.go +++ b/modules/mainline/api_challengeover.go @@ -101,6 +101,15 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh if code = this.module.DispenseRes(session, res, true); code != pb.ErrorCode_Success { this.module.Debugf("DispenseRes err:+%v", res) } + // 加经验 + if req.Report != nil && len(req.Report.Info.Redflist) > 0 { + for _, v := range req.Report.Info.Redflist[0].Team { + if node.Exp > 0 { + this.module.ModuleHero.AddHeroExp(session, v.Oid, node.Exp) + } + } + } + session.SendMsg(string(this.module.GetType()), MainlineChallengeOverResp, &pb.MainlineChallengeOverResp{Data: mainline}) return } diff --git a/modules/mainline/module.go b/modules/mainline/module.go index fed06c09f..13bb24e42 100644 --- a/modules/mainline/module.go +++ b/modules/mainline/module.go @@ -6,6 +6,8 @@ import ( "go_dreamfactory/modules" "go_dreamfactory/pb" "sort" + + "go.mongodb.org/mongo-driver/bson/primitive" ) type Mainline struct { @@ -39,11 +41,38 @@ func (this *Mainline) OnInstallComp() { } // 接口信息 给其他模块调用 用来修改主线关卡信息 -func (this *Mainline) ModifyMainlineData(uid string, objId string, data map[string]interface{}) (code pb.ErrorCode) { - err := this.modelMainline.modifyMainlineData(uid, objId, data) +func (this *Mainline) ModifyMainlineData(uid string, id int32) (code pb.ErrorCode) { + + conf := this.configure.GetMainlineConfigData(id, 1) + list, err := this.modelMainline.getMainlineList(uid) if err != nil { code = pb.ErrorCode_DBError + return } + for _, v := range list { + if v.ChapterId == conf.Chapter { + data := make(map[string]interface{}, 0) + data["mainlineId"] = id + data["chapterId"] = v.ChapterId + this.modelMainline.modifyMainlineData(uid, v.Id, data) + if err != nil { + code = pb.ErrorCode_DBError + } + + return + } + } + //add + _data := &pb.DBMainline{} + _data.Id = primitive.NewObjectID().Hex() + _data.ChapterId = conf.Chapter + _data.MainlineId = conf.Id + _mData := make(map[string]interface{}, 0) + _data.Uid = uid + _data.Intensity = 1 // 难度1 + _mData[_data.Id] = _data + + this.modelMainline.addNewChapter(uid, _mData) return } diff --git a/modules/options.go b/modules/options.go index ec92a06d6..bd27360bb 100644 --- a/modules/options.go +++ b/modules/options.go @@ -28,6 +28,7 @@ func (this *Options) GetLog() log.ILogger { } func (this *Options) LoadConfig(settings map[string]interface{}) (err error) { + this.Debug = true if settings != nil { err = mapstructure.Decode(settings, this) } diff --git a/modules/pagoda/api_getReward.go b/modules/pagoda/api_getReward.go index a79d76b61..95ec11e23 100644 --- a/modules/pagoda/api_getReward.go +++ b/modules/pagoda/api_getReward.go @@ -36,7 +36,7 @@ func (this *apiComp) GetReward(session comm.IUserSession, req *pb.PagodaGetRewar return } // 校验是否能领取 - if _cfg.LayerNum >= season.PagodaId { + if _cfg.LayerNum > season.PagodaId { code = pb.ErrorCode_PagodaConditionErr return } @@ -69,7 +69,7 @@ func (this *apiComp) GetReward(session comm.IUserSession, req *pb.PagodaGetRewar return } // 校验是否能领取 - if _cfg.LayerNum >= list.PagodaId { + if _cfg.LayerNum > list.PagodaId { code = pb.ErrorCode_PagodaConditionErr return } diff --git a/modules/pagoda/module.go b/modules/pagoda/module.go index e7f83e4db..e653cd524 100644 --- a/modules/pagoda/module.go +++ b/modules/pagoda/module.go @@ -68,3 +68,17 @@ func (this *Pagoda) Start() (err error) { this.battle = module.(comm.IBattle) return } + +// 给gm 调用修改爬塔层数 +func (this *Pagoda) ModifyPagodaFloor(session comm.IUserSession, level int32) (code pb.ErrorCode) { + list, _ := this.modelPagoda.getPagodaList(session.GetUserId()) + if list != nil { + + list.PagodaId = level + mapData := make(map[string]interface{}, 0) + mapData["pagodaId"] = level + code = this.ModifyPagodaData(session.GetUserId(), mapData) + session.SendMsg(string(this.GetType()), PagodaGetListResp, &pb.PagodaGetListResp{Data: list}) + } + return +} diff --git a/modules/rtask/api.go b/modules/rtask/api.go index ffac66557..861698558 100644 --- a/modules/rtask/api.go +++ b/modules/rtask/api.go @@ -12,6 +12,7 @@ const ( RtaskSubTypeReward = "getreward" //奖励 RtaskSubTypeBattleStart = "battlestart" //战斗开始 RtaskSubTypeBattleFinish = "battlefinish" //战斗完成 + RtaskSubTypeGetrecord = "getrecord" //任务数据 ) type apiComp struct { diff --git a/modules/rtask/api_getrecord.go b/modules/rtask/api_getrecord.go new file mode 100644 index 000000000..dbefc176a --- /dev/null +++ b/modules/rtask/api_getrecord.go @@ -0,0 +1,25 @@ +package rtask + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +func (this *apiComp) GetrecordCheck(session comm.IUserSession, req *pb.RtaskGetrecordReq) (code pb.ErrorCode) { + return +} + +func (this *apiComp) Getrecord(session comm.IUserSession, req *pb.RtaskGetrecordReq) (code pb.ErrorCode, data proto.Message) { + rsp := &pb.RtaskGetrecordResp{} + record := this.moduleRtask.modelRtaskRecord.getRecord(session.GetUserId()) + if record.Uid != "" && record.Vals != nil { + rsp.Record = record + } + + if err := session.SendMsg(string(this.moduleRtask.GetType()), RtaskSubTypeGetrecord, rsp); err != nil { + code = pb.ErrorCode_SystemError + } + return +} diff --git a/modules/rtask/model_record.go b/modules/rtask/model_record.go index 0331179b1..840464e33 100644 --- a/modules/rtask/model_record.go +++ b/modules/rtask/model_record.go @@ -3,6 +3,7 @@ package rtask import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/log" "go_dreamfactory/modules" "go_dreamfactory/pb" @@ -32,3 +33,12 @@ func (this *ModelRtaskRecord) GetVerifyData(uid string, condiId int32) (*pb.Rtas } return record.Vals[condiId], nil } + +// 获取玩家随机任务记录 +func (this *ModelRtaskRecord) getRecord(uid string) *pb.DBRtaskRecord { + record := &pb.DBRtaskRecord{} + if err := this.Get(uid, record); err != nil { + log.Errorf("get rtask record err:%v", err) + } + return record +} diff --git a/modules/rtask/updateHandle.go b/modules/rtask/updateHandle.go index 110484b9e..39eb71216 100644 --- a/modules/rtask/updateHandle.go +++ b/modules/rtask/updateHandle.go @@ -71,13 +71,16 @@ func (this *ModelRtaskRecord) overrideUpdate(uid string, cfg *cfg.GameRdtaskCond // 累计更新 - 招募等 func (this *ModelRtaskRecord) addUpdate(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) (err error) { - record := &pb.DBRtaskRecord{} + record := &pb.DBRtaskRecord{Uid: uid} err = this.Get(uid, record) if err != nil { - return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id) + if err != mongo.ErrNoDocuments { + return errors.Wrapf(err, "获取玩家任务记录 err: %v rtype[%v]", uid, cfg.Id) + } } if record.Vals == nil { + record.Id = primitive.NewObjectID().Hex() data := &pb.RtaskData{ Data: toMap(vals...), Rtype: cfg.Type, diff --git a/modules/task/api_activereceive.go b/modules/task/api_activereceive.go index d9cf53fdf..6aee401c6 100644 --- a/modules/task/api_activereceive.go +++ b/modules/task/api_activereceive.go @@ -63,10 +63,23 @@ func (this *apiComp) ActiveReceive(session comm.IUserSession, req *pb.TaskActive return } - if ue.Activeday >= conf.Active { - update := map[string]interface{}{ - "received": 1, //标识已领取 + update := make(map[string]interface{}) + if req.TaskTag == int32(comm.TASK_DAILY) { + if ue.Activeday >= conf.Active { + update["received"] = 1 + } else { + code = pb.ErrorCode_TaskActiveNoenough + return } + } else if req.TaskTag == int32(comm.TASK_WEEKLY) { + if ue.Activeweek >= conf.Active { + update["received"] = 1 + } else { + code = pb.ErrorCode_TaskActiveNoenough + return + } + } + if len(update) > 0 { if err := this.moduleTask.modelTaskActive.updateReceive(session.GetUserId(), ua.Id, comm.TaskTag(req.TaskTag), @@ -75,9 +88,6 @@ func (this *apiComp) ActiveReceive(session comm.IUserSession, req *pb.TaskActive code = pb.ErrorCode_DBError return } - } else { - code = pb.ErrorCode_TaskActiveNoenough - return } //派发奖励 diff --git a/modules/task/api_receive.go b/modules/task/api_receive.go index a6f9fe30f..08ed92f98 100644 --- a/modules/task/api_receive.go +++ b/modules/task/api_receive.go @@ -59,6 +59,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq) return } + // 更新活跃度 if conf.Active > 0 { //更新活跃度 ue, err := this.moduleTask.ModuleUser.GetUserExpand(session.GetUserId()) @@ -67,7 +68,7 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq) return } update := make(map[string]interface{}) - if ue != nil { + if ue.Uid != "" { if comm.TaskTag(req.TaskTag) == comm.TASK_DAILY { ue.Activeday = ue.Activeday + conf.Active } @@ -75,14 +76,8 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq) ue.Activeweek = ue.Activeweek + conf.Active } update = utils.StructToMap(ue) - } else { - if comm.TaskTag(req.TaskTag) == comm.TASK_DAILY { - update["activeday"] = conf.Active - } - if comm.TaskTag(req.TaskTag) == comm.TASK_WEEKLY { - update["activeweek"] = conf.Active - } } + if len(update) > 0 { if err = this.moduleTask.ModuleUser.ChangeUserExpand(session.GetUserId(), update); err != nil { code = pb.ErrorCode_DBError diff --git a/modules/task/config.go b/modules/task/config.go index 3343b02a4..9b46fec79 100644 --- a/modules/task/config.go +++ b/modules/task/config.go @@ -168,7 +168,7 @@ func (this *configureComp) getTaskActiveList() (data []*cfg.GameActiveRewardData } //获取活跃度奖励list -func (this *configureComp) getTaskActiveByTag(taskTag int32) (data []*cfg.GameActiveRewardData, err error) { +func (this *configureComp) getTaskActiveByTag(taskTag int32) (data []*cfg.GameActiveRewardData) { conf, err := this.getActiveRewardCfg() if err != nil { log.Errorf("get conf err:%v", err) diff --git a/modules/task/model_active.go b/modules/task/model_active.go index 508b97336..390e72bfb 100644 --- a/modules/task/model_active.go +++ b/modules/task/model_active.go @@ -22,15 +22,15 @@ func (this *ModelTaskActive) Init(service core.IService, module core.IModule, co } //初始化活跃度 -func (this *ModelTaskActive) initActiveReward(uid string) { - data := this.moduleTask.configure.getTaskActiveList() +func (this *ModelTaskActive) initActiveReward(uid string, taskTag comm.TaskTag) { + data := this.moduleTask.configure.getTaskActiveByTag(int32(taskTag)) for _, conf := range data { objId := primitive.NewObjectID().Hex() ta := &pb.DBTaskActive{ Id: objId, Uid: uid, - Tag: conf.IdTag, + Tag: int32(taskTag), RId: conf.Key, } if err := this.moduleTask.modelTaskActive.AddList(uid, ta.Id, ta); err != nil { diff --git a/modules/task/module.go b/modules/task/module.go index 08b3c52e2..c97107132 100644 --- a/modules/task/module.go +++ b/modules/task/module.go @@ -58,7 +58,8 @@ func (this *ModuleTask) InitTaskAll(uid string) { this.modelTask.initTask(uid, comm.TASK_DAILY) this.modelTask.initTask(uid, comm.TASK_WEEKLY) this.modelTask.initTask(uid, comm.TASK_ACHIEVE) - this.modelTaskActive.initActiveReward(uid) + this.modelTaskActive.initActiveReward(uid, comm.TASK_DAILY) + this.modelTaskActive.initActiveReward(uid, comm.TASK_WEEKLY) } // 初始化指定的任务 @@ -66,10 +67,10 @@ func (this *ModuleTask) InitTaskByTag(uid string, taskTag comm.TaskTag) { switch taskTag { case comm.TASK_DAILY: this.modelTask.initTask(uid, comm.TASK_DAILY) - this.modelTaskActive.initActiveReward(uid) + this.modelTaskActive.initActiveReward(uid, comm.TASK_DAILY) case comm.TASK_WEEKLY: this.modelTask.initTask(uid, comm.TASK_WEEKLY) - this.modelTaskActive.initActiveReward(uid) + this.modelTaskActive.initActiveReward(uid, comm.TASK_WEEKLY) case comm.TASK_ACHIEVE: this.modelTask.initTask(uid, comm.TASK_ACHIEVE) } diff --git a/modules/user/api_login.go b/modules/user/api_login.go index 8df29b6d9..bb95d0b7b 100644 --- a/modules/user/api_login.go +++ b/modules/user/api_login.go @@ -139,8 +139,8 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod mail := &pb.DBMailData{ ObjId: primitive.NewObjectID().Hex(), Uid: user.Uid, - Title: "系统邮件", - Contex: "恭喜获得登录专属礼包一份", + Title: "system mail", + Contex: "Congratulations on getting a login exclusive gift pack", CreateTime: uint64(time.Now().Unix()), DueTime: uint64(time.Now().Unix()) + 30*24*3600, // 30天需要走配置文件 Check: false, diff --git a/modules/user/model_user.go b/modules/user/model_user.go index ea2bc7b0a..af4cdd590 100644 --- a/modules/user/model_user.go +++ b/modules/user/model_user.go @@ -160,7 +160,7 @@ func (this *ModelUser) updateOfflineTime(uid string) { // change exp func (this *ModelUser) ChangeExp(event interface{}, next func(event interface{})) { ul := event.(*UserListen) - // TODO + // TODO nothing next(ul) } @@ -168,22 +168,21 @@ func (this *ModelUser) ChangeExp(event interface{}, next func(event interface{}) func (this *ModelUser) ChangeLevel(event interface{}, next func(event interface{})) { ul := event.(*UserListen) curLv := ul.lv - curLvConf := this.module.configure.GetPlayerlvConf(curLv) + //下一等级配置 nextLvConf := this.module.configure.GetPlayerlvConf(curLv + 1) - if curLvConf.Exp == 0 || nextLvConf == nil { //最大等级 - next(ul) - return + for nextLvConf != nil && ul.exp >= nextLvConf.Exp { + curLv++ + nextLvConf = this.module.configure.GetPlayerlvConf(curLv + 1) } - if ul.exp > curLvConf.Exp && ul.exp <= nextLvConf.Exp { - ul.lv++ - // 更新等级 + // 等级有递增时再更新 + if curLv > ul.lv { + ul.lv = curLv update := map[string]interface{}{ "lv": ul.lv, } this.module.modelUser.Change(ul.session.GetUserId(), update) - ul.session.SendMsg(string(this.module.GetType()), - UserSubTypeLvChangedPush, + ul.session.SendMsg(string(this.module.GetType()), UserSubTypeLvChangedPush, &pb.UserChangedPush{Uid: ul.session.GetUserId(), Exp: ul.exp, Lv: ul.lv}) } diff --git a/modules/user/module.go b/modules/user/module.go index 38e6c625f..82a33232d 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -9,6 +9,9 @@ import ( "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/event" + "go_dreamfactory/lego/sys/log" + + "github.com/pkg/errors" ) var _ comm.IUser = (*User)(nil) @@ -104,26 +107,34 @@ func (this *User) QueryAttributeValue(uid string, attr string) (value int32) { return } -//用户资源 -func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode) { +func (this *User) change(session comm.IUserSession, attr string, add int32) (change *pb.UserResChangePush, code pb.ErrorCode) { if add == 0 { - this.Errorf("attr no changed,uid: %s attr: %s add: %d", session.GetUserId(), attr, add) + log.Errorf("attr no changed,uid: %s attr: %s add: %d", session.GetUserId(), attr, add) + code = pb.ErrorCode_ReqParameterError return } + user := this.GetUser(session.GetUserId()) if user == nil { code = pb.ErrorCode_UserSessionNobeing return } - _change := &pb.UserResChangePush{ + userEx, err := this.GetUserExpand(session.GetUserId()) + if userEx == nil || err != nil { + code = pb.ErrorCode_UserExpandNull + return + } + + change = &pb.UserResChangePush{ Gold: user.Gold, Exp: user.Exp, Lv: user.Lv, Vip: user.Vip, Diamond: user.Diamond, + Friend: userEx.FriendPoint, } - update := make(map[string]interface{}) + switch attr { case comm.ResGold: if add < 0 { @@ -132,39 +143,76 @@ func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add return } } - _change.Gold += add - update[comm.ResGold] = user.Gold + add + change.Gold += add case comm.ResExp: if add < 0 { if user.Exp+add < 0 { - code = pb.ErrorCode_ResNoEnough + code = pb.ErrorCode_UserExpNoEnough return } } - _change.Exp += add - update[comm.ResExp] = user.Exp + add + change.Exp += add case comm.ResDiamond: if add < 0 { if user.Diamond+add < 0 { - code = pb.ErrorCode_ResNoEnough + code = pb.ErrorCode_DiamondNoEnough return } } - _change.Diamond += add - update[comm.ResDiamond] = user.Diamond + add + change.Diamond += add + case comm.ResFriend: + if add < 0 { + if userEx.FriendPoint+add < 0 { + code = pb.ErrorCode_UserFriendNoEnough + return + } + } + change.Friend += add default: - code = pb.ErrorCode_Unknown - } - - if len(update) == 0 { - this.Warn("AddAttributeValue param is empty") + err = errors.New(fmt.Sprintf("%s no supported", attr)) return } + + //user + update := map[string]interface{}{ + comm.ResGold: change.Gold, + comm.ResDiamond: change.Diamond, + comm.ResExp: change.Exp, + } + + //user ex + updateEx := map[string]interface{}{ + comm.ResFriend: change.Friend, + } + if err := this.modelUser.updateUserAttr(session.GetUserId(), update); err != nil { this.Errorf("AddAttributeValue err:%v", err) code = pb.ErrorCode_DBError } + if err := this.modelExpand.ChangeUserExpand(session.GetUserId(), updateEx); err != nil { + this.Errorf("AddAttributeValue ex err:%v", err) + code = pb.ErrorCode_DBError + } + + this.ModuleUser.EventUserChanged(session) + + return +} + +//用户资源 +func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode) { + var _change *pb.UserResChangePush + + _change, code = this.change(session, attr, add) + if code != pb.ErrorCode_Success { + return + } + + if _change == nil { + return + } + if bPush { //推送玩家账号信息变化消息 session.SendMsg(string(this.GetType()), "reschange", _change) } @@ -173,99 +221,22 @@ func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add //用户资源 func (this *User) AddAttributeValues(session comm.IUserSession, attrs map[string]int32, bPush bool) (code pb.ErrorCode) { - user := this.GetUser(session.GetUserId()) - if user == nil { - code = pb.ErrorCode_UserSessionNobeing - return - } - - userEx, err := this.GetUserExpand(session.GetUserId()) - if userEx == nil || err != nil { - return - } - - _change := &pb.UserResChangePush{ - Gold: user.Gold, - Exp: user.Exp, - Lv: user.Lv, - Vip: user.Vip, - Diamond: user.Diamond, - Friend: userEx.FriendPoint, - } - //user - update := make(map[string]interface{}) - //user ex - updateEx := make(map[string]interface{}) - for key, add := range attrs { - if add == 0 { - this.Errorf("attr no changed,uid: %s attr: %s add: %d", session.GetUserId(), key, add) + var _change *pb.UserResChangePush + _change, code = this.change(session, key, add) + if code != pb.ErrorCode_Success { + return + } + + if _change == nil { continue } - switch key { - case comm.ResGold: - if add < 0 { - if user.Gold+add < 0 { - code = pb.ErrorCode_GoldNoEnough - return - } - } - _change.Gold += add - update[comm.ResGold] = user.Gold + add - case comm.ResExp: - if add < 0 { - if user.Exp+add < 0 { - code = pb.ErrorCode_ResNoEnough - return - } - } - _change.Exp += add - update[comm.ResExp] = user.Exp + add - case comm.ResDiamond: - if add < 0 { - if user.Diamond+add < 0 { - code = pb.ErrorCode_ResNoEnough - return - } - } - _change.Diamond += add - update[comm.ResDiamond] = user.Diamond + add - case comm.ResFriend: - if add < 0 { - if userEx.FriendPoint+add < 0 { - code = pb.ErrorCode_ResNoEnough - return - } - } - _change.Friend += add - updateEx[comm.ResFriend] = userEx.FriendPoint + add - default: - code = pb.ErrorCode_Unknown + + if bPush { //推送玩家账号信息变化消息 + session.SendMsg(string(this.GetType()), "reschange", _change) } } - if len(update) == 0 && len(updateEx) == 0 { - this.Error("AttributeValue params null") - return - } - - if len(update) != 0 { - if err := this.modelUser.updateUserAttr(session.GetUserId(), update); err != nil { - this.Errorf("AddAttributeValue err:%v", err) - code = pb.ErrorCode_DBError - } - } - - if len(updateEx) != 0 { - if err := this.modelExpand.ChangeUserExpand(session.GetUserId(), updateEx); err != nil { - this.Errorf("AddAttributeValue ex err:%v", err) - code = pb.ErrorCode_DBError - } - } - - if bPush { //推送玩家账号信息变化消息 - session.SendMsg(string(this.GetType()), "reschange", _change) - } return } diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go index a79440aee..a05fba2a9 100644 --- a/pb/errorcode.pb.go +++ b/pb/errorcode.pb.go @@ -48,19 +48,21 @@ const ( ErrorCode_ConfigNoFound ErrorCode = 104 //配置未找到 ErrorCode_UserLogined ErrorCode = 105 //已在其它终端登录 // user - ErrorCode_SecKeyInvalid ErrorCode = 1000 //秘钥无效 - ErrorCode_SecKey ErrorCode = 1001 //秘钥格式错误 - ErrorCode_BindUser ErrorCode = 1002 //用户绑定错误 - ErrorCode_GoldNoEnough ErrorCode = 1003 // 金币不足 - ErrorCode_DiamondNoEnough ErrorCode = 1004 // 钻石不足 - ErrorCode_RoleCreated ErrorCode = 1005 //已创角 - ErrorCode_UserNickNameExist ErrorCode = 1006 //昵称已存在 - ErrorCode_VeriCodeNoValid ErrorCode = 1007 //验证码无效 - ErrorCode_VeriCodeExpired ErrorCode = 1008 //验证码过期 - ErrorCode_UserResetData ErrorCode = 1009 //初始化用户失败 - ErrorCode_UserModiNameCount ErrorCode = 1010 //名称修改次数不足 - ErrorCode_UserNickNameEmpty ErrorCode = 1011 //昵称空 - ErrorCode_UserExpandNull ErrorCode = 1012 //扩展数据空 + ErrorCode_SecKeyInvalid ErrorCode = 1000 //秘钥无效 + ErrorCode_SecKey ErrorCode = 1001 //秘钥格式错误 + ErrorCode_BindUser ErrorCode = 1002 //用户绑定错误 + ErrorCode_GoldNoEnough ErrorCode = 1003 // 金币不足 + ErrorCode_DiamondNoEnough ErrorCode = 1004 // 钻石不足 + ErrorCode_RoleCreated ErrorCode = 1005 //已创角 + ErrorCode_UserNickNameExist ErrorCode = 1006 //昵称已存在 + ErrorCode_VeriCodeNoValid ErrorCode = 1007 //验证码无效 + ErrorCode_VeriCodeExpired ErrorCode = 1008 //验证码过期 + ErrorCode_UserResetData ErrorCode = 1009 //初始化用户失败 + ErrorCode_UserModiNameCount ErrorCode = 1010 //名称修改次数不足 + ErrorCode_UserNickNameEmpty ErrorCode = 1011 //昵称空 + ErrorCode_UserExpandNull ErrorCode = 1012 //扩展数据空 + ErrorCode_UserExpNoEnough ErrorCode = 1013 //经验不足 + ErrorCode_UserFriendNoEnough ErrorCode = 1014 //友情点不足 // friend ErrorCode_FriendNotSelf ErrorCode = 1100 //不能是自己 ErrorCode_FriendSelfMax ErrorCode = 1101 //超出好友最大数量 @@ -227,6 +229,8 @@ var ( 1010: "UserModiNameCount", 1011: "UserNickNameEmpty", 1012: "UserExpandNull", + 1013: "UserExpNoEnough", + 1014: "UserFriendNoEnough", 1100: "FriendNotSelf", 1101: "FriendSelfMax", 1102: "FriendTargetMax", @@ -375,6 +379,8 @@ var ( "UserModiNameCount": 1010, "UserNickNameEmpty": 1011, "UserExpandNull": 1012, + "UserExpNoEnough": 1013, + "UserFriendNoEnough": 1014, "FriendNotSelf": 1100, "FriendSelfMax": 1101, "FriendTargetMax": 1102, @@ -518,7 +524,7 @@ var File_errorcode_proto protoreflect.FileDescriptor var file_errorcode_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2a, 0xa7, 0x19, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x6f, 0x2a, 0xd6, 0x19, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, @@ -564,164 +570,167 @@ var file_errorcode_proto_rawDesc = []byte{ 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xf2, 0x07, 0x12, 0x16, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xf3, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x4e, - 0x75, 0x6c, 0x6c, 0x10, 0xf4, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x4e, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, - 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, - 0x78, 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, - 0x6c, 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, - 0x61, 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, - 0x74, 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, - 0xd3, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, - 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, - 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, - 0x61, 0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, - 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, - 0x10, 0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, - 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, - 0x67, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65, - 0x72, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72, - 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12, - 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, - 0xb5, 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, - 0x6f, 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, - 0x61, 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, - 0x6e, 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, - 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, - 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, - 0x10, 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, - 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, - 0x6f, 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, - 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, - 0x4e, 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, - 0x65, 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, - 0x48, 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, - 0x9f, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, - 0x6b, 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, - 0x4c, 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, - 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, - 0x72, 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, - 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, - 0xa4, 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, - 0x72, 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, - 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, - 0x6f, 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, - 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, - 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, - 0x4c, 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, - 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x4c, 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, - 0x65, 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x10, 0xac, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, - 0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, - 0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, - 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, - 0x57, 0x6f, 0x72, 0x6e, 0x10, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, - 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, - 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, - 0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, - 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, - 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, - 0x6e, 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, - 0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, - 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x0d, 0x0a, - 0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, - 0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, - 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, - 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, - 0x69, 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, - 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, - 0x75, 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, - 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, - 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, - 0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x10, 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, - 0x6f, 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, - 0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, - 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, - 0x07, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, - 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, - 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, - 0x72, 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, - 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, - 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, - 0x10, 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, - 0x6c, 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, - 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, - 0x64, 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, - 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, - 0x12, 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, - 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, - 0x10, 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, - 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, - 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, - 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x64, 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, - 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, - 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, - 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, - 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, - 0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, - 0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, - 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, - 0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, - 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, - 0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, - 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, - 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, - 0x44, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, - 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, - 0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, - 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, - 0x10, 0xe5, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a, - 0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x6e, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xac, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, - 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, - 0x0f, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x10, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, - 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x18, - 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, - 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x90, 0x15, 0x42, 0x06, 0x5a, 0x04, 0x2e, - 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x75, 0x6c, 0x6c, 0x10, 0xf4, 0x07, 0x12, 0x14, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, + 0x70, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x07, 0x12, 0x17, 0x0a, 0x12, + 0x55, 0x73, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, + 0x67, 0x68, 0x10, 0xf6, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, + 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x0a, + 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, + 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, + 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, + 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x74, + 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd3, + 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x10, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, + 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x10, 0xd7, 0x08, 0x12, 0x10, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, + 0x6e, 0x65, 0x64, 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xd9, 0x08, 0x12, 0x12, + 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x10, + 0xda, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xdb, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xdc, 0x08, + 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, + 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x65, 0x72, + 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x72, 0x64, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x12, 0x19, + 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xb4, 0x09, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x55, 0x73, 0x65, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xb5, + 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, + 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, + 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x6e, + 0x69, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x10, 0x97, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, + 0x72, 0x6f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x10, 0x98, 0x0a, 0x12, 0x13, 0x0a, + 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x55, 0x70, 0x45, 0x72, 0x72, 0x10, + 0x99, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x73, + 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9a, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, + 0x4e, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9b, 0x0a, 0x12, 0x18, 0x0a, + 0x13, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, + 0x6e, 0x61, 0x74, 0x65, 0x10, 0x9c, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, + 0x6f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x9d, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, + 0x72, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10, 0x9e, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, + 0x65, 0x72, 0x6f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x10, 0x9f, + 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x41, 0x77, 0x61, 0x6b, + 0x65, 0x6e, 0x10, 0xa0, 0x0a, 0x12, 0x0f, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x73, 0x4c, + 0x6f, 0x63, 0x6b, 0x10, 0xa1, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, + 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xa2, 0x0a, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x65, 0x72, + 0x6f, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa3, 0x0a, 0x12, + 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0xa4, + 0x0a, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, + 0x10, 0xa5, 0x0a, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, + 0x41, 0x64, 0x64, 0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, 0x0d, + 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, 0x0a, + 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x4c, + 0x76, 0x10, 0xa9, 0x0a, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xaa, 0x0a, 0x12, + 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, + 0x76, 0x10, 0xab, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x6c, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x4b, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, + 0xac, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f, + 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c, + 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a, + 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x57, + 0x6f, 0x72, 0x6e, 0x10, 0xfa, 0x0a, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, + 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x61, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x10, 0xfb, 0x0a, 0x12, + 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x69, + 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x10, + 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x10, 0xdd, 0x0b, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, + 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xde, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b, 0x12, + 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x0d, 0x0a, 0x08, + 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x54, + 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x0c, + 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, 0x12, + 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x69, + 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, 0x12, + 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x75, + 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, + 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, 0x0a, + 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, 0x0c, + 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, + 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, + 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, 0x6f, + 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, 0x1c, + 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, 0x07, + 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x61, + 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, 0x12, + 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, 0x72, + 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, 0x12, + 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, + 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, + 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, + 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, + 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, + 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x12, + 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f, + 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, + 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x55, + 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, 0x0c, + 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, 0x12, + 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, + 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x4e, + 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, + 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10, + 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73, + 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x12, + 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xfd, + 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, + 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x1c, + 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x15, + 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, + 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, + 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44, + 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, + 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45, + 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, + 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, + 0xe5, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x15, + 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x6e, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xac, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, 0x6e, + 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, 0x0f, + 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, + 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, + 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x48, + 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x90, 0x15, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/hero_msg.pb.go b/pb/hero_msg.pb.go index 115d9c365..066a55286 100644 --- a/pb/hero_msg.pb.go +++ b/pb/hero_msg.pb.go @@ -1592,6 +1592,100 @@ func (x *HeroChangePush) GetList() []*DBHero { return nil } +type HeroDrawCardFloorReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HeroDrawCardFloorReq) Reset() { + *x = HeroDrawCardFloorReq{} + if protoimpl.UnsafeEnabled { + mi := &file_hero_hero_msg_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HeroDrawCardFloorReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeroDrawCardFloorReq) ProtoMessage() {} + +func (x *HeroDrawCardFloorReq) ProtoReflect() protoreflect.Message { + mi := &file_hero_hero_msg_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HeroDrawCardFloorReq.ProtoReflect.Descriptor instead. +func (*HeroDrawCardFloorReq) Descriptor() ([]byte, []int) { + return file_hero_hero_msg_proto_rawDescGZIP(), []int{30} +} + +// 获取抽卡保底次数 +type HeroDrawCardFloorResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Star4 int32 `protobuf:"varint,1,opt,name=star4,proto3" json:"star4"` + Star5 int32 `protobuf:"varint,2,opt,name=star5,proto3" json:"star5"` +} + +func (x *HeroDrawCardFloorResp) Reset() { + *x = HeroDrawCardFloorResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hero_hero_msg_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HeroDrawCardFloorResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeroDrawCardFloorResp) ProtoMessage() {} + +func (x *HeroDrawCardFloorResp) ProtoReflect() protoreflect.Message { + mi := &file_hero_hero_msg_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HeroDrawCardFloorResp.ProtoReflect.Descriptor instead. +func (*HeroDrawCardFloorResp) Descriptor() ([]byte, []int) { + return file_hero_hero_msg_proto_rawDescGZIP(), []int{31} +} + +func (x *HeroDrawCardFloorResp) GetStar4() int32 { + if x != nil { + return x.Star4 + } + return 0 +} + +func (x *HeroDrawCardFloorResp) GetStar5() int32 { + if x != nil { + return x.Star5 + } + return 0 +} + var File_hero_hero_msg_proto protoreflect.FileDescriptor var file_hero_hero_msg_proto_rawDesc = []byte{ @@ -1735,8 +1829,14 @@ var file_hero_hero_msg_proto_rawDesc = []byte{ 0x03, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x22, 0x2d, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, - 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x48, 0x65, + 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, + 0x65, 0x71, 0x22, 0x43, 0x0a, 0x15, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, + 0x72, 0x64, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x34, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x35, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1751,7 +1851,7 @@ func file_hero_hero_msg_proto_rawDescGZIP() []byte { return file_hero_hero_msg_proto_rawDescData } -var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 32) +var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 34) var file_hero_hero_msg_proto_goTypes = []interface{}{ (*HeroInfoReq)(nil), // 0: HeroInfoReq (*HeroInfoResp)(nil), // 1: HeroInfoResp @@ -1783,30 +1883,32 @@ var file_hero_hero_msg_proto_goTypes = []interface{}{ (*HeroDrawCardReq)(nil), // 27: HeroDrawCardReq (*HeroDrawCardResp)(nil), // 28: HeroDrawCardResp (*HeroChangePush)(nil), // 29: HeroChangePush - nil, // 30: HeroPropertyPush.PropertyEntry - nil, // 31: HeroPropertyPush.AddPropertyEntry - (*DBHero)(nil), // 32: DBHero + (*HeroDrawCardFloorReq)(nil), // 30: HeroDrawCardFloorReq + (*HeroDrawCardFloorResp)(nil), // 31: HeroDrawCardFloorResp + nil, // 32: HeroPropertyPush.PropertyEntry + nil, // 33: HeroPropertyPush.AddPropertyEntry + (*DBHero)(nil), // 34: DBHero } var file_hero_hero_msg_proto_depIdxs = []int32{ - 32, // 0: HeroInfoResp.base:type_name -> DBHero - 32, // 1: HeroListResp.list:type_name -> DBHero + 34, // 0: HeroInfoResp.base:type_name -> DBHero + 34, // 1: HeroListResp.list:type_name -> DBHero 5, // 2: HeroStrengthenUplvReq.expCards:type_name -> MapStringInt32 - 32, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero + 34, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero 8, // 4: HeroStrengthenUpStarReq.hero:type_name -> CostCardData 8, // 5: HeroStrengthenUpStarReq.heroRace:type_name -> CostCardData - 32, // 6: HeroStrengthenUpStarResp.hero:type_name -> DBHero - 32, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero - 32, // 8: HeroResonanceResp.hero:type_name -> DBHero - 32, // 9: HeroResonanceResp.upStarCard:type_name -> DBHero - 32, // 10: HeroResonanceResetResp.hero:type_name -> DBHero + 34, // 6: HeroStrengthenUpStarResp.hero:type_name -> DBHero + 34, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero + 34, // 8: HeroResonanceResp.hero:type_name -> DBHero + 34, // 9: HeroResonanceResp.upStarCard:type_name -> DBHero + 34, // 10: HeroResonanceResetResp.hero:type_name -> DBHero 17, // 11: HeroResonanceUseEnergyReq.energy:type_name -> EnergyData - 32, // 12: HeroResonanceUseEnergyResp.hero:type_name -> DBHero - 32, // 13: HeroAwakenResp.hero:type_name -> DBHero - 30, // 14: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry - 31, // 15: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry - 32, // 16: HeroLockResp.hero:type_name -> DBHero - 32, // 17: HeroGetSpecifiedResp.hero:type_name -> DBHero - 32, // 18: HeroChangePush.list:type_name -> DBHero + 34, // 12: HeroResonanceUseEnergyResp.hero:type_name -> DBHero + 34, // 13: HeroAwakenResp.hero:type_name -> DBHero + 32, // 14: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry + 33, // 15: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry + 34, // 16: HeroLockResp.hero:type_name -> DBHero + 34, // 17: HeroGetSpecifiedResp.hero:type_name -> DBHero + 34, // 18: HeroChangePush.list:type_name -> DBHero 19, // [19:19] is the sub-list for method output_type 19, // [19:19] is the sub-list for method input_type 19, // [19:19] is the sub-list for extension type_name @@ -2181,6 +2283,30 @@ func file_hero_hero_msg_proto_init() { return nil } } + file_hero_hero_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HeroDrawCardFloorReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hero_hero_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HeroDrawCardFloorResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2188,7 +2314,7 @@ func file_hero_hero_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hero_hero_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 32, + NumMessages: 34, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/rtask_msg.pb.go b/pb/rtask_msg.pb.go index 655171258..077259d1d 100644 --- a/pb/rtask_msg.pb.go +++ b/pb/rtask_msg.pb.go @@ -726,6 +726,92 @@ func (x *RtaskBattleFinishResp) GetIsWin() bool { return false } +//获取玩家任务记录 +type RtaskGetrecordReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RtaskGetrecordReq) Reset() { + *x = RtaskGetrecordReq{} + if protoimpl.UnsafeEnabled { + mi := &file_rtask_rtask_msg_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RtaskGetrecordReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RtaskGetrecordReq) ProtoMessage() {} + +func (x *RtaskGetrecordReq) ProtoReflect() protoreflect.Message { + mi := &file_rtask_rtask_msg_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RtaskGetrecordReq.ProtoReflect.Descriptor instead. +func (*RtaskGetrecordReq) Descriptor() ([]byte, []int) { + return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{13} +} + +type RtaskGetrecordResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Record *DBRtaskRecord `protobuf:"bytes,1,opt,name=record,proto3" json:"record"` +} + +func (x *RtaskGetrecordResp) Reset() { + *x = RtaskGetrecordResp{} + if protoimpl.UnsafeEnabled { + mi := &file_rtask_rtask_msg_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RtaskGetrecordResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RtaskGetrecordResp) ProtoMessage() {} + +func (x *RtaskGetrecordResp) ProtoReflect() protoreflect.Message { + mi := &file_rtask_rtask_msg_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RtaskGetrecordResp.ProtoReflect.Descriptor instead. +func (*RtaskGetrecordResp) Descriptor() ([]byte, []int) { + return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{14} +} + +func (x *RtaskGetrecordResp) GetRecord() *DBRtaskRecord { + if x != nil { + return x.Record + } + return nil +} + // 测试使用 type RtaskTestReq struct { state protoimpl.MessageState @@ -740,7 +826,7 @@ type RtaskTestReq struct { func (x *RtaskTestReq) Reset() { *x = RtaskTestReq{} if protoimpl.UnsafeEnabled { - mi := &file_rtask_rtask_msg_proto_msgTypes[13] + mi := &file_rtask_rtask_msg_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -753,7 +839,7 @@ func (x *RtaskTestReq) String() string { func (*RtaskTestReq) ProtoMessage() {} func (x *RtaskTestReq) ProtoReflect() protoreflect.Message { - mi := &file_rtask_rtask_msg_proto_msgTypes[13] + mi := &file_rtask_rtask_msg_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -766,7 +852,7 @@ func (x *RtaskTestReq) ProtoReflect() protoreflect.Message { // Deprecated: Use RtaskTestReq.ProtoReflect.Descriptor instead. func (*RtaskTestReq) Descriptor() ([]byte, []int) { - return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{13} + return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{15} } func (x *RtaskTestReq) GetRtaskType() int32 { @@ -801,7 +887,7 @@ type RtaskTestResp struct { func (x *RtaskTestResp) Reset() { *x = RtaskTestResp{} if protoimpl.UnsafeEnabled { - mi := &file_rtask_rtask_msg_proto_msgTypes[14] + mi := &file_rtask_rtask_msg_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -814,7 +900,7 @@ func (x *RtaskTestResp) String() string { func (*RtaskTestResp) ProtoMessage() {} func (x *RtaskTestResp) ProtoReflect() protoreflect.Message { - mi := &file_rtask_rtask_msg_proto_msgTypes[14] + mi := &file_rtask_rtask_msg_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -827,7 +913,7 @@ func (x *RtaskTestResp) ProtoReflect() protoreflect.Message { // Deprecated: Use RtaskTestResp.ProtoReflect.Descriptor instead. func (*RtaskTestResp) Descriptor() ([]byte, []int) { - return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{14} + return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{16} } func (x *RtaskTestResp) GetFlag() bool { @@ -843,75 +929,82 @@ var file_rtask_rtask_msg_proto_rawDesc = []byte{ 0x0a, 0x15, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, + 0x1a, 0x14, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x41, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, + 0x64, 0x22, 0x2a, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x28, 0x0a, + 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, + 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x61, 0x73, + 0x6b, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x74, 0x61, 0x73, + 0x6b, 0x49, 0x64, 0x73, 0x22, 0x66, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x6f, + 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x0f, + 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x6f, + 0x6f, 0x73, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x68, 0x6f, + 0x6f, 0x73, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, + 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, + 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, + 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, + 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, + 0x64, 0x22, 0x6d, 0x0a, 0x13, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, + 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, + 0x22, 0x37, 0x0a, 0x14, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x57, 0x0a, 0x14, 0x52, 0x74, 0x61, + 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, - 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0e, 0x52, - 0x74, 0x61, 0x73, 0x6b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x64, 0x22, 0x2b, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x22, 0x66, - 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, - 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x68, - 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, - 0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, - 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, - 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, - 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, - 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, - 0x2b, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x50, 0x75, - 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x11, - 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, - 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, - 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, - 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x62, 0x49, 0x64, 0x22, 0x6d, 0x0a, 0x13, 0x52, - 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x64, 0x70, 0x6f, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x64, 0x73, 0x22, 0x37, 0x0a, 0x14, 0x52, 0x74, - 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x22, 0x57, 0x0a, 0x14, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x22, 0x47, 0x0a, 0x15, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, - 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x47, 0x0a, 0x15, - 0x52, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x69, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x5e, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, - 0x6e, 0x64, 0x69, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x13, 0x0a, 0x11, 0x52, + 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, + 0x22, 0x3c, 0x0a, 0x12, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x65, 0x74, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73, 0x6b, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x5e, + 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, + 0x0a, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x49, 0x64, 0x22, 0x23, + 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, + 0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -926,7 +1019,7 @@ func file_rtask_rtask_msg_proto_rawDescGZIP() []byte { return file_rtask_rtask_msg_proto_rawDescData } -var file_rtask_rtask_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_rtask_rtask_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_rtask_rtask_msg_proto_goTypes = []interface{}{ (*RtaskApplyReq)(nil), // 0: RtaskApplyReq (*RtaskApplyResp)(nil), // 1: RtaskApplyResp @@ -941,19 +1034,23 @@ var file_rtask_rtask_msg_proto_goTypes = []interface{}{ (*RtaskBattleStartResp)(nil), // 10: RtaskBattleStartResp (*RtaskBattleFinishReq)(nil), // 11: RtaskBattleFinishReq (*RtaskBattleFinishResp)(nil), // 12: RtaskBattleFinishResp - (*RtaskTestReq)(nil), // 13: RtaskTestReq - (*RtaskTestResp)(nil), // 14: RtaskTestResp - (*BattleInfo)(nil), // 15: BattleInfo - (*BattleReport)(nil), // 16: BattleReport + (*RtaskGetrecordReq)(nil), // 13: RtaskGetrecordReq + (*RtaskGetrecordResp)(nil), // 14: RtaskGetrecordResp + (*RtaskTestReq)(nil), // 15: RtaskTestReq + (*RtaskTestResp)(nil), // 16: RtaskTestResp + (*BattleInfo)(nil), // 17: BattleInfo + (*BattleReport)(nil), // 18: BattleReport + (*DBRtaskRecord)(nil), // 19: DBRtaskRecord } var file_rtask_rtask_msg_proto_depIdxs = []int32{ - 15, // 0: RtaskBattleStartResp.info:type_name -> BattleInfo - 16, // 1: RtaskBattleFinishReq.report:type_name -> BattleReport - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 17, // 0: RtaskBattleStartResp.info:type_name -> BattleInfo + 18, // 1: RtaskBattleFinishReq.report:type_name -> BattleReport + 19, // 2: RtaskGetrecordResp.record:type_name -> DBRtaskRecord + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_rtask_rtask_msg_proto_init() } @@ -962,6 +1059,7 @@ func file_rtask_rtask_msg_proto_init() { return } file_battle_battle_msg_proto_init() + file_rtask_rtask_db_proto_init() if !protoimpl.UnsafeEnabled { file_rtask_rtask_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RtaskApplyReq); i { @@ -1120,7 +1218,7 @@ func file_rtask_rtask_msg_proto_init() { } } file_rtask_rtask_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RtaskTestReq); i { + switch v := v.(*RtaskGetrecordReq); i { case 0: return &v.state case 1: @@ -1132,6 +1230,30 @@ func file_rtask_rtask_msg_proto_init() { } } file_rtask_rtask_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RtaskGetrecordResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rtask_rtask_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RtaskTestReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rtask_rtask_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RtaskTestResp); i { case 0: return &v.state @@ -1150,7 +1272,7 @@ func file_rtask_rtask_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rtask_rtask_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 15, + NumMessages: 17, NumExtensions: 0, NumServices: 0, }, diff --git a/services/cmd/main.go b/services/cmd/main.go new file mode 100644 index 000000000..ad2cb2e21 --- /dev/null +++ b/services/cmd/main.go @@ -0,0 +1,376 @@ +package main + +import ( + "encoding/json" + "flag" + "fmt" + "go_dreamfactory/comm" + "go_dreamfactory/lego/core" + "go_dreamfactory/lego/sys/log" + "io/ioutil" + "net" + "os" + "os/exec" + "strconv" + "strings" + "time" + + "github.com/spf13/cobra" + "gopkg.in/yaml.v3" +) + +/* + 服务类型:区服启动程序 + 服务描述:通过读取游戏json配置,启动服务程序 +*/ +var ( + gmpath string //服务列表下标 + crosspath string //服务列表下标 + sid string //服务列表下标 +) +var startCmd = &cobra.Command{ + Use: "start", + Short: "启动程序", + Run: func(cmd *cobra.Command, args []string) { + start() + }, +} +var stopCmd = &cobra.Command{ + Use: "stop", + Short: "关闭程序", + Run: func(cmd *cobra.Command, args []string) { + stop() + }, +} + +func emptyRun(*cobra.Command, []string) {} + +var RootCmd = &cobra.Command{ + Use: "dreamfactory", + Short: "命令行", + Long: "命令行工具", + Run: emptyRun, +} + +//初始化自定义cmd +func init() { + RootCmd.PersistentFlags().StringVarP(&gmpath, "gm", "g", "./gm.json", "游戏区服配置") + RootCmd.PersistentFlags().StringVarP(&crosspath, "cross", "c", "./cross.json", "游戏跨服配置") + RootCmd.PersistentFlags().StringVarP(&sid, "sid", "i", "", "区服id") + RootCmd.AddCommand(startCmd, stopCmd) +} + +func main() { + flag.Parse() + if err := log.OnInit(nil, + log.SetFileName("./log/cmd.log"), + log.SetLoglevel(log.DebugLevel), + log.SetIsDebug(true)); err != nil { + panic(fmt.Sprintf("Sys log Init err:%v", err)) + } else { + log.Infof("Sys log Init success !") + } + Execute() +} + +//执行命令 +func Execute() { + if err := RootCmd.Execute(); err != nil { + fmt.Fprintln(os.Stdin, err) + os.Exit(1) + } +} + +//启动程序 +func start() { + if config, err := readergmconf(gmpath); err != nil { + log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err}) + } else { + var ( + maintes *core.ServiceSttings + workers []*core.ServiceSttings = make([]*core.ServiceSttings, 0) + gateways []*core.ServiceSttings = make([]*core.ServiceSttings, 0) + ) + if ss, err := rederServiceSttings(config); err != nil { + log.Error("转换服务配置异常!", log.Field{Key: "err", Value: err}) + } else { + for _, v := range ss { + if sid == "" || fmt.Sprintf("%s_%s", v.Tag, sid) == v.Id { + if err = writeServiceConfig(fmt.Sprintf("./conf/%s.yaml", v.Id), v); err != nil { + log.Error("写入配置文件失败!", log.Field{Key: "err", Value: err}) + return + } + switch v.Type { + case comm.Service_Gateway: //网关服务 + gateways = append(gateways, v) + break + case comm.Service_Worker: //业务服务 + workers = append(workers, v) + break + case comm.Service_Mainte: //维护服务 + maintes = v + break + default: + err = fmt.Errorf("服务类型异常 stype:%s", v.Type) + return + } + } + } + } + + //优先启动 维护服 + if maintes != nil { + if err = startService(maintes); err != nil { + log.Error("启动服务失败!", log.Field{Key: "id", Value: maintes.Id}, log.Field{Key: "err", Value: err}) + return + } + } + + time.Sleep(time.Second * 3) + // 业务服 + for _, v := range workers { + if err = startService(v); err != nil { + log.Error("启动服务失败!", log.Field{Key: "id", Value: v.Id}, log.Field{Key: "err", Value: err}) + return + } + } + time.Sleep(time.Second * 3) + // 网关服 + for _, v := range gateways { + if err = startService(v); err != nil { + log.Error("启动服务失败!", log.Field{Key: "id", Value: v.Id}, log.Field{Key: "err", Value: err}) + return + } + } + } +} + +//关闭程序 +func stop() { + if config, err := readergmconf(gmpath); err != nil { + log.Error("读取区服配置失败!", log.Field{Key: "err", Value: err}) + } else { + + if ss, err := rederServiceSttings(config); err != nil { + log.Error("转换服务配置异常!", log.Field{Key: "err", Value: err}) + } else { + for _, v := range ss { + if sid == "" || fmt.Sprintf("%s_%s", v.Tag, sid) == v.Id { + stopService(v) + } + } + } + } +} + +///转换区服配置到服务配置 +func rederServiceSttings(config *comm.GameConfig) (ss []*core.ServiceSttings, err error) { + ss = make([]*core.ServiceSttings, 0) + var ( + ip string + port int + sseting *core.ServiceSttings + ) + if ip, port, err = parseaddr(config.Mainte); err != nil { + return + } else { + if sseting, err = convertServiceSttings(config, 0, comm.Service_Mainte, ip, config.MaintePort, port); err != nil { + return + } + + ss = append(ss, sseting) + } + for i, v := range config.Workers { + if ip, port, err = parseaddr(v); err != nil { + return + } else { + if sseting, err = convertServiceSttings(config, i, comm.Service_Worker, ip, port, 0); err != nil { + return + } + ss = append(ss, sseting) + } + } + for i, v := range config.Gateways { + if ip, port, err = parseaddr(v); err != nil { + return + } else { + if sseting, err = convertServiceSttings(config, i, comm.Service_Gateway, ip, config.GatewayPorts[i], port); err != nil { + return + } + ss = append(ss, sseting) + } + } + return +} + +//读取游戏配置文件 +func readergmconf(path string) (config *comm.GameConfig, err error) { + config = &comm.GameConfig{} + var ( + jsonFile *os.File + byteValue []byte + ) + if jsonFile, err = os.Open(path); err != nil { + return + } else { + defer jsonFile.Close() + if byteValue, err = ioutil.ReadAll(jsonFile); err != nil { + return + } + err = json.Unmarshal(byteValue, config) + } + return +} + +//转换游戏服务配置 +func convertServiceSttings(config *comm.GameConfig, id int, stype string, ip string, rport int, lport int) (sseting *core.ServiceSttings, err error) { + sseting = &core.ServiceSttings{} + sseting.Tag = config.AreaId + sseting.Ip = ip + sseting.Port = rport + sseting.Modules = make(map[string]map[string]interface{}) + sseting.Sys = make(map[string]map[string]interface{}) + sseting.Sys["rpcx"] = map[string]interface{}{ + "ConsulServers": config.ConsulAddr, + } + switch stype { + case comm.Service_Gateway: //网关服务 + sseting.Id = fmt.Sprintf("%s_%s%d", config.AreaId, comm.Service_Gateway, id) + sseting.Type = comm.Service_Gateway + sseting.Sys["rpcx"]["RpcxStartType"] = 1 + sseting.Modules["gateway"] = map[string]interface{}{ + "ListenPort": lport, + "SpanServiceTag": config.BelongCrossServerId, + } + break + case comm.Service_Worker: //业务服务 + sseting.Id = fmt.Sprintf("%s_%s%d", config.AreaId, comm.Service_Worker, id) + sseting.Type = comm.Service_Worker + sseting.Sys["rpcx"]["RpcxStartType"] = 0 + break + case comm.Service_Mainte: //维护服务 + sseting.Id = fmt.Sprintf("%s_%s", config.AreaId, comm.Service_Mainte) + sseting.Type = comm.Service_Mainte + sseting.Sys["rpcx"]["RpcxStartType"] = 0 + sseting.Modules["web"] = map[string]interface{}{ + "WebDir": "./dist", + "Port": lport, + "Key": "@234%67g12q4*67m12#4l67!", + } + break + default: + err = fmt.Errorf("服务类型异常 stype:%s", sseting.Type) + return + } + sseting.Sys["log"] = map[string]interface{}{ + "FileName": fmt.Sprintf("./log/%s.log", sseting.Id), + "Loglevel": config.Loglevel, + "MaxAgeTime": config.MaxAgeTime, + } + sseting.Sys["configure"] = map[string]interface{}{ + "ConfigurePath": "./json", + } + sseting.Sys["db"] = map[string]interface{}{ + "IsCross": config.IsCross, + "CrossTag": config.BelongCrossServerId, + "RedisIsCluster": config.LoaclDB.RedisIsCluster, + "RedisAddr": config.LoaclDB.RedisAddr, + "RedisPassword": config.LoaclDB.RedisPassword, + "RedisDB": config.LoaclDB.RedisDB, + "MongodbUrl": config.LoaclDB.MongodbUrl, + "MongodbDatabase": config.LoaclDB.MongodbDatabase, + "CrossConfig": crosspath, + } + return +} + +//启动服务程序 +func startService(sseting *core.ServiceSttings) (err error) { + var ( + cmd *exec.Cmd + command string + confpath string = fmt.Sprintf("./conf/%s.yaml", sseting.Id) + output []byte + ) + switch sseting.Type { + case comm.Service_Gateway: //网关服务 + command = fmt.Sprintf("./stup.sh start %s gateway %s", sseting.Id, confpath) + break + case comm.Service_Worker: //业务服务 + command = fmt.Sprintf("./stup.sh start %s worker %s", sseting.Id, confpath) + break + case comm.Service_Mainte: //维护服务 + command = fmt.Sprintf("./stup.sh start %s mainte %s", sseting.Id, confpath) + break + default: + err = fmt.Errorf("服务类型异常 stype:%s", sseting.Type) + return + } + log.Debug("启动外部命令", log.Field{Key: "cmd", Value: command}) + cmd = exec.Command("/bin/bash", "-c", command) + if output, err = cmd.CombinedOutput(); err != nil { + return + } + log.Debug(string(output)) + return +} + +//启动服务程序 +func stopService(sseting *core.ServiceSttings) (err error) { + var ( + cmd *exec.Cmd + command string + output []byte + ) + switch sseting.Type { + case comm.Service_Gateway: //网关服务 + command = fmt.Sprintf("./stup.sh stop %s ", sseting.Id) + break + case comm.Service_Worker: //业务服务 + command = fmt.Sprintf("./stup.sh stop %s", sseting.Id) + break + case comm.Service_Mainte: //维护服务 + command = fmt.Sprintf("./stup.sh stop %s ", sseting.Id) + break + default: + err = fmt.Errorf("服务类型异常 stype:%s", sseting.Type) + return + } + log.Debug("启动外部命令", log.Field{Key: "cmd", Value: command}) + cmd = exec.Command("/bin/bash", "-c", command) + if output, err = cmd.CombinedOutput(); err != nil { + return + } + log.Debug(string(output)) + return +} + +//写入服务配置文件 +func writeServiceConfig(filename string, sseting *core.ServiceSttings) (err error) { + var data []byte + if data, err = yaml.Marshal(sseting); err != nil { + return + } else { + err = ioutil.WriteFile(filename, data, 0777) + } + return +} + +func parseaddr(addr string) (ip string, port int, err error) { + ss := strings.Split(addr, ":") + if len(ss) != 2 { + err = fmt.Errorf("addr:%s解析异常", addr) + return + } + address := net.ParseIP(ss[0]) + if address == nil { + err = fmt.Errorf("addr:%s解析异常 ip:%s 校验失败", addr, ss[0]) + return + } + ip = ss[0] + if port, err = strconv.Atoi(ss[1]); err != nil { + err = fmt.Errorf("addr:%s解析异常 port:%s 校验失败", addr, ss[1]) + return + } + return +} diff --git a/services/comp_gateroute.go b/services/comp_gateroute.go index 9ce678b9c..d6284d7fa 100644 --- a/services/comp_gateroute.go +++ b/services/comp_gateroute.go @@ -30,7 +30,6 @@ type msghandle struct { //组件参数 type CompOptions struct { - Debug bool } func (this *CompOptions) LoadConfig(settings map[string]interface{}) (err error) { @@ -165,16 +164,14 @@ func (this *SCompGateRoute) ReceiveMsg(ctx context.Context, args *pb.AgentMessag ) } else { reply.Reply = session.Polls() - if this.options.Debug { - // log.Debugf("[Handle Api] t:%v m:%s uid:%s req:%v reply:%v", time.Since(stime), method, args.UserId, msg, reply) - log.Debug("[Handle Api]", - log.Field{Key: "t", Value: time.Since(stime).Milliseconds()}, - log.Field{Key: "m", Value: method}, - log.Field{Key: "uid", Value: args.UserId}, - log.Field{Key: "req", Value: msg}, - log.Field{Key: "reply", Value: reply.String()}, - ) - } + // log.Debugf("[Handle Api] t:%v m:%s uid:%s req:%v reply:%v", time.Since(stime), method, args.UserId, msg, reply) + log.Debug("[Handle Api]", + log.Field{Key: "t", Value: time.Since(stime).Milliseconds()}, + log.Field{Key: "m", Value: method}, + log.Field{Key: "uid", Value: args.UserId}, + log.Field{Key: "req", Value: msg}, + log.Field{Key: "reply", Value: reply.String()}, + ) } } else { //未找到消息处理函数 log.Errorf("[Handle Api] no found handle %s", method) diff --git a/sys/configure/structs/Game.MainlineData.go b/sys/configure/structs/Game.MainlineData.go index fd271a911..1e182c68a 100644 --- a/sys/configure/structs/Game.MainlineData.go +++ b/sys/configure/structs/Game.MainlineData.go @@ -24,6 +24,7 @@ type GameMainlineData struct { CaptainId string Battlescene string Award []*Gameatn + Exp int32 Title string Desc string Stroyid []int32 @@ -81,6 +82,7 @@ func (_v *GameMainlineData)Deserialize(_buf map[string]interface{}) (err error) } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["exp"].(float64); !_ok_ { err = errors.New("exp error"); return }; _v.Exp = int32(_tempNum_) } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Title error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Title, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["desc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } { diff --git a/sys/configure/structs/Game.RdtaskSideData.go b/sys/configure/structs/Game.RdtaskSideData.go index feb14189e..8d4e6ec07 100644 --- a/sys/configure/structs/Game.RdtaskSideData.go +++ b/sys/configure/structs/Game.RdtaskSideData.go @@ -15,17 +15,25 @@ type GameRdtaskSideData struct { Id int32 ObjType int32 Location string - Modelaction string - Modelstate int32 - Rotation serialization.Vector3 Point string + Entity []string + EntityChange []string + EntityStateChange []string + EntityInteractive []bool + Modelaction string + Rotation serialization.Vector3 + Modelstate int32 + Popup string + Special string + Boxreplace string StoryBegin int32 + Timeline string ChooseId []int32 - StoryEnd int32 - NextTid int32 - Reward []*GameChooseReward - CD int32 EndTid int32 + StoryEnd int32 + Reward []*GameChooseReward + NextTid int32 + CD int32 } const TypeId_GameRdtaskSideData = 865145588 @@ -38,8 +46,64 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["objType"].(float64); !_ok_ { err = errors.New("objType error"); return }; _v.ObjType = int32(_tempNum_) } { var _ok_ bool; if _v.Location, _ok_ = _buf["location"].(string); !_ok_ { err = errors.New("location error"); return } } + { var _ok_ bool; if _v.Point, _ok_ = _buf["point"].(string); !_ok_ { err = errors.New("point error"); return } } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["Entity"].([]interface{}); !_ok_ { err = errors.New("Entity error"); return } + + _v.Entity = make([]string, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ string + { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } } + _v.Entity = append(_v.Entity, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["EntityChange"].([]interface{}); !_ok_ { err = errors.New("EntityChange error"); return } + + _v.EntityChange = make([]string, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ string + { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } } + _v.EntityChange = append(_v.EntityChange, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["EntityStateChange"].([]interface{}); !_ok_ { err = errors.New("EntityStateChange error"); return } + + _v.EntityStateChange = make([]string, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ string + { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } } + _v.EntityStateChange = append(_v.EntityStateChange, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["EntityInteractive"].([]interface{}); !_ok_ { err = errors.New("EntityInteractive error"); return } + + _v.EntityInteractive = make([]bool, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ bool + { var _ok_ bool; if _list_v_, _ok_ = _e_.(bool); !_ok_ { err = errors.New("_list_v_ error"); return } } + _v.EntityInteractive = append(_v.EntityInteractive, _list_v_) + } + } + { var _ok_ bool; if _v.Modelaction, _ok_ = _buf["modelaction"].(string); !_ok_ { err = errors.New("modelaction error"); return } } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["modelstate"].(float64); !_ok_ { err = errors.New("modelstate error"); return }; _v.Modelstate = int32(_tempNum_) } { var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["rotation"].(map[string]interface{}); !_ok_ { err = errors.New("rotation error"); return } var _x_, _y_, _z_ float32; { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) } @@ -48,8 +112,12 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error _v.Rotation = serialization.NewVector3(_x_, _y_, _z_) } - { var _ok_ bool; if _v.Point, _ok_ = _buf["point"].(string); !_ok_ { err = errors.New("point error"); return } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["modelstate"].(float64); !_ok_ { err = errors.New("modelstate error"); return }; _v.Modelstate = int32(_tempNum_) } + { var _ok_ bool; if _v.Popup, _ok_ = _buf["popup"].(string); !_ok_ { err = errors.New("popup error"); return } } + { var _ok_ bool; if _v.Special, _ok_ = _buf["special"].(string); !_ok_ { err = errors.New("special error"); return } } + { var _ok_ bool; if _v.Boxreplace, _ok_ = _buf["boxreplace"].(string); !_ok_ { err = errors.New("boxreplace error"); return } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["storyBegin"].(float64); !_ok_ { err = errors.New("storyBegin error"); return }; _v.StoryBegin = int32(_tempNum_) } + { var _ok_ bool; if _v.Timeline, _ok_ = _buf["timeline"].(string); !_ok_ { err = errors.New("timeline error"); return } } { var _arr_ []interface{} var _ok_ bool @@ -64,8 +132,8 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["endTid"].(float64); !_ok_ { err = errors.New("endTid error"); return }; _v.EndTid = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["storyEnd"].(float64); !_ok_ { err = errors.New("storyEnd error"); return }; _v.StoryEnd = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["nextTid"].(float64); !_ok_ { err = errors.New("nextTid error"); return }; _v.NextTid = int32(_tempNum_) } { var _arr_ []interface{} var _ok_ bool @@ -80,8 +148,8 @@ func (_v *GameRdtaskSideData)Deserialize(_buf map[string]interface{}) (err error } } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["nextTid"].(float64); !_ok_ { err = errors.New("nextTid error"); return }; _v.NextTid = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["CD"].(float64); !_ok_ { err = errors.New("CD error"); return }; _v.CD = int32(_tempNum_) } - { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["endTid"].(float64); !_ok_ { err = errors.New("endTid error"); return }; _v.EndTid = int32(_tempNum_) } return } diff --git a/sys/configure/structs/game.heroResonanceData.go b/sys/configure/structs/game.heroResonanceData.go index 6a2539fc4..9169b39cc 100644 --- a/sys/configure/structs/game.heroResonanceData.go +++ b/sys/configure/structs/game.heroResonanceData.go @@ -24,7 +24,6 @@ type GameHeroResonanceData struct { Atkscale int32 Defscale int32 Maxnum int32 - RecommendPercentage []int32 } const TypeId_GameHeroResonanceData = -2055259070 @@ -86,20 +85,6 @@ func (_v *GameHeroResonanceData)Deserialize(_buf map[string]interface{}) (err er { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atkscale"].(float64); !_ok_ { err = errors.New("atkscale error"); return }; _v.Atkscale = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["defscale"].(float64); !_ok_ { err = errors.New("defscale error"); return }; _v.Defscale = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["maxnum"].(float64); !_ok_ { err = errors.New("maxnum error"); return }; _v.Maxnum = int32(_tempNum_) } - { - var _arr_ []interface{} - var _ok_ bool - if _arr_, _ok_ = _buf["recommend_percentage"].([]interface{}); !_ok_ { err = errors.New("recommend_percentage error"); return } - - _v.RecommendPercentage = make([]int32, 0, len(_arr_)) - - for _, _e_ := range _arr_ { - var _list_v_ int32 - { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) } - _v.RecommendPercentage = append(_v.RecommendPercentage, _list_v_) - } - } - return } diff --git a/sys/configure/structs/game.modelData.go b/sys/configure/structs/game.modelData.go index 323ff31d9..633f8ba0c 100644 --- a/sys/configure/structs/game.modelData.go +++ b/sys/configure/structs/game.modelData.go @@ -16,6 +16,7 @@ type GameModelData struct { Preson string Presonshow string Presonstory string + Presondraw string Height float32 Weight float32 Ico string @@ -39,6 +40,7 @@ func (_v *GameModelData)Deserialize(_buf map[string]interface{}) (err error) { { var _ok_ bool; if _v.Preson, _ok_ = _buf["preson"].(string); !_ok_ { err = errors.New("preson error"); return } } { var _ok_ bool; if _v.Presonshow, _ok_ = _buf["presonshow"].(string); !_ok_ { err = errors.New("presonshow error"); return } } { var _ok_ bool; if _v.Presonstory, _ok_ = _buf["presonstory"].(string); !_ok_ { err = errors.New("presonstory error"); return } } + { var _ok_ bool; if _v.Presondraw, _ok_ = _buf["presondraw"].(string); !_ok_ { err = errors.New("presondraw error"); return } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["height"].(float64); !_ok_ { err = errors.New("height error"); return }; _v.Height = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = float32(_tempNum_) } { var _ok_ bool; if _v.Ico, _ok_ = _buf["ico"].(string); !_ok_ { err = errors.New("ico error"); return } } diff --git a/sys/configure/structs/game.rdtaskChooseData.go b/sys/configure/structs/game.rdtaskChooseData.go index 5293bb071..823210034 100644 --- a/sys/configure/structs/game.rdtaskChooseData.go +++ b/sys/configure/structs/game.rdtaskChooseData.go @@ -14,6 +14,10 @@ type GameRdtaskChooseData struct { Id int32 Num int32 PreTid int32 + Entity []string + EntityChange []string + EntityStateChange []string + EntityInteractive []bool GotoLevel int32 NeedItem []int32 NextTid int32 @@ -29,6 +33,62 @@ func (_v *GameRdtaskChooseData)Deserialize(_buf map[string]interface{}) (err err { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["preTid"].(float64); !_ok_ { err = errors.New("preTid error"); return }; _v.PreTid = int32(_tempNum_) } + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["Entity"].([]interface{}); !_ok_ { err = errors.New("Entity error"); return } + + _v.Entity = make([]string, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ string + { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } } + _v.Entity = append(_v.Entity, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["EntityChange"].([]interface{}); !_ok_ { err = errors.New("EntityChange error"); return } + + _v.EntityChange = make([]string, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ string + { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } } + _v.EntityChange = append(_v.EntityChange, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["EntityStateChange"].([]interface{}); !_ok_ { err = errors.New("EntityStateChange error"); return } + + _v.EntityStateChange = make([]string, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ string + { if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } } + _v.EntityStateChange = append(_v.EntityStateChange, _list_v_) + } + } + + { + var _arr_ []interface{} + var _ok_ bool + if _arr_, _ok_ = _buf["EntityInteractive"].([]interface{}); !_ok_ { err = errors.New("EntityInteractive error"); return } + + _v.EntityInteractive = make([]bool, 0, len(_arr_)) + + for _, _e_ := range _arr_ { + var _list_v_ bool + { var _ok_ bool; if _list_v_, _ok_ = _e_.(bool); !_ok_ { err = errors.New("_list_v_ error"); return } } + _v.EntityInteractive = append(_v.EntityInteractive, _list_v_) + } + } + { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["gotoLevel"].(float64); !_ok_ { err = errors.New("gotoLevel error"); return }; _v.GotoLevel = int32(_tempNum_) } { var _arr_ []interface{} diff --git a/sys/db/db.go b/sys/db/db.go index 807cd13e9..747365266 100644 --- a/sys/db/db.go +++ b/sys/db/db.go @@ -1,13 +1,19 @@ package db import ( + "fmt" + "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" + "go_dreamfactory/lego/utils/codec/json" + "io/ioutil" + "os" "sync" ) func newSys(options *Options) (sys *DB, err error) { sys = &DB{ options: options, + servers: make(map[string]*DBConn), data: make(map[string]*ModelDataExpired), } if err = sys.init(); err != nil { @@ -26,25 +32,72 @@ type DB struct { } func (this *DB) init() (err error) { - if this.local, err = newDBConn(this.options.Loacl); err != nil { + if this.local, err = newDBConn(DBConfig{ + RedisIsCluster: this.options.RedisIsCluster, + RedisAddr: this.options.RedisAddr, + RedisPassword: this.options.RedisPassword, + RedisDB: this.options.RedisDB, + MongodbUrl: this.options.MongodbUrl, + MongodbDatabase: this.options.MongodbDatabase, + }); err != nil { return } - if this.options.Cross.Enabled { - if this.cross, err = newDBConn(this.options.Cross); err != nil { + err = this.readercrossconf(this.options.CrossConfig) + return +} + +//读取游戏配置文件 +func (this *DB) readercrossconf(path string) (err error) { + config := make(comm.CrossConfigs, 0) + var ( + jsonFile *os.File + byteValue []byte + ) + if jsonFile, err = os.Open(path); err != nil { + return + } else { + defer jsonFile.Close() + if byteValue, err = ioutil.ReadAll(jsonFile); err != nil { return } - } - if this.options.ServerList != nil && len(this.options.ServerList) > 0 { - this.servers = make(map[string]*DBConn, len(this.options.ServerList)) - for k, v := range this.options.ServerList { - if this.servers[k], err = newDBConn(v); err != nil { - return + if err = json.Unmarshal(byteValue, &config); err != nil { + return + } + if cf, ok := config[this.options.CrossTag]; !ok { + err = fmt.Errorf("no found Crossconfig:%s", this.options.CrossTag) + return + } else { + if !this.options.IsCross { + if this.cross, err = newDBConn(DBConfig{ + RedisIsCluster: cf.LoaclDB.RedisIsCluster, + RedisAddr: cf.LoaclDB.RedisAddr, + RedisPassword: cf.LoaclDB.RedisPassword, + RedisDB: cf.LoaclDB.RedisDB, + MongodbUrl: cf.LoaclDB.MongodbUrl, + MongodbDatabase: cf.LoaclDB.MongodbDatabase, + }); err != nil { + log.Error("comment db err!", log.Field{Key: "stag", Value: cf.AreaId}, log.Field{Key: "db", Value: cf.LoaclDB}, log.Field{Key: "err", Value: err}) + return + } + } else { + for k, v := range cf.ServiceList { + if this.servers[k], err = newDBConn(DBConfig{ + RedisIsCluster: v.RedisIsCluster, + RedisAddr: v.RedisAddr, + RedisPassword: v.RedisPassword, + RedisDB: v.RedisDB, + MongodbUrl: v.MongodbUrl, + MongodbDatabase: v.MongodbDatabase, + }); err != nil { + log.Error("comment db err!", log.Field{Key: "stag", Value: k}, log.Field{Key: "db", Value: v}, log.Field{Key: "err", Value: err}) + return + } + } } } } return } - func (this *DB) Local() *DBConn { if this.local == nil { log.Panic("LocalDBConn on init") diff --git a/sys/db/options.go b/sys/db/options.go index 3bbe5c7ab..e2f8ab6b4 100644 --- a/sys/db/options.go +++ b/sys/db/options.go @@ -8,7 +8,6 @@ import ( //DB层配置 type DBConfig struct { - Enabled bool //是否生效 RedisIsCluster bool //是否是集群 RedisAddr []string //redis 的集群地址 RedisPassword string //redis的密码 @@ -19,33 +18,19 @@ type DBConfig struct { type Option func(*Options) type Options struct { - Loacl DBConfig //本服配置 - Cross DBConfig //跨服配置 - ServerList map[string]DBConfig //服务列表配置 - Debug bool //日志是否开启 - Log log.ILogger + IsCross bool //是否是跨服 + CrossTag string //跨服区服id + RedisIsCluster bool //是否是集群 + RedisAddr []string //redis 的集群地址 + RedisPassword string //redis的密码 + RedisDB int //数据库位置 + MongodbUrl string //数据库连接地址 + MongodbDatabase string //数据库名 + CrossConfig string //跨服配置文件地址 + Debug bool //日志是否开启 + Log log.ILogger } -//设置本服配置 -func SetLoacl(v DBConfig) Option { - return func(o *Options) { - o.Loacl = v - } -} - -//设置本服配置 -func SetCross(v DBConfig) Option { - return func(o *Options) { - o.Cross = v - } -} - -//设置跨服区服列表 -func SetServerList(v map[string]DBConfig) Option { - return func(o *Options) { - o.ServerList = v - } -} func SetDebug(v bool) Option { return func(o *Options) { o.Debug = v @@ -58,11 +43,7 @@ func SetLog(v log.ILogger) Option { } } func newOptions(config map[string]interface{}, opts ...Option) (options *Options, err error) { - options = &Options{ - Loacl: DBConfig{}, - Cross: DBConfig{}, - ServerList: make(map[string]DBConfig), - } + options = &Options{} if config != nil { if err = mapstructure.Decode(config, options); err != nil { return