From d41e85097505bf9ea9728922202f4027580d24b8 Mon Sep 17 00:00:00 2001 From: ai4rei Date: Sun, 30 Jan 2011 00:25:44 +0000 Subject: [PATCH] * Merged changes from trunk [14636:14686/trunk]. git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/renewal@14687 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Renewal.txt | 2 + Makefile.in | 13 +- conf/Changelog.txt | 4 + conf/atcommand_athena.conf | 4 - conf/import-tmpl/ladmin_conf.txt | 0 conf/ladmin_athena.conf | 31 - conf/login_athena.conf | 10 - conf/maps_athena.conf | 53 +- conf/msg_athena.conf | 8 +- configure | 3 +- configure.in | 2 +- db/Changelog.txt | 19 + db/const.txt | 152 +- db/item_db.txt | 225 +- db/map_cache.dat | Bin 1909895 -> 1940566 bytes db/map_index.txt | 20 + db/mob_db.txt | 4 +- db/mob_skill_db.txt | 24 +- db/packet_db.txt | 2 +- doc/item_bonus.txt | 48 +- doc/mob_db_mode_list.txt | 26 +- doc/sample/basejob_baseclass_upper.txt | 3 +- doc/script_commands.txt | 9 +- doc/whisper_sys.txt | 2 +- eAthena-10.sln | 12 - eAthena-6.dsw | 24 + eAthena-8.sln | 24 +- eAthena-9.sln | 24 +- npc/Changelog.txt | 5 + npc/custom/quests/bookofthedevil.txt | 5 +- npc/custom/quests/thq/THQS_Quests.txt | 5 +- npc/other/Global_Functions.txt | 4 +- npc/scripts_custom.conf | 2 +- readme/features.html | 1 - readme/setup.html | 2 +- save-tmpl/account.txt | 16 +- sql-files/main.sql | 1 + sql-files/upgrade_svn14672.sql | 1 + src/char/char.c | 188 +- src/char_sql/char.c | 74 +- src/char_sql/int_auction.c | 2 +- src/common/core.h | 2 +- src/common/db.c | 4 +- src/common/grfio.c | 134 +- src/common/plugins.c | 2 + src/common/socket.c | 5 +- src/common/socket.h | 7 +- src/common/strlib.c | 10 +- src/ladmin/Makefile.in | 45 - src/ladmin/ladmin.c | 3074 ------------------------ src/ladmin/ladmin.h | 9 - src/login/Makefile.in | 2 +- src/login/account.h | 3 +- src/login/account_sql.c | 9 +- src/login/account_txt.c | 31 +- src/login/admin.c | 857 ------- src/login/login.c | 136 +- src/login/login.h | 4 - src/map/atcommand.c | 72 +- src/map/battle.c | 38 +- src/map/chrif.c | 37 +- src/map/clif.c | 125 +- src/map/clif.h | 2 - src/map/guild.c | 115 +- src/map/homunculus.c | 385 ++- src/map/itemdb.c | 225 +- src/map/itemdb.h | 2 +- src/map/map.c | 176 +- src/map/mercenary.c | 220 +- src/map/mob.c | 26 +- src/map/npc.c | 30 +- src/map/party.c | 4 +- src/map/pc.c | 92 +- src/map/pc.h | 3 +- src/map/pet.c | 32 +- src/map/script.c | 127 +- src/map/skill.c | 225 +- src/map/status.c | 224 +- src/map/storage.c | 3 +- src/map/trade.c | 3 +- src/map/unit.c | 135 +- src/map/vending.c | 33 +- src/map/vending.h | 2 +- src/plugins/Makefile.in | 10 +- src/plugins/console.c | 7 +- src/plugins/gui.c | 107 - src/plugins/gui.txt | 15 - src/plugins/{plugin.def => pid.def} | 3 + src/plugins/sample.def | 11 + src/tool/Makefile.in | 38 +- src/tool/adduser.c | 103 - src/tool/grfio.c | 844 ------- src/tool/grfio.h | 20 - src/tool/mapcache.c | 58 +- tools/checkversion.pl | 85 - vcproj-10/ladmin.vcxproj | 149 -- vcproj-10/login-server_sql.vcxproj | 1 - vcproj-10/login-server_txt.vcxproj | 1 - vcproj-10/mapcache.vcxproj | 21 +- vcproj-6/login-server_sql.dsp | 4 - vcproj-6/login-server_txt.dsp | 4 - vcproj-6/plugin-console.dsp | 103 + vcproj-6/plugin-pid.dsp | 103 + vcproj-7.1/login-server_sql.vcproj | 3 - vcproj-7.1/login-server_txt.vcproj | 3 - vcproj-7.1/mapcache.vcproj | 53 +- vcproj-8/ladmin.vcproj | 285 --- vcproj-8/login-server_sql.vcproj | 4 - vcproj-8/login-server_txt.vcproj | 4 - vcproj-8/mapcache.vcproj | 66 +- vcproj-8/plugin-console.vcproj | 234 ++ vcproj-8/plugin-pid.vcproj | 234 ++ vcproj-9/ladmin.vcproj | 290 --- vcproj-9/login-server_sql.vcproj | 4 - vcproj-9/login-server_txt.vcproj | 4 - vcproj-9/mapcache.vcproj | 66 +- vcproj-9/plugin-console.vcproj | 239 ++ vcproj-9/plugin-pid.vcproj | 239 ++ 118 files changed, 3240 insertions(+), 7899 deletions(-) delete mode 100644 conf/import-tmpl/ladmin_conf.txt delete mode 100644 conf/ladmin_athena.conf create mode 100644 sql-files/upgrade_svn14672.sql delete mode 100644 src/ladmin/Makefile.in delete mode 100644 src/ladmin/ladmin.c delete mode 100644 src/ladmin/ladmin.h delete mode 100644 src/login/admin.c delete mode 100644 src/plugins/gui.c delete mode 100644 src/plugins/gui.txt rename src/plugins/{plugin.def => pid.def} (77%) create mode 100644 src/plugins/sample.def delete mode 100644 src/tool/adduser.c delete mode 100644 src/tool/grfio.c delete mode 100644 src/tool/grfio.h delete mode 100755 tools/checkversion.pl delete mode 100644 vcproj-10/ladmin.vcxproj create mode 100644 vcproj-6/plugin-console.dsp create mode 100644 vcproj-6/plugin-pid.dsp delete mode 100644 vcproj-8/ladmin.vcproj create mode 100644 vcproj-8/plugin-console.vcproj create mode 100644 vcproj-8/plugin-pid.vcproj delete mode 100644 vcproj-9/ladmin.vcproj create mode 100644 vcproj-9/plugin-console.vcproj create mode 100644 vcproj-9/plugin-pid.vcproj diff --git a/Changelog-Renewal.txt b/Changelog-Renewal.txt index 1ea2567f09..dd363b12e1 100644 --- a/Changelog-Renewal.txt +++ b/Changelog-Renewal.txt @@ -1,5 +1,7 @@ Date Added +2011/01/29 + * Merged changes from trunk (r14636:14686). [Ai4rei] 2010/12/30 * Fixed a nullpo crash in pc_gainexp when receiving exp though script command getexp (topic:262958, since r14625). [Ai4rei] 2010/12/27 diff --git a/Makefile.in b/Makefile.in index 2afeda0f5f..5b51affa4a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2,7 +2,7 @@ HAVE_MYSQL=@HAVE_MYSQL@ ifeq ($(HAVE_MYSQL),yes) - ALL_DEPENDS=common common_sql login login_sql char char_sql map map_sql ladmin tools converters plugins import save + ALL_DEPENDS=common common_sql login login_sql char char_sql map map_sql tools converters plugins import save SQL_DEPENDS=common_sql login_sql char_sql map_sql import save COMMON_SQL_DEPENDS= LOGIN_SQL_DEPENDS=common_sql @@ -10,7 +10,7 @@ ifeq ($(HAVE_MYSQL),yes) MAP_SQL_DEPENDS=common_sql CONVERTERS_DEPENDS=common_sql else - ALL_DEPENDS=common login char map ladmin tools plugins import save + ALL_DEPENDS=common login char map tools plugins import save SQL_DEPENDS=needs_mysql COMMON_SQL_DEPENDS=needs_mysql LOGIN_SQL_DEPENDS=needs_mysql @@ -25,7 +25,7 @@ endif login login_sql \ char char_sql \ map map_sql \ - ladmin tools converters plugins addons import save \ + tools converters plugins addons import save \ clean help all: $(ALL_DEPENDS) @@ -60,9 +60,6 @@ map: common map_sql: $(MAP_SQL_DEPENDS) @$(MAKE) -C src/map sql -ladmin: common - @$(MAKE) -C src/ladmin - tools: @$(MAKE) -C src/tool @@ -96,7 +93,6 @@ clean: @$(MAKE) -C src/char $@ @$(MAKE) -C src/char_sql $@ @$(MAKE) -C src/map $@ - @$(MAKE) -C src/ladmin $@ @$(MAKE) -C src/plugins $@ @$(MAKE) -C src/tool $@ @$(MAKE) -C src/txt-converter $@ @@ -112,7 +108,6 @@ help: @echo "'char_sql' - builds char server (SQL version)" @echo "'map' - builds map server (TXT version)" @echo "'map_sql' - builds map server (SQL version)" - @echo "'ladmin' - builds remote administration tool" @echo "'tools' - builds all the tools in src/tools" @echo "'converters' - builds the login/char converters" @echo "'plugins' - builds all the plugins in src/plugins" @@ -148,7 +143,6 @@ install: conf/%.conf conf/%.txt $(shell mv npc /opt/eathena/etc/eathena/npc) $(shell mv log/* /opt/eathena/var/log/eathena/) $(shell cp *-server* /opt/eathena/bin/) - $(shell cp ladmin /opt/eathena/bin/) $(shell ln -s /opt/eathena/etc/eathena/save/ /opt/eathena/bin/) $(shell ln -s /opt/eathena/etc/eathena/db/ /opt/eathena/bin/) $(shell ln -s /opt/eathena/etc/eathena/conf/ /opt/eathena/bin/) @@ -159,7 +153,6 @@ bin-clean: $(shell rm /opt/eathena/bin/login-server*) $(shell rm /opt/eathena/bin/char-server*) $(shell rm /opt/eathena/bin/map-server*) - $(shell rm /opt/eathena/bin/ladmin) uninstall: $(shell read -p "WARNING: This target does not work properly yet. Press Ctrl+C to cancel or Enter to continue.") diff --git a/conf/Changelog.txt b/conf/Changelog.txt index 4cbff02fe3..e726d3f61c 100644 --- a/conf/Changelog.txt +++ b/conf/Changelog.txt @@ -1,5 +1,9 @@ Date Added +2011/01/13 + * Rev. 14667 Removed ladmin settings (ladmin_athena.conf) and login-server settings for ladmin (login_athena.conf) (topic:262934). [Ai4rei] +2010/12/30 + * Rev. 14643 Updated mapcache up to 2010-12-01. Adds Bifrost, Dewata and Malangdo maps. [Ai4rei] 2010/12/12 * Rev. 14587 Corrected wording of the setting homunculus_autoloot (since r12203). [Ai4rei] 2010/12/10 diff --git a/conf/atcommand_athena.conf b/conf/atcommand_athena.conf index b34ce4fcc0..6bbedeb8cc 100644 --- a/conf/atcommand_athena.conf +++ b/conf/atcommand_athena.conf @@ -124,10 +124,6 @@ accept: 1,1 reject: 1,1 leave: 1,1 -// Away messsage -away: 1,1 -aw: 1,1 - // Main chat main: 1,1 diff --git a/conf/import-tmpl/ladmin_conf.txt b/conf/import-tmpl/ladmin_conf.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/conf/ladmin_athena.conf b/conf/ladmin_athena.conf deleted file mode 100644 index 5c4257af7f..0000000000 --- a/conf/ladmin_athena.conf +++ /dev/null @@ -1,31 +0,0 @@ -// Athena Ladmin configuration file. - -// Login Server IP -login_ip:127.0.0.1 -// Login Server Port -login_port: 6900 - -// Administrative password, used to connect remotely to server. -// NOTICE: If you enable remote administration, you should change its value for security -admin_pass: admin - -// Encoding type of the password -// 0: not encoded -// 1: key+password -// 2: password+key -passenc: 2 - -// Log Filename. All operations done by the software are logged in this file. -ladmin_log_filename: log/ladmin.log - -// Indicate how to display date in logs, to players, etc. -// 0: 31-12-2004 23:59:59 -// 1: 12-31-2004 23:59:59 -// 2: 2004-31-12 23:59:59 -// 3: 2004-12-31 23:59:59 (default) -date_format: 3 - -//If redirected output contains escape sequences (color codes) -stdout_with_ansisequence: no - -import: conf/import/ladmin_conf.txt diff --git a/conf/login_athena.conf b/conf/login_athena.conf index cf7883cfaa..7f1f40d4b0 100644 --- a/conf/login_athena.conf +++ b/conf/login_athena.conf @@ -35,16 +35,6 @@ stdout_with_ansisequence: no //Example: "console_silent: 7" Hides information, status and notice messages (1+2+4) console_silent: 0 -// Whether remote administration is enabled or disabled -admin_state: no - -// Administrative password, used by ladmin to connect remotely to server. -// NOTICE: you should change this value for security if you use ladmin. -admin_pass: admin - -// Indicate the IP/host that the server accepts for remote administration. -admin_allowed_host: 127.0.0.1 - // Console Commands // Allow for console commands to be used on/off // This prevents usage of >& log.file diff --git a/conf/maps_athena.conf b/conf/maps_athena.conf index c626451225..514a642a75 100644 --- a/conf/maps_athena.conf +++ b/conf/maps_athena.conf @@ -898,8 +898,7 @@ map: spl_in01 map: spl_in02 // 3rd Job Maps -// -- 2009-05-27?? -map: moc_para01 +// -- 2009-01-29rdata_k2.gpf map: job3_arch01 map: job3_arch02 map: job3_arch03 @@ -915,16 +914,24 @@ map: job3_war01 map: job3_war02 map: jupe_core2 +// ??? +// -- 2009-05-27rdata_k.gpf +map: moc_para01 + // Brasilis Maps -// -- 2009-08-05?? +// -- 2009-08-05rdata_k.gpf map: brasilis map: bra_in01 map: bra_fild01 map: bra_dun01 map: bra_dun02 +// ??? +// -- 2009-09-30rdata_k.gpf +map: s_atelier + // 13.3 El Discastes -// -- 2009-12-23 +// -- 2009-12-09rdata_k.gpf map: dicastes01 map: dicastes02 map: dic_in01 @@ -933,7 +940,6 @@ map: dic_fild02 map: dic_dun01 map: dic_dun02 map: job3_gen01 -map: s_atelier map: job3_sha01 // Localized Event Maps @@ -946,6 +952,43 @@ map: job3_sha01 //ac_cl_room //jp_s_dun11 +// 14.1 Bifrost +// -- 2010-06-09rdata_x.gpf +map: mora +map: bif_fild01 +map: bif_fild02 +map: 1@mist + +// Dewata Maps +// -- 2010-09-15rdata_x.gpf +map: dewata +map: dew_in01 +map: dew_fild01 +map: dew_dun01 +map: dew_dun02 + +// ??? +// -- 2010-10-06rdata_x.gpf +map: que_house_s + +// Malangdo Maps +// -- 2010-11-03rdata_x.gpf +map: malangdo +map: mal_in01 +map: mal_in02 +map: mal_dun01 +map: 1@pump +map: 2@pump +map: 1@cash + +// Undersea Tunnel Expansion +// -- 2010-11-10rdata_x.gpf +map: iz_dun05 + +// ??? +// -- 2010-12-01data_x.gpf +map: evt_mobroom + //------------------------- Clone Maps --------------------------- //------------------------- Extra Maps --------------------------- diff --git a/conf/msg_athena.conf b/conf/msg_athena.conf index ef9fda3da6..1c9b994c0a 100644 --- a/conf/msg_athena.conf +++ b/conf/msg_athena.conf @@ -453,13 +453,7 @@ //541: %.0s%.0sSomeone got %s 542: '%s' stole %s's %s (chance: %0.02f%%) //542: %.0s%.0sSomeone stole %s -// @Away message bits -543: (Automessage has been sent) -544: Away [AT] - "%s" -545: Away - "%s" -546: Away automessage has been activated. -547: Away automessage has been disabled. -548: Usage: @away,@aw . Enter empty message for disable it. +// 543~548 are not used (previously @away messages) // @Autotrade 549: You should be vending to use @autotrade. diff --git a/configure b/configure index 70a12eb594..3a5c7274c5 100755 --- a/configure +++ b/configure @@ -1333,7 +1333,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_files="$ac_config_files Makefile src/common/Makefile" - ac_config_files="$ac_config_files src/char/Makefile src/login/Makefile src/ladmin/Makefile" + ac_config_files="$ac_config_files src/char/Makefile src/login/Makefile" ac_config_files="$ac_config_files src/char_sql/Makefile src/txt-converter/Makefile" @@ -5628,7 +5628,6 @@ do "src/common/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/common/Makefile" ;; "src/char/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/char/Makefile" ;; "src/login/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/login/Makefile" ;; - "src/ladmin/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/ladmin/Makefile" ;; "src/char_sql/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/char_sql/Makefile" ;; "src/txt-converter/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/txt-converter/Makefile" ;; "src/map/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/map/Makefile" ;; diff --git a/configure.in b/configure.in index 4892ee141b..bf3c97374e 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_REVISION($Revision$) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([src/common/cbasetypes.h]) AC_CONFIG_FILES([Makefile src/common/Makefile]) -AC_CONFIG_FILES([src/char/Makefile src/login/Makefile src/ladmin/Makefile]) +AC_CONFIG_FILES([src/char/Makefile src/login/Makefile]) AC_CONFIG_FILES([src/char_sql/Makefile src/txt-converter/Makefile]) AC_CONFIG_FILES([src/map/Makefile src/plugins/Makefile src/tool/Makefile]) diff --git a/db/Changelog.txt b/db/Changelog.txt index 9403e42f49..45477f3cf6 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -8,6 +8,25 @@ 1475 Equestrian's Spear: NEED INFO. 13005 Angelic Wing Dagger: NEED INFO. ======================= + +2011/01/23 + * Rev. 14679 Updated Aegis NPC ID constants from current npcidentity.lub (bugreport:4706). [Ai4rei] + - Fixes some incorrect NPC ID constants (since r12780). +2011/01/06 + * Rev. 14653 Updated mapcache once more, because the one from r14643 contained official xmas versions of the town maps, now causing glitches after the xmas event on kRO ended. [Ai4rei] +2011/01/04 + * Rev. 14650 Shuffled around disabled headgears, more accurate to what is and isn't avaliable in kRO. Snuck in a few minor fixes. [L0ne_W0lf] + * Rev. 14649 Disabled monster BACSOJIN_T (1996) whose drop White Snake Hat (5411) is not enabled (was hidden by '//', which would cause errors now) (since r14412). [Ai4rei] +2010/12/30 + * Rev. 14643 Updated mapcache up to 2010-12-01. Adds Bifrost, Dewata and Malangdo maps. [Ai4rei] + * Rev. 14641 Bug fixes. Not much else. :3 + - Lowered the required level to equip Expert Ring from 90 to 50. (bugreport:2853) + - Changed equip location for Odin mask, and made it non-refinable. (bugreport:4221) + - Changed the weight of the Atroce Blade from 200 to 350. (bugreport:4405) + - Added Tatacho Card to Tatacho's drops. (bugreport:4469) + - Changed Crunch Toast generated by the F_Toast_Box. (Bugreport:4610) + - Corrected typo with Dagger of Hunter, casts Bash level 10 at 10% chance (bugreport:4667) + - Corrected Veteran Hammer, now uses bHealPower instead of bSkillheal. (bugreport:4670) 2010/12/27 * Rev. 14634 Added item stacking limitation database 'item_stack.txt'. [Ai4rei] 2010/12/16 diff --git a/db/const.txt b/db/const.txt index 3cc224d9a2..6594c03919 100644 --- a/db/const.txt +++ b/db/const.txt @@ -1506,7 +1506,7 @@ WARPNPC 45 4W_F_01 101 8_F 102 8_F_GRANDMOTHER 103 -//104 is shadow sprite +EFFECTLAUNCHER 104 8W_SOLDIER 105 1_M_MOC_LORD 106 1_M_PAY_ELDER 107 @@ -1528,9 +1528,6 @@ HIDDEN_NPC 111 2_F_MAGICMASTER 123 4_F_TELEPORTER 124 4_M_TELEPORTER 125 -//Free Ids -HIDDEN_WARP_NPC 139 -//Free Ids 4_M_MUT2 401 4_M_SCIENCE 402 4_F_VALKYRIE2 403 @@ -1558,7 +1555,147 @@ HIDDEN_WARP_NPC 139 4_M_BONGUN 425 4_BEAR 426 4_BLUEWOLF 427 -4_PECO-PECO 428 +4_PECOPECO 428 +4_M_JP_MID 429 +4_M_JP_RUN 430 +4_ORCLADY 431 +4_ORCLADY2 432 +4_ORCWARRIOR 433 +4_ORCWARRIOR2 434 +4_F_FAIRY 435 +4_F_FAIRYKID 436 +4_F_FAIRYKID2 437 +4_F_FAIRYKID3 438 +4_F_FAIRYKID4 439 +4_F_FAIRYKID5 440 +4_F_FAIRYKID6 441 +4_M_FAIRYKID 442 +4_M_FAIRYKID2 443 +4_M_FAIRYKID3 444 +4_M_FAIRYKID4 445 +4_M_FAIRYKID5 446 +4_M_FAIRYSOLDIER 447 +4_M_TUFFOLD 448 +4_MAN_BENKUNI 449 +4_MAN_GALTUN 450 +4_MAN_JERUTOO 451 +4_MAN_LAVAIL 452 +4_MAN_NITT 453 +4_MAN_PIOM 454 +4_MAN_PIOM2 455 +4_M_DSTMAN 456 +4_M_DSTMANDEAD 457 +4_BABYLEOPARD 458 +4_M_REDSWORD 459 +4_MAN_PIOM3 460 +4_M_FAIRYSOLDIER2 461 +4_F_FAIRYSOLDIER 462 +4_DRAGON_EGG 463 +4_MIMIC 464 +4_F_FAIRY1 465 +4_F_GUILLOTINE 466 +4_M_GUILLOTINE 467 +4_M_KNIGHT_BLACK 468 +4_M_KNIGHT_GOLD 469 +4_M_KNIGHT_SILVER 470 +4_SKULL_MUD 471 +4_M_BRZ_INDIAN 472 +4_F_BRZ_INDIAN 473 +4_F_BRZ_INDOLD 474 +4_M_BRZ_JACI 475 +4_M_BRZ_MAN1 476 +4_M_BRZ_MAN2 477 +4_F_BRZ_WOMAN 478 +4_M_MINSTREL 479 +4_M_MINSTREL1 480 +4_M_SHADOWCHASER 481 +4_F_SHADOWCHASER 482 +4_M_SURA 483 +4_F_SURA 484 +4_F_WANDERER 485 +4_M_BARD 486 +1_FLAG_NOFEAR 487 +4_M_NOFEARGUY 488 +4_MAN_PIOM6 489 +4_MAN_PIOM4 490 +4_MAN_PIOM5 491 +4_MAN_GALTUN1 492 +4_HUMAN_GERUTOO 493 +4_M_ROKI 494 +4_M_MERCAT1 495 +4_M_MERCAT2 496 +4_M_CATMAN1 497 +4_M_CATMAN2 498 +4_F_BRZ_WOMAN2 499 +4_M_JP_DISH 500 +4_F_JP_NOAH 501 +4_F_JP_OZ 502 +4_F_JP_CHROME 503 +4_F_JP_RINNE 504 +4_WHITETIGER 505 +4_VENDING_MACHINE 506 +4_MISTY 507 +4_NECORING 508 +4_ELEPHANT 509 +4_F_NYDHOG 510 +4_F_NYDHOG2 511 +4_M_ROKI2 512 +4_M_DOGTRAVELER 513 +4_M_DOGTRAVELER2 514 +4_F_DOGTRAVELER 515 +4_M_RAFLE_GR 516 +4_M_RAFLE_OLD 517 +4_F_RAFLE_PK 518 +4_M_LYINGDOG 519 +4_F_MORAFINE1 520 +4_F_MORAFINE2 521 +4_M_RAFLE_OR 522 +4_F_RAFLE_YE 523 +4_M_RAFLE_VI 524 +4_F_RAFLE_VI 525 +4_M_ARDHA 526 +4_CREEPER 527 +JP_RUFAKU 528 +JP_SUPIKA 529 +JP_SABIKU 530 +JP_ARUGORU 531 +JP_ARUNA 532 +JP_AIRI 533 +4_M_DEWOLDMAN 534 +4_M_DEWOLDWOMAN 535 +4_M_DEWMAN 536 +4_M_DEWWOMAN 537 +4_M_DEWBOY 538 +4_M_DEWGIRL 539 +4_M_DEWZATICHIEF 540 +4_M_DEWZATIMAN 541 +4_M_ALCHE_E 542 +4_MASK_SMOKEY 543 +4_CAT_SAILOR1 544 +4_CAT_SAILOR2 545 +4_CAT_SAILOR3 546 +4_CAT_SAILOR4 547 +4_CAT_CHEF 548 +4_CAT_MERMASTER 549 +4_CRACK 550 +4_ASTER 551 +4_F_STARFISHGIRL 552 +4_CAT_DOWN 553 +4_CAT_REST 554 +4_CAT_3COLOR 555 +4_CAT_ADMIRAL 556 +4_SOIL 557 +4_F_ALCHE_A 558 +4_CAT_ADV1 559 +4_CAT_ADV2 560 +4_CAT_SAILOR5 561 +2_DROP_MACHINE 562 +2_SLOT_MACHINE 563 +2_VENDING_MACHINE1 564 +MOB_TOMB 565 +4_MYSTCASE 566 +4_M_SIT_NOVICE 567 +4_OCTOPUS_LEG 568 //Free Ids 8_F_GIRL 700 4_F_GODEMOM 701 @@ -1582,7 +1719,7 @@ HIDDEN_WARP_NPC 139 4_F_NACORURI 719 4_F_SHAMAN 720 4_F_KAFRA7 721 -GUILDFLAG90_1 722 +GUILD_FLAG 722 1_SHADOW_NPC 723 4_F_07 724 4_F_JOB_ASSASSIN 725 @@ -1704,6 +1841,7 @@ TW_TOWER 812 4_M_THAIAYO 841 4_M_THAIOLD 842 4_M_THAIONGBAK 843 +CLEAR_NPC 844 4_F_RACING 845 4_F_EINOLD 846 4_M_EINOLD 847 @@ -1770,8 +1908,8 @@ TW_TOWER 812 4_M_PHILMAN 908 4_PORING 909 2_COLAVEND 910 -4_M_SOCCER7 912 4_F_SOCCER 911 +4_M_SOCCER7 912 4_M_SOCCER9 913 4_F_CHILD 914 4_F_MADAME 915 diff --git a/db/item_db.txt b/db/item_db.txt index 312a29ec1b..a2999c52ac 100644 --- a/db/item_db.txt +++ b/db/item_db.txt @@ -525,7 +525,7 @@ 1172,Claymore_,Claymore,4,74000,,2500,180,,1,2,0x00004080,7,2,34,3,33,1,3,{},{},{} 1173,Muramasa_C,Muramasa,4,1,,0,204,,1,0,0x00004082,7,2,34,4,1,0,3,{ bonus bCritical,30; bonus bAspdRate,8; },{},{} 1174,Executioner_C,Executioner,4,2,,0,190,,1,0,0x00004082,7,2,34,4,1,0,3,{ bonus bIgnoreDefRace,RC_DemiHuman; bonus2 bAddRace,RC_DemiHuman,20; bonus2 bSubRace,RC_DemiHuman,-10; bonus bAtkEle,Ele_Dark; },{},{} -1175,Altas_Weapon,Atlas Weapon,4,20,,2000,200,,1,1,0x00004082,2,2,34,4,55,1,3,{ bonus bCritical,10; if(readparam(bStr)>=80) bonus bBreakArmorRate,500; },{},{} +1175,Altas_Weapon,Atlas Weapon,4,20,,3500,200,,1,1,0x00004082,2,2,34,4,55,1,3,{ bonus bCritical,10; if(readparam(bStr)>=80) bonus bBreakArmorRate,500; },{},{} 1176,Muscle_Cutter,Muscle Cutter,4,20,,2200,160,,1,2,0x00004082,2,2,34,4,55,1,3,{ bonus2 bAddEff,Eff_Bleeding,800; bonus3 bAutoSpell,"AL_DECAGI",1,30; },{},{} 1177,Muramash,Muramash,4,20,,0,120,,1,0,0x00004082,7,2,34,1,1,0,3,{ bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50; },{},{} 1178,Schweizersabel_,Schweizersabel,4,20,,1600,160,,1,2,0x00004082,7,2,34,4,48,1,3,{ bonus bAtkEle,Ele_Wind; bonus bDef,1; bonus3 bAutoSpell,"MG_LIGHTNINGBOLT",3,100; },{},{} @@ -686,7 +686,7 @@ 1384,Veteran_Axe,Veteran Axe,4,0,,3000,250,,1,2,0x000444A2,7,2,34,3,80,1,7,{ if(getskilllv("BS_DAGGER")==3) { bonus bAtk,10; } if(getskilllv("BS_SWORD")==3) { bonus bAtk,10; } if(getskilllv("BS_TWOHANDSWORD")==3) { bonus bAtk,10; } if(getskilllv("BS_KNUCKLE")==3) { bonus bAtk,10; } if(getskilllv("BS_SPEAR")==3) { bonus bAtk,10; } if(getskilllv("BS_AXE")==3) { bonus bAtk,10; } if(getskilllv("BS_MACE")==3) { bonus bAtk,10; } bonus bVit,2; },{},{} 1385,Bradium_Stonehammer,Bradium Stone Hammer,4,0,,2700,210,,1,0,0x000444A2,2,2,34,4,75,1,7,{ bonus3 bAddEffOnSkill,"BS_HAMMERFALL",Eff_Stun,50+(20*getrefine()); },{},{} 1386,Doom_Slayer_I,Doom Slayer,4,20,,0,20,,1,0,0x000444A2,7,2,34,4,0,0,7,{ if(readparam(bStr)>=95){ bonus bBaseAtk,400; bonus2 bAddEff,Eff_Stun,3000; bonus bAspdRate,-25; bonus bUseSPrate,100; bonus bBreakArmorRate,500; } },{},{} -1387,Giant_Axe,Giant Axe,4,0,,4000,330,,1,1,0x000444A2,2,2,34,3,50,1,6,{ bonus2 bSkillAtk,"WS_CARTTERMINATION",15; if(readparam(bStr)>=95) { bonus bHit,10; bonus bAspdRate,3; } },{},{} +1387,Giant_Axe,Giant Axe,4,0,,4000,330,,1,1,0x000444A2,2,2,34,3,50,1,7,{ bonus2 bSkillAtk,"WS_CARTTERMINATION",15; if(readparam(bStr)>=95) { bonus bHit,10; bonus bAspdRate,3; } },{},{} 1388,Two_Handed_Axe_C,Two-Handed Axe,4,0,,0,220,,1,0,0x000444A2,7,2,34,3,1,0,7,{ bonus2 bAddSize,0,40; bonus2 bAddSize,1,40; bonus2 bAddSize,2,40; },{},{} // 1-Handed Spears 1401,Javelin,Javelin,4,150,,700,28,,3,3,0x00004082,7,2,2,1,4,1,4,{},{},{} @@ -808,7 +808,7 @@ 1545,N_Mace,Novice Mace,4,1,,0,57,,1,3,0x0004C5B3,7,2,2,1,2,0,8,{},{},{} 1546,Krieger_Onehand_Mace1,Glorious Morning Star,4,0,,0,130,,1,0,0x0004C5B3,7,2,2,4,80,1,8,{ bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine() > 5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; bonus bAspdRate,5; } if(getrefine() > 8) { bonus2 bAddEff,Eff_Stun,2000; bonus bAspdRate,5; } },{},{} 1547,Mace_Of_Madness,Mace Of Madness,4,0,,0,150,,1,0,0x0004C5B2,7,2,2,2,1,0,8,{ bonus2 bSkillAtk,"MC_CARTREVOLUTION",25; bonus bStr,2; },{},{} -1548,Veteran_Hammer,Veteran Hammer,4,0,,1800,160,,1,2,0x00008110,7,2,2,3,80,1,8,{ bonus2 bSkillAtk,"AL_HEAL",getskilllv("AL_DP"); bonus bCriticalRate,getskilllv("PR_MACEMASTERY")*2; bonus bInt,1; bonus bLuk,1; },{},{} +1548,Veteran_Hammer,Veteran Hammer,4,0,,1800,160,,1,2,0x00008110,7,2,2,3,80,1,8,{ bonus bHealPower,getskilllv("AL_DP"); bonus bCritical,getskilllv("PR_MACEMASTERY")*2; bonus bInt,1; bonus bLuk,1; },{},{} //1549,Pilebuncker // Books 1550,Book,Book,4,30000,,600,85,,1,3,0x00410100,7,2,2,2,14,1,15,{},{},{} @@ -1548,7 +1548,7 @@ 2700,Red_Silk_Seal,Red Silk Seal,5,10000,,100,,0,,0,0x00004082,2,2,136,,0,0,0,{},{},{} 2701,Orleans_Glove,Orleans's Glove,5,10000,,100,,0,,1,0xFFFFFFFE,2,2,136,,90,0,0,{ bonus bDex,2; bonus bMatkRate,3; },{},{} 2702,Bison_Horn,Bison Horn,5,10000,,100,,0,,1,0xFFFFFFFE,2,2,136,,90,0,0,{ bonus bAgi,2; },{},{} -2703,Expert_Ring,Expert Ring,5,10000,,150,,0,,1,0xFFFFFFFE,2,2,136,,90,0,0,{ bonus bDelayRate,-5; bonus bUseSPrate,5; },{},{} +2703,Expert_Ring,Expert Ring,5,10000,,150,,0,,1,0xFFFFFFFE,2,2,136,,50,0,0,{ bonus bDelayRate,-5; bonus bUseSPrate,5; },{},{} 2704,Golden_Accessory,Golden Accessories,5,20,,100,,4,,0,0xFFFFFFFF,7,2,136,,,,,{ bonus bMdef,4; },{},{} 2705,Golden_Accessory2,Golden Accessories,5,20,,100,,4,,0,0xFFFFFFFF,7,2,136,,,,,{ bonus2 bAddMonsterDropItem,12018,500; },{},{} 2706,Handcuff,Arrest Handcuffs,5,20,,10,,0,,0,0xFFFFFFFE,7,2,136,,0,0,0,{},{},{} @@ -1572,7 +1572,7 @@ 2724,Medal_Archer,Medal of Honor,5,0,,0,,1,,0,0x00080808,7,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG; },{},{} 2725,Medal_Merchant,Medal of Honor,5,0,,0,,1,,0,0x00040420,7,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bAspdRate,10; bonus bMaxHP,500; bonus bMaxSP,50; bonus3 bAddEff,Eff_Curse,100,ATF_SHORT; },{},{} 2726,Icarus_Wing,Icarus Wings,5,20,,100,,0,,0,0x00000800,2,2,136,,70,0,0,{ bonus bMaxSP,50; bonus bDex,3; },{},{} -2727,Bowman_Scarf,Bowman Scarf,5,20,,200,,0,,0,0x00000800,2,2,136,,0,0,0,{ bonus bMaxSP,50; bonus bDex,3; if (isequipped(2726)) bonus bUseSPrate,-25; },{},{} +2727,Bowman_Scarf,Bowman Scarf,5,20,,200,,0,,0,0x00000800,2,2,136,,70,0,0,{ bonus bMaxSP,50; bonus bDex,3; if (isequipped(2726)) bonus bUseSPrate,-25; },{},{} 2728,Cursed_Hand,Cursed Hand,5,0,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus3 bAutoSpell,"NPC_CRITICALWOUND",1,30; bonus bHit,10; bonus bHPrecovRate,20; },{},{} 2729,Diabolus_Ring,Diabolus Ring,5,0,,50,,0,,1,0x000FDF80,2,2,136,,0,0,0,{ bonus bMaxHP,100; bonus bMaxSP,100; bonus bHealPower,5; bonus2 bAddDamageClass,1916,10; bonus2 bAddDamageClass,1917,10; },{},{} 2730,Morroc_Seal,Seal of Continental Guard,5,0,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bMaxHP,50; bonus bAspdRate,3; },{},{} @@ -2500,7 +2500,7 @@ 5292,Dragon_Skull,Dragon Skull,5,20,,800,,5,,0,0xFFFFFFFF,7,2,256,,50,1,319,{ bonus2 bSubRace,RC_Dragon,5; },{},{} 5293,Ramen_Hat,Ramen Hat,5,20,,0,,1,,0,0xFFFFFFFF,7,2,256,,0,1,320,{ bonus bDex,4; bonus4 bAutoSpellWhenHit,"AL_DECAGI",1,30,1; },{},{} 5294,Whisper_Mask,Whisper Mask,5,20,,0,,0,,0,0xFFFFFFFF,7,2,769,,0,0,321,{ bonus bAgi,3; bonus2 bSubEle,Ele_Ghost,-10; },{},{} -//5295,Golden_Bandana,Golden Bandana,5,20,,2400,,4,,0,0xFFFFFFFF,7,2,768,,,1,138,{ bonus bMdef,4; },{},{} +5295,Golden_Bandana,Golden Bandana,5,20,,2400,,4,,0,0xFFFFFFFF,7,2,768,,,1,138,{ bonus bMdef,4; },{},{} 5296,Drooping_Nine_Tail_,Drooping Nine Tail,5,20,,300,,1,,1,0xFFFFFFFF,7,2,256,,0,0,296,{ bonus bAgi,1; bonus bCritical,1; },{},{} 5297,Soulless_Wing_,Soul Wing,5,20,,300,,2,,1,0xFFFFFFFF,7,2,256,,0,0,301,{ bonus bAllStats,1; bonus2 bSPRegenRate,2,10000; },{},{} 5298,Marvelous_Wig_,Dokebi's Wig,5,20,,100,,1,,1,0xFFFFFFFF,7,2,768,,0,0,302,{ bonus2 bSubEle,Ele_Neutral,5; bonus2 bSubEle,Ele_Fire,-5; bonus2 bSubEle,Ele_Water,-5; },{},{} @@ -2512,22 +2512,22 @@ 5304,Cap_Of_Blindness,Cap Of Blindness,5,20,,800,,4,,1,0xFFFFFFFF,7,2,769,,50,1,326,{ bonus2 bResEff,Eff_Curse,700; bonus2 bResEff,Eff_Blind,10000; },{},{} 5305,Pirate_Dagger,Pirate Dagger,5,20,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,0,327,{ bonus bBaseAtk,5; },{},{} //5306,Freyja_Crown,Freya's Crown,5,0,,500,,12,,0,0xFFFFFFFE,7,2,256,,0,0,328,{ bonus2 bSubRace,RC_DemiHuman,5; },{},{} -5307,Carmen_Miranda's_Hat,Carmen Miranda's Hat,5,20,,400,,3,,0,0xFFFFFFFF,7,0,256,,0,1,329,{ bonus bMdef,3; bonus3 bAutoSpellWhenHit,"DC_WINKCHARM",1,50; },{},{} +//5307,Carmen_Miranda's_Hat,Carmen Miranda's Hat,5,20,,400,,3,,0,0xFFFFFFFF,7,0,256,,0,1,329,{ bonus bMdef,3; bonus3 bAutoSpellWhenHit,"DC_WINKCHARM",1,50; },{},{} //5308,Brazilian_Flag_Hat,Brazil National Flag Hat,5,20,,300,,3,,1,0xFFFFFFFF,7,0,256,,0,1,330,{ bonus bSpeedAddRate,25; },{},{} //5309,Mahican,Wool Mask,5,20,,200,,1,,0,0xFFFFFFFF,7,0,769,,0,1,331,{ skill "RG_GRAFFITI",1; },{},{} -5310,Bulb_Hairband,Shining Electric Bulb Hairband,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,0,332,{ bonus2 bSubEle,Ele_Dark,10; skill "MG_SIGHT",1; },{},{ sc_end SC_SIGHT; } -5311,Large_Hibiscus,Large Hisbiscus,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,0,333,{ bonus bMdef,15; },{},{} +//5310,Bulb_Hairband,Shining Electric Bulb Hairband,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,0,332,{ bonus2 bSubEle,Ele_Dark,10; skill "MG_SIGHT",1; },{},{ sc_end SC_SIGHT; } +//5311,Large_Hibiscus,Large Hisbiscus,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,0,333,{ bonus bMdef,15; },{},{} //5312,Ayothaya_Hat,Ayothaya King's Hat,5,20,,100,,5,,1,0x000654E2,7,2,256,,0,1,334,{ bonus bStr,1; bonus2 bAddRace,RC_DemiHuman,5; },{},{} 5313,Diadem,Diadem,5,20,,100,,3,,1,0xFFFFFFFF,7,2,768,,0,1,335,{ bonus bInt,1; bonus bMatkRate,3; bonus bCastrate,-3; },{},{} 5314,Hockey_Mask,Hockey Mask,5,20,,100,,1,,0,0xFFFFFFFF,7,2,513,,50,0,336,{ bonus2 bAddRace,RC_DemiHuman,5; },{},{} 5315,Observer,Observer,5,20,,100,,1,,0,0xFFFFFFFF,7,2,512,,35,0,337,{ skill "WZ_ESTIMATION",1; },{},{} -5316,Umbrella_Hat,Umbrella Hat,5,20,,100,,2,,0,0xFFFFFFFF,7,2,256,,50,1,338,{ bonus2 bSubEle,Ele_Water,3; },{},{} +//5316,Umbrella_Hat,Umbrella Hat,5,20,,100,,2,,0,0xFFFFFFFF,7,2,256,,50,1,338,{ bonus2 bSubEle,Ele_Water,3; },{},{} //5317,Fisherman_Hat,Fisherman's Hat,5,20,,100,,2,,0,0xFFFFFFFF,7,2,256,,50,1,339,{ bonus3 bAutoSpell,"WZ_WATERBALL",3,50; },{},{} 5318,Poring_Party_Hat,Poring Party Hat,5,20,,700,,2,,0,0xFFFFFFFF,7,2,256,,0,1,340,{ bonus bAllStats,3; },{},{} //5319,Hellomother_Hat,Hello Mother Hat,5,20,,200,,2,,0,0xFFFFFFFE,7,2,256,,10,1,341,{ bonus bLuk,3; },{},{} 5320,Champion_Wreath,Champion Wreath,5,20,,500,,4,,0,0xFFFFFFFF,7,2,256,,0,1,261,{ bonus bAllStats,2; bonus4 bAutoSpellWhenHit,"AL_HEAL",1,50,0; },{},{} //5321,Indonesian_Bandana,Bandana Merah Putih,5,20,,500,,4,,0,0xFFFFFFFF,7,2,256,,0,1,342,{ bonus2 bAddMonsterDropItem,518,100; },{},{} -5322,Scarf,Kerchief,5,20,,100,,2,,0,0xFFFFFFFF,7,2,256,,24,0,343,{ bonus bFlee,5; bonus bMdef,2; },{},{} +//5322,Scarf,Kerchief,5,20,,100,,2,,0,0xFFFFFFFF,7,2,256,,24,0,343,{ bonus bFlee,5; bonus bMdef,2; },{},{} 5323,Misstrance_Crown,Misstrance Crown,5,20,,0,,10,,0,0xFFFFFFFF,7,2,256,,1,0,165,{ bonus bAllStats,2; },{},{} 5324,Little_Angel_Doll,Little Angel Doll,5,20,,300,,2,,0,0xFFFFFFFF,7,2,256,,10,0,344,{ bonus bDex,3; bonus4 bAutoSpellWhenHit,"CR_GRANDCROSS",3,30,0; },{},{} 5325,Robo_Eye,Robo Eye,5,20,,200,,2,,0,0xFFFFFFFF,7,2,512,,10,0,345,{ bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bMatkRate,2; bonus bDex,1; },{},{} @@ -2540,7 +2540,7 @@ 5332,Loki_Mask,Loki Mask,5,0,,200,,0,,0,0xFFFFFFFF,7,2,513,,1,0,346,{ bonus bFlee2,3; },{},{} 5333,Radio_Antenna,Radio Antenna,5,0,,1500,,2,,0,0xFFFFFFFF,7,2,256,,50,0,347,{ bonus bMdef,5; bonus bCritical,5; bonus bFlee,5; skill "MG_LIGHTNINGBOLT",1; bonus4 bAutoSpellWhenHit,"MG_THUNDERSTORM",5,30,1; },{},{} 5334,Angeling_Wanna_Fly,Flapping Angeling,5,0,,700,,0,,0,0xFFFFFFFF,7,2,256,,38,1,348,{ bonus bLuk,2; bonus bMdef,2; },{},{} -5335,Jumping_Poring,Jumping Poring,5,0,,300,,2,,0,0xFFFFFFFF,7,2,256,,10,1,349,{ bonus bLuk,1; bonus bUnbreakableHelm,0; },{},{} +//5335,Jumping_Poring,Jumping Poring,5,0,,300,,2,,0,0xFFFFFFFF,7,2,256,,10,1,349,{ bonus bLuk,1; bonus bUnbreakableHelm,0; },{},{} 5336,Guildsman_Recruiter,Guildsman Recruiter Hat,5,,,0,,2,,0,0xFFFFFFFF,7,2,256,,10,1,350,{},{},{} 5337,Party_Recruiter_Hat,Party Recruiter Hat,5,0,,0,,2,,0,0xFFFFFFFF,7,2,256,,10,1,351,{},{},{} 5338,Bf_Recruiter_Hat,Bf Recruiter Hat,5,0,,0,,2,,0,0xFFFFFFFF,7,2,256,,10,1,352,{},{},{} @@ -2563,7 +2563,7 @@ 5355,Muslim_Hat_F,Selendang,5,20,,100,,2,,0,0xFFFFFFFE,7,0,256,,0,1,363,{ bonus bCastrate,-5; },{},{} 5356,Pumpkin_Hat_H,Festival Pumpkin Hat,5,20,,200,,2,,0,0xFFFFFFFF,7,2,256,,0,1,206,{ bonus2 bSubRace,RC_Demon,5; bonus2 bAddRace,RC_Demon,5; },{},{} 5357,Wings_Of_Victory,Wings Of Victory,5,20,,0,,10,,0,0xFFFFFFFF,7,2,768,,0,1,365,{ bonus bMdef,10; bonus bUnbreakableHelm,0; },{},{} -5358,Pecopeco_Wing_Ears,Peco Ears,5,20,,100,,1,,0,0xFFFFFFFF,7,2,512,,70,0,366,{ bonus bAgi,1; bonus bMdef,2; },{},{} +//5358,Pecopeco_Wing_Ears,Peco Ears,5,20,,100,,1,,0,0xFFFFFFFF,7,2,512,,70,0,366,{ bonus bAgi,1; bonus bMdef,2; },{},{} 5359,J_Captain_Hat,Ship Captain Hat,5,20,,500,,3,,1,0xFFFFFFFF,7,2,256,,30,1,367,{ bonus bLongAtkRate,7; bonus bMaxHP,100; },{},{} 5360,Whikebain_Ears,Hyuke's Black Cat Ears,5,20,,200,,2,,0,0xFFFFFFFF,7,2,256,,45,1,368,{ bonus bFlee,10; bonus bCritical,3; bonus2 bCriticalAddRace,RC_Boss,10; bonus2 bCriticalAddRace,RC_NonBoss,10; bonus bDefRate,-50; bonus bDef2Rate,-50; },{},{} 5361,Gang_Scarf,Gangster Scarf,5,20,,100,,0,,0,0xFFFFFFFF,7,2,1,,60,0,369,{ bonus bBaseAtk,5; if(BaseJob == Job_Rogue) skill "RG_GANGSTER",1; },{},{} @@ -2572,17 +2572,17 @@ 5364,Dark_Snake_Lord_Hat,Evil Snake Lord Hat,5,20,,500,,2,,1,0xFFFFFFFF,7,2,256,,60,1,372,{ bonus bStr,1; bonus bInt,1; bonus bAgi,2; },{},{} 5365,Fried_Egg,Magnolia Hat,5,20,,1000,,3,,1,0xFFFFFFFF,7,2,256,,0,0,373,{ bonus2 bResEff,Eff_Stun,500; skill "HT_FLASHER",1; },{},{} //5366,Hat_0f_King,Love Dad Bandana,5,20,,200,,3,,0,0xFFFFFFFF,7,2,256,,0,1,374,{ bonus bStr,2; },{},{} -5367,Hyegun_Hat,Hyegun Hat,5,20,,100,,5,,1,0xFFFFFFFF,7,2,769,,10,0,375,{ bonus bMdef,3; bonus2 bSubRace,RC_Demon,10; },{},{} +//5367,Hyegun_Hat,Hyegun Hat,5,20,,100,,5,,1,0xFFFFFFFF,7,2,769,,10,0,375,{ bonus bMdef,3; bonus2 bSubRace,RC_Demon,10; },{},{} 5368,White_Wing,White Wing,5,20,,100,,2,,0,0xFFFFFFFE,7,2,256,,0,1,38,{ bonus2 bAddMonsterDropItem,12280,300; },{},{} 5369,Dark_Wing,Dark Wing,5,20,,100,,1,,0,0xFFFFFFFE,7,2,256,,0,1,39,{ bonus2 bAddMonsterDropItem,12279,300; },{},{} -5370,Orchid_Hairband,Orchid Hairband,5,20,,200,,1,,0,0xFFFFFFFF,7,2,256,,0,1,376,{ bonus bInt,1; },{},{} -5371,Hat_Of_Judge,Judge Hat,5,20,,300,,2,,0,0xFFFFFFFF,7,2,256,,0,1,377,{ bonus bLuk,1; bonus bMaxSP,30; },{},{} +//5370,Orchid_Hairband,Orchid Hairband,5,20,,200,,1,,0,0xFFFFFFFF,7,2,256,,0,1,376,{ bonus bInt,1; },{},{} +//5371,Hat_Of_Judge,Judge Hat,5,20,,300,,2,,0,0xFFFFFFFF,7,2,256,,0,1,377,{ bonus bLuk,1; bonus bMaxSP,30; },{},{} 5372,Drooping_White_Kitty,Koneko Hat,5,20,,500,,1,,0,0xFFFFFFFF,7,2,256,,0,1,378,{ bonus bInt,1; bonus bDelayRate,-3; bonus bMatkRate,3; bonus bMaxSPrate,3; bonus bMdef,3; },{},{} 5373,Darkness_Helm,Dark Randgris Helm,5,20,,300,,2,,1,0xFFFFFFFF,7,2,768,,0,1,379,{ bonus bDex,4; bonus bMdef,1; },{},{} 5374,L_Magestic_Goat,Gigantic Majestic Goat,5,20,,800,,5,,0,0xFFFFFFFF,7,2,256,,0,1,380,{ bonus2 bAddRace,RC_DemiHuman,12; bonus bBaseAtk,(JobLevel*2)/7; },{},{} 5375,L_Orc_Hero_Helm,Orc Hero Headdress,5,20,,900,,5,,1,0xFFFFFFFF,7,2,768,,0,1,381,{ bonus bStr,3; bonus3 bAutoSpellWhenHit,"BS_WEAPONPERFECT",3,10; },{},{} //5376,Satanic_Chain_P,Flying Evil Wing,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,1,382,{ bonus bMaxSP,120; bonus3 bAddEffWhenHit,Eff_Curse,100,ATF_SELF; },{},{} -5377,Antique_Pipe,Gentleman's Pipe,5,20,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,0,383,{ bonus2 bSubRace,RC_DemiHuman,2; },{},{} +//5377,Antique_Pipe,Gentleman's Pipe,5,20,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,0,383,{ bonus2 bSubRace,RC_DemiHuman,2; },{},{} 5378,Rabbit_Ear_Hat,Bunny Top Hat,5,20,,300,,0,,0,0xFFFFFFFF,7,2,256,,0,1,384,{ bonus bAgi,3; bonus3 bAutoSpellWhenHit,"AL_INCAGI",5,10; },{},{} 5379,Balloon_Hat,Tam,5,20,,800,,3,,1,0xFFFFFFFF,7,2,256,,0,1,385,{ bonus bMatkRate,2+(getrefine()/2); },{},{} 5380,Fish_Head_Hat,Fish Head Hat,5,20,,400,,1,,0,0xFFFFFFFF,7,2,256,,0,1,386,{ bonus3 bAutoSpell,"SA_FROSTWEAPON",1,5; },{},{} @@ -2590,12 +2590,12 @@ 5382,Bell_Ribbon,Bell Ribbon,5,20,,200,,3,,1,0xFFFFFFFF,7,2,256,,0,1,388,{ bonus bVit,1; skill "AL_ANGELUS",1; },{},{ sc_end SC_ANGELUS; } 5383,Hunting_Cap,Hunter's Cap,5,20,,250,,3,,1,0xFFFFFFFE,7,2,256,,50,1,389,{ bonus bLuk,1; bonus2 bAddRace,RC_Brute,10; bonus2 bAddRace,RC_DemiHuman,5; },{},{} 5384,Santa_Hat_1,Twin Pompom By JB,5,20,,100,,1,,1,0xFFFFFFFE,7,2,256,,0,1,390,{ bonus bAllStats,1; skill "WZ_ESTIMATION",1; bonus3 bAutoSpell,"AL_INCAGI",1,500; },{},{} -5385,Yoyo_Hat,Yoyo Hat,5,20,,300,,1,,0,0xFFFFFFFF,7,2,256,,20,1,391,{ skill "TF_HIDING",1; },{},{ sc_end SC_HIDING; } +//5385,Yoyo_Hat,Yoyo Hat,5,20,,300,,1,,0,0xFFFFFFFF,7,2,256,,20,1,391,{ skill "TF_HIDING",1; },{},{ sc_end SC_HIDING; } 5386,Ayam_,Ayam,5,20,,70,,7,,0,0xFFFFFFFF,7,2,256,,0,0,228,{ bonus bMdef,7; bonus bFlee,7; bonus2 bAddMonsterDropItem,12198,200; },{},{} 5387,Neko_Mimi_Kafra,Neko Mimi Kafra,5,20,,200,,1,,1,0xFFFFFFFF,7,2,256,,30,1,392,{ bonus bMdef,5; },{},{} //5388,Snake_Head,Snake Head Hat,5,20,,200,,1,,1,0xFFFFFFFE,7,2,256,,30,1,393,{ bonus bDoubleRate,25; },{},{} 5389,Angel_Spirit,Angel Spirit,5,20,,200,,0,,0,0xFFFFFFFE,7,2,512,,30,0,394,{ bonus bHit,15; },{},{} -5390,Santa_Hat_2,Frozen Twin Pompom,5,20,,100,,2,,0,0xFFFFFFFE,7,2,256,,0,1,395,{ bonus2 bResEff,Eff_Freeze,3000; },{},{} +//5390,Santa_Hat_2,Frozen Twin Pompom,5,20,,100,,2,,0,0xFFFFFFFE,7,2,256,,0,1,395,{ bonus2 bResEff,Eff_Freeze,3000; },{},{} 5391,Toast_C,Toast,5,20,,100,,0,,0,0xFFFFFFFE,7,2,1,,0,0,188,{ bonus bMaxHP,100; bonus2 bAddMonsterDropItem,617,10; },{},{} //5392,Louyang_Cap,Louyang NewYear Hat,5,20,,300,,3,,1,0xFFFFFFFE,7,2,256,,0,1,396,{ bonus bLuk,2; bonus2 bAddMonsterDropItem,668,3; },{},{} //5393,Valentine_Hat,Love Valentine's Hat,5,20,,200,,2,,0,0xFFFFFFFE,7,2,256,,0,0,397,{ bonus bMaxSPrate,7; bonus bMaxHPrate,7; },{},{} @@ -2606,40 +2606,40 @@ 5398,Bone_Head,Bone Head,5,20,,1200,,5,,1,0x000444A2,2,2,256,,85,1,401,{ bonus bStr,2; bonus bMdef,5; bonus2 bResEff,Eff_Stun,500; bonus2 bResEff,Eff_Bleeding,500; },{},{} 5399,Mandragora_Cap,Mandragora Cap,5,20,,300,,1,,1,0xFFFFFFFF,2,2,256,,85,0,402,{ bonus bVit,3; bonus3 bAutoSpellWhenHit,"DC_SCREAM",5,30; },{},{} 5400,Fox_Hat,Fox Hat,5,20,,200,,1,,0,0xFFFFFFFF,7,0,769,,0,1,403,{ bonus bLuk,1; },{},{} -5401,Black_Glasses,Black Frame Glasses,5,20,,200,,1,,0,0xFFFFFFFF,7,2,512,,70,0,404,{ bonus bInt,1; bonus bMdef,2; },{},{} -5402,Mischievous_Fairy,Mischievous Fairy,5,20,,200,,1,,0,0xFFFFFFFF,7,2,512,,70,0,405,{ bonus bFlee2,3; },{},{} +//5401,Black_Glasses,Black Frame Glasses,5,20,,200,,1,,0,0xFFFFFFFF,7,2,512,,70,0,404,{ bonus bInt,1; bonus bMdef,2; },{},{} +//5402,Mischievous_Fairy,Mischievous Fairy,5,20,,200,,1,,0,0xFFFFFFFF,7,2,512,,70,0,405,{ bonus bFlee2,3; },{},{} 5403,Fish_In_Mouth,Fish In Mouth,5,20,,200,,0,,0,0xFFFFFFFF,7,2,1,,30,0,406,{ bonus2 bAddMonsterDropItem,579,500; bonus2 bAddItemHealRate,579,25; },{},{} -5404,Blue_Ribbon,Blue Ribbon,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,45,1,407,{ bonus4 bAutoSpellWhenHit,"AC_CONCENTRATION",2,7,0; },{},{} -5405,Filir_Hat,Filir Hat,5,20,,200,,0,,0,0xFFFFFFFF,7,2,256,,80,0,408,{ bonus bShortWeaponDamageReturn,1; },{},{} -5406,Academy_Freshman_Hat,Academy Freshman Hat,5,20,,200,,1,,0,0xFFFFFFFF,7,0,256,,0,,409,{ bonus bMaxHP,80; bonus bMaxSP,10; },{},{} -5407,Academy_Graduating_Cap,Academy Completion Hat,5,20,,200,,1,,1,0xFFFFFFFF,7,0,256,,0,,410,{ bonus bMaxSP,30; },{},{} +//5404,Blue_Ribbon,Blue Ribbon,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,45,1,407,{ bonus4 bAutoSpellWhenHit,"AC_CONCENTRATION",2,7,0; },{},{} +//5405,Filir_Hat,Filir Hat,5,20,,200,,0,,0,0xFFFFFFFF,7,2,256,,80,0,408,{ bonus bShortWeaponDamageReturn,1; },{},{} +//5406,Academy_Freshman_Hat,Academy Freshman Hat,5,20,,200,,1,,0,0xFFFFFFFF,7,0,256,,0,,409,{ bonus bMaxHP,80; bonus bMaxSP,10; },{},{} +//5407,Academy_Graduating_Cap,Academy Completion Hat,5,20,,200,,1,,1,0xFFFFFFFF,7,0,256,,0,,410,{ bonus bMaxSP,30; },{},{} 5408,Old_Bandanna,Old Bandana,5,20,,200,,5,,0,0xFFFFFFFF,7,0,256,,0,,6,{ bonus bInt,2; bonus bMaxSP,50; bonus bCastrate,10; },{},{} 5409,New_Cowboy_Hat,Purple Cowboy Hat,5,20,,500,,4,,1,0xFFFFFFFF,7,2,256,,0,1,411,{ bonus bMaxSP,50; bonus bInt,2; bonus bVit,2; },{},{} -5410,Bread_Bag2,Brown Paperbag Hat,5,20,,200,,6,,0,0xFFFFFFFF,7,2,769,,0,1,412,{ bonus bMaxHP,100; bonus2 bResEff,Eff_Stun,400; bonus2 bSubRace,RC_DemiHuman,4; },{},{} +//5410,Bread_Bag2,Brown Paperbag Hat,5,20,,200,,6,,0,0xFFFFFFFF,7,2,769,,0,1,412,{ bonus bMaxHP,100; bonus2 bResEff,Eff_Stun,400; bonus2 bSubRace,RC_DemiHuman,4; },{},{} //5411,White_Snake_Hat,White Snake Hat,5,20,,500,,2,,0,0xFFFFFFFF,7,2,256,,0,1,413,{ bonus bDex,2; },{},{} -5412,Sweet_Candy,Sweet Candy,5,20,,100,,1,,0,0xFFFFFFFF,7,2,1,,0,0,414,{},{},{} +//5412,Sweet_Candy,Sweet Candy,5,20,,100,,1,,0,0xFFFFFFFF,7,2,1,,0,0,414,{},{},{} //5413,Popcorn_Hat,Pop Corn Hat,5,20,,300,,2,,0,0xFFFFFFFF,7,2,256,,0,1,415,{ bonus2 bSubEle,Ele_Wind,10; },{},{} //5414,Campfire_Hat,Camp Fire Hat,5,20,,300,,2,,0,0xFFFFFFFF,7,2,256,,0,1,416,{ bonus4 bAutoSpellWhenHit,"MG_FIREBALL",5,100,1; bonus2 bSubEle,Ele_Fire,10; },{},{} 5415,Poring_Cake_Cap,Poring Cake Hat,5,20,,1000,,5,,0,0xFFFFFFFF,7,2,256,,40,1,417,{ bonus bMdef,5; bonus bCritical,5; bonus bFlee,5; bonus bFlee2,5; bonus bAspdRate,5; bonus bCastrate,-5; bonus bDelayRate,-5; },{},{} //5416,Beer_Cap,Beer Hat,5,20,,600,,2,,0,0xFFFFFFFE,7,2,256,,18,1,418,{ bonus bFlee2,5; skill "SM_RECOVERY",3; skill "MG_SRECOVERY",3; },{},{} -5417,Crown_Parrot,Crown Parrots,5,20,,200,,1,,1,0xFFFFFFFF,7,2,256,,0,0,419,{ bonus2 bResEff,Eff_Silence,10000; bonus3 bAutoSpell,"DC_SCREAM",1,50; bonus bInt,1; },{},{} -5418,Soldier_Hat,Legionnaire Hat,5,20,,400,,4,,1,0xFFFFFFFF,7,2,256,,0,1,420,{ bonus bStr,1; bonus2 bAddRace,RC_NonBoss,3; bonus2 bAddRace,RC_Boss,3; },{},{} +//5417,Crown_Parrot,Crown Parrots,5,20,,200,,1,,1,0xFFFFFFFF,7,2,256,,0,0,419,{ bonus2 bResEff,Eff_Silence,10000; bonus3 bAutoSpell,"DC_SCREAM",1,50; bonus bInt,1; },{},{} +//5418,Soldier_Hat,Legionnaire Hat,5,20,,400,,4,,1,0xFFFFFFFF,7,2,256,,0,1,420,{ bonus bStr,1; bonus2 bAddRace,RC_NonBoss,3; bonus2 bAddRace,RC_Boss,3; },{},{} 5419,Evolved_Leaf,Leaves Of Grass,5,,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,0,57,{ bonus bVit,1; bonus2 bSubRace,RC_Plant,5; },{},{} -//5420,Mask_Of_Ifrit,Mask Of Ifrit,5,,,0,,8,,0,0xFFFFFFFE,7,2,769,,70,0,421,{ bonus bStr,1; bonus bInt,1; bonus bMdef,5; bonus2 bSubEle,Ele_Fire,10; bonus2 bSubEle,Ele_Water,-10; skill "MG_SIGHT",1; bonus3 bAutoSpellWhenHit,"WZ_METEOR",3,50; bonus3 bAutoSpell,"MG_FIREBOLT",3,50; },{},{ sc_end SC_SIGHT; } +5420,Mask_Of_Ifrit,Mask Of Ifrit,5,,,0,,8,,0,0xFFFFFFFE,7,2,769,,70,0,421,{ bonus bStr,1; bonus bInt,1; bonus bMdef,5; bonus2 bSubEle,Ele_Fire,10; bonus2 bSubEle,Ele_Water,-10; skill "MG_SIGHT",1; bonus3 bAutoSpellWhenHit,"WZ_METEOR",3,50; bonus3 bAutoSpell,"MG_FIREBOLT",3,50; },{},{ sc_end SC_SIGHT; } 5421,Ifrit's_Ear,Ears Of Ifrit,5,,,0,,0,,0,0xFFFFFFFE,7,2,512,,70,0,422,{ bonus bStr,1; bonus bMdef,3; bonus2 bSkillAtk,"MG_FIREBOLT",2; bonus2 bSkillAtk,"WZ_FIREPILLAR",2; bonus2 bSkillAtk,"WZ_METEOR",2; bonus2 bSkillAtk,"SM_BASH",2; bonus2 bSkillAtk,"SM_MAGNUM",2; bonus2 bSkillAtk,"KN_PIERCE",2; bonus2 bSubEle,Ele_Fire,5; bonus2 bSubEle,Ele_Water,-5; },{},{} //5422,Linguistic_Book_Cap,Linguistic Book Hat,5,,,70,,0,,0,0xFFFFFFFF,7,2,256,,0,0,423,{ bonus bInt,1; bonus bMdef,2; },{},{} //5423,Lovecap_China,I Love China,5,,,250,,5,,0,0xFFFFFFFF,7,2,256,,0,0,424,{ bonus bDex,3; bonus2 bSubRace,RC_DemiHuman,10; },{},{} -5424,Fanta_Orange_Can,Fanta Orange Can Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,425,{},{},{} -5425,Fanta_Grape_Can,Fanta Grape Can Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,426,{},{},{} -5426,Karada_Meguri_Tea_Hat,Karada Meguricha Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,427,{ bonus bLuk,1; },{},{} -5427,Royal_Milk_Tea_Hat,Black Tea Kochakaden Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,428,{ bonus bAgi,1; },{},{} +//5424,Fanta_Orange_Can,Fanta Orange Can Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,425,{},{},{} +//5425,Fanta_Grape_Can,Fanta Grape Can Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,426,{},{},{} +//5426,Karada_Meguri_Tea_Hat,Karada Meguricha Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,427,{ bonus bLuk,1; },{},{} +//5427,Royal_Milk_Tea_Hat,Black Tea Kochakaden Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,428,{ bonus bAgi,1; },{},{} 5428,Bread_Bag1,RWC Anniversary Bread Envelope,5,,,100,,0,,0,0xFFFFFFFF,7,2,769,,0,1,429,{ bonus2 bSubRace,RC_DemiHuman,12; },{},{} //5429,Bogy_Cap,Bogy Cap,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,430,{ bonus bHPrecovRate,5; bonus bSPrecovRate,5; },{},{} -5430,Sacred_Torch_Coronet,Torch Cap,5,,,250,,3,,0,0xFFFFFFFF,7,2,256,,0,0,431,{ bonus2 bSubEle,Ele_Fire,20; skill "MG_FIREBOLT",5; },{},{} +//5430,Sacred_Torch_Coronet,Torch Cap,5,,,250,,3,,0,0xFFFFFFFF,7,2,256,,0,0,431,{ bonus2 bSubEle,Ele_Fire,20; skill "MG_FIREBOLT",5; },{},{} 5431,Chicken_Hat,Chicken Hat,5,,,100,,0,,1,0xFFFFFFFF,7,2,256,,30,0,432,{ bonus3 bAutoSpell,"MC_LOUD",1,30; bonus bAspdRate,5; },{},{} //5432,Brazil_Baseball_Cap,bRO 4th Anniversary Hat,5,,,100,,0,,0,0xFFFFFFFF,7,2,256,,0,0,433,{ bonus bAllStats,4; },{},{} //5433,Golden_Wreath,Golden Laurel,5,,,100,,0,,0,0xFFFFFFFF,7,2,256,,0,0,434,{},{},{} -5434,Coke_Hat,Coca Cola Can Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,435,{},{},{} +//5434,Coke_Hat,Coca Cola Can Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,435,{},{},{} 5435,Red_Minstrel_Hat,Red Minstrel Hat,5,,,100,,1,,1,0xFFFFFFFF,7,2,256,,40,1,436,{ bonus bInt,1; bonus bMaxSP,80; bonus bMdef,3; if(getrefine()>5) { bonus bMdef,getrefine()-5; bonus bMaxSP,(getrefine()-5)*10; } },{},{} 5436,Bride's_Corolla,Bride's Corolla,5,,,200,,1,,0,0xFFFFFFFF,7,2,256,,0,1,437,{ bonus bLuk,3; bonus bMdef,2; },{},{} 5437,Flower_Of_Fairy,Fairy Flower,5,,,200,,1,,1,0xFFFFFFFF,7,2,256,,0,1,438,{ bonus bInt,1; bonus bMdef,1; bonus2 bSubRace,RC_Insect,5; },{},{} @@ -2656,42 +2656,42 @@ 5448,Solo_Play_Box1,Soloplay Box1,5,,,300,,0,,1,0xFFFFFFFF,7,2,769,,0,1,449,{},{},{} 5449,Solo_Play_Box2,Soloplay Box2,5,,,300,,0,,1,0xFFFFFFFF,7,2,769,,0,1,450,{},{},{} //5450,Sun_Cap,Solar Hat,5,,,1000,,0,,0,0xFFFFFFFE,7,2,256,,20,1,451,{},{},{} -//5451,Dragonhelm_Gold,RWC 2008 Dragon Helm Gold,5,,,2500,,7,,0,0xFFFFFFFF,7,2,256,,0,0,452,{ bonus bAspdRate,10; bonus bAllStats,3; bonus2 bAddRace,RC_DemiHuman,5; },{},{} -//5452,Dragonhelm_Silver,RWC 2008 Dragon Helm Silver,5,,,2500,,5,,0,0xFFFFFFFF,7,2,256,,0,0,453,{ bonus bAspdRate,7; bonus bAllStats,2; bonus2 bAddRace,RC_DemiHuman,3; },{},{} -//5453,Dragonhelm_Copper,RWC 2008 Dragon Helm Copper,5,,,2500,,0,,0,0xFFFFFFFF,7,2,256,,0,0,454,{ bonus bAspdRate,5; bonus bAllStats,2; bonus2 bAddRace,RC_DemiHuman,1; },{},{} +5451,Dragonhelm_Gold,RWC 2008 Dragon Helm Gold,5,,,2500,,7,,0,0xFFFFFFFF,7,2,256,,0,0,452,{ bonus bAspdRate,10; bonus bAllStats,3; bonus2 bAddRace,RC_DemiHuman,5; },{},{} +5452,Dragonhelm_Silver,RWC 2008 Dragon Helm Silver,5,,,2500,,5,,0,0xFFFFFFFF,7,2,256,,0,0,453,{ bonus bAspdRate,7; bonus bAllStats,2; bonus2 bAddRace,RC_DemiHuman,3; },{},{} +5453,Dragonhelm_Copper,RWC 2008 Dragon Helm Copper,5,,,2500,,0,,0,0xFFFFFFFF,7,2,256,,0,0,454,{ bonus bAspdRate,5; bonus bAllStats,2; bonus2 bAddRace,RC_DemiHuman,1; },{},{} 5454,Dog_Cap_,Puppy Hat,5,,,500,,3,,1,0xFFFFFFFF,7,2,256,,0,1,234,{ autobonus "{ bonus bCritical,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; autobonus "{ bonus bIgnoreMdefRate,100; }",10,3000,BF_MAGIC,"{ specialeffect2 EF_MAGICALATTHIT; }"; },{},{} 5455,Geographer_Band_,Decorative Geographer,5,,,500,,1,,1,0xFFFFFFFF,7,2,256,,0,1,238,{ bonus3 bAutoSpell,"AL_HEAL",5,50; bonus3 bAutoSpellWhenHit,"AL_HEAL",5,30; },{},{} 5456,Vacation_Hat_,Summer Hat,5,,,200,,0,,1,0xFFFFFFFF,7,2,256,,0,1,315,{ bonus bHPrecovRate,20; bonus bSPrecovRate,15; },{},{} 5457,Spring_Rabbit_Hat,Moon Rabbit Hat,5,,,300,,2,,1,0xFFFFFFFE,7,2,256,,0,1,455,{ bonus bAgi,3; bonus bBaseAtk,5; bonus bMatkRate,5; if (getrefine()>4) { bonus bBaseAtk,getrefine()-4; bonus bMatkRate,getrefine()-4; } },{},{} -5458,Pinwheel_Cap,Pinwheel Hat,5,,,200,,2,,0,0xFFFFFFFF,7,2,256,,0,1,456,{ bonus bHPrecovRate,5; bonus bHPrecovRate,5; },{},{} +//5458,Pinwheel_Cap,Pinwheel Hat,5,,,200,,2,,0,0xFFFFFFFF,7,2,256,,0,1,456,{ bonus bHPrecovRate,5; bonus bHPrecovRate,5; },{},{} 5459,Drooping_Bunny_Chusuk,Drooping Bunny,5,,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,249,{ bonus bDex,1; bonus bFlee,2; },{},{} //5460,Adv_Dragon_Skull,Evolved Dragon Skull Hat,5,,,1000,,7,,0,0xFFFFFFFF,7,2,256,,60,1,457,{ bonus bAllStats,2; bonus bMaxHPrate,3; },{},{} //5461,Adv_Whisper_Mask,Evolved Whisper Mask,5,,,300,,1,,0,0xFFFFFFFF,7,2,769,,50,1,458,{ bonus bDex,3; bonus2 bSubEle,Ele_Ghost,20; },{},{} -//5462,Spiked_Scarf,Spiked Scarf,5,,,100,,1,,0,0xFFFFFFFF,7,2,1,,90,0,459,{ bonus bVit,1; bonus2 bAddRace,RC_DemiHuman,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{} -//5463,Rainbow_Scarf,Rainbow Scarf,5,,,100,,1,,0,0xFFFFFFFF,7,2,1,,90,0,460,{ bonus bInt,1; bonus bMdef,2; bonus bMatkRate,1; },{},{} +5462,Spiked_Scarf,Spiked Scarf,5,,,100,,1,,0,0xFFFFFFFF,7,2,1,,90,0,459,{ bonus bVit,1; bonus2 bAddRace,RC_DemiHuman,1; bonus2 bSubRace,RC_DemiHuman,1; },{},{} +5463,Rainbow_Scarf,Rainbow Scarf,5,,,100,,1,,0,0xFFFFFFFF,7,2,1,,90,0,460,{ bonus bInt,1; bonus bMdef,2; bonus bMatkRate,1; },{},{} //5464,Zaha_Doll_Hat,Zaha Doll Hat,5,,,0,,1,,0,0xFFFFFFFF,7,2,256,,0,0,461,{ bonus bInt,2; skill "PR_MAGNIFICAT",3; },{},{} -5465,Celestial_Hat,Hat Of Fortune,5,,,500,,3,,1,0xFFFFFFFF,7,2,256,,40,1,462,{ bonus bLuk,2; bonus bMdef,5; if(getrefine()>4) bonus bLuk,getrefine()-4; },{},{} -5466,Wind_Milestone,Wind Milestone,5,,,100,,2,,0,0xFFFFFFFF,7,2,256,,30,1,463,{ bonus bAgi,2; skill "AL_TELEPORT",1; },{},{} -5467,Helm_Of_Dragoon,Helm Of Dragon,5,,,200,,5,,0,0xFFFFFFFF,7,2,256,,50,1,464,{ bonus2 bAddRace,RC_Dragon,20; bonus3 bAutoSpell,"NPC_DRAGONFEAR",1,30; },{},{} +//5465,Celestial_Hat,Hat Of Fortune,5,,,500,,3,,1,0xFFFFFFFF,7,2,256,,40,1,462,{ bonus bLuk,2; bonus bMdef,5; if(getrefine()>4) bonus bLuk,getrefine()-4; },{},{} +//5466,Wind_Milestone,Wind Milestone,5,,,100,,2,,0,0xFFFFFFFF,7,2,256,,30,1,463,{ bonus bAgi,2; skill "AL_TELEPORT",1; },{},{} +//5467,Helm_Of_Dragoon,Helm Of Dragon,5,,,200,,5,,0,0xFFFFFFFF,7,2,256,,50,1,464,{ bonus2 bAddRace,RC_Dragon,20; bonus3 bAutoSpell,"NPC_DRAGONFEAR",1,30; },{},{} 5468,Parade_Cap,Parade Hat,5,,,800,,3,,0,0xFFFFFFFF,7,2,256,,1,1,465,{ bonus bDelayRate,-5; bonus bMdef,2; if(getrefine()>5) bonus bCastrate,-(getrefine()-5); },{},{} -5469,Noble_Hat,Musketeer Hat,5,,,300,,2,,0,0xFFFFFFFF,7,2,256,,30,1,466,{ bonus bStr,2; bonus3 bAutoSpellWhenHit,"BS_ADRENALINE",1,7; },{},{} -5470,Eyes_Of_Darkness,Eye Of Darkness,5,,,100,,1,,0,0xFFFFFFFF,7,2,512,,50,1,467,{ bonus bDex,1; bonus2 bResEff,Eff_Blind,10000; },{},{} -5471,Hairband_Of_Reginleif,Hairband Of Reginleif,5,,,800,,1,,0,0xFFFFFFFF,7,2,512,,50,0,468,{ bonus2 bSubEle,Ele_Water,3; bonus2 bSubEle,Ele_Fire,3; bonus2 bSubEle,Ele_Undead,3; bonus2 bSubEle,Ele_Ghost,3; },{},{} -5472,Red_White_Hat,Red Hat,5,,,100,,0,,0,0xFFFFFFFF,7,2,256,,0,1,469,{ bonus3 bAddMonsterDropItem,550,RC_DemiHuman,3; },{},{} -5473,Forceps_Hairpin,Nipper Crab Hairpin,5,,,500,,4,,0,0xFFFFFFFF,7,2,256,,30,1,470,{ bonus3 bAutoSpellWhenHit,"MG_COLDBOLT",1,100; bonus3 bAddMonsterDropItem,991,RC_Fish,3; },{},{} -5474,Notice_Board,AFK Hat,5,,,700,,2,,0,0xFFFFFFFF,7,2,256,,10,1,471,{},{},{} -5475,Cube_Mask,Mask Cube,5,,,100,,1,,0,0xFFFFFFFF,7,2,513,,0,1,472,{},{},{} +//5469,Noble_Hat,Musketeer Hat,5,,,300,,2,,0,0xFFFFFFFF,7,2,256,,30,1,466,{ bonus bStr,2; bonus3 bAutoSpellWhenHit,"BS_ADRENALINE",1,7; },{},{} +//5470,Eyes_Of_Darkness,Eye Of Darkness,5,,,100,,1,,0,0xFFFFFFFF,7,2,512,,50,0,467,{ bonus bDex,1; bonus2 bResEff,Eff_Blind,10000; },{},{} +//5471,Hairband_Of_Reginleif,Hairband Of Reginleif,5,,,800,,1,,0,0xFFFFFFFF,7,2,512,,50,0,468,{ bonus2 bSubEle,Ele_Water,3; bonus2 bSubEle,Ele_Fire,3; bonus2 bSubEle,Ele_Undead,3; bonus2 bSubEle,Ele_Ghost,3; },{},{} +//5472,Red_White_Hat,Red Hat,5,,,100,,0,,0,0xFFFFFFFF,7,2,256,,0,1,469,{ bonus3 bAddMonsterDropItem,550,RC_DemiHuman,3; },{},{} +//5473,Forceps_Hairpin,Nipper Crab Hairpin,5,,,500,,4,,0,0xFFFFFFFF,7,2,256,,30,1,470,{ bonus3 bAutoSpellWhenHit,"MG_COLDBOLT",1,100; bonus3 bAddMonsterDropItem,991,RC_Fish,3; },{},{} +//5474,Notice_Board,AFK Hat,5,,,700,,2,,0,0xFFFFFFFF,7,2,256,,10,1,471,{},{},{} +//5475,Cube_Mask,Mask Cube,5,,,100,,1,,0,0xFFFFFFFF,7,2,513,,0,1,472,{},{},{} 5476,Hairband_Of_Grandpeco,Grand Peco Hairband,5,,,800,,2,,0,0xFFFFFFFF,7,2,768,,30,1,473,{ bonus bStr,2; bonus bMaxHPrate,-10; bonus2 bAddRace2,3,15; },{},{} //5477,Bro_Flag,Brazilian Flag Hat,5,,,100,,1,,0,0xFFFFFFFF,7,2,256,,30,1,474,{ skill "SM_BASH",1; },{},{} -5478,Classic_Hat,Classic Hat,5,,,500,,3,,1,0xFFFFFFFF,7,2,256,,0,1,475,{ bonus bStr,2; bonus bMaxHP,300; },{},{} +//5478,Classic_Hat,Classic Hat,5,,,500,,3,,1,0xFFFFFFFF,7,2,256,,0,1,475,{ bonus bStr,2; bonus bMaxHP,300; },{},{} 5479,Shaman's_Hair_Ornament,Shaman's Hair Decoration,5,,,300,,1,,0,0xFFFFFFFF,7,2,256,,30,1,476,{ bonus bMdef,3; bonus bMaxHP,50; bonus2 bSubEle,Ele_Neutral,5; if(isequipped(2777,2778)) { bonus bMaxHP,300; bonus bMatkRate,5; bonus2 bSubEle,Ele_Neutral,5; } },{},{} 5480,Bizofnil_Wing_Deco,Bijofnil Wings,5,,,1000,,3,,1,0xFFFFFFFF,7,2,256,,30,1,477,{ bonus3 bAutoSpell,"PR_IMPOSITIO",3,3; },{},{} 5481,Hermose_Cap,Hermode Cap,5,,,1000,,1,,1,0xFFFFFFFF,7,2,256,,1,1,478,{ bonus bAspdRate,10; bonus bBaseAtk,-20; bonus bMatkRate,-10; },{},{} 5482,Dark_Knight_Mask,Dark Knight Mask,5,,,3000,,5,,0,0xFFFFFFFF,7,2,769,,80,1,479,{ bonus bStr,3; if(isequipped(2779,2780)) { bonus bMatkRate,10; bonus bInt,5; bonus2 bSubRace,RC_Angel,10; } },{},{} -5483,Odin_Mask,Odin Mask,5,,,100,,1,,0,0xFFFFFFFE,7,2,512,,50,1,480,{ bonus bHit,-10; bonus2 bAddRace,RC_Demihuman,6; },{},{} +5483,Odin_Mask,Odin Mask,5,,,100,,1,,0,0xFFFFFFFE,7,2,513,,50,0,480,{ bonus bHit,-10; bonus2 bAddRace,RC_Demihuman,6; },{},{} //5484,Taiwan_Flag_Hat,Holidays Hat,5,,,500,,4,,0,0xFFFFFFFF,7,2,256,,0,1,482,{ bonus bAllStats,5; bonus2 bResEff,Eff_Stun,500; },{},{} -5485,Tiger_Face,Tiger Face,5,,,1000,,3,,0,0xFFFFFFFF,7,2,769,,60,1,483,{ bonus2 bSubRace,RC_Brute,5; bonus2 bAddRace,RC_Brute,5; bonus2 bMagicAddRace,RC_Brute,5; },{},{} -5486,J_Anniversary_Hat,Anniversary Hat,5,,,300,,3,,0,0xFFFFFFFF,7,2,256,,0,1,395,{ bonus bAllStats,2; },{},{} +//5485,Tiger_Face,Tiger Face,5,,,1000,,3,,0,0xFFFFFFFF,7,2,769,,60,1,483,{ bonus2 bSubRace,RC_Brute,5; bonus2 bAddRace,RC_Brute,5; bonus2 bMagicAddRace,RC_Brute,5; },{},{} +//5486,J_Anniversary_Hat,Anniversary Hat,5,,,300,,3,,0,0xFFFFFFFF,7,2,256,,0,1,395,{ bonus bAllStats,2; },{},{} 5487,J_Poringcake_Hat,Poring Cake Hat,5,,,500,,1,,0,0xFFFFFFFF,7,2,256,,0,1,417,{ bonus bLuk,2; },{},{} 5488,J_Twin_Santahat,Twin Santa Hat,5,,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,390,{ bonus bLuk,1; bonus bMdef,1; },{},{} //5489,Love_Daddy,Love Daddy Hat,5,,,100,,0,,0,0xFFFFFFFF,7,2,256,,0,1,484,{ bonus bDex,2; },{},{} @@ -2703,48 +2703,48 @@ //5495,Power_Of_Thor,Power Of Thor,5,0,,500,,6,,1,0xFFFFFFFF,7,2,256,,75,0,493,{ bonus bFlee,5; bonus bAllStats,1; },{},{} //5496,Dice_Hat,Dice Hat,5,0,,500,,3,,0,0xFFFFFFFF,7,2,256,,50,0,494,{ bonus bLuk,4; },{},{} //5497,King_Tiger_Doll_Hat,King Tiger Doll Hat,5,0,,400,,3,,1,0xFFFFFFFF,7,2,256,,30,0,495,{ bonus bStr,2; },{},{} -5498,Wondering_Wolf_King_Hel,Wandering Wolf Hat,5,,,600,,5,,0,0xFFFFFFFE,7,2,768,,50,0,490,{ bonus bFlee,10; bonus bVit,5; },{},{} -5499,Pizza_Hat,Pizza Hat,5,20,,6000,,0,,0,0xFFFFFFFF,7,2,256,,0,1,487,{ skill "SM_PROVOKE",1; },{},{} -5500,Icecream_Hat,Icecream Hat,5,20,,300,,1,,0,0xFFFFFFFF,7,2,256,,30,1,488,{ skill "MG_FROSTDIVER",3; bonus bMdef,3; },{},{} -5501,Pirate's_Pride,Pirate's Pride,5,20,,100,,3,,0,0xFFFFFFFF,7,2,256,,10,1,496,{ bonus2 bAddRace2,6,5; bonus2 bSubRace2,6,5; },{},{} +//5498,Wondering_Wolf_King_Hel,Wandering Wolf Hat,5,,,600,,5,,0,0xFFFFFFFE,7,2,768,,50,0,490,{ bonus bFlee,10; bonus bVit,5; },{},{} +//5499,Pizza_Hat,Pizza Hat,5,20,,6000,,0,,0,0xFFFFFFFF,7,2,256,,0,1,487,{ skill "SM_PROVOKE",1; },{},{} +//5500,Icecream_Hat,Icecream Hat,5,20,,300,,1,,0,0xFFFFFFFF,7,2,256,,30,1,488,{ skill "MG_FROSTDIVER",3; bonus bMdef,3; },{},{} +//5501,Pirate's_Pride,Pirate's Pride,5,20,,100,,3,,0,0xFFFFFFFF,7,2,256,,10,1,496,{ bonus2 bAddRace2,6,5; bonus2 bSubRace2,6,5; },{},{} 5502,Necromencer's_Hood,Necromancer's Hood,5,,,100,,2,,1,0xFFFFFFFF,7,2,768,,10,1,491,{ bonus5 bAutoSpellWhenHit,"NPC_DARKSTRIKE",5,5,BF_WEAPON|BF_MAGIC,1; },{},{} 5503,Rabbit_Magic_Hat,Magic Rabit Hat,5,20,,800,,2,,0,0xFFFFFFFF,7,2,256,,0,1,497,{ bonus bDex,2; bonus bAgi,2; bonus bMDef,1; bonus bMaxSP,50; bonus3 bAutoSpellWhenHit,"MG_FIREBOLT",1,10; bonus3 bAutoSpellWhenHit,"MG_COLDBOLT",1,10; bonus3 bAutoSpellWhenHit,"MG_LIGHTNINGBOLT",1,10; },{},{} -5504,China_Wedding_Veil,Wedding Weil,5,20,,500,,1,,0,0xFFFFFFFF,7,2,768,,70,1,489,{ bonus bMDef,10; },{},{} +//5504,China_Wedding_Veil,Wedding Weil,5,20,,500,,1,,0,0xFFFFFFFF,7,2,768,,70,1,489,{ bonus bMDef,10; },{},{} 5505,Asara_Fairy_Hat,Asara Fairy Hat,5,20,,500,,2,,0,0xFFFFFFFF,7,2,256,,50,1,492,{ skill "DC_DONTFORGETME",1; bonus bDex,2; bonus bLuk,2; },{},{} -5506,Blue_Pajamas_Hat,Blue Night Cap,5,20,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,501,{ bonus bBaseAtk,5; bonus bMatkRate,5; },{},{} -5507,Pink_Pajamas_Hat,Pink Night Cap,5,20,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,502,{ bonus bBaseAtk,5; bonus bMatkRate,5; },{},{} +//5506,Blue_Pajamas_Hat,Blue Night Cap,5,20,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,501,{ bonus bBaseAtk,5; bonus bMatkRate,5; },{},{} +//5507,Pink_Pajamas_Hat,Pink Night Cap,5,20,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,502,{ bonus bBaseAtk,5; bonus bMatkRate,5; },{},{} 5508,Shark_Hat,Shark Hat,5,,,500,,3,,0,0xFFFFFFFF,7,2,256,,0,1,503,{ bonus bStr,1; bonus bAgi,2; bonus bMdef,1; bonus2 bAddEle,Ele_Water,5; bonus2 bSubEle,Ele_Water,10; },{},{} 5509,Sting_Hat,Sting hat,5,20,,100,,5,,0,0xFFFFFFFF,7,2,256,,0,1,504,{ bonus bStr,2; bonus bVit,1; bonus bMDef,3; bonus2 bAddEle,Ele_fire,5; bonus2 bSubEle,Ele_earth,5; bonus3 bAutoSpell,"WZ_EARTHSPIKE",1,10; },{},{} -5510,Shower_Cap,Shower Cap,5,20,,0,,2,,0,0xFFFFFFFF,7,2,256,,0,1,507,{ bonus bMdef,3; bonus bFlee,3; bonus2 bAddEle,Ele_Water,10; bonus2 bSubRace,rc_fish,10; },{},{} +//5510,Shower_Cap,Shower Cap,5,20,,0,,2,,0,0xFFFFFFFF,7,2,256,,0,1,507,{ bonus bMdef,3; bonus bFlee,3; bonus2 bAddEle,Ele_Water,10; bonus2 bSubRace,rc_fish,10; },{},{} 5511,Samambaia,Samambaia,5,,,1000,,5,,1,0xFFFFFFFF,7,2,768,,30,1,508,{ bonus bSPrecovRate,8; },{},{} -5512,Aquarius_Diadem,Aquarius Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,509,{ bonus bStr,2; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; } },{},{} -5513,Aquarius_Crown,Aquarius Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,510,{ bonus bStr,2; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; } },{},{} -5514,Pisces_Diadem,Pisces Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,511,{ bonus bInt,2; bonus bMDef,5; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bMatkRate,2; } },{},{} -5515,Pisces_Crown,Pisces Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,512,{ bonus bInt,2; bonus bMDef,5; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bMatkRate,2; } },{},{} -//5516,Hawk_Eyes01,hawk Eyes,5,20,,800,,1,,0,0xFFFFFFFF,7,2,256,,0,1,497,{},{},{} -//5517,Hawk_Eyes02,Hawk Eyes,5,20,,800,,1,,0,0xFFFFFFFF,7,2,256,,0,1,497,{},{},{} -5518,L_Magestic_Goat2,Gigantic Majestic Goat,5,20,,800,,5,,0,0xFFFFFFFF,7,2,256,,50,1,513,{ bonus2 bSubRace,RC_DemiHuman,12; bonus bBaseAtk,(JobLevel*2)/7; },{},{} -5519,Peacock_Feather,Peacock Feather,5,20,,800,,2,,1,0xFFFFFFFF,7,2,256,,0,1,514,{ bonus bInt,2; },{},{} +//5512,Aquarius_Diadem,Aquarius Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,509,{ bonus bStr,2; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; } },{},{} +//5513,Aquarius_Crown,Aquarius Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,510,{ bonus bStr,2; bonus bFlee,10; bonus2 bSubEle,Ele_Wind,5; if(getrefine()>6) { bonus bDef,1; bonus bBaseAtk,15; } },{},{} +//5514,Pisces_Diadem,Pisces Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,511,{ bonus bInt,2; bonus bMDef,5; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bMatkRate,2; } },{},{} +//5515,Pisces_Crown,Pisces Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,512,{ bonus bInt,2; bonus bMDef,5; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bMatkRate,2; } },{},{} +5516,Hawk_Eyes01,hawk Eyes,5,20,,800,,1,,0,0xFFFFFFFF,7,2,256,,0,1,497,{},{},{} +5517,Hawk_Eyes02,Hawk Eyes,5,20,,800,,1,,0,0xFFFFFFFF,7,2,256,,0,1,497,{},{},{} +//5518,L_Magestic_Goat2,Gigantic Majestic Goat,5,20,,800,,5,,0,0xFFFFFFFF,7,2,256,,50,1,513,{ bonus2 bSubRace,RC_DemiHuman,12; bonus bBaseAtk,(JobLevel*2)/7; },{},{} +//5519,Peacock_Feather,Peacock Feather,5,20,,800,,2,,1,0xFFFFFFFF,7,2,256,,0,1,514,{ bonus bInt,2; },{},{} 5520,Rabbit_Earplug,Rabbit Earplugs,5,,,400,,0,,1,0xFFFFFFFF,7,2,768,,1,1,515,{ bonus2 bAddRace,RC_NonBoss,4; bonus2 bAddRace,RC_Boss,4; bonus bMatkRate,4; },{},{} 5521,Angry_Mouth_C,Angry Mouth,5,0,,0,,0,,0,0xFFFFFFFF,7,2,1,,0,0,194,{ bonus bDelayRate,-3; },{},{} -5522,Fanta_Zero_Lemon_Hat,Fanta Zero Lemon Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,516,{},{},{} -5523,Sakura_Mist_Hat,Sakura Mist Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,517,{ bonus bDex,1; },{},{} -5524,Sakura_Milk_Tea_Hat,Sakura Milk Tea Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,518,{ bonus bVit,1; },{},{} -5525,First_Leaf_Tea_Hat,Flower Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,519,{ bonus bMaxHP,80; bonus bMaxSP,20; },{},{} -5526,Lady_Tanee_Doll,Tanigumi Girl Doll,5,,,300,,2,,0,0xFFFFFFFF,7,2,256,,60,1,520,{ bonus bAgi,2; bonus bFlee,3; bonus2 bAddEle,Ele_Wind,-5; bonus2 bAddMonsterDropItem,513,200; },{},{} +//5522,Fanta_Zero_Lemon_Hat,Fanta Zero Lemon Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,516,{},{},{} +//5523,Sakura_Mist_Hat,Sakura Mist Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,517,{ bonus bDex,1; },{},{} +//5524,Sakura_Milk_Tea_Hat,Sakura Milk Tea Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,518,{ bonus bVit,1; },{},{} +//5525,First_Leaf_Tea_Hat,Flower Hat,5,,,100,,2,,1,0xFFFFFFFF,7,2,256,,0,1,519,{ bonus bMaxHP,80; bonus bMaxSP,20; },{},{} +//5526,Lady_Tanee_Doll,Tanigumi Girl Doll,5,,,300,,2,,0,0xFFFFFFFF,7,2,256,,60,1,520,{ bonus bAgi,2; bonus bFlee,3; bonus2 bAddEle,Ele_Wind,-5; bonus2 bAddMonsterDropItem,513,200; },{},{} 5527,Lunatic_Hat,Lunatic Hat,5,,,300,,2,,0,0xFFFFFFFF,7,2,256,,0,1,521,{ bonus bLuk,5; bonus bMdef,2; bonus bFlee2,5; bonus2 bAddMonsterDropItem,622,50; },{},{} -5528,King_Frog_Hat,Frog King Hat,5,,,500,,2,,1,0xFFFFFFFE,7,2,256,,30,1,522,{ bonus bAgi,1; },{},{} +//5528,King_Frog_Hat,Frog King Hat,5,,,500,,2,,1,0xFFFFFFFE,7,2,256,,30,1,522,{ bonus bAgi,1; },{},{} 5529,Evil's_Bone_Hat,Satanic Bone Helm,5,20,,600,,6,,1,0xFFFFFFFF,7,2,256,,70,1,523,{ bonus bDex,3; bonus2 bSubEle,Ele_Neutral,5; skill "WZ_FROSTNOVA",1; },{},{} -5530,Raven_Cap,Raven Cap,5,20,,300,,3,,1,0xFFFFFFFF,7,2,256,,30,1,524,{},{},{} -5531,B_Dragon_Hat,Baby Dragon Hat,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,1,525,{},{},{} -5532,Pirate_Dagger_J,Pirate Dagger,5,,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,1,327,{ bonus bShortWeaponDamageReturn,1; },{},{} +//5530,Raven_Cap,Raven Cap,5,20,,300,,3,,1,0xFFFFFFFF,7,2,256,,30,1,524,{},{},{} +//5531,B_Dragon_Hat,Baby Dragon Hat,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,1,525,{},{},{} +//5532,Pirate_Dagger_J,Pirate Dagger,5,,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,1,327,{ bonus bShortWeaponDamageReturn,1; },{},{} 5533,Emperor_Wreath_J,Emperor Wreath,5,,,800,,3,,1,0xFFFFFFFF,7,2,256,,80,1,261,{ bonus bAllStats,1; },{},{} 5534,Fox_Hat_J,Fox Hat,5,20,,100,,1,,0,0xFFFFFFFF,7,0,769,,70,1,403,{ bonus bAgi,1; bonus bFlee2,2; },{},{} 5535,Side_Cap,Side Cap,5,20,,500,,3,,0,0xFFFFFFFF,7,2,256,,0,1,529,{ bonus2 bSubRace,RC_DemiHuman,5; bonus2 bAddRace,RC_DemiHuman,3; },{},{} 5536,Spare_Card,Spare Card,5,20,,10,,1,,0,0xFFFFFFFF,7,2,1,,10,1,526,{ bonus2 bAddMonsterDropItem,6187,1000; },{},{} -5537,Kwati_Hat,Kwati Hat,5,20,,700,,1,,1,0xFFFFFFFF,7,2,256,,45,0,527,{ bonus bAgi,3; },{},{} -5538,Tucano_Hat,Tucano Hat,5,20,,600,,2,,1,0xFFFFFFFF,7,2,256,,45,0,528,{ bonus bDex,3; },{},{} -5539,Jaguar_Hat,Jaguar Hat,5,20,,400,,4,,1,0xFFFFFFFF,7,2,769,,25,1,530,{ bonus bMdef,2; skill "MC_LOUD",1; },{},{} +//5537,Kwati_Hat,Kwati Hat,5,20,,700,,1,,1,0xFFFFFFFF,7,2,256,,45,0,527,{ bonus bAgi,3; },{},{} +//5538,Tucano_Hat,Tucano Hat,5,20,,600,,2,,1,0xFFFFFFFF,7,2,256,,45,0,528,{ bonus bDex,3; },{},{} +//5539,Jaguar_Hat,Jaguar Hat,5,20,,400,,4,,1,0xFFFFFFFF,7,2,769,,25,1,530,{ bonus bMdef,2; skill "MC_LOUD",1; },{},{} 5540,Freya_Soul_Circlet1,Freya Soul Circlet,5,20,,700,,4,,0,0xFFFFFFFF,7,2,256,,20,1,18,{ bonus bStr,1; bonus bint,1; bonus bDex,1; },{},{} 5541,Freya_Soul_Circlet2,Freya Soul Circlet,5,20,,700,,4,,0,0xFFFFFFFF,7,2,256,,20,1,18,{ bonus bStr,1; bonus bint,1; bonus bDex,1; },{},{} 5542,Freya_Soul_Circlet3,Freya Soul Circlet,5,20,,700,,4,,0,0xFFFFFFFF,7,2,256,,20,1,18,{ bonus bStr,1; bonus bint,1; bonus bDex,1; },{},{} @@ -2752,26 +2752,26 @@ 5544,Guardian_Hat,Guardian Hat,5,20,,400,,1,,0,0xFFFFFFFF,7,2,256,,0,1,240,{ bonus bInt,1; bonus bMaxSP,50; },{},{} 5545,Aries_Diadem,Aries Diadem,5,20,,400,,3,,0,0xFFFFFFFF,7,2,256,,70,1,531,{ bonus bVit,2; bonus2 bSubEle,Ele_fire,5; if(getrefine()>6) { bonus bDef,1; bonus bVit,1; } },{},{} 5546,Aries_Crown,Aries Crown,5,20,,100,,3,,0,0xFFFFFFFF,7,2,256,,70,1,532,{ bonus bVit,2; bonus2 bSubEle,Ele_fire,5; if(getrefine()>6) { bonus bDef,1; bonus bVit,1; } },{},{} -5547,RJC_Katyusha_Flower,RJC Katyusha Flower,5,20,,200,,1,,1,0xFFFFFFFF,7,2,256,,0,1,533,{ bonus2 bSkillAtk,"WZ_HEAVENDRIVE",15+getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillAtk,"WZ_HEAVENDRIVE",15+getequiprefinerycnt(EQI_HAND_R); bonus bCastRate,-25; },{},{} -5548,Rose_Of_Crimson,Rose Of Crimson,5,20,,100,,1,,0,0xFFFFFFFF,7,2,1,,50,1,534,{ bonus bLuk,1; },{},{} -5549,Taurus_Diadem,Taurus Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,535,{ bonus bDex,2; bonus bDelayRate,-2; bonus2 bSubEle,Ele_earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; } },{},{} -5550,Taurus_Crown,Taurus Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,536,{ bonus bDex,2; bonus bDelayRate,-2; bonus2 bSubEle,Ele_earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; } },{},{} +//5547,RJC_Katyusha_Flower,RJC Katyusha Flower,5,20,,200,,1,,1,0xFFFFFFFF,7,2,256,,0,1,533,{ bonus2 bSkillAtk,"WZ_HEAVENDRIVE",15+getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillAtk,"WZ_HEAVENDRIVE",15+getequiprefinerycnt(EQI_HAND_R); bonus bCastRate,-25; },{},{} +//5548,Rose_Of_Crimson,Rose Of Crimson,5,20,,100,,1,,0,0xFFFFFFFF,7,2,1,,50,1,534,{ bonus bLuk,1; },{},{} +//5549,Taurus_Diadem,Taurus Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,535,{ bonus bDex,2; bonus bDelayRate,-2; bonus2 bSubEle,Ele_earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; } },{},{} +//5550,Taurus_Crown,Taurus Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,536,{ bonus bDex,2; bonus bDelayRate,-2; bonus2 bSubEle,Ele_earth,5; if(getrefine()>6) { bonus bDex,1; bonus bMatkRate,1; } },{},{} //5551,Holy_Egg_Hat,Holy Egg Hat,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,537,{},{},{} 5552,Festival_Grand_Circlet,Festival Grand Circlet,5,20,,0,,8,,0,0xFFFFFFFF,7,2,256,,0,1,93,{ bonus bStr,3; bonus bInt,3; bonus bMDef,3; },{},{} 5553,Festival_Bunny_Band,Festival Bunny Band,5,20,,0,,7,,0,0xFFFFFFFF,7,2,256,,0,1,15,{ bonus bMDef,4; bonus2 bSubRace,RC_DemiHuman,9; },{},{} 5554,Octopus_Hat,Octopus Hat,5,20,,200,,3,,0,0xFFFFFFFF,7,2,256,,20,1,538,{ bonus3 bAutoSpell,"SM_PROVOKE",5,10; bonus bUnbreakableHelm,0; },{},{} 5555,Leaf_Cat_Hat,Leaf Cat Hat,5,20,,100,,3,,0,0xFFFFFFFF,7,2,256,,0,1,539,{ bonus bAgi,1; bonus3 bAutoSpellWhenHit,"AL_HEAL",3,10; },{},{} 5556,Seal_Hat,Seal Hat,5,20,,500,,3,,0,0xFFFFFFFF,7,2,769,,55,1,540,{ bonus bInt,1; bonus3 bAutoSpell,"WZ_FROSTNOVA",1,30; },{},{} -5557,Wild_Rose_Hat,Wild Rose Hat,5,20,,500,,3,,1,0xFFFFFFFE,7,2,256,,20,1,541,{ bonus bAgi,3; },{},{} -5558,Luxury_Hat,Luxury Hat,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,30,1,542,{ bonus3 bAddMonsterDropItem,511,RC_Plant,500; },{},{} +//5557,Wild_Rose_Hat,Wild Rose Hat,5,20,,500,,3,,1,0xFFFFFFFE,7,2,256,,20,1,541,{ bonus bAgi,3; },{},{} +//5558,Luxury_Hat,Luxury Hat,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,30,1,542,{ bonus3 bAddMonsterDropItem,511,RC_Plant,500; },{},{} 5559,Piece_Of_White_Cloth,Piece Of White Cloth,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,543,{},{},{} 5560,Bullock_Helm_,Bullock Helm,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,75,1,322,{ bonus bMaxHP,100; bonus bNoKnockback,0; bonus2 bSubEle,Ele_Neutral,-20; bonus2 bSubEle,Ele_Fire,-20; bonus2 bSubEle,Ele_Water,-20; bonus2 bSubEle,Ele_Wind,-20; bonus2 bSubEle,Ele_Earth,-20; bonus2 bSubEle,Ele_Dark,-20; bonus2 bSubEle,Ele_Holy,-20; bonus2 bSubEle,Ele_Ghost,-20; },{},{} 5561,Magic_Rabbit_Hat,Magic Rabbit Hat,5,20,,800,,1,,0,0xFFFFFFFF,7,2,256,,0,1,497,{ bonus bInt,1; bonus bMaxSP,50; bonus4 bAutoSpellWhenHit,"MG_FIREBOLT",3,10,3; bonus4 bAutoSpellWhenHit,"MG_COLDBOLT",3,10,3; bonus4 bAutoSpellWhenHit,"MG_LIGHTNINGBOLT",3,10,3; bonus3 bAutoSpellWhenHit,"AL_HEAL",1,10; },{},{} -5562,Luxurious_Wedding_Veil,Luxurious Wedding Veil,5,20,,500,,1,,0,0xFFFFFFFF,7,2,768,,45,1,489,{ bonus bCastRate,-3; bonus bDelayRate,-3; bonus bMDef,10; },{},{} +//5562,Luxurious_Wedding_Veil,Luxurious Wedding Veil,5,20,,500,,1,,0,0xFFFFFFFF,7,2,768,,45,1,489,{ bonus bCastRate,-3; bonus bDelayRate,-3; bonus bMDef,10; },{},{} //5563,Dolor_Hat,Dolor Hat,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,547,{},{},{} -5564,Crown_of_Deceit,Crown of Deceit,5,20,,300,,3,,1,0xFFFFFFFF,7,2,768,,85,1,544,{ bonus bInt,4; bonus bMDef,4; bonus bCastRate,-10; },{},{} -5565,Dragon_Arhat_Mask,Dragon Arhat Mask,5,20,,0,,5,,0,0xFFFFFFFF,7,2,769,,0,1,545,{ bonus2 bAddRace,RC_DemiHuman,10; },{},{} -5566,Tiger_Arhat_Mask,Tiger Arhat Mask,5,20,,0,,1,,0,0xFFFFFFFF,7,2,769,,0,1,546,{ bonus2 bAddRace,RC_DemiHuman,2;},{},{} +//5564,Crown_of_Deceit,Crown of Deceit,5,20,,300,,3,,1,0xFFFFFFFF,7,2,768,,85,1,544,{ bonus bInt,4; bonus bMDef,4; bonus bCastRate,-10; },{},{} +//5565,Dragon_Arhat_Mask,Dragon Arhat Mask,5,20,,0,,5,,0,0xFFFFFFFF,7,2,769,,0,1,545,{ bonus2 bAddRace,RC_DemiHuman,10; },{},{} +//5566,Tiger_Arhat_Mask,Tiger Arhat Mask,5,20,,0,,1,,0,0xFFFFFFFF,7,2,769,,0,1,546,{ bonus2 bAddRace,RC_DemiHuman,2;},{},{} 5567,Bright_Fury,Bright Fury,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,548,{ bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bAspdRate,2; },{},{} 5568,Rabbit_Bonnet,Rabbit Bonnet,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,549,{},{},{} 5569,Gemini_Diadem,Gemini Diadem,5,20,,300,,4,,1,0xFFFFFFFF,7,2,256,,70,1,550,{ bonus bMatkRate,2; if(getrefine()>6) { bonus bMDef,7; bonus bMAtkRate,8; bonus2 bSubEle,Ele_Wind,5; } },{},{} @@ -2785,26 +2785,26 @@ 5577,Dark_Knight_Mask_,Dark Knight Mask,5,,,3000,,5,,0,0xFFFFFFFF,7,2,769,,80,1,479,{ bonus bStr,3; if(isequipped(2779,2780)) { bonus bMatkRate,10; bonus bInt,5; bonus2 bSubRace,RC_Angel,10; } },{},{} 5578,Voyage_Hat,Voyage_Hat,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,236,{},{},{} 5579,Satgat,Wanderer's Sakkat,5,20,,300,,2,,0,0xFFFFFFFF,7,2,768,,70,1,558,{ bonus bAgi,2; },{},{} -5580,Red_Beret,Red Beret,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,559,{},{},{} -5581,Cancer_Diadem,Cancer Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,561,{ bonus bInt,2; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bMDef,1; bonus bHealPower,3; bonus bMatkRate,2; } },{},{} -5582,Cancer_Crown,Cancer Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,560,{ bonus bStr,2; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bHealPower,3; bonus bFlee,10; } },{},{} +//5580,Red_Beret,Red Beret,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,559,{},{},{} +//5581,Cancer_Diadem,Cancer Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,561,{ bonus bInt,2; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bMDef,1; bonus bHealPower,3; bonus bMatkRate,2; } },{},{} +//5582,Cancer_Crown,Cancer Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,560,{ bonus bStr,2; bonus2 bSubEle,Ele_water,5; if(getrefine()>6) { bonus bDef,1; bonus bHealPower,3; bonus bFlee,10; } },{},{} 5583,Para_Team_Hat,Eden Team Hat,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,465,{},{},{} 5584,Majestic_Evil_Horn,Majestic Evil Horns,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,562,{ bonus2 bSubRace,RC_Demon,3; bonus2 bHPDrainRate,3,15; bonus2 bSPDrainRate,1,7; },{},{} 5585,Rune_Cloth_Circlet,Rune Cloth Circlet,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,564,{},{},{} 5586,Mogikiller,Mosquito Coil,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,563,{},{},{} 5587,Mogikiller_,Mosquito Coil,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,563,{},{},{} -5588,Leo_Crown,Leo Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,565,{ bonus bStr,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bDef,1; bonus bFlee,10; bonus3 bAutoSpell,"TK_SEVENWIND",4,50; } },{},{} -5589,Leo_Diadem,Leo Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,566,{ bonus bDex,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bFlee,10; bonus bAspdRate,3; autobonus "{ bonus bSplashRange,1; }",10,10000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; } },{},{} +//5588,Leo_Crown,Leo Crown,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,565,{ bonus bStr,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bDef,1; bonus bFlee,10; bonus3 bAutoSpell,"TK_SEVENWIND",4,50; } },{},{} +//5589,Leo_Diadem,Leo Diadem,5,20,,300,,3,,0,0xFFFFFFFF,7,2,256,,70,1,566,{ bonus bDex,2; bonus2 bSubEle,Ele_Fire,5; if(getrefine()>6) { bonus bFlee,10; bonus bAspdRate,3; autobonus "{ bonus bSplashRange,1; }",10,10000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; } },{},{} 5590,Poring_Cake_Hat,Poring Cake Hat,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,417,{},{},{} -5591,Desert_Prince,Desert Prince,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,567,{},{},{} +//5591,Desert_Prince,Desert Prince,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,567,{},{},{} 5592,Sigrun's_Wings,Sigrun's Wings,5,20,,100,,2,,0,0xFFFFFFFF,7,2,512,,80,1,568,{ if(BaseClass==Job_Swordman||BaseClass==Job_Merchant||BaseClass==Job_Thief||(BaseJob==Job_Taekwon&&Class!=Job_Soul_Linker)) bonus bStr,1; else if(BaseClass==Job_Mage||BaseClass==Job_Acolyte||class==Job_Ninja||class==Job_Soul_Linker) bonus bInt,1; else if(BaseClass==Job_Archer||BaseClass==Job_Gunslinger) bonus bDex,1; else if (BaseJob==Job_Novice||BaseJob==Job_SuperNovice) { bonus bMaxHP,80; bonus bMaxSP,30; } },{},{} 5593,Rabbit_Bonnet_,Rabbit Bonnet,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,549,{},{},{} 5594,Donut_In_Mouth,Donut In Mouth,5,20,,100,,1,,0,0xFFFFFFFF,7,2,1,,0,1,569,{},{},{} //5595,Yuno_Eye,Juno Eye,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,570,{},{},{} 5596,4_Leaf_Clover_In_Mouth_R,4 Leaf Clover In Mouth,5,20,,100,,1,,0,0xFFFFFFFF,7,2,1,,0,1,571,{},{},{} 5597,Chewing_Bubblegum_R,Chewing Bubblegum_R,5,20,,100,,1,,0,0xFFFFFFFF,7,2,1,,0,1,572,{},{},{} -5598,Virgo_Crown,Virgo Crown,5,20,,300,,3,,1,0xFFFFFFFF,7,2,256,,70,1,573,{ bonus bDex,2; bonus bAspdRate,1; if(getrefine()>6) { bonus2 bSubEle,Ele_Earth,5; autobonus "{ bonus bDex,20; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; } },{},{} -5599,Virgo_Diadem,Virgo Diadem,5,20,,300,,3,,1,0xFFFFFFFF,7,2,256,,70,1,574,{ bonus bAspdRate,3; bonus2 bSubEle,Ele_Earth,5; if(getrefine()>6) bonus3 bAutoSpell,"MO_BALKYOUNG",1,50; },{},{} +//5598,Virgo_Crown,Virgo Crown,5,20,,300,,3,,1,0xFFFFFFFF,7,2,256,,70,1,573,{ bonus bDex,2; bonus bAspdRate,1; if(getrefine()>6) { bonus2 bSubEle,Ele_Earth,5; autobonus "{ bonus bDex,20; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; } },{},{} +//5599,Virgo_Diadem,Virgo Diadem,5,20,,300,,3,,1,0xFFFFFFFF,7,2,256,,70,1,574,{ bonus bAspdRate,3; bonus2 bSubEle,Ele_Earth,5; if(getrefine()>6) bonus3 bAutoSpell,"MO_BALKYOUNG",1,50; },{},{} 5600,Brazil_Twin_Ribbon,Brazil Twin Ribbon,5,20,,800,,1,,0,0xFFFFFFFF,7,2,256,,0,1,575,{},{},{} //5601,Banana_Beret,Banana Beret,5,20,,800,,1,,0,0xFFFFFFFF,7,2,256,,0,1,576,{},{},{} //5603,RTC_Winner_Only,RTC First Place,5,20,,800,,1,,0,0xFFFFFFFF,7,2,256,,0,1,577,{},{},{} @@ -2837,12 +2837,12 @@ 5632,Vanilmirth_Hat_M,Vanilmirth Hat,5,20,,100,,0,,0,0xFFFFFFFF,7,2,256,,1,0,317,{ bonus bUnbreakableHelm,0; bonus3 bAutoSpell,MG_FIREBOLT,1,10; bonus3 bAutoSpell,MG_COLDBOLT,1,10; bonus3 bAutoSpell,MG_LIGHTNINGBOLT,1,10; bonus bMdef,5; },{},{} 5633,Drooping_Bunny_M,Drooping Bunny,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,1,1,249,{ bonus bDex,1; bonus bFlee,2; },{},{} 5634,Kettle_Hat_M,Kettle Hat,5,20,,600,,4,,0,0xFFFFFFFF,7,2,256,,1,1,318,{ bonus4 bAutoSpell,SA_DELUGE,2,10,0; bonus3 bAutoSpell,WZ_WATERBALL,3,10; },{},{} -5635,Dragon_Skull_M,Dragon Skull,5,20,,800,,5,,0,0xFFFFFFFF,7,2,256,,1,1,319,{ bonus2 bSubRace,RC_Dragon,5; },{},{} +//5635,Dragon_Skull_M,Dragon Skull,5,20,,800,,5,,0,0xFFFFFFFF,7,2,256,,1,1,319,{ bonus2 bSubRace,RC_Dragon,5; },{},{} 5636,Ramen_Hat_M,Ramen Hat,5,20,,0,,1,,0,0xFFFFFFFF,7,2,256,,1,1,320,{ bonus bDex,4; bonus4 bAutoSpellWhenHit,AL_DECAGI,1,30,1; },{},{} 5637,Pink_Fur_Hat_M,Pink Beanie,5,20,,350,,2,,0,0xFFFFFFFF,7,2,256,,1,1,281,{ bonus bLuk,1; },{},{} 5638,Puppy_Hat_M,Puppy Hat,5,20,,500,,2,,0,0xFFFFFFFF,7,2,256,,1,0,234,{ bonus bAgi,1; bonus3 bAutoSpell,PR_GLORIA,1,10+20*(readparam(bAgi)>=77); },{},{} 5639,Magic_Eyes_M,Magic Eyes,5,20,,300,,1,,0,0x00810204,7,2,256,,1,1,209,{ bonus bMdef,5; bonus bCastrate,-10; bonus bUseSPrate,20; },{},{} -5640,Jumping_Poring_M,Jumping Poring,5,0,,300,,2,,0,0xFFFFFFFF,7,2,256,,1,1,349,{ bonus bLuk,1; bonus bUnbreakableHelm,0; },{},{} +//5640,Jumping_Poring_M,Jumping Poring,5,0,,300,,2,,0,0xFFFFFFFF,7,2,256,,1,1,349,{ bonus bLuk,1; bonus bUnbreakableHelm,0; },{},{} 5641,Robo_Eye_M,Robo Eye,5,20,,200,,2,,0,0xFFFFFFFF,7,2,512,,1,0,345,{ bonus2 bAddRace,RC_NonBoss,3; bonus2 bAddRace,RC_Boss,3; bonus bMatkRate,3; bonus bDex,1; },{},{} 5642,Yellow_Wizardry_Hat_M,Yellow Mage Hat,5,20,,300,,1,,0,0x810204,7,2,256,,1,1,286,{ bonus bInt,2; bonus bMaxSP,150; },{},{} 5643,Crescent_Helm_M,Crescent Helm,5,20,,3000,,8,,0,0x000444A2,7,2,768,,1,1,213,{ bonus bVit,1; bonus2 bSubRace,RC_DemiHuman,5; },{},{} @@ -2856,10 +2856,10 @@ 5651,Brooch_M,Brooch,5,1,,0,,0,,0,0xFFFFFFFE,7,2,136,,1,0,1,{ bonus bAgi,4; },{},{} 5652,Magestic_Goat_M_,Baphomet Horns,5,2,,0,,5,,0,0xFFFFFFFF,7,2,256,,1,0,41,{ bonus bStr,1; },{},{} 5653,Darkness_Helm_J,Darkness Helm,5,,,500,,3,,1,0xFFFFFFFF,7,2,256,,70,1,586,{ if(isequipped(5074)) { bonus bStr,1; bonus bAspdRate,2; } else if(isequipped(5068)) { bonus bStr,1; bonus bAtkRate,5; } else if(isequipped(5358)) { bonus bAgi,1; bonus bFlee,3; } else if(isequipped(5401)) { bonus bInt,1; bonus bMatkRate,2; } else if(isequipped(5470)) { bonus bDex,1; bonus bLongAtkRate,3; } },{},{} -5654,Red_Marcher_Hat,Red Marcher Hat,5,,,200,,2,,1,0xFFFFFFFF,7,2,256,,10,1,587,{ bonus bStr,2; bonus3 bAutoSpell,"PR_ASPERSIO",2,30; },{},{} +//5654,Red_Marcher_Hat,Red Marcher Hat,5,,,200,,2,,1,0xFFFFFFFF,7,2,256,,10,1,587,{ bonus bStr,2; bonus3 bAutoSpell,"PR_ASPERSIO",2,30; },{},{} 5655,Evil_Snake_Lord_Hat_J,Evil Snake Lord Hat,5,,,500,,2,,0,0xFFFFFFFF,7,2,256,,50,1,372,{ bonus bInt,2; bonus bAgi,2; bonus bDex,-2; autobonus "{ bonus bCastrate,-50; bonus bFlee,30; }",50,5000,BF_MAGIC,"{ specialeffect2 EF_SUFFRAGIUM; }"; },{},{} 5656,Scooter_Helmet,Scooter Helmet,5,,,1000,,7,,1,0xFFFFFFFF,7,2,256,,50,1,588,{ bonus bUnbreakableHelm,0; },{},{} -5657,Captain's_Pipe,Captain's Pipe,5,,,100,,0,,0,0xFFFFFFFF,7,2,1,,30,1,383,{ if(isequipped(5184)) bonus bLongAtkRate,getrefine(); },{},{} +//5657,Captain's_Pipe,Captain's Pipe,5,,,100,,0,,0,0xFFFFFFFF,7,2,1,,30,1,383,{ if(isequipped(5184)) bonus bLongAtkRate,getrefine(); },{},{} // //5661,Red_Pirate_Bandana,Red Pirate Banada,5,,,100,,0,,0,0xFFFFFFFF,7,2,256,,1,1,592,{ bonus bAspdRate,2; bonus bCastRate,-2; bonus3 bAutoSpell,"MO_EXTREMITYFIST",1,30; },{},{} //5662,Libra_Crown,Libra Crown,5,,,100,,0,,0,0xFFFFFFFF,7,2,256,,1,1,593,{},{},{} @@ -2883,9 +2883,9 @@ 5686,Nice_Hat_Feather,Nice Hat Feather,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,104,{},{},{} 5687,Angle_Helm_Light,Angle_Helm_Light,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,86,{},{},{} //5688,2009_Love_Dad,2009_Love_Dad,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,611,{},{},{} -//5689,Ant_Queen_Crown,Ant_Queen_Crown,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,612,{},{},{} +5689,Ant_Queen_Crown,Ant_Queen_Crown,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,612,{},{},{} //5690,Red_Wing_Hat,Red Wing Hat,5,,,100,,0,,0,0xFFFFFFFF,7,2,256,,1,1,608,{ if (getrefine()>6) { bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bMatkRate,2; } if (getrefine()>8) { bonus2 bAddRace,RC_NonBoss,2; bonus2 bAddRace,RC_Boss,2; bonus bMatkRate,2; } },{},{} -5691,Sailor's_Bandana,Sailor's_Bandana,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,542,{},{},{} +//5691,Sailor's_Bandana,Sailor's_Bandana,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,542,{},{},{} 5692,Sea_Cat_Hat,Sea_Cat_Hat,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,539,{},{},{} //5693,NoFear_Underwear,NoFear_Underwear,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,614,{},{},{} //5694,NoFear_Headband,NoFear_Headband,5,20,,100,,1,,0,0xFFFFFFFF,7,2,256,,0,1,614,{},{},{} @@ -2911,6 +2911,7 @@ 5756,Wispers_Of_Wind,Wind Whisper,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,633,{},{},{} 5757,Reissue_Schmitz_Helm,Dip Schmidt Helm,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,634,{},{},{} 5758,Resting_Swan,Dying Swan,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,635,{},{},{} +// 5760,Driver_Band_,Driver Band,5,20,,100,,1,,1,0xFFFFFFFF,7,2,256,,0,1,637,{},{},{} // 5800,Blush_Of_Groom,Blush of Groom,5,20,,50,,0,,0,0xFFFFFFFF,7,2,512,,0,0,125,{ bonus2 bSubRace,RC_DemiHuman,3; },{},{} @@ -2928,7 +2929,7 @@ //5812,Hat_Of_Expert //5813,Red_Ph.D_Hat //5814,Ati_Atihan_Hat3 -5815,Classic_Hat_J,Classic Hat,5,,,500,,1,,1,0xFFFFFFFF,7,2,256,,0,1,475,{ bonus2 bAddSize,0,5; bonus2 bAddSize,1,5; bonus2 bAddSize,2,5; bonus bStr,1; },{},{} +//5815,Classic_Hat_J,Classic Hat,5,,,500,,1,,1,0xFFFFFFFF,7,2,256,,0,1,475,{ bonus2 bAddSize,0,5; bonus2 bAddSize,1,5; bonus2 bAddSize,2,5; bonus bStr,1; },{},{} 5816,Cowboy_Hat_J,Purple Cowboy Hat,5,,,500,,0,,1,0xFFFFFFFF,7,2,256,,0,1,411,{ bonus bAtk,15; bonus bFlee,-5; },{},{} //5817,Valentine_Pledge //5818,Carnival_Hat @@ -5016,7 +5017,7 @@ 13035,Sandstorm,Sandstorm,4,20,,600,50,,1,4,0x00001000,2,2,2,2,70,1,1,{},{},{} 13036,BF_Dagger1,Brave Assassin's Damascus,4,0,,0,120,,1,0,0x028F5EEF,7,2,2,3,80,1,1,{ bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if (Class == Job_Ninja || Class == Job_Rogue || Class == Job_Stalker) bonus bMatkRate,15; },{},{} 13037,BF_Dagger2,Valorous Assassin's Damascus,4,0,,0,120,,1,0,0x029E7CEB,7,2,2,3,80,1,1,{ bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus bUnbreakableWeapon,0; autobonus "{ bonus bDefRatioAtkRace,RC_Boss; bonus bDefRatioAtkRace,RC_NonBoss; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_HASTEUP; }"; if (Class == Job_Ninja || Class == Job_Rogue || Class == Job_Stalker) bonus bMatkRate,15; },{},{} -13038,Dagger_Of_Hunter,Dagger of Hunter,4,20,,700,120,,1,3,0x00020000,2,2,2,3,70,1,1,{ bonus bStr,1; bonus bAgi,2; bonus bDex,1; bonus4 bAutoSpellOnSkill,"RG_BACKSTAP","SM_BASH",100,10; bonus2 bSkillAtk,"RG_BACKSTAP",20; },{},{} +13038,Dagger_Of_Hunter,Dagger of Hunter,4,20,,700,120,,1,3,0x00020000,2,2,2,3,70,1,1,{ bonus bStr,1; bonus bAgi,2; bonus bDex,1; bonus4 bAutoSpellOnSkill,"RG_BACKSTAP","SM_BASH",10,100; bonus2 bSkillAtk,"RG_BACKSTAP",20; },{},{} 13039,Ivory_Knife,Ivory Knife,4,20,,700,130,,1,2,0x000F5EEE,2,2,2,3,50,1,1,{ bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,"NPC_CRITICALWOUNDS",1,30; },{},{} 13040,N_Cutter,Novice Cutter,4,1,,0,50,,1,3,0xFE9F7EEF,7,2,2,1,1,0,1,{},{},{} 13041,N_Main_Gauche,Novice Main Gauche,4,1,,0,65,,1,3,0xFE9F7EEF,7,2,2,1,1,0,1,{},{},{} @@ -5025,7 +5026,7 @@ //13044,House_Auger_I //13045,Kamaitachi_I 13046,Krieg,Krierg,4,20,,500,110,,1,3,0x00021040,2,2,2,2,50,1,1,{ bonus3 bAddEffOnSkill,"RG_BACKSTAP",Eff_Bleeding,100; bonus2 bSkillAtk,"RG_BACKSTAP",15; },{},{} -13047,Weihna,Weihna,4,20,,500,135,,1,2,0x00021040,2,2,2,2,50,1,1,{ bonus3 bAddEffOnSkill,"RG_RAID",Eff_Poison,100; autobonus "{ bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; }",5,5000,BF_WEAPON|BF_SHORT,"{ specialeffect2 EF_POTION_BERSERK; }"; },{},{} +13047,Weihna,Weihna,4,20,,500,135,,1,2,0x00021040,2,2,2,3,50,1,1,{ bonus3 bAddEffOnSkill,"RG_RAID",Eff_Poison,100; autobonus "{ bonus2 bAddRace,RC_NonBoss,10; bonus2 bAddRace,RC_Boss,10; }",5,5000,BF_WEAPON|BF_SHORT,"{ specialeffect2 EF_POTION_BERSERK; }"; },{},{} //13048,Damascus_C 13050,P_Dagger1,Eden Dagger I,4,0,,0,124,,1,0,0xFE9F7EEF,7,2,2,2,26,0,1,{},{},{} 13051,P_Dagger2,Eden Dagger II,4,0,,0,158,,1,0,0xFE9F7EEF,7,2,2,2,40,0,1,{},{},{} @@ -5688,7 +5689,7 @@ 14020,F_Shelter_Resist_Box,Shell Of Resistance Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ rentitem 2132,604800; },{},{} 14021,F_Sylphid_Manteau_Box,Silf Manteau Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ rentitem 2543,604800; },{},{} 14022,F_Refresh_Shoes_Box,Refresh Shoes Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ rentitem 2439,604800; },{},{} -14023,F_Toast_Box,Crunch Toast Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ rentitem 5107,604800; },{},{} +14023,F_Toast_Box,Crunch Toast Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ rentitem 5391,604800; },{},{} 14024,F_Robo_Eye_Box,Robo Eye Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 5325,1; },{},{} 14025,F_Twin_Ribbon_Box,Maiden's Twin Ribbon Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 5187,1; },{},{} //14026,F_Diadem_Box,Diadem Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 5313,1; },{},{} diff --git a/db/map_cache.dat b/db/map_cache.dat index cc2ce0afbb3d56bbca4b4361e9ca96fe86b934f1..de5e23957a9ce599a8c968be5c0fb1f08c01b710 100644 GIT binary patch delta 603264 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 z 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≈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

M}L zzjls7^s+z$U(FW}(c_ednJ{Ro1Cl#E)EDXW8iHXO@#^#-y|$(#JbJgvir04mTX}HV zgyHILGy%?f5B5S0k>(m!^IO8b?mh(_K5N5Kj;}!Lw$FcQUp`SW62U zkfPmmR5ed*;>Cr1{|)!II^&4}pZiMTOHkJZ``*h~i4(qX))hCT{`*8x|NR9-FzuHS z#yT^+(?=k9#-VeYPvRswXj@!7zt=oS@}+CvQ)~OVk%>f-RKZWJU#bi@hLYGRLKI0f zW(!AmT2tPlF8-rd3uZpb5O5I2O$kwD) z;mdScX719`qLVLu_sjg_P8(lH<+xaw{#Oa2(A9E_d@pg8;mDs{af%Z@bYCjawBp0# z{;U{fy9u?%K>2HieJDCr_S+POOAuh(2@i;#`Y!p$>g+%8T`MEUJ=2NG18(L68X-y$ zYgyN>n-Qc#(I))^CGf!uRi~5e(`0(pXV$6Jotxv@!K4E}1E{PkkEN>+7R8VB-eT;- zsXkQI9xjzl*As8Oe;P+ra# zewpT^2r8Q;5u8R7E^;HwbZtc17yzDbA^^xYKS^Jzq9mXSrXOL>SLYaluRyqvF`s5k zw^s!WIt5nQA+5cjunDa_Utz80!2vK`5vxzD!O+cj6RojMY|<@!v+j1|C7c;89pTu& zOb{b244H^q?gM7jYRoewL4l&S7wF`G`$+d66N&Wbr-7Ok9fP9-qFPdp&)y2bxdZS_ z_{|T&^i-%K_;U?H(EhE>-tj#hwh{z;B5G^m+ps<=plP)E*zidb!^u2ymrz;n5w9&& zYr=xZ_590eq(#n%12yQl@h>Ih#w%Jo;Im2#%bTf|fiZ-%Ji6ySflb1NB&x>VF_L70 z@=pCcORa47;l(-OIpvwkkIp~pWxO9&KEz{HrFpA9AG{u4n@uN;kgHR1?GA)e&fK90 zoA)ZTsi0c~&~v_w{1(3nEe@>}vr1aG??*22s3Q#Mk9skWjt@}POLjsij563eT`Bc zwu(XePBOoj$4BHcOY##k8;|o4KzKl%3PW6$IyvFx!p3^-0}an+*j>@Bg~m zi{ZgR$y&~ke#IpUR0QNZbl;-J7ge(k=aO-*Fjl28T6mfCUAt1@vo#MI7u0tBF<)1y z8hvTM0i{rt*l$+_F~RDLk^gzqG$Im-2aW!|&%~KUI5ufGftDbYR3JI{;+=|LAv&k? zJ2n3VdCOlB@gkhgy#Hl;Wm3ovC=d^>!7CzDPZoN3f=Q*bgg{Jito5!wo?ypJLsL}4 zVI}I69mM)m_XWUjVxQK@8Ora>_eLZo+v>yGDI+j}9F$?P*W`_YDh$_jRzuA=^&kIX z4u)7^K%RdXy1B81yee6Xs%a(=A&5Fv2OQFtrG!pA<~2bQ`V?Hd9e6-a*55?oNKsTE zR+YUZ|F&zCmiQUDHdOABuX5nTQfsA*2hB=-)?BCZ2D8FK#A~~lr;ybqY_S#-ggd#% zSbP6qZ4~c|ht-(rB*>Tz-B7QPT?)4&0V(DYK^ffH$9F!}=dF?8yGd_2rZOA3zR0g* zb&r@loi?66xZK0}wcdilGxP1(zI!S|=DukyB=&8E?8>wROvv~dy;nGJ zsM1B0K8km8ptcqN4f&1R!!1N>TB@{0`xLxqVg*`+AzLgxhCgYml`^x;;fol8_K@3u zsO=Z8K@-Ua8!;}=y1u;ty&nXXm9@~18}Kcs2v_)3%ukZ{4+Q?mBi%nYS z@7wV&wS6YCeBgtBl+r9mmNdDv^neMkl46KeL?G$CisTa+!39L1;g7aCj!zqdcGa{QbD;+M?1imx2Bs+8tx^3f+sk$IYtS-l_lY5>%`u(dm6m5F zSd017yP~=VOz1vBqfHm2Qq869P30$}H zUTfK&R63WfYMzUj*+a$|3;2qKv~0(nI}J17)gqO%0eND(Ua?fuwfFYca0D=Fyzz_S zwKqya+e#BhlG)0s)+p!wImwwUs(;=mK0}$9Uv^?ufZ{Cjjpm#Z59Ir{7F0te=mX3& zEkFayjPoxiDuxk%Or!&eyDV2(Hh{6HrB%W`ed-)*VdjcVn{YkB@-&MqHFZt4F_MO- z&t5y-7|6}dm|0;$f`D~@4BgdiLN$9{wtxAk$ifU%O_veYZsP zPi^^ld&7gL5$VKbISaO8zS}`Cur)Y-kYI(o%uimZ*+PgMWcOlt_r6cFY`kL?dy~fw z;e`X*;0|ZFzROs672#4@d01LS)KHfK8Hi}d9}T@^{WV+OshWLB|oOEYphpsqT#4{4RnNGNnpP5NBY{bpXfJ*yz`}e#*Cc2QK z7T>=vYWk6G;o3^G*2%W#7ow5b zZ`~6^CeUb(BD04VAxp}PEg6c)5d=l^^Se2q2t-OCrJ3FNmx4DSq;1qmjc0-SD1IO% z%8yd00-K6|nD%<@rhaE&Hzy`qt&z;p>Vo z-Dol=dgHj3>fTc~Vo_eu6@hdgZ`0U+VMYn@`xp5x%kZ=`TS$ec_b@3B^{E3|c@W1?3@Tq!8^*CJI@T~dTft(RYi{;4r+Bn1Gr|R>Ab1D8Z$6>T zjW;@mqsECEKYqC2_Ggc5(_)x^H|XAsyHVR8cgNgeLn~g$#b|?=;Py+9lgtGkA4n%M2g;l;Txo@_$X~<{il*l6 ztiv{?;rbcrrFES5+eGVi-rEJi%JEbSG1`Bn@PnF?Go8vW5#sju&bwQOOV#OG>rJl= zrNgg#c8o=m#X+SeK{BWc`_nf{rm1=*0fgpkwQX4#`qD9ZRfYpt4V4^is|#VpFFqHv zQxJGmeECeaP=Vh43B0W|P`KTjo`vl4mT9Sj{Cg3;ayBi1l2}SlI^^ z0QU|1q_ibS3tzdHPoa$J?^Bq<7ar05)mNwv5Eg$UvE5&oDdDS84op)_>|)s5)Aq%l zxmQFDP*V198t0sNk5K9-XO2rjeS(hB@r}ePOK*?0*4}cKqY<%JF;i zBV^fbrePomx}weT&kz}{fys$no*^egmd%h862vdoQIMSx>nih%)K1s{qG-_Nk>)`F zCeqyZSVPMM8{sKu=Nx9^kb!I@Gn~i@>!J9)iWPD!2*8Pq;-P+xc>{JumIndk;Buvi z?BKw}*OUlT4q&}H*hyYG%Ojw`7>qS|x8m;KsGQbvq!z=h+0F^v*_$Tlf?N#rREK~reca&-XlRA|~ z_Lv%ft3A3-=VO2@UMktNgE)?Dm?f18+-_SYZHNbbF+67=RreTpJz+;6i^= zXsHheSfd{x*&+bk@Hf(>I5{R1C5$p%cCVU}Vw!G<*c}F^E~#g3+3xTjXvs@nk#&q7 zQkyGF#^IdE5X)bAv$%UVzFE03lKAKLxA<-Fg~T|8bQ;GQf(By0*2oTS+v^JJYN36C`h3TL-XGQ6w1uv-3%76PBBqP{3U=H2Rj}E!6z{%a)K%_>Q};Xq{5RL@%drQK1E-*YYmY>! zz{;2w?<%x2s~kJI83(Z#L)yy%eB~T6r*nkHN#lrGJ??q<{v60kF?7t>JCn8Dwd~m6 zeT|FKjs(A$%Mh2G&f0#r$=qjFyVfh^%Wv)V2x4Eis2Humb&b zfo_l^w9{_^W4K$)BO6At_YK}{CIPH;2<~9;lmc)%uJwuj`UZGmr zuAHbek{_;-Nr)KIUpVz&GS$0JHH z_O#6#`8g86%hdEqM8TvZI;Qu)x~wYHdMG2djq&UZ|3Q^MnKc-9;1HP+2{0nRELzpF zmA{8?xaT?zby6j*))^ov5rDVo-bh&l00h4+dE)bxHhl03iwxEg)DM0?sxiNo>h*{P zNqN;waSgMp7ybh zIjv~2MTfgjU_4`3>WD-%&2oRhr23(_WH!*d{gBM z$Xvh$yhTh~{LI4jPsx7F)_VK>0wW5q>TTECHxJweQ7I^F9d`|+auk4;UoXD$WVvY> zJZUUH*OWJ3eA)8S8N-%vtnE`V39u>YBMcKU=q|LY&*sw`)=T_u++eN!;TJL`3ZMi( zY!hDI8r#3K9pG=vA1r{OcINB0xBpx>dSgz%XzjSq_2~QIxa(x4&sk+K>w1RnJZO^j zHpsbQ+tcaQurndgp3~mPuZPa(wdabQ96+W0?=27BY4w&*gR-xw1;HM2;a0svlZzp^ z+@U`Y+#0luB?4n)`;Y!N+&n$Z z=igRV99OQka9`AH;JE2|;CkVibk<~hcRp!hX@RrdO2NyZDPCgnL)$yAojw!z(IS5> zVQ5w{O9aszS^YxH$?sQtOa!mnZh3rWj{=X@O`Admg)3kO2^(A}4RHMe3Jzl^YgHgHa7Qv{Lmyg24$E9yH zs<3rV#Lk!h69-Dr>+IF`#(GFplA@JYy=;V6hy%`efDvP;Wyim7fGpS0`d@}0*nzPg z5rQh3{KFhTG~)I4A1!kGCixyV%a2^XBM-G)Zmly4$5)^4PA4upN`a4Nz+@2dB;0h) ztD*NC<3!$lV};@|YTb;;hga7kLwOMI$#QABWms_EK^t>mN%_$?rS}}2rs{C^ zi&5eHM&QCQWz~<;H9A5ke&VBsUj|cIjrD#tj)SXpzOG%gz|L>pvaS#w`>`n52}Y}dNPaJ%>c zz-nlN4t{^a|7%)wW=dCbNt@A}7XhCN#Zm5_c4Z@0OlSvt!RR+i1gamsL|3jSUT1F} zy#|+9vePuaT+I-s{~6M0`hZRnGHM783>L-{B1`Yr-6Nw8!;$YY;~gHfqwRPlaU62@ zNkfmcOrZJ}^4?93EXc3$K?V3Jth0UH(Q~(v5)q>K!DDBZQL1|->bUNHs}$}rZ@ZA0=Jq7*_7S9~lBi(pCQneFQsE5`P_gL)c5PG(svp)rY{r z4DQuO(+O7BW6cYV{${*HD=7%FCM^%L?ANahxpilRXSaYTu0=Smau!qD-a}27lz^kWpFKp&kCxy{1!; zc8HI4cSVip758)v56s;qTVr1RR87a`{4hnAW&CU+mD?%I*mfB?9QKP^(lxIrJs0z5 zS&^Pc#IFYH3BtH*Y~}{5lGB2P-2RK^rFrq0t9iH6>}dc`LVwMx%jB1NvKKow76MNl zh!#i3Hd{!aO1SN)ouFdjKIz4bn(uxvKK%pvnM%?#0=Y7T*jJ5|{3M zJzqk^ru`9`K9w6?{$tw>S(akM$n$FQsQdDst)!Y$Hjj?R_0R)5XVs-0vR@v>o=4LU zw1@}t2*GIS_s`E$OVEQ3HZ}gs;$FNi^x&L0mLRU=)gbdU9R=#VFwvOZa+xI#*P21XoUX1E8FzKo!0t@URYZ{ zJ|bf)KaOCQVq;4Irao$n@ZxOSxy+HVZN(sOYadhg)8nAFrf+8IM!r{SE}gKykMwJS=rR`r`5hR?dD}9z3Vm5OO-wlw z8^;`QPF#4T%WX;3*$N+4+w*a!eXHo1BssF;j&9hGc|VRzS^h6ZXQV6Su;h*XH{3ZJlot0+fA9;u$7@Ff{A1nwL!7B4(Uh_JUo9*6m_BrKx zR~KIE_se~!Q|(_KZ2BtbMx;GJPLZaBK*-9F$<46cic0;f&2r5t?pniPaP}6yr2DLa zk4A#@DfJi32+(?_!!nm3M`_nwEDD~~8$$0fyP0aFlHPlsUSPiN+w94hXr!e;9Dqko z_r|zr>v)U!>|wq-bXa&I1OIGRu)S5g%S6553awuqv#FCuK6p&{4PR6mSrM2Y`qtoQ8kL_j zzs!#eo7fe=qAV0@a1sx;0jERYHiI$#6Ka2?{U4|}?@QC~ zB^5GlvoG~92;_4x2rm{eV<7TZKINTh;*0uuX$|iRCpI z6uY3M%6XNP2ekJg(7#SRi)C2`V@CdFgL)&D0GcV~rW7IzYysvqjML(ToxuK-YyQRh zq~-pFHX8h{487+@;d>8$*72moYY&FRF6XCA8PJMe4-oNclL!ZW|7wJnr(%urLbaJXP%tddb^&~2~Vew?jKX905ZOP#$|veT6%mRzWBvQ zU;4lu(`%1%iV3)B8tEq);LR4vDnoYXw+Slgmx?$W83m-cUj`7kbI|vOagCc&D29Sc zg98;ovH`p)0!I;w0>S8Ng>a=Q)AVEp`iGPD2~X_}KG28>r`m$c*(=JAh!DPK16b2g zshqsI*E}naqm+HZ?+}0ww-=M(x@73@k()VBAhpF?LMQkUd5)S?ZLZYV$h|jFoH%hm zt2%7$b9U{~`m7S% zG`liY-OT7K4pfoqe==Jr>;07Vf4SW+ztdu^fXs;}e%Rps{Xx@_ZkeHs6layhojX`7 zv`|Y&xq90j#G5L9?xV6i zU(BnKB1^>)1RU~X|G*A=)B5Q6`VS4$4+UT=dc{T9`5!|}@j|MRPSd-0Kid$6(d^pp zRdAq0cLDbE^PhrD=0YyEfzE=;?Osx*f~SeL!(5ajD=uukb-Bc>-jMHXIs=_TDK+cV zQ}0=th>J=s6>lWS3=CfWH0LEUT>4@#Ot58?UJC`gbyhm*{!UkXoB>l2uB!=bzD4N{ zuKCzAZj`$(Kc9e7H>S#(X6!D=5%siNKPg2{$^HwKBc4*B61S?Z44bo<@ENE4>me-I zZ-YtGIM>+pB*U-P>T-Auta_epR3=Ivd~+sPCs0eN;RJe7db1|s;Wf5CThm+hr*OE5 zD&;%qO^yC9LoBf+%Ei{VCK!=#droRfQTX~{ZM19o3|0T=bNQZ2VheCPE$;y}E3ChH)iAnhuA(&p~-RCdKM8yyB$kXb&qR+&kts&$VTJhWn! z(nIu6wr1^B!u{W}&giCKcWRfdrO`FrGY^&{k$RC6>RMi`uFj3urkQj8LRUI)P=1x%8Kt~&O7p&1RXu1MQgxt|IEm7@yL%vBSFI_EAbSOK_OK@Gmx2(%hl}Qp zhMyXT?)iKB>*A*rAc2K-V}O68M?96fEGY*!r0rmb3Hx1LM}>gU}Ho>7g;zJJbkQ zk@lc`j0Z5mS#9vp`bESIe~pQKsfPHZtNXp!m$?AA+{bBL0rkEqC@={gr0n^1;fB1E zOAKMIHiz}Y&`G*uS_+m=Te4WCYp7f&0bm+8u`@JXC411QdH(TTqq3tDu2}aiwKS8N4-68^9h<86* zSrFkDYGPsVQ?wIYd#)j(bxAND2VGI}iC~NJBM37p`1lyN*~v^V9w#TYDzfJ5xx)mw z`XNiZYB3^gsp|AD;0s8arp=3sDcOjsvp;}yuZTj z^W?3+cOPij{_&;3=xnWB!IfRA3>D(NVnw|c>cq`b}M=#D?qocn~1yQnq4 z&IkQ*w$7vze;Cs@4pp-1WH|2nGBeC13Q+q_6O~h6%jimw>R=y2sQoU+tDGQ~Lz}4P zt-r&oQTbDq06y~RfnoOquAaBk*w+5@?aF~7Fqv+l6&D#`1E;ra5pi7ZoO9c9ZbvF7 zqcwdi$3+($6KXhZOh0HFse^%4%ODP1EqMwWygEG9_zlE=_LIkD1ttiWM1zk6mlavE zj!qT+sZJKXOZi?haMHE%4a@gV2-s1Q`2(z%b-=UTiUWUqxJ++N$EgD8V)+=5pDDBP zd^6Sk;3)Rd7VDPt=eKLD`|F#~wO3KItt%2?0nu=<5_VB&u$kP5Y<{C*dW)j+4eWmV zRB-9*TsQ`IUoLz2Eqeq_PM(k@Bie!A_rk85_qVqpo8{4IP<|HhB{w(5cRAayqXXh^ zqaE^C$||;o{9*UgqXwjZX~zi0=<}SSC6+YzmjRC7Rz@(>6(sZ))lQf&3^xE?uD=EI z@_=wSLo=fX3%c7i{dz(K(&P_G+M?k|<0|gmZFO_V%}7bh*(rEpaX;<(v}k4^N3i_P z$N)?o@#4?aaCvNS`XnpD?%&~<9}JVC5PTDtla>JbBpLJR^P3_skp-^Z_aFpH;y2M< z*$Jof$2t0%ny2y*$kht|>y7Jy^M4tXjqPwj8+4p|K^MzYYSh{%r7{!pG`x#76Y>@I zc42RS$=_59Msjd@O96=tPW;8=hg*rs$(excUyj*VL_Iv=oI_FOQH5Fi*z8dsiKbfZ z&ZpQxjZT$<|40VWw^qzL3CDaB-7qH%ZI88Sdd)aWOs1c*2rN_UV?Tsuc%(d(tHJPb z+h0jd{D!YgwoZAvk%30R*~m8)lJ4w9Rq`74HpL%mjVir|R4VPUKhye_yKd`J*96&$ zaXTyN0-5yKh|dG8I2vxJoWBl z!_2F^mC$Fl(uR|R8)7X-vM+|l|6suFX3M~T(?gQvmN}85o18eg8gf~?l*W~O#6c)L z$z?80gzN#AFYx)x4@m$)X5yPSj%76G{tFp}vqED-8$a3m89N6DvcSh`?$aW6{KR@S z?%7|j^KaoZC^cm(jm-K=#W49_DMdh5X<}FPiTH?s&keID?%!d zj~L6Ao!F^*{%=@Pi|qZQ_3ovmNWaof^p8sGb8ulJ$TIlHI{HDS98lI37U65UsVbVv z(PR;uPw*Q!?V(QtlW@vgM~6QIQCHX;5Bn5-|D+}ES0nS8{tJ+P#Bul+;2&EGXLPW> z1h7P~3Vf3_%BF#o&Xv0mE;lZ>RvPY9A?siJT_#^2VP#Qz=dyX>YPD2_i%+n^RNkrNclw_6$n=>!Vh3S389$_gF?_E$r{RrDy}4_s5A_c9kQhY5Mx3Xxdn5|;@JWxB{m3RT zCxz$x@$Vk%#B(|R3PZ^7K$aaz&^OeLNECL=q<8BRe0gZ2hC7C(l05%2f~FqrubT_= zk~LW^>Q5b93+rfN;hWVj2R8t});0R9{rRr7avtXHb+bJqO=~(CLyRs++R|#buwQ8} zs`J)j74pop#S`C+zIaU*kKJ_7uNyZ2^nVekCi_WO}Io_QH-%HAscLIy<&ISh2w8| z|C@#yw!Rn+brE~_=)6CEh|@v68?sH|j<>wS>1Zi)#W0eg6Y8gG+%q=t9(#mDczVTQ z%w|#%3opFxCF{{0w!6a23@?`JE0wH(W!>*uJ)3y9`jN8PTR$Umh}7sW>a634={b@7 zE@|bqlpZfUqvhtb#UalbidEk`l;|Ed$ni1Qm!5q*e;$+`ZvwMPQDmsmaieK!zuqnT zI(K7{+-$dF{@$-+A?vS!;KC5?&4>!nhQOv_NhJ|3$pAtOqE}vxjSn-qxMnulnG?Hi zh^F=algLCH4wdOx_`1^-m(O%GfQ4Til}vwZSf@UVCgGkLE%&CDgd8lbpGDZX22-kA zN>X1nAE3&8Rq(~iW=}UDw5XvDqh>bY#ja(0u`?+L$KHuka=74lE%5;RHuc-O{+JEt zDcTVDrqQ}Xrb!q3Y>e~^+OSm6hh%^3OxUmAb@G~2s+PBVP!g?qxr~m>Z`Nof&}Oi5 z`8N?$+l9)cwnG$pemJko)?bU#gv5~87mdiu$r=eA?AA)EOpbxyscOw+zR1`JTQZGz zY>1;beG{<1>1JPTHTJRvH#bSY%eR7wH#_a%HT#y`7a?8zLd18mZG*gq6K|0}OW@4J zA+g#Hs?D&Y?C_1T=BRuabos5MJrKHf-58;S?WX+#q0`}@@mLvKtaVQ}qzpr)g;%-z z+3aJUNB~e7k05URr^j~Jhwfa6Q@_+!&{G-g|42A_?Fo^p^Hbj)xA ze#8N3tn3K6tv*nCKO_ogOBM0M$$b5-xuNg!vcsLcB;@X*r)Zrt>iGJ{bOhMuuBUhu zvz1!IB7s}GNLcM`p)L$$Y-Xj#Hj-%`S+D`MQp5xgH$#gn)V;783+}t^RSz-Q5z>D1d zjHaQsK`w(BL$j-zfVr&ks(g97ji0w%r;pm&pIVH3^YdB=lVO7P_m6C1VHdc4Ojrjf zCFMy}1RQ68<_=6SbYb1my?j}~-qcYr!=1n@{Ty=bBE9OZ5S$%m?{iWn65*(yHMGIy zs^G5vHmoY-HuSXOWrms5e2qvG8>`hwShx7A6wrXTBy5>(xKCbry0I@#oa+@!oJK@+nk}^O+XQrZ(qhwHP~t=zNB6oMdl_a z=FTu*xscobZz3P<-zj!eMDd^9wWrKONLsuG+j^qcX2Xfwr^Q^~|B6Rs{sRlrR$97+6N#f7cnwjX)Y9jMEkxL> zsX@Keip?29Jk?EkoTgxek9`q$$26%i;^g61!(hV9h`CZo!E7^5&o6iWDMLe>w=Seu zKC5WMstk-C;kdnF$WLZEzlThAjZ~jBM8QcQKqHm~2&g1XqE_4GrSEejv*7-%ItPNLXc2!`y z6xFbj->!BAv_ZvG4MDq(lX>BXqJt*brNZ0@`ZEi+(9Yu-pRXXF#$x>6Af7A@lx=4{ zy1pt;pwl;gXlPz%-SOiK_=DAjOctZMb6mC<-lUjmt*-snb1?0?E=Juh4sKRLHW{9E z6n@k9v}J#Xcgs4g?4f}M{G>Z1rFk$Gy5@`*@>qM>hwKaHBf~T#yz~Hsw@f;Z z#cju5?q}e^^54tWzRv#cDJr+cG&AWuhBf|J4g>B`(|kobVDPjC9coH+<)S{49i31n z06&(=?pRC|$2A0XHZF757Bm)+4|r`YAtsYgIrLZNk|khQ=Z%{nZbVLnCjL+I}@(bKEuqC1x*Se7kNHdLhXV2 zD%YV^`^?IMJuZ^iquE(<7yF&R{~o|bJ#9?~P0Lt-5ST4L|wG@9my1bvVz;=(! zWM_zF{gznERs30Iz)u7<`0acjvE{4(3E=|v9P#c}IFEQ(J?tIFTQ|xB zAb9!(28pwUyzrXC5t9ScQ9$@PB86>HnP# z;)|C!?>xbvbU*A`ZpEUEc!>zzPHl~g#9mvN4pcTbu@s1U4%<`Ks3ki6Ay9`6gMdVz zQ<}1{Knc`uzc_fPBSSyJ=a{7oJ>t;-Qo40SnV8u{cVVM}6VnlryB(GXvz2s7UYMG_ zFW+El*J7QocO(dOcHTwmo-vG$e9%9Q1JQ9udz&PXi9*W z=e1-&+kJq-#g4YmhdV49vDs67YA9}0l(fSKHz;_iSNL~+8p0fI>0pZgr6KL{nmUw} z-+|7~!NkUI_R3H>F-YbQK7)^8sI-u{#+5C@Kz5(_fb0^`hQaJ%!y49|hvRD#12W=< zC>vH*pG5CA5W{bq^4dDYwY`HQ(@7vKdwa1ViG%N98QHQ+8O9k!=lQs2kJ0VMtN^nE zekKV`?;$($-?mB>>w|oYa~X1g=bZ|t%`6s>JW`Yh*Zge#UMPtUWR_liqP?dwoBl`q znw23YL`xA1TRHAw1BRwg(tBOM`Yr~O(&F8BOS)Er2&%=fJuhnc4$4CRmE9c zt$q)x)XF9DdsVXw+kVQP=Io_bvaxx_WUWoQlD5Zdz?^t*Z7&0m_T2}Xz>u6_=YFfC z>IdUgPV2wv1|lDdB{YKB%R>T7j5YKz5bKWZLKke>o02n=atro$emmk;X%{uv#ai!H{WP=nJ=VJpjO7EQ#+)i`1@Rb z6D^i;$O`t(KAT zBl_Ts$_ZPlJz++Vw?KRp{8dJ zHO0F+DRIcW@aZ8hyV{V65QUFO&e2nM*O8}}3=q~|r0k%(wP!o2sw${pAX1h>`y*gR z=Ad~0sVcFitbOQM0!r@O^b!y~swo%ufa5NioStt$#aDg$2S%yAYYG2YMYyAp|Ldr6 z^XX_m&XF<2MDm}Hu32yu#r}s-Otssgu(bEnrxt%Z#hXJp13BTU=d@M$4WkyuO2~mVF}XNQ;Yh4>sN8m zC37Q--&GK9_Fwc~8BG*YyP5WcMzqf!w0@sLn~Bd*#5T0p%B8XEj0> z_E{luOGOxyNHd=ZTq>B5Cu1iVBz=%0ZO|cYiQgHw9&{+Tt_R-&s_JT$tHaQ7u}8#` zUNN*F<$Lqt`vcy82I};BMe+3TEOki3QrKQu- zLy{};d6Gb{_2bC0RAih361BtlX^r&^?+I=FX>!vmTR-tg*OXDn;L4~jHoz3$%lw{= zhfbpgB)&i5#;lU=kI#YH0b#Tah$vf5otE9Uwd&U#HT^$AOj8jt7xwUJS`y&z2y>b7 zcz%^s?<>HB6z8-<7-6AU?QKgzzm>IXWBKxuZ|ToVK^GKR=z(i)ThoKO_EFs)^|lq! z;&&lc-Heyvx3;wm@2#&iwb|85LAyAo;~62cX?KxQIQ2%j*OqwQ?_hZgl$Gj2I&Ug^ ztaw6M^x?BIU!79$%;lY(2zb+TkC2Y}&5B*2V3NFrb%0g+KuVafVpT_vM!gdUlt992 zn=_W1$S2Jl&6q62@n6D9%xQ9Q!TuK4hhZ!S-FV#_?ie90yEOAaH!KtUEB055U%4cy zAjOJ%A)i_s4Q3OZER$Q206DxtTY)KQ69aOcY`?2c^LFQVsQUM|V*!NY}cizYIM;s~8ff6~5eAIy~- z!tPX71EycWXZs)r$C;o90y1+*gQ)TB$=5%r-Vx>1rP1{&-7q}@rz0NeDLezEx&x-j zmfP-U&7H?c)R*+mwk6%~LnTHfnKB!57vfxSsJ)&Vy%dMU787HG&n#P~O%(TX`!H)> zwD+cQ1xs&jQdqj`=)j2k4JMLfjnDV#rCvS!TTlGOP0vpxH0Cq>tLb;Grv>e3OLMd8 z-BHn0aVFgvK`AV1Tf2lx>z*&2;O&YxvcUQ++%61Bbg9X2b!?|$?crfAg10weP+@3! z^HaW7qiSjA^P^&{5y(}w&Aw&#)Rt2m-m2Dpa@f*MvPv8MK?P?!6d7mC?gA zC100T`d;~u57Ia^IKgQvc|nHq>4=m!k|XY+?xU1!YblwNlEbK;M`GYE7V#U6nI#Sz7%Z>6U=m#a|xO; z6k*B`gSpKHT;%jxs{hYg_NOBA4aNrH%P9o7w5H@6;wMuz7&M~eMHwfR%b7p=hnnjB zmsaH-%>}}PpNv(rY8I8NB!!MB;I|GUJ~QM|V^K^t{58aH06q&oIFBe13`nNjpBry_ z5AswsdiwL49`G9A--mDy z9s`sz^5509zJQRm){op#6aNUYML1=TP>%XXY<`=m+!5nf2%KfPyN$GJXnayvmew4Y zFlyEhUDjwU+e=A!j>`&Kj6;H2X&}BA5RljEq-lklf)ZFquSpd>+kj`RWO{cnfeAK5 zR+`HNgBUh(WUH8RqP;WG8Y=cvZ>ElpBSvYVd6^#s4(wAk z-09p}syZ|KeuT6PQa`ssh#qmOgBU3#rI3uN*TDplTkR%o`VW5+f4d7}T?=@JZb|p; zYVS^9QnNrk6~j=I#F+Mq`pk*fNJp}3a|TUZ=qzXSfE*;;a4AfgM7$EiH?WQ_#%pCz{@g-e&7jccfP>RRB(y|iN3B;kd37S#K^?b!Cfj-p8%N7RKUBg z#(gD=S!uR$4Pzz2yvG*|-x+^-KFQ06qfEw(AzIO>HC)F7L>hQB6GjS2bu*momk z5^mqw<(OP}Ti~)2ESVZ3{RV?|tGI6C^Wi(=w979bmQxYm99dpyTF)kehVFI9-B;G` zu3Jwx<&OsUzJuEx?FeSBdyc>p@!8;G&W0g?^!b$OzaQIT(R7#F8?fMPWDR}I&k;v+ z=NSTEW$}u?p1(Buv$DbayGK*on-;@f{OvEG$hrr1+M7Gp$pOVB0t;3PC<4;@RGQl1 z&2rim_+(w9^wy$W+ueD(wmWIa5D3aBNmCJMOUT1CT1k{9k`}xshI3MCk!(0&7}p-r zMXXfUaJAwB_WyvQVEI8HY(K7ugfv0fe{GrT!?>^Pm2hNKUs;yjNw9MSOXl=c1GQ}4Ga9|V-r>?^6iua=d>oE zSnd&>9*-zr7q6;aA~fp?6QW3I&HovvlY>P7H*SSU)&D%C z4xjk{RzA%cRIK^!S1dnkp%@KqwS>1f;q;0JY`0t7EP*l;OCnX<{xT+Aw#0vOK;IF|6>l*cnnTo)6CLPG8R&fRPxk2{ZK`%pG4}v_r zN(Z_^q!C9?0d8{aXT#A@tT7LCRg2)&H9f>)s5|SJ3vg5Iwxk_?V*Q@_GYSAt(DS zp1-V%biExv(o+|R^DGS|sGh{yv88KGyvF4J;(T)AUn*$WCF8UAxS!CvVGM>edR-=U zXBrVnXkRGYwya~zRdnXUZnwg42aOh*57s;>7PTKRQ3*zGH7a?k@O&W%ntiGLG|6o{ zp6F51jXs`b9@^bi6i@tp`*Rj7aaK4Q)O)QuJvZm>RnelmCGioi)kq7!EJ}w(_f>xQ zgbFyGXRW@8u+AoJ2`pA8fKXjsKL9hEaA!0#=gChRDIaEfk0-txjHWxC5y(LI9^RAk?8n`fB?7f!OKJ~_5yJKFxy&p(GQ3q<~+mt zKTO^yli3Ue=td>e%TJ#iPEr{txyTxIB|#4+BQLG^#Lvpw;nhf5j;I1P4f z&2cbk7wtJGcy-DCS~M6Ut+PRH737gaw2E*qnp$0Y5H$Esl>TVWY^jDAm@|s73NkI# zPN(7VkGHO6O7;-fxpe){mzqUq0|vDU!mJ(EpmX`VXaCV|oI^8pxNc<;cS0Bq``)81 z*Pkv~Gkd(E#o-Ou^?DiH&e&PJ%D?a%f1sH(DDuS4BbMuK)KbF-f6yc(`l$6rCKk$# zO-Q>~@0ZAHiHQ>p1ontWPEPqfi!hy)Up-#b5I|ae1a07OB*Ysm0H- z{l*EmNKP{`$eY?zD_Mkzbz(^QCXwubA6|Rt`$ok4Rmi@J*t9Plvk6gg%sCPI^UKo23aY0r2*tfII;-tdeo7s=yCoNKZlO`@U;$EU0BK)KGR5A zvY04nUZGP0ZuiYF{itxK{o}{yqO0KE^3Lti>MxH-sfsVzvjq=|TSt)Fu)RFI5vN1+x`}((>=|oyiq- z+1$C8d)rGVG*1lXS4V$osypYJmIud<$ic#TWfjiz zLL~xMKzz0ej(ZmvJ=yBFnhcxxwduL8l9V>aL5IU5cjlqhE;kTc(P3?d-Ogiu;oqYT z@KVQ7jn8i1j60<7&dAL0AajVAJLFnt=Zz)NmD@j;iQl_tDPy?pvek0#U=bQJgGcQ+ zu%^yV-lDZ0v(f2>XwmFySJvgNaOOBP@!4^_=07wFDqq0KX^ znoZ!itbT%xkC1%oo0Nzv#luQ{l9ppeK7Wlqf!XiCuWO0&TL1&yezg+vC4VqN`8M%R=={Vu4s1f(_+GS*%TuS4LIUCD5iAc`XL@v7!B3 z==Nv_R`P5?DsyQ6nDZfnPIliW+wb^13`Wx{6lWfQt6!^)51QBLi|1>V09r@atu9w& zrw%LT%DBMth`aPlFW!-tkVy`%uibN>3Z?mK}w1~8+nuwv0m zKNwi%&(9pbR+%kh!@b`c(#Fpn##)ZZE$Zp?ycbgSg5SR=(b4Yo z2bcUmt<%NpYlUX#d(YH2UcRvSkvyW+CpWM+zCE%0QlY0}%~KlKo5I%Y6{e2AcDK_y zSx#F`aCv8+)r_UJz6LoWNlQfS;CHG;p|sBXCiG|KrE(^Tvg4cAh4k7p<)ejTY9-qw#Z`yr4KI$! zie{VYyuN{Z%jvZbCu@`^o>LrzC@w1jFO2Y20)S*&k zt9#vsliY{h*o&)uIpYT|nJYp~_*>IbCsl3TOlS^vf>m9fg&dTmXocX0fI6cZdaJF! zk#k7YwR(BQ&rF^#tW*wWO^BCRYwc;({K=2Crr%^Nt+iHEp`TIgR@1Yc$;ehLOrMVq z06T^?Wds7M3zbj6R~i}LG?p|+3c}@Xg!kXt+w9LiLtgCHDv^V=+!sgFb~9o%fA_9Z zZ$4fe!PKjm8r&qY_eSmGJ9E{^!N@P?TIAcW8J7ziC*#1dkVhGZDrDG&cadS6ZgHBp z%uyrnaP{)jqr-1xovLBSblEykOlPi*rsOO#&tw97v{;&FRt9{Dqvh;zjdl46;+~`7 zV91v9U^7#HDw}FQZ8g*=lrb4=pCd3fc(5od;klX)FYG9JTWdjFa`v0Zpt>_04AFNN z5|8zKm%HZ9s+*r^{R?xtHv0&C_*0mSs6-$P44J@Y)7juIow3Y(S6c1qo2au7AWu}- z2T`q_>;n?9VKlG)Hw#%ha!zF@KwpOlK%X@Ke*GYbapgQ}K`?6bFoaEc&E)^? z+|6ij8fg5{V!=1<0^!w$t}Qf69bz19GpR#nTf&~uZw=ZQHK3)_v)=(>RD>#}0Z+1v5O*k&JX zinAQimQ~-gEODkHXCtb!RxxTDq-)8>$9bYvd)C9CsaeR~a>^V)abkU7j3B$^%Ph)L zN!gqbN0%T54gUs%q*=Hz?w*5J!Ig$j@ znbQ2BZyx*9+S=4WWKbf$=WdMxMbhnVqd-qe-lv?Q$FVtMSf(U7J3j0=_%5y z+>x96B^cb|ps~4PLUipA{#APV4qSbx*+M6@OQi6^Om;!>+{Ae+Yn3X^+=>9O z)Ycsr624jjOFq&?daxY({$0fCD+=!NTb;~U+AToscvce<79Z2!x@NhIX;})>Rj_G} zwt!s3+$VYX)QFDkXr6awU(h)A>Rx^?%k~bbgQ(Mu*B3!3IyG;8)3o^ZTydsdPQtOe zWIHfqg2kRIC)~8QrRJ5_+MDubzdDw0Lkd-8!ZThlt!8GDPi(>~X{SP^t3G4#u+cb^ zXSD!BLw=Hk+7+9&*H*uF0<2LCSn`tuqa-1C{qHgDthW;=*9~^_Y^n7&b`7n0ReE+eH(*O~h>;4gFj@U)$KP(l9pQ;1 zK*E>guGSpbP}L$_cOlVTjc4E`RXLEg6as;DEl;eHI;Dj_JsEO+7c_g4tDiDub8MT1 zP$lp37gU#iW;^Us)FPROX+yS- zy850(>)@VXb)N5Ua*MELzwo@g`ndp_rpNQL9P@a{mbDT0vNA6liHp%-aVgahItPV0 z0KRu85)@P{`ps#7kom#ZAs(2^wu|@a#1mFpn6zGcf7j3QdMa|wkiU&Q3;SDfrRSbCi&ZXYu zQ^oUp9*|bhnxwcwQkRP$-1gk{InJv^E<+UPMAHghpX^Nq%bHuQdcba*uMKqNEv9y# znuS-6Tn_T&caPi$X7|Rh;@=*{W@0v{;vIkU+OWXWE+2UC*dL=Pk6Y-v{E{gNt1|N0 zE&8g1<8{r?$NF-1PbClU02M;R zcS`}nYBfxWI}b?=isMV>efU}8zjQbv+$fOFdqbaj4m~I#Zt?!ib|E?}Ba35a*G2-B zP~Tc%nV716hv;v5zij;DD3`GYHt?xAisW42seKSze^h@!o&}Wa;X$D9Ze13gwCS7X zadTbNMQ9YS@)y@Yuw3q0%f%vR!BO8bq2fVA8<8AT4j4F8)a!c1rSgg-N+H z{mFY$k=(EV{q+aaWbf66RVMa+53nZ?G+`fcmawo6WHnu z**%VbO&zewHZWk`oCXi#d2I477Ldz6hDdi#?q2;)8_l>q^oAkGr3gj%)bHh>X6FfZ zTVTTFtN`Myua%JvEiHn*@rfcD}6AKQMcI-&xUxQ*q<+@^7 zQtqO>gDz=H>gI;yxP-B3bGJo|4=0~alo?5c=K$B*+O)uLH0V{A0sj31swVY5%X>Do zM|?=~Kg-BClIQbmE)!K1#Iy3SL!TldJ}g`*-e4FfF_LxwD%eg1v**@IPw;#1Pu-Dx z>*PTGPlLHPD4Vv$%&1bG{Z$TkOFV_uz=16R!4U+fWBFJnX6cU5pyb8Q$Y6sDiO_l3 z5Bl?97)=YEdCNk_EH-^Z8t;RIO=u!{9dDB_dD-;G4?A7WbXK(_xM_O6UYbar0Eg2P za*>#CihBwHV|ybjun94TOu9J!s;eu5?mGvA0*`SktzJP()6JJHY9q1DQ~eef=CdyR zwITFSwIeGwj8U%{?SVH^=nIPF?5%S`6@$e&*GahN0>te$T$O*!T0$(lr|HUsN|x^K zUJs)`JvsD#m;t_Dy~#hf)|I!MJsI($QSW6|yKUaowVNG;NJ|oNH}nqmt;}Gtd}}VS z8MQdy`cC|yhvI$J(DJ0Y`9!ySWnC{1S-VDv80OD8>$A=6@;*M5RqI|;8*JDso01?p zx2Bp$63OoYRImRx$a|e2oK}@Sz)%Xjy_4!>?g6(nuyFf8c3gC2y11vOof;dQ3KKzq zjPuluTrBqY^{F!*job5cq6KpjN3~^tA`hb;axF1;TPJ6`5cTN*xAj!+`w8i7O*4Y?uh2VqD{`M4RDnC z`7UOZL}$dKA9qRx_5Fzq6O&Wu9HGvNk@W4THNJaBfV0e9^kEbg7XFbVJK1gMuoG5O z%fY(fw?-sxNHIG(ZcM4joLHR^zA^^KOh;|h0&HSih&jxqzp9sb6JuZGI%fER!khOYIx~nYA zrUe_Hz;%+QkUsw$u&ex}#un%ePCc~@YUgJaM-9!seD{NjAaZsJ{1U|}G*eJh#)yoB z3KGc#SoQrVX!{KAD;0FbUWL{Th`n1|p9ec7QG9EmpCHQ`b^6M>F@F9r(&cg@ayjBv z8NqCpEGZe{@C{k~wN`!PV5)(hw7CRVW(O>3+wx(x2tE*h)1JLDyg#2-oD4I@)|wxuF)C=Tn?|Qz3pq2f?cpDM zI8C=<>A&HNs|7htA8TqDTC_&BVH^Nt6ny@x5(N;qsg!U%;P?F!hCL>a|t= zDcqGyUZ~Gb%ton5+5!~^Vg8UOyMS#wW-wz2vcf~IOo;wkIwipc%C_faQ5%wI1m5Df z-FpXZX}ql$|8YVvnpH_7)cc2mLbWo|^)1@kKZX#;Rwn1}9&x^D9)-w=x}+1MF?+W4 zUzpG~M8EAu;nwQb^UJmc`p24xB2xwh1T#*g_#-Qxnzd%ctn-~1K9}uH?!ol)@sC;` z=F@hSo5=r`t8FTm3I4Ur(#qs4-eyx@GzKZ5*_QRAAnZ}mI zrE6Zc@6q3+gLNNQ7m)e>lsB1%hv;*szUjm7|G(>vdWGy$vS9@%9it9ROHhXW3Pkkz z3B^)N533HJjewYj1^({;M1}o`*Eh>Hp3)Q@K zCa5P%(fXb;pPnqXoMPTO@&Tk!;TA%GO}xFSx^v}jHs-N(%ofuh57E*u1}+?dKTUzv zIqy}gU4eA40lv@$L>}Cg3CAZfpL%Ii$t_I1F7kF-|;sAU}`7`9)^N19v zLICR*-?^kY?56SgjPC-ZyWEIwPU&?5A@fSo`{aXyz+^o~P}6Sl#{BxWcfU<`dmB5+ z3u=*+JZGT#_vJmBwT+1SEs)oVL9d0EuKCdQ!X;?!RmTj@h6M@Rk3-X>bQ9nyQ2(aQMFo@LV zrSP-{{}&Ob-0QxMGi54104^3mBtpio-*wR%*Z7WjbA|R4&VUP)@ilC53Q)g6=W(D~ zm6UlP#d}l>meyO$CkmZmuXZxK7Sb3(i~P!K2O_`$jB;L?g<`&St*AxjA5PyOU}CtK zKp9GZ2CT@PvQE5YjKukp@U7^7U5jZAmg|HO>K!y#iGkrH92HW>y7Bc?s?Y42vk=i$ z_hgD5jOuU1tr&o<&%~s2u_4YG2DV12zb_3B>*#uLS9d7889`SnUSn{DBCO&k<31wB z8RG;~C688Z3pbnqh+#7O2J>aT$M#;14iu&QRz>ojU_bThFDf|)mt<>M@p z8v5urQW=@%e!ZJE4A`X3(Zy9P$sE5+yw5S|c{(HxT({P?Gm1|PpM&AS%Obhvy_2%at}~c_h3i1IlFN5Y z*IwkGv*S6|RK8_slEI0E;i)%pgT7myo!jjMXRoE6{ky+Y@UNBkDxiSRZe=>lbHg<# zI2mmyhc+R{8RPo&(X$`J*=T)pGx~l@Ync(QKysqV@2Ppn(iiVCF(u>*88+33xvlts zgDT>m09Pqq_lpx2l230kZ+|TRcoZ6BI2qz(8~g}yG@nL}3p>{*LNy6+V9i<5BcuVC zhpt5MmXE}4;y|iLioIN<_4{DLEaSNNQ6u}6`=!_<%C1;`At+QsQ)1+t1TG>6K=DVbX?j=)By6N5@<~I13sB^h+Q!X1l#c@OS_1~`hnJo z60u?y#XyBCs#EG)IVMMEuaZ!=g-Ro&jSN+M2JDLqOBZGW`+)42GQ(&L7oj)@IK$}D zSH$y@d}o)3%QQhJTTl=+P^+Nn={FHvhn@<$@O##>xbwCK4(Lt`8paT~z>qCz) z5at_be5z$tP|^5U(07@fDfjq23dF1~a-8YW0B021{b34Y%a7qaFfMHCXG(|or)0i- zfy0EdiVKN=V?K7kCAM$U#kItz3_`wXzK2XWbL=qW^sLb1D*$fsyxY2}TK7mFr9= z8QgKYbx%yLX=X$2DPE27cYh4*`Hz1BCLVert4?D5)ey}qGZKHx>ES?UU9#sASf^yz z1(~L`z{T{xFfc)m>NM&nNk62D;7c_A$o&cScElS}If1#o0-7edJ(X-wE%(r$|5O`o ztokT_B`jeC>|GARIb|XsejCLgQq1V{=lTvQ6AvUe>cd2CPg$X&Awp~Tuh4$sF9U&EaczC`*CS@9kDgRk+T+>SK zFGldaTRNvyZc}=)zZ~1m_THd;*KRD5F`snP|1LehtuNC`X~XVkLk+^Gbp_D3OAPN) z!Bn&C^EfcJ+46n2AB<129X*cSxyp#3rra?#9H4bsw6pTzCQwwFLd$L?6XAk38sOGW z<5EXb4n4EhIeOTHU~g9v%FwF=v4o=?Y@J(~Pgqkfc|Tcc08=XHfZr8P+WYsN!x73z zO{it?l4JE4{8XuJNZhxLXX4)-$e9=B3Y_JQ${|X9VQ={cu4aQ|h#2;jKEi~?p?rij zJ{Wuv1Z>K0Xl{u8o$GxNw#&s}-%CZDR)+(Qz5W`N^aWPv?uk9veM^!)5HUS9dHQ}x zv61zzyG0R00_J^}T(?;WC;`d`17l-+l7%4t}pReZ<3!oIi5_cU8lPBRzp* zOu#IEX>Yj|c%LyWGpH*|UleK%a%TutP&lW#*!=u}D{&>Y_-B%D59?5k8-C(244@-< zg~=Av`{smQ!XHXE|Bs$PZP7Y27CPS4%1SCNAkr=w{-i&(0elYi?VUxQzpvqg$wM`n$Ues58PrWS=%0@OoW72Znc0{tv zIwN&Qo<1h9pEiIyS=vhXs(1L^FQn+2nCIDk@ek1V1u;};A1L$IGu~rNvkeG$k_gE6 zV9F^AF%Y|>dq1!siuMKh{QtboF3uK{xTOE{SeMohS-XJsphEh2VHWVv5dt>XDZ*V+ z&}&jQU{-w-LNd2lYX^73`_}fAS^W(|5q(qx=!zCwO}w&9no0nU6q0~6``6Bx+nNbp zao)Uv9`omi!-M^-^X^hxMtfjPglQ)NV&=$swehP9TYfeAezmJ-bOBf_M6x46z_$%cHH zxz8E=))NSEn0^C6tbJK$kPNj=JM&g+yS^>TeOyM%G!RTV)daY^6l9Hq5Ov^yFAqiO zwCx#o1hNlSu4$s6G?{;ZHzY9ZT)Cg|ISPF0Pe?<63P(?w=8BH>53O6yO`PvpG|(fx zM>?Qn)IW8Cq+7#-Er%F@KP!Dw^-8b4*f^z;t*h1k`}T_y+-TeO@l*F`5Znj9Lu@5P zz_rTuCd3D>l)ceqT79Qy0(omYZGroWjE6E!g#-!dNp7TY5H4V0UY?EwQMQe` zXHwk!a>x(rv&9XW%z2r3j{UEHb0pW1IqTaasxa4dy9rN_mJ_(&?W*i0*$tzq)63ZP z7mpAtBzGxwuq9SnpY6+nUmh0@@d5;Xea}3&EK9Jj&x}Oq``#Z>K%>}O9F)Ky*&iD0 z@O+|Y5=me(IclVy0AMh;oB7J2@C@Ta*JB1RFBVM5QvNVQ_suEZvhY; zgGXQVa0jN(cnE}{wYz1kY3)WB&((Nk62_cDn9SLxT8&N%*OHU=hf$O7Mm9%UX(=ay zdD*qpTQQgorgO_K$|O`3pGg_4YfsZ!d75F5i9!Pj2qVjR1^(a>v;Aniw~=lZx_Aev zwiR4EAP5;TC43(${^)dw0qh*F8)sHSzT+`X{6Y(?|1?owW{!knE?k|S|59S&08-=6 zCz>ux$az4!!jho?LJ3<$HY_X;%og7e6)-fK!l-cDwYX}eB!Jl+qa z;JLvIpJdolNu8+ge7|)oX2+OGUUCrfbL!0!_q0#D1(l+gt$1}%XdkKL5-i#mbx8c5 ziwBO(SV+kN7r!#a*#53>4uSO|;4(ciL8<7|Eb+#_#PWh~av5;m4EvO|=(0$$J*JhZ#FP9QQN%`}v zB6-e!>)#0>vjxCH1lHFWNla1WqVp)ri$>w1AXJjV>U-Y+Ol9EoC!qaT&b3I> zS{`_~qn47itv|@Vzo60|VtgwvL)FV7wFGohPiW|33P-=pzi^Oow7{V`|6y;>I>T z!dNp|cw78$7;zMTkB8|Nl^6b8_3LO_H=zR?vlZt4{d3JDVV=|;dD&f~)x-e-X(FJJ z{@(5ayMY`wv&(5W)=_VxZvK5S`DidgRdvBlg70LduZ|i~tJ3V+ME-TN0zZoKg%ye8 zvGr~ROcqQ6w1Jgrov%viK)Bo>--pc+;IvzH%D%JOspsL0#{TKsb2(#{>5*7d5Q!AL zEwQw>I>=M{yEA8REN+m2>WDS3?s2Z8DPIhv#4-q#enoBIm@*hcv=YgQx@Vd}68@wOI?u-^UF40z_l z{OYQ#xjw!+HO5rhYWPljzF*w7N&xU)2D|~w1$B}%+L4)j@v;mNDD6OLefrbKF^Ay0 zo$Y;XkfLKKHUsulVh%cD(dY>B03s8uoK;=23hn%$h-eE@-?lkgsW;uO9hjYM$ zY|c?YXH|#zAf%=^Qe=zI4HRR-qI*ur1>AMe;pjFln~mi3_T_`?$<}g%!m_U&T)Hv# zqK7)Wct(vus0f~-PmgAeDjL$J43Re5zY%T{I4}M4x5!BQ#hXa6O6x)wE`q(|2)3vC zSW-?@J?%7rjZ<<5>2d1>RbrjlKCn+VNs%GB?icl_fbl%3+{eu$BJw9nNEG?{EBqaQ z;>bLQc()|OozGYyJ}SjK(W^gu-{`?ZGF;F;zxlbzbteb>)_E5a6=9bd)R_0T3e>Gf8e}hDuwtR3 z%u00)u_MVHTgjcQ`JOKc^S~uT%L!W0i_Qsf3&j8~`>IMs?ndWQo>o{zsXCKVZTw=R zw>EjnM^u3JP=CV;iZh;i=jy)w>EC0lZ}@D|q~iR>BPHBfuLtc6)~hn{DwH-eMsA@C zl7Cr2XNu?SHDy2TWRm?G*v%EQF?7Xa<)*aTQ9^&W(?AeV{xY4sB0h9g;&YDJu}bQE zQSk?a%xVI!uXzq)gl|=49|g=AC5ZS{xowq$N9ri5^!|w!@Yk|BCd3lwoy;DU6!k;- zQr`If7#jKYJ~3X-xAXC>c;B2T1eYU_1OKsJuIfFU_Kiwc&2wJ3lX6uyU;i}3G3W=; zJL`md#uza_$Ir@lIPYHM5ldv~-EMyQlN+GUbm!8_7z*mnKpRJivdr~s%Et!S`Q&e) zphq|C&L!4c67a+7NlMvDs`68Z7KgLtTd6h(-GTjhnt#|UIerONmEUfvY6JCfo5?UK`s>)+jB~lZGfPiY zG_^c$>7s4KFOSXAE&b7Kwc0I7q#x^ohf;?X2n*O(q&E4_jcmT>#>whlAX0j-YoV7# z=ThI{v=}DRYvN2reh~s0X3Gf#Gju^EbpGJ>AtspIycI?iNzO-LDLvLq5Yr{HKCJ;( z!H9`4Ayx`C7hrb$`FfoIoX{C)BYU*~#Z5e~kLI~bep*O=_~Y$c{1Kzquzu869&z3U z9gaHJlJAUVJd_^Qd$|0+h&t=IsDiHXlY$5=wUn@QE*(-!H`21pF5M}qbSxn)Ai@HQ zh!PUJ)Y3?Ir+^@WG=g*r0zcmOdEU?OzdLj1-kE!6J~L*u{vrcJT&A$R8tVw&NQx@@MnEF)uz$Ha4FX8?G2l7B;u8wHw1c!u^r z8io1HRaP2xzoz56_C-rK((YU$m5h@K%OdY$!8eici|Z-1=3M3u<1B*&pg!_c4&s?T zMvj@Xm~bEe1Y*O{u9!cvRR%Me9=vF(Bzl>7&JEG!e`SRVr4Fy3j68NRBhF8zwo>-4}N3M~w zD)w|oIfXWM%co4AX9R@4cC1APdPDl~{+fY)RP@^8dHh%vO^fno&1w|mxYGfd(*W?E zy={xtL=;&tmMXQyXd=G6WJ*waa6F*%g@1avou9sq`qEotEzm&?@V#{p5)qtG=B7-U zHRTG4TFp99%8BFS%pv9wGvGTChcs)8C8?VzSdSIF$i!n8$?N4Xq?|_*e5VK=BEEBM zs19RHjd#-V*?< zC=aIVYZ498!0r9hiN5O%AHlC}(k?Xy~<{``vHq^$vRsRA1xcv>I9xVoq&& zq4o^cme0%7+w*k(ha(HihYjb)xso1c75TjX2zu}HP{T-7SG}C9VqOv{qa)*Uf5HBr7iac}e~1r?8D<;;_Z6#u{UZf)4NU=5Pu zatVh5z-UHpr8E`5W;^X%)`RyA1o!hh>UhPn>S@5T2X6+ zq5uH!xRVBjmMn5~-QMoUc|Azb7i}T%SWh=I zi;cku=WC*?QY!yB&TU?DXIb{PE+$8+jHozUS&nC+lDuYa*b&NiT7~i^O(#IQ>7zFO zr}lmXnboWudufcr_|45B|2W5{jM)0b-l`VLn{8EWg^Uad$aCcjcC%?L*nc}7P~0rf zUu;PHjeR*2FGi~V*gX|FeR;H!2gC*juD$)fRy(G+eXRatEn{?zeT#+7NBfVD8RUO+ zYB#~n;gjdmy+?b{=w0;BkPp?uO{;gi4JAfRWdL( zNHFWw8;RfV6CKbtC8Cj}5I3aqnreDb-`_Yz{@DyI+}$`@BoS>D#8x#8qfRQuF)Psj z)obwWY}OBp0eY}+?nrlS`~8%>0w6PV9xs}_E)CJ^h<;b=O^RDoXg}tHvD(yO)sW zbai&mzqvn6guOI*N@y69S92nBCOb;@YCIOuhKy$KF<1VU&n{m6M zmtJwuB&?CW;{EO(z3>v^8*?0S0*AaMJelCZ+pEkx{H1Z&8`v18euTrhru;O@o*U$8 z1PRTQVG^LAOv>A0(;pvJeZ58$*ph`{r49;5>Vtfl+B?=_1@w*yf|xh~gemhuC3q7{ zl_+lB4rM$9nR z1T?8suWy-t638@P2B!~Pln~EMj3bAq-qSq@hz3=YIRX?dA|AqV$bUUs-LUOFN(05c z(ljS=ogB)3874jG{W2BB7ew#F)WnGNCJuaA_hxR78ijqt!$7`uNwE?S0tJJd2vyQn z8fWZP2D?)^()+jW0_4~0hABEfy{UWs{6HpE{Kh_N)&4@>!>k{IR3J8EJf`|q<4LORj+-Y%un=#V6HfBM3T33Kh(gJT zghYJK>$xpleQnxzic5b&&)m3pN9YbCvWSx~(v4$(3Zmk$L8L!t9c_PuFsfUtl&?5RS zF@8EQ9=&3S+}RV^yoxtaR3H~|rD8I5Rk;iY;h)n#VA|UEg`VCYL`M#c%Wd=SORfJ{ ze2KK(o(ocvrtn(jy$@J`PEa{GfTstVJYOYDA+HqIR4xc~*rO}|-h%}1vum>%$h(48 zD+}5j_lli@E|u;B*zqT6I;vy@kOR!2_nUalk)I{1bE}jJ&u#`yhaMei{V3BfI{9a6 z4>eO=CyR}v9f%3kg84>2btSBWcuqaCK^X@+=)xl#^4t;>Cl2KZ^oNO?*a4NL{3`wb zunqlJX3wo+G}pI31tJH^519p=Dtik^ExwV3M`1~QNbh0UV+sjOpd%$&CNY*CsoyP+ zDNYpa&H4+xh-di{`or2YxkgiHB%YzhZI}lom`lB$1WS1ff^_NLpV@#apNb`t8m)je z(~Z_rDyx`@dhjo$aqtSfKr>n^l#;GSV3|GF0AZw4GRtu*;m+rblr??cT0$bYW+A^z$ww#sJ(BJ>kx!ynls z_EMd6QgqH$xVMf(0{V-}-vm+XfZlkmcFqtHGZL+ueOp;wKi>YCkm&#T9zCG=h6vw* z6L7c5a;kQ?*@UDXpQC=g@SvwhBq=VSVRfvadPS~b5*53xWj1gBAtlcF>0l?vK4TF> zTtZxJ&<~lkI8|X#k#cc!*{dUpB}EGe{~6>J^Ff$%P{P*Aiirr|h6uHL6FY=3gD9yV zx{Qw{nRZxx$LfPvtzN~=6{hxwQ=+$94?4bO{}pxB$BDvZtKUGv~2v z(;K!cu^@x|oHy8-|D~){o$#vv`gQZ9sql!xNt4g>hT_nh9{slbS=KdFVJ3(YRAo&Q zm)fu3ObIcGyZ7o%>8I?&@3&o@WGD=D5qiXVT(vRJ>(a*VO&=t|jed2#-fNW}NdMxG zq%Z)F_|0t-1jBd!K9$JtEM}YarR@7SS|}-iBn}xC;UW~N^*CkoGwK7;M#ko(X>o|J z#&c78+>gD1pfW&`jhWv%K|u? z$Q+sD0RcD>NcYDb8c~#Pz(FkN62->=Itt~^=s+zq(OKWXUkl_3*u4e!)S|qGkBzO& z%J^y%+qneqdlMk9l``D?HRYEce_w#GC%%)?)s4k>h(~0 zrSZ{5r%Z_3Ix*$AYX5ep&qS8$tF&*G=NCvxjvx`XJ`z-OXuCWDISD|oChgR zg-hCg_Fq4$X9*ur0Ri+r2>0g2c|+)l4){DcQ(OM(P;WgwmsG2Xk9W1%UT~J8X;Vfr zO$0BU%f8d(rU+tw_xW2}kv2kH$6(Fp8Gw?A;-2*Hau)KIEHET#_h*kRe zW;A|$CkEnZ3n`U5lEbQk7b^!8_6f4V&$dn)dvoKSr$Mfm5d+U3G~oxt$F2=*t>9x%L|)-! z>?^l@ZCAg1+TVFpW$dGi*hBXbyMQKg`h%{n74SRMqt>PcBjYUZHFAd{!{bQ&tBu$r zo62v#A-w0F7i-0cz(u@sN86v}XziQFL~0%QB){E*LYp<8msbwOt(HXKsQ=RJCk!-M z{m~GXTpXP|L_#I4b{zt`@%*boef(W6C+Hh9UeF=c_si=v7ympDc}3aX2&FZ?y#CqH zVJdfJNMy=tXUwygrnr;I+~tKx2n9Qn$S0eEK<_IJ(4R|&&h8euYDuk;&Vd0uqaHXSs}M02qS1dAw0_gNrTB11 zn3Z$lNDTo>rH~E%JiglbL^McuoswPo^NIJwF41(?=Fy|T^_z0x&d?%cCtK+_H1N$A zgYM6dnTwBz*WX^uANYA8KRs}tYJDRv{2AliXh6n#EU;DkU+jTvqKdr*+3uwEMbxs>Wj|LFXKtU z|5GW)P#AQ|B3Rh;clKBWB$sJ5G#>C15*Ugjy^uoJaqHN14H(Q1@;}`lQuyV;VO8qeCmdc$MXZGM+F(CH*Q=71-@&IDCwSzTbz)N z4@CyQx;Hol8!oJPBJ2`1rDACm)FAsCJ}?S^xi;s}Dy}Y!9W)d2h3r&G9nihpsd~`P zQ5^}{ucp(sVO$H64s?7CupyyJ0W3X9+rejG&Z1}eIv5D*kT?tacW2eSZ>D+K>pe1N zpY|;7(Sj_{Yw1i%dEwy2i&SF75`Ah{ZUSK^2a(peD)zm1wS$4dC#2l_ zI0m9{c~OP59N+-kykN2}lXP-a9CQCfyO;L~J{xLy&8m?#a1ndX^WcjyZ+ib{5!S;n z+Cn?ibtB${emQT7csah;n!R`V5Z?y-8B?8nj9quZaeDXKIxbaXdKP}ZxBAHdQbC8Y zxHLFQoxtLGzM_B;MB)56u#lW890`pxz5CNh+zENlmOZ#;!rC!;Tqqt3i{VvvlTrRuK(39`@5pJh zdu8;KZD);g5E9qR(g()x7aO{^EODNU^?cqGr6SfCc=$>mzc2EoOQtVRQt{)kRDw=I z$)jJ9N(d9-svvsgVlc9mY0EFF;%>ohqF)JyJRU^?N`gEm27LssOq!ucC2mKMgBL^dYiKhe4DnSWVmV zSR-P#FN#04e@lbbgEc>2p-ELF!xC!fg-p(kkCFv?$FlITkRSg_I$$=`Z{S{AxvALc z<@k3w7rmxIvGVmn#&r4Lz@FWPz!89&w9-Emv7s@|B-h#Bn}W1-XZc2~0k2`eXjs z1nc3hmry}RjE0GLo4rGHf**91eFN(k9brhH_*C(4c!pqQv5mT(qh%2*YOwRGhUxkz za|1{yrg}$$S1t$U-~UUmLZ=9B+zn?gN)mbzpnOf|;DKlmepu9=Q1ToT+)B)>uNHH9 z_qqcja2@=7vSw{CI6&aU}Q(b7OM27I`ds%&IUQSf@M>H51fV;_VGF*@XPI{7o*(wCeU zasdw=&%~nAq>D^Ak2vf2&<$)oJs%Nu(&!7ek&&~eI%f26V?LiBo}h>F(Gy*H zXET|W(XfZ>-``b3^t{sfs zN0o}7zFFI~ZP~y(dFskhs^_k*x-;So8WtLSW z@X;(6Jk2wxqBBvvuA(bZv`(lyQE68N(`;**02RhOt=@t3SihdxO49u?@k#5^FxhSt zW>L7eVqnL+ZM%sVoR!7APN9K>C*1}8Hl_kw*u^AWc{wABXi@N$om*<)1s(Jv9lqjw z`=S6){cJ=2*<9+e2-T$qne&+l_D)#BjbOOhxtD7=B=vaMS!r&V|H14cd-|r0yaeA?axXjBI&MmJly$nRLZfWZ&29n3D{lgjc!BH|igWXVMNjXI zxc!r~vOl`QJXn&e%@iJXyYyG1B76AuXq2z@hUt7;Yr`?sne~MY(6IH+^YT!4!x4EG z7GRIkl{b9F9}B0MVY(y27DgFC-Nn3#N(Ogeifxa7;fz+Oa8*7*^J9ceywu6moFCfw zf%9?&lmCiVu&V}?Zy-~6Y#&F;GV(M96Sdu*s}ueNIGGN;HNB&eX_aMc11j0g-1_}40{ zv%dx`Z;B{oEd03Z4|`>4!>~`({igNX`>Wp8OyY6hhczqZi%4t>ufZ0*%y&Y3lf;}y$Bur)$>e086?+Vjw z6_psBlFTTm9W?o&1rVp=(}ezNuQOp+6boroGO6Jcq#g_S{C+-f86OJZg2^=9M;zSN zm{oSvr)RT%d)~W4*X8@56CUaA=qG!eBaYn|odn^|{&aR~vY&wOy?8-CK%(IMylW`W zjs*R#R#uDxvF9Ue@oI)|bPB_yTD`NRG+e!Nq*?i(C5_hp?9hM7tC*Ji$Y&$d=yof-lF)C^+C^7#Z_kfN7&=|Ag1&D#3q&z{w8K*c}UK&J>ziV z=P|3C@)}#cuzlL3GFO|FA3wcQ^AR&-Bd#Gol=h6J(Om(Xe zze8^h;z3e>Tnc81duuR0(FM}=3Zq?8@30Ye`Q1Zq>Fp=Jk|&OmnpqU<6#9?o_O9QX zPOvat$zmER{!pMFinsp=j7t<*=+X7Bt~UMr2N;U?s-BkszzrR;UfbU+U=S1 z8{_}#`PIo~nE!m?TWC?d=IB}(UWFOvThQ?>@Z}%7;?sl=A073cB-g^WT-7w+=1%co z!!liDycVq|>yzQR{$qXoOa36(C+?r(YvruO9x>r7aR*2C4LoRM%v@gg;sF25;I}JV zj7#wf{GsW7E4;k8Jw5VLqUFnn8LFQt_;f6$%y9K~oBc}rjee**tUXUp3VVEl`eJU? zBI*dd=_(V2&l{(|&&z99d{!MLCt0dJdIEP`sQX*P*;uw zhuhil<#Y}EhYvucU7estg7VV|eHmYTSOU>C=jkq-nOz3F5n>38`z8(U+cBewqq~U; zNVo{&MW43Tyo2uTqP?tZUVZknQ^#I-{|oD> zho;Sa^bfiKFr4?t(ip!nelFF|i*f^dN8jkPCrU%5psvKY_gSc5B?)R@#@92=PVnD6 zYT|6gBp7T}VC^_dr->rlAMy`wRYRS|n$)k)sJr%EizP3;WYCP2N*ObCO7_o&c7C~7 zyvII{opIa#_{hnEKlq75Q5~W_-TIwb)k3J3BeD*rP_|IbA91Dt``j+%Gm5(#Y4#Os zW?Ss_I|nfd3%8ho_;`f9@-h}Qq+)}r)T^U%7y{O{t@E-`wf%ps~1G4tD>1HCi8Y&a)_XgzDZGF=!) z(tz%Vx!z!z3OEVWSH@SPqqoBuN{IIG%Ua`49YPd|$$^>vF1pde9G7L3Fq|gOs&&XC z)Zhsv3s@4ojEaLU9Sunq^myz+jG8)Zo2bIsVdhukTR_RD0TKKeRty$J0OdnlxViGU z3RWAp5RGEKMJfY)+N%K9%P%cT@sZJ>)o@#u^Kk?Ag$ac*w_upd!U}xQPQLKQSV9_q zo`1foOdn%H1gKXuG}4g!-XS*M#0c)R+E4hmX4G3m^w`X~ph{5kT`^Owk!+3KT;XpN z_d!N)5lGe-Vk9{lpjrbvva&KX1)wB|j9}k1K#S7 zz#2mK?=<4rh3*^2Yi=1egzz!p!U$9kBaS9JcET|NK9aq^Y5L~Sis&0Pz(@JvUDQ8=mTozqT1nMSrgn+d{VYhhiti{45sSb`&bsdggh+8m`RYrQ4&na(DYdG znuSEU8vZ|lEZ`Ma$GzAijh%2QEPtpbFQY;P^m!~dS^K7991`L05A$I3#E_30=c2wj zhtZ(>=19j#E)coE{TfD`m?!tTW!;6VuPI>F_8df*m9sP9&Nya4VsUXe#ooDS`-^VY zXdxO2Mz7e+!s!?Dq&mHS{(i0zp2*)Wr2cxkV^an4F{B2N>)C1u^;OM0cKyZ zAusw5^9LyV_&qKI2YuFP!wu^fl=i{J*q7I^ucUYea_#t-Wu?}TkGds<5yJA3pkhCn zX^{a#i~@*9YLVfBc-FB-A`GA*7zcQ)IE$A5%kGK6Bt|#5PSeLu#p_~0qUK(z>>Jlg|@{Jxm3Vv5(Y@hj9J!9 zND5j#O_26wLl7%E+XELZZ}!Ad6_z=ZXE$pjrF%+k&2Ic9{ z@^TP-dGT{Ls9Z%2nnY!s7bNp1XhjgFbKX*F>0qtCAqbxor@wS4`rarGmTc|8^Co<&SL|t#23@~j;>D#)O#=Z7 z>`Edth|;xKObT-PixuIBTiyELdCADoIbMGsbj*jpws7G5ezo^}`S)Dg59Y6IBDfT7 z#NzB|fA%$U?AjCNKA_WFX+`^23f5pi@}v9u^bWkVM=f&rjcrkB4EM=}d(w~D;Y?dA26=svcQBjLdR#`2{yrWkjg|(-cq_i) z?smIlIrDS!dnikd&a1$@(qc5csJeQ-TO^C2Nq7+xfvSE{{Q)@Vjma++3OS9288X9W z#!OYwQ+g^1gU-y4T;~ z6oUZP&%OMt9sE2+#BgwM1aJj#z3T)h=ZTO8)yG%1IGAVEZu3cR<^mkV&2E!zHqNX^ z_*;nbd2&YEk#|-DW+Nx;KgObi?zCV>*MRz#=eL@5deefNGI886r@J`IwL%v7rSY`* zcpQ`iEqVHbi>9FACu;gj4hl6V%xL;GiS|VGPhH9A&eJ~VenIC4dec71i3U^V6c3+!VR^#7Z3wubm-5 z^ra&`_$Ti0+YvxZf%S+&w!aE{{snEh!TyE3?W@u0Uy+If&UtNaZ9hpyf3ch1!;Cn8hr{p} zECR-d6n$lH@lKOjWL}QWXJ}t&3cgp zcJ=&I@LA^z`qwQP_i!DTQH{;SD**Vz6b>xXr>GihI{CCb#SXJuwr*eDg^dcMl^NGi z3%CQv6@?8}n=FiNiN?re$lZ>WkRjZ`e z^$xxN;h{^0UrcPW7OnBrDaE4GZK9^m zX3=$UB<<#q)t7KKY}s{&yu}4OIYZBVHtVjuTeRf)bb3IMY~Jg~T$@7yT2%MgWbJ@; zDA8i?qLgZF?8ake4?}y+*wgR@A#q06ybu~ZzNnB2{Zbm@eSsZ7T0+a~bTCozq_&P0 zt8X#!m!Iyg;mrNmvNQA;QLpAhf1I;}g(EW9PE7f`=0wqsc4 zjoj;?T>~Ppsr4t1)#aO=uE(19%}K|(hmxZ85jXdtE2{mie#Y%NUrgRXL9cbl+?Wx!KW43GMK8n zjI)l*K&Vw*=5oX=W~VuM3Zrz%`05Zx0(`fVO6%*$qx>zkUBI^w_0Hg_5H3;L_xI>8 z|8``)8cN?axgIS)N`TK>6fOAX?V{a5V5c??_{><;?@bL2p@-FtvA{C~Gs(W__q1io z0@1lJWZ4w~Y^wCz-r#tOUsoXfY~$DnV^VC~z|*b|i}7>^319!ZCVF>k;5Y-`*O?wP z2;leoadPdB`EXXnb{6BWT2cNvMxw9X*PrwBUxa^Y-G0v9y9el5v8tP1}T}cSwgq4z(~4$D?~|iNW)E zteE5p{&LB8ASMo=Lva^mi^kjj_k{k50do0;@><_rcm_xw#qSKfQPN zC?yojFjb1W?-dJ76Uo@E^Od4K7WgiYqlnLe5Q%>rhRI%bi7+e8urVk0`S47#huUE^_CW z;ohS^?iofo`$6=)CES}QFOfMZ)qNH4w2)_oe3+=4;h@Q)zOM7DBm7+E+@g>ErY7T} zw_)Q-uzfPXG^phn!T)};X>?jXUk&^-+~{s#|4&BSYkF6fuylCLdGuc@nBIXZ7d+<5 zxjHIFvbw8Up!6P|HE*_IOw((;P-0Iv+lOU$J1Ue=A76TqXJmpr=UDKQ4*_eo;#hl0 zpvzk_mvzdj-ou01b0!`gp5;~-q590Kr!2)ts!8T~csAqsPi`Mj@0m_uvuc*YguXc!%;MlAbWOu#5`*D?Osk^Owk4GT;9}uq`;9&# zhE&Jib5&+H13Wp+*7S*MUf5>&OkN$qVo87q`ir|=TGHHd|B%4NpXM#dz!0_tIhlM- zRF&_hcmMle9ui{yP=#}$3oYGdHb0;B%?d-6OAF~gBP(p{Xm^805AorXbt&JSiCgIG z8W!)CgnG{&0nj+DN~LZ`RjW-_vhpp+Zp)zaxy9hfI-xuBh!nF@`QYx8nwi(y`OdW$H`&I?`>WVUACAW2=VzMW)?79R~z+yR(R{(uYcg+ zn3yfi-*cd-Nfo&{t-vWZBcC;rO;-F-o4TQ`$G?NKquhZn1;jAkohSS(9W^6bu_0E~EMz}dZKpw9|ZANC5ah=$&b&tS5fR%u}|R)a$={YqFnh-DyAkbj^|p^)+}SZae7=4(?vza{?`%7lVj^SK*!@-y4Bj@ildr#K%Z zSdCYI?zz^Ra6{oj7So2m+jMv;ie_-C}M^#9iug*3wp#9BZ1}j zLdrcI_p?0q@go=8kP{YetI$NY+Ix|p7s-ZwmMeYDZbnW z_H=S@^;vsFP+gM@J@RMZ8Le)!vYC<532^)5#emnvf!@q=jBL&YJ?yi4C;uN}7&^S$ z@uDi69lT_CwQbAgsn7hQR7vHdd7W9a!i+4_p+|g}TGEu4?*pWOo<2N{3cCBiM0_q^ zZ%Ut)-Q!53h6GR`XQ)2+;%i#%f!z$>Pm1r@_B^N*e%pR*Ad>FO#o2My|5&UJcPD1W z0fhlzD-f&&f(Z%khi!4~P6we*_EJiEGo zrUoa>9)P(ix>@0BGkrhoa{r$|!Gx>EZ9Bh~OpCoRiH1vNQOx_|b1()DPfoZ|K>IV? zl7b0gXeMMF^e$5pA;Tnroi=@*!SHISYQI-U>-GGAm|-)9HfZV1jBhBZ>AA%ql>Pgo zS!M*+8&246wak2ZXPN$4CI*S+{QJ?>k@xhKpD^s#AM>B+sWP1l7^arfw4C0pFlDv@ zagWMPG8VOYM<8HU^rvmm?WPh?CeZ5f;pwOH;jfJyqN5A=JGhwomgP@am|tfQU3!f} zz@E%}{FI8#L^Ptj*y^hTeI7~eXc&D=jO%L=uo($yxCELGmE!iuhZ1=$@)7vtMWYOw zl!jxLYBq4&WtkQ{K zwhU|W0>TMTcrmt)lZ-t(%nuU4-0E9^ADOK?SCKqe%4b3muAGx`dYjyH+Wa3qEHRm_ z!)An_5M{!CRfG=$xqn3?Z4<`6gb>_R3!{`ywBlfWpe>Y?@`_y;4_%@~3Kn`1Hd&Ip z?b62%n2dj`PWPngaVFIG6;tf+(svUPf1-URb*LFW{D{vHqYtkXx7($M_{VN9Lw-6{ zUDdojE-V>S*sVGK^v!XcV&nNw3@3Lh+)_aurdz%%0x6F`I!Bpd+Xwk~Y8%T&Ow2F4 z2%Z_B6~S!AA7|!kt>)HI?g;pmwunNtOkMxIFATxeTepwy=1iYhL&a$`e{}53Hn4zt zZ8+f*DxVgU|IQV)jStxNH;JnIfpNfwsPcPn9z?BRdv)I&}0hr7Y!iDr_F&n>g_k3zVj7 zI#~mad{Hr8vBz8m)ZRLbMDFz{+`T-)q&>KI0TIf zoqOgQuYMR&JylFj#qY_+;;f#NkJ5fB5cP;O(@xpRk89L=|0(OcG{a9yW&*EjzegvMs}?PJl}Z`qmK-f{>=LJT9;qD( zl)}8ZrRMmY{OIt*5{c*fBuV@Zfg_hNYBl`<9a@rXTC0GP{O3c`ry?DTyEY;n@P~76 z3ng~6S*^^fhYX+@O~qk<=ijL#j`bt;R3Id0NdKY=Ni9E;mvS%x3^8gpg^7RAZbDw2 zUf>-{wtdL49+S`cpxT!-hP2$BzQ>&EbUj5pPUk@*2NMi7mn~LR995RnMZ-@i4MBBB z3F%9FD)5hfdK=LXBu$z%dC-|((Iye8gCk_kD_}M$LwQ38>qU$2!HXsf?;5%*AN-<3 z5+}jB5r|wEBWc58k@_-KjG%zMSrT?=6!Yiau&m2wQs;D%yJ7X3w7~FVzfSWwtFcF% zBNh);$2j5JKKE^sM~km|)tG@gcd`{^;G)B( ziTFSM{Jj~&ycN$TfyL4duj0d*BXg0Bp%|;x@Xl11LuJfZm2CB@P}$}^bbjuMTzHL| z+(z{pW;J?ZCBBlP0c`Lu1zR^%&~Hcy6Vl`d7r-)yJpufm|@--qXTZcM-nAxGMG^2ooxBu9z49PshumnKzt|A3C5+*O3U(lH(fs z)$Qq=ydtk*9n#?sX=|9%*fV;V8$7t<_rFBRY*XhyMrr|$MG_GdQiAoqzT@={Y0kZ* zIWlNJF0Q{cp$u6%qx?dhraZy~lpcK#C}6w6EpwaPYpi+HhXF0?HgyhiuAFSPb?=t< z3;qFNi+m|ArZ3a0eYscp{~?be9=HPgnN6$Nff?_moHiiDf4^B$(o43F>oj#bN}yYV zZ6O@+K`G%|2AGTB*(~3p7OXga=E*{`v$`s!FY!W{(}iu_!Xyn=XH4g{7OLMXiP0Gd z4kit@3OhQ%WcP2hO<6NkT>LymI2r_s3Ye(}gz$#1Ete_i+ZJ1oAxT1C9ff}NM?}Y_eaKVx0hpMGP#21h(FJqD9C9b^{3iKbpg)YGc|^fU z)tHXGqs?97Q=T7LK)V+LXvc&3M}{}@FyNrSBVn>nHzI}vcF7F)r?p4?y*_^y({G~) zYfV)?_`v1_oodh=pQ79D#E@*7E(IVjzr{jXPbME=bX<^wl@1>HPMEi$IaOwh(*eh; zBVUTghFcLg#dSApk-)rQYbV!G$7U(CWl`0Xgb#1jgBrUbp#ipt8rg6mC9z+G>yPr; z&`$>!;%rCz6Ysc4IxF~_6{3|oy8a9eiQ3wkXS$p}#JEtrd}R6sSKv`9aPwZW>aZ*O z8c3t|%jFg+0d4X!s1V-pfnx16RSThMBR}_NC8N zD7`HO&95L~3UD{o&FClcZz!--##{z!KOr~#%z(b4-EweTSX&)6K6-QI3LD~+y&=c* zrg1#A{g%(-KBA-gmev=?n+64!{CzSEPbilsM+mRs{Nf#QdHh(^SZ8^kY$0){wiJ8( zwJQmE{35na`Rl@4-_akIL@RXgBamrLL)YeB8@0;onIj{im8o2~OhtH8UuRC0iY(Y$ zuMhu`onP3zF1nIe(Oo-t2(;XJ{f(1P`_ovFV5(R6R1xgkSvyS$;GUW3NvJ`l?s0Z=0G|~)@o4%i7#zX?bQQE z@l5@R<19A!W9PZp3$g;&W1HnMWKDi8KcYI49dnFtroEi zq_N+(qh*q?Xw&p z__^!jKl?DWKR+U-(7>g~%~iIQio<%0f1pOjKFy!d zIpOFk_|T4i&)jonz=1`1!|3_e{{DIerBQZr`2ke4R>yM`ct0taceLrdoDGzQX<`ETS?xG^bZ%Uqws1*1pz8iVwK(Zp_=9`N8UeU2eTbju>)k7d&VAPw^cjCOj~w4tDg5 z8dHE{(d{Rivs)rWWQp$qAKE?3)Y@@ldto}Lev9}Y6Vqleyi2C5XXz1a7kMfG~#|)BFDK91jaZ#Gqsn)(UQf zz!ok=SvkOfu19L%Ke%BUnV(e%F`-o*E{d3zP7*n#yfnvvWW5C=ji^}JfNvfT!7qr) zrjGO?)peB8AEZvp!hC*>eMs8EW5=8c;G7ipZY(xu98le=2h`U$!*tE|?xte3IgDl3$g-Wm~xUg@$xf!mXHUQle0tHt8}1 z>SDhtdeyqOTIHWQOlP`O870)MT6#6$Fq5=#w*HE+C)?^qMQAF}o_i*D(%Pumvgu=& zs4D40B-)VxEXefaRsab9*iAvQ|EDq*8)XBP>qMkYsHnx-O4eH@M?qtUZ2V}e(lKMd zNVSOzAAZqeMGIi?V|sk0!CgtZn>oaRlAnGh-<-_Pl%SrtZd3n1#@;$Aj-Y!R3?V=u zNN{I@2Z!Kp2@pKUAR)NBJ2V=CyALkG-GjRh!QEw$;5z8?zTa>6+p}l)oc*Ux)xEcF z&*`e}s;B4HbFXO zB(-Si`qoF(xtekO-um1>iOZFVQ>BjWmg)Qslpurue3)_vd&JZSe4~Arfs^(UT9ED) ztOFaP3A<Gx@a{n|3aV%uF;)CB|hd=lOGQ(suF(!3LQ=QMrtGi3|ZQy#IICM%%i zYbl(UlQnEci>+!&@rmNmBzK5q-jnDG;8!0FZE75AYnX(?XDTwwGDQdrCQ*b^@a-fR zG;l8(xwJMco!*}B);V6q0+Nwh{yS)akL}uxOxZeL>f9!ccm5g&Tm1(O`^y_9Z=Nl7 z)XfesB0Bk8`=J3jKZeQ{e~3|0+^3L#*s+cBr2sLes!K;>B~BOJnQ&?G3%S-Ve~-tn z=*sR^sv?0or2L*GL1z?7opDcoUq|#&iMFCwapw-@$qzm2KZxDb!rGYq1+vE=#2`Fj z{10M}Ta?B5LP_@c-0@)Qi9l&Nw6j{q97}IVXC33%JTOLedhw`Bv$=MF5Js5nz(Yir zY|leP|Nm0p0wPNT9rTSai47t5A$RWer^Z)0H_?|9@4ty8O*q9$4h+EemOg@*{!^Tx z`|=G-^BIxafF{z02et>OH3wn0M8fgW6cvV`A(6g;X(`?dO%Ow7@1DGgymv1#{0#_) z^pVW>1k3XS{1u3bTooiP{$pj}!9()W9^Z6(Qv}H88J2$INZOkHVIgtw8_Wn(gz;zrM-{5zJWYR6{xiVU)F=3{4HVQda>vA+c;wOdv^sbd-mJv z!!!{c0SbwP5F zZjOEvt+^N6d6nzY?}$q7b$|Pe;u5XT`eCcRKKi6_D`bRjG-hNVVeMw?H0y=y;{*B9 zox4tHfT)8rNm4ZBGiGtnTLuuKE^BnJkl`0#u*q(J>#?KcJ!QUkorMk<);|4s^j##a zS8p(K#f}ZcB;pjdV$TLTd$~_p+#rFzNIyvmJPAN7HmL4 zs4U6;gYn8QI#-<522Y%7dw2|PwY?)~Os)HikN^rZ*+lQ~{_m|rHhkanqwk0^|F(`I z;XTr)N`r8_C-$L#Tab~d5Y544`llP#hXUODy`ZILT$s@tz`_%SI#L6?V??=P|HrLS z>^^%Saa#JqM;fl#|6#ccp-nYAh7f=yHGX>QW-oSv=g}L#1s&MB+P<8Kirv|o*V4T4 zV0OPq5V6$@Bm=NwDbE}Z9^Fc-5ItS&h2Qp&J!4{1p1$zrqWrhb2f7o}JDJKl`9c02 zGf*E0@pH(G?uA9{VBt`Ah3;K8`W=3qKa zci2JXDQ%om5|qKWnUcGkzqvb(5(&tZtblDfvzvmO3G4(wSJfy*l84v;B6j*Bv`s15|psw5(1f$gF+MQ-H^L59?y$X_UTKIw7Xbo2wRdpZ(-_ zNg+XQBeumT;OSk*+N9(iBpTR6a=g1G41yt4^33%9gIlu65`9Ed?h+)WO*_jcQo4v9vZ^cm5+NFR(mMiT<0 zlFunSGK*QFQ&s-HO)$a)jX`&)6R`$geG}2QdSNG85gix1TJ0<>9f&P*ORHR1L*mUp+W38?Sh-XVY4gVhhJ z=lXoE_XnqQBihFIqtuPuop8RA<8V5-mTW|rOLzVQ!Lm=jS_=up-!$Rc3$a72v(AjW!vu&Xm`@#FgC5C^{`%vDzZ4D-aL)_ZmZ_BnsqiiLdvk>eOq>))?Mqn1KC zf48+`&HOBP>hN)nl2kk_r?nvby9G2(tx33p$}dnwS_?iOQKfnFdX@#9o;_WaUOUKu zR%L5kDSt$rap`bT*cJxUi70a*A2toI@e+{-6ECTLnPM-&lKr)3oPJ=y>4p7cph)B+ zWi4(-OHZY0=92W4IBIGJSj5-|x}b_+NO>y#V@l>{1r9%igbC;iM*tT zD_7O%0IvWg8fey7bU8$7@bAxcmr92ZJx1X zJo z8fFgDKk~5!O-uiz>ULG!L6qZdudGx&pM1U3^Lb4gCT4+P(YdpQZ$V)T8fIb(Qcr&j zy!#b;F`@m#0&BcN#MAAg^G7|73$SnMhr&pR)7y*rdo!a@Ez$h&*Rj#M%JSr(>&G}k zWPW?aR|*IJHhlKi4>kA(p8P7n@w_@Gi^o-p;M-wE%p?;)ZGwci5^4LQk9AwmfSt*v*Rzk-!j7d^d*a^73Yez(J-#*S z8w%vSBF8uT$HPU|luWWJ-THXyuQ4mgDRO9N-${L=U0;`J1(alm0=}sYrFqx4{;%p+ zql==LAJNtc%rCyUuAP6Dq0cxl3cYmLc^fJ0Lu@5^1qsItR8|%2R`JGN@A1=^#;oGL z#s4*g*9a59oQlAa-8>z$KfkoZETV)Nq-GIw1DJxL>Y z`-JGMviH>3!H!+W#y*DjUqG~?<@)dA`!~uCmd{?-)j#5h;wUNKyruHZEJx^dv8<@z z`H2AI^h6{;Pp;C(UP%66fQg_y#84xe!im4PW@!7;?&OcRN0DcJ8R@=6m4Zwa*caL0a7S6HbY zVe!gCvx9*&EW5jLVcfZJ4G;>{Rz<+?81tp$#3-q2P-auw%6d8@Ju+jRvLC-G{752j zLTqlSQJ`G(#p|4(zUE$3BrH@R@;hXwXwG@Tx$(j`wiq5jOuSd3qV9mmnQUQ@v51?` z6E(6_usp++&sXu?4@VUM#_sj3c5Cz8{fkkr4crWhL-p0&j%)K$#xL(EZ7s=_c6c0% z#-j{Hre1Mhjk1P&Y62f?O)|oQ8JBe#<)iO+N3AUm(D~Fe7^ZrCR1InM>9`&V4j%u^ zaz&+aAjOWG98f5iDg<7r@d-C;Z+$T3N`zhtOwA+k)^2iFDwqJWstTVl3It>>S9?Dt zGssT!h3uMRouy_GBp1uizt~F+bk|5dT?BAa#RBn9D??N=` zYN6o%RB6G7n>t)=7qUGh@RMo^DN`;(zS}*+U?5B_uqE8WGV4Zsg1__q%J{BhY7K(#p_Qgf|YQ6(H$sZC}V?!I{9riRjuMwIRn z*2u5<`rHvlU$&F@baVabB`NHvMqzPWpjbdMEGHBydtx>^X!4e;FOynXEBF~+0VCvc zvE8Yq-BXIp!&k3vTQ{RsJC)hK-B+aI8(XqfS6j#rWislB&@8zslk!}d6s}fs zOwO}t)*LA)j2}fZ@^hknY2eEy8u?cng6KD}U>Z7tUwjOeQMSHa>>}U*t&hEQ&2WjJP7xcR@#e@_N2P zZF(F`U5qI=V_j?K=T#O(i)?VMmu)G{Cdbf-j6-VJDgXCi+i$i`8`cPo?^{)Jjh7Fw)U& z?RuZY^fba$G(m^6g~Huyv0I~Ge;(5h>kOYek`S^BD+@KzuefPlEX^rWeK(n%eu~nc%QXjKXsh zQ#@|l^26Cn+zV+Qmrzu)DUq_J5fMg7HMisP&6Pz|1Kp7v?`V#T!=ckuizD)lzG$0{^jIO-L0TB z)%C~@YpP;}_N#^V3~8owz_`4SnD)b*SHApj55h>A;8d`yXy>$A>-OBW|A+Ep-%(h; z%>Zj5_O7%HJ$v~RpW4^MgHPPB0WXp}AgdGa`X`sQj)G?zk4-0D;UMfKA8J0M{8EGd zJYaY5X;a>AlKB8JWU^z_0FBCJxT8cKJ3l^!L_Sf#aK>b@mDuPxo%7yJGq1oS%=r=+ zxKYcKRXMzv@Eg+{x}0V#nTxg#n~w^X=lpey^YnyCLw>tL?)H_N$FNbuoPF10se}6#n@7n>`UPZlqNGPn@Dv+QX-4i`BTn z)LE{u66T4g{EM^_f(i~FTOrPr!f#CP2jZZnmd^yEpVLJ6A*k|4XG^$23!$Hr|0ynx zU;d(?@=+3`spv z&{y}rF7hl5t^1sU-fWX!6%k8Qk4CO8@^IzESY3goe>+^xOi%gQzo1aevr?c~ASq5~ITc)4FboWHfoAu~(>5hl zy>lbD$`x7}LEQDif8sE?eO%X``J!tW8`~Hq<$H+X;AtUfW=EvO8E(Q_kp&NTn;Go8 z1;40`nKq6vx`LAh*UEaU-E@(*YKLqxCx-GBi&|=0qC(`8%JjQKu2=z;w9ULiV%e6^ z{k-pl*Q`X39oSZ(!l#wnDUj{t1_h zI;~3DK|FOqv53}`QOe#yVIYsKd}BGbeB}LO+m=i+4|xN#L!N*XP1{NIQkj7;;wHKB z$|v$Bt*sWR-W52@bnKRP=cN(QF?`GD)3%?Ge5Q|`f(q+dzd&4$nG$J~vcg6X;ynHz zu88osJOT92Ip@#Mt%9iUMUAP8Z3e_{z$-(3D=Zn@@|*J46--Fxa2EtZ!sMLa*y72Z zNSO4%l-fhm=Vz=p1Aq>sEVV@TjO8p=FPYx5uw)P`zL$;fZ0o>yOf9kXDXOP~RcTsY zJr-1Wnc3(IFK2>hggvmI-Ss7$eIFdBI`8Q{B*cYpP<0>+*eiq|{Y}^z`?LIMOmnw4 z*{YCugho_8)3gzh~*;ig7MgOX|*Ui$rYHFu(zZ%V+b=h>m-i5IDxgG;IB^Y<;M?c|rA zG6U}edIs61a<|QVL*gHT{H2Vl8Uh>$H7WYi%^n}-qa%4nDQK#Ojx}3LXctuJV~0mkJ(dxi*)ok z{nWN{{`&Z#+cl1t17aF_(gy#cze=OtX~o_1CTE2YW06g5~Z0 z!P^`E6c)~Z+$O%G7H#_izmjJ2W%YCatwPxpn7PK$G@ssL2G{XWq4ySEdyespMGhJ0 zGChlN9wRE(wL zWZt_XkG^vGA;7Ldnxow>3pG1z&C`34dy%+_s^dqcG2G|s6ZZ7k_t(B~9XZbIbr{>9 zu-l|9)W})w`loz{xt$wEHc{TLcRA z4T^ra=KpRopg6N8`GvC_&fqT4QajY~jB}>S^3(Kz%ZwGOL?!FH1R)QxoI!d}M8AoO zM`<3$+{c!7z5PxqmzlZFEHXWXX*|5AU_T zggO?j8nez16{`~)L-k1HeRo!C$H`-}tUvpv#QJ9)T}j*dzCS~Fd0i~zw4lIg5o;w~ zUc&rIP}8S8mJVVW8)g0zAdi7lE+uywlsdxi#oW%e{svLReKsUEm)}u-tp-q>fMxw z|G7APTJ3UK6|JFZIIakYeu#+5JA3rgyC+@m0dCujhOkD-{ZEo^I#`k)s+J2MW+9sn zxs|q^Y;|OATT7B5w6x9JAvGt?7#??>NtvqzjC-(dU(#X{ zHJUU0j|dlT5T`xGV-1?iT}P(CpuLvzwWK5@gU5mx|F;E|sJx-w_V1*+`MdHC!4BWr zi=_dQPwSqQo#Px%%XTsGFU#$Ju3)-rRucK}^hTU$>^Ot}(?6YcDk{-aDrB-qJ09QU zTWHuevQ=R(;Q-VB6Qh2VRQdt^i;K(EqaJ*=|9CbS>6!8RJ>CJ9gIi;%8>>!;^H4LcZ~XfSL_i( z2<7tvU$=m{B=E(RpoSSbvbsc)olY<5gTpr>RLZQ3d4gGS6H(@s(57y6}cBHW$HH3f^9CE$GXs@^glB+{Jr@sa%_nxG zmTd5qpseCDsw9*K*9M$#FZUAH$^fQ}W%S%dDp;-bYWW`t2bu|1-qp)2zQ>7GR~?SE zEQUh#e(>GI($7kaLE!$9Jl4PN9d594-)&*Nm}}sgq4o~J^9Z2b|9bI^@nZ{H7H_$! zsrfICP2vS!f}!t(xzaAYG-_sYB=br?8-66m>ux@cweJtGMDg*=4{Y*V2KdeRc^r0s zMon%ca`5`oExx`Wh8Z?hDDodTBnRtS>)>~KNP6QHELoAKp{7F%LZ$N`_<%Pzfc>lL z0N*!e#O53@(O5`iHiPIH#03}6v98CkRWWlGx~iD`9L8NvwYW^tN-?O1&< z8|xc=LH~*p#%3kXT<}Gq3h&!1=+ds4 zgKmg@zasvDVsBi^&~1L|scARqu4@ToACtU$AuTyNRR+2ojQ7@TqYfHaOC|w8fv+5M zy)QG;qHnTO1`0SL*;iOsI3nZAAwKeZWgidnukbq7vyLxF>Ov-%NX9!(o>Mmv2Ojx; z&y`M!8{2tBkyyEt#cg+iE*3rhK5A4+gPkn_zX7- zXc906Wf8Sx!hUlj#6j%^SrwLI6_|+ z@F4b>v}*N@1Lj???qVSwwqu7f*_-^K`~@hFpP~5T(l6RC5u7!cHt>lV8yG2-xU_uh z{deYYz>z!+$%hTP@5}nkB)Wu1&T)2ZH^G(U?K|K=7llL*%Qp;m(j~`r8T3(yiUdTZ zxZgB-oIO!($-9}aocQ@BaK`qlkP+&}a;6KWO`Ai1<%ByVm5KhbC-8l52<_u#jE6W4 z-a?#sk2J@}{>TRayL`s4}PUNic(_@px z3dLPK%~14cL4H>m((~J|2HE$EO%YNp@X7Ufv76ONDnZep_dlJP`iT*INTJZI@L+(m z1!*I~AG{jvpp*=m8@l+c!hSHiU@4Y>(vG?nflj`7Z#%s^ZYUT9!Rq+Ik4x$RMcVrY z`Bq!5qWR6Kut5cKQQgyxm^5~UAOH`m%v#*FY`Pg1V zGhpLQ3t;Huy;JqKQ7t#noSYLBcdt*Y4)id!UA8Ole>@DoHQC)ia7RPjiC2%F!8C*R z4t6;a_$4{%`UY~gGnLs_oS?#AqOTj*A$5Z9G@(_}q6wTQ?0%e9&caqXfDO|GsUGc# ziDA$C!Qp02GM}kzN{!*u?NKhFwGOPW!i31Q^$=%0sOR5c@w#c#vV(t@i@k6bVeEec z&G?sLtI4;U_u>vpy!N{BKlKrjvGllN>lf9+4Gwz)-p##a&3 zDIsb;Nf-bb$p+m?ESWcQs$UPHkJ4?Gsz% z>ZB$KpXB}h64C~9tDli0ojTDSAJ*om6v4+Mdh2zF$AYXY^!^^$9A=xu(N6O$nT<;J zuL-?SQ4_v%dS!Oe3RO6R+yum5pfL%>IZZcxqae)Oy7;Z;je7Z`AGSSsCn(bIp!iM& z3XhuYOntja&mS1z=6FvrJ+f`Rg}&CFH4fL`8cmgB7f5bTQYSQj3PSPKe(dfrWbuEmA5UH20skw3X#>Hx7T=@(iaf_A}C zWLx~tUkuuhH(o>H7ngW(kN!69{*zf8pND!gA=EO1?tp28nzyx-!V2@+vxc?uC#HP$RXJJ|@3@f$qYB8KAeOG4j; z{^lYnz_EgaN`>D>-3nzSol{tb3M9=2ja%#rBjM$Ol-_)qbhK5aB}zRAK?&i#1><9V zd&&CK+SQomUZjl&v;4~ljbt31HQnEHz1${){tf1|4|l3qQ?zlUlb}7wh9J3>*E%Rh zk)R2VGR-*{)sB3#h3O=1L6BZHK}A^JoH}0t4QE)_mQ-!x1EP)rK9gA$JcFt9%Tq6! zb{Y6AethL#(4nv$56N^;%UycnyQ6PBVq6Ai0KArXz z_H@s{8s{Z?!m#mDwB2oy-c2iqGeAwi0X&KCX-G9`kNh#Eg4v_>4FRflSf2+u^wj-t zIOnOD5wb$o7;(}P|CG&FDEtCQv96W*tHP|v3ymC}dAli-U zNV;W0${{XZ;-oOf=kP%w*$L6q4$8RpI1^vX^PeuNA2RI1KN2=wfT5!-^&n_!94_p_ z+U?veIf+w;24-o_A5EII!UwEDpUPsxE?Q_HyjSb!p8N!`DSi+Jw9&72ySiVV#+-rR zcV=w^zr`S zRz!O|`VL{k<1ROPm8E^@X&WhqCf|G7$nKfe6eOe-nwc@^|0EA-Wum_jq9g5{) z{rzUdBRUQT9)+{_pbNgu9~1kCD+Ow}IaRF(7XR`LzK>oUu-R|ppA)>ixW5>Jd;Pt; z24#&TRE(yMwOLE@em;U+S2_Lu8_PpV(?0yFJR{on%4e2$etCqa+kJc%Rw@D!XNHn{ z!XS_n$qN7CObjlN?RVvTqpgD>m8%NGJDU9B&dMM0`P$iX8SwTGP!Y)~B* zJLn{Ad}Q*E2&|HkdM=UAh<_!7vm=^ls5!-(<4`8@V7%GX?1LE%0c(39R}ZNv0c-z4 z={;WI5eA$6D%#HSX^#=-o@Hr>z2b@%Y9s(Vpw z9-Tf2ZZD|oV1%Fdv%ju*JZq@!oddKg6i7%Al6utB?;H|#|*8hS++SY`u$jdFX)yMm6>3OX_k06<8sVr{Q=UYs) zD7&LK&;*g}sdVMYkxPyf;;g=D=9>4HDmQLkFMELp{FPK&M%%;vzbMMzioIY?A0gb3 zV8ZXwrmE{pq5s74=+YwEURVmUJ2=Qr7Waqxe*d*aA>pnvKC+<#Ck$g^q@kiuEoh+* zE^~ia{m0!aF(7T*FIcy1Ph>VhY#7;`qJzalh{i(h&uz}Asx@Rg^ds|xdG8X)QQ=TI}U5B>3bTH`H%IiorHKsy*P zYXhaGEm%Og*k7A%n(=}pXwsYI^@`EM=>ChZ5%B}3^$5{J=M>L%Q%(jJJbv)WCZmVV zk#i_P#am3(%KlFv{#)k%6OXf$D^;h*?SnL!W+n_g?EXu*)QC5QeSm^MlKi}gT?W`F z`L>r-RFbtq-{lNx-Z81Wxvm8?q3;y0khfFbl1k=mj&X2!nSCsNMQK&sstq+$P0dV=r(Urs z+ll|<-Ex9zjrOdD?t7+s5#F7MvV;4@-&P6-gINk?45nsR2Rb#2$B(q&FH5G^cVTTU zdY@{#@lCEq{_yj5%BDh2hh7-u=FJ+(Y* zG~Wy}Y?Ydru!FQRhD%0QMgkO5;FH`rT#49&I@*_c*W$g_kjuS z@qT+3NTmU@F!8i@3{%#NpDYeyIhv$oq5RFRdKcwcX!e~k@p z^DZCh(-anU8K+k}k*yMCGL{|ZGEFuBy94dBUrId_(@GPw>Q~3laLe%M`K?IXZ>vyB z3nl6QMwL~ude(Wytr;O9J5_mF^`MRJ7#Bb%^2EV{)o2zHV5#{jO`Ds_EVG(8!OwBF z!gW70wpWgyoKwpTEpOOXUfAuK1gC{H5t<=p-Q70?7Yc(V z4c#6@RxX_knk-q;U+f5M7$G4ciJ~AakMph*-LA4(^i1YiwX5lK7cW5FF>;%l35)4h z@`djGdF$3%X!RH56nh142j{_S@WZ$VLB%UsQfY{N25&t{O$hEF?(@hnK zT+U(COwKL=_{6vq zcd!W-b9nvup9A3QU(s+9J>nY6*&Bo4-xQ@|P7;hmXqBVJE+fy9IgTHgnAiB27;b!? z0EnYRO-bdyp@R!=k|7nvS}r+Q6(gLBc--vjYKktQ;TOSXCcmZ+*(vim^JF$FIQ-wl z>}E$g)f<5<^&RtB#?r80WiNu#tIKFJY-wzImnzHl08hZ?-woyxt1npYHIvQXrE1Ib zFS_XzLnX;dCI#qZka`v)qxG5r_M!hzi@dgbz`u<3>y2kA6PS4In6tfp%;`j09p0okL z_xtSNJ3z-+9Zuv#TSMaIO;k#>^30<0J3#CfdL))DY`XHYA`pvYsNZUll>XI?->y1{ zNPsd*Sy_VR%u>tJLSrV{%BZRa(PHgpA2lfvV`sdGQx2@b=4xX?^hsV)1;GG{mPybg z!Pf5AYR3dm(+^AxagfNed>IYH9mrqvjndU?AX(Le=xOT0VkSq4*4V`W>`&|+R<&3& zt26WhU9~oF2d+IXDKEV%%IeyU{2G2nsVGnQP^<*cfEO#Cgy}1nEXp9gzKMxX83mO& zm7%laG+{OwqiJOoL&L!2Lt~+rOxZuoo#RCfhtR2FlBSWN;cCRGw03UuvA=~iBc3LJ z6j&~K;YCn1dTr{mdY^lu_ISb;KJ!9{;tRU0mJPr+n+cvVsmEJmOZukjMh;%H|FOVH ze(jUkWAmP0i@yP@dh*ix3FC%rOjUx29!fMg*EEE zXKC3=Z3S*pRxwOkGPi$lm$obYpsDW0u_0UD^5ngZ8~QVNpk4NI9xh@hHBfz<+~5XN zU?R}kBm8>3*m(EQTBe9l$dc2kerU+OtmWpYv$zRyAo2S~>lo_xyC^HUO z{3@5X(m&vQ5+g6N68v@CNIgUVUVp*6!&jPluGQ=jn`k6YPq1K|Uig;GK>g40&@lH? zbnSWMe#xx-G#63nq;z{?PYI*@qiV-#N~Yn=_NOw&j6vDA2Ye`3T5#_jE?TCwlnTqS z?c6f&B1g@AVwmxj!v*Gk*&JZaIyfwv?-gQ;Z#d%?Gg}TrPgD(3n$S0Qv)~pi9S|y; zeRxbg_e|6PGjiL6wl(f_>aHY|u}iLtq~y(NnAVSddUL3u$#T+h&cU@fXgZ;Mr%geV zx3pY#u!J&r%mXSFol+>0{9t1-&m?IS8ILW`n;Mm)hCQM2v!4Wc%8JK6d-}qD@*_Ww z6k<&`DcN|5Wg4$+TKw#~H8?bHTWc(v{H@LCOXRAOS8fYwspwJAK~mW@PV(3`HdpeB zCN2iLz=4LQZO${oujdH`pPdm z;5|PzPxA_=ov~JM$#p>D%)QZ1Fs{Qq||w=;Tx!lMij`A=sR zQCp=+2jIRMyzEZ-RGU#@v8`snz&W9$9&;dMATgh&R7n{+ut-LXh(z~T- z%Kvm0-5;=U%b2&?419bq1V4gZQ_E1Wa#bjH7h;8V>_|IVwkqbx_DyYFJpBD_m%*Kd zleHV-!lRiKv4Za`+;ua4k#{c>1jbX>1A>h72|lR&^N&-1U_agZ=AY7et1qhUMa;5RGA|;M$dym7tRl-SD_eGgZxW?>uBFp(Zx+8*UC%ffje%D3@W%%(| z)L$+S*$M8qi9R$jJS2vcqOAxJ(z0~&ztXQ5yyZGNqjybnW^dU-D3r{d-}_?VfC1SN zo`tqz7j83LoedsGd*_e7ulJ`}l}X|%YT|vB+m;4no3U?E^N%8Zv$s4`8Ux-aePvtV zjt^=&d@!fj4K5t_a7c@@t%(K=wU%nf>Biu@A}Q%^~JA>>PI&$50HpuJ3^Kj zc;Pl^$$T4mDXXo zDh2mVCfbYf`NbH!^}DxyK}d^c$THhh_O|cg#ql)RxUr^K%=rahJ~(2(eBqXl6f>`@ zep?h&gFb)tz-JGbL`>oZ!^o`Hy^3J5tQZWPHLs@eAKcrX)aq%(A8zyx(+Zga8Hx0j z7)5xflEY9=P+9_(p1vx*9+M94RWmoDc5F`B9x!F@G8D4+505-HE0o%f6URamUiaq; zM6Os6E%Bg;%8?)^;WlL4Oa8`&BLY;fRYi)Y8n6C(Ab*o9O_ZXM{gc{H%4vAkN||+= zCrHs@ZP!Q&FPi0zr3|tZ{BS_VEjAP`RB7WW5Ei7sq}-$Op0lc@ay?d`Jo5u{uBIi` zi)hd$e7L;WK*-a_KH_r@Mi9n-?S`*{4l6VoLGzrZ*!1`07*ri%XW;F^s}DLF;X=*}X{=_km*MpStXUk2wmBLdknvUuPRx?*1S|6VJH9L(^NA&AH_@62T#zWISFpXpyp{pMI%g#9yC!Au>#c_{1yQc=WFg|sI3+1Qz}r!8Lt z|N3+M`_rK~addDB-HbQVkfd(7WA?Z@a^#b#{S^zg^B*9r(t)G$J!T-b*1 z)$%ZWf+RPhd==HEXtyb2QEWQT9fOAwK0)*%Tz>oQxWVJ*ZSG9Y9jNA z47HPkLM{I|gj?D8K&m+`THb6FkH^vnu_vLq#`cihm6CK5eVV*kmF*_uTJq;9-OeYl zkn6@djcBWfcAl#xsrsU;m4HMc1~x>8avOD43Gfa9Epoq0jY=p!7B}Osm`YelZ5Pz! zUEPqLYh7(ZVK=3fn)CRekF%F6wbz(6dzZtEjrx6iY|(F29v3kx>H|vHZO%Huy~C~m z&#=X8OvvMJN@9=W{OP}sF;RF#*Ip>k$bjG}x@Z)|fa#fu%XD-|y`0wL>tbgK(M4X` zCLp3V@H{WxgqSMXb=|O{S`KTAV*B=6Gf&><9MJA(bWsS}B$lV?)}^{=#ji&A*{SSx z39?wnjjB!bu;*JW^_FCgy2YrTsJp`%EvDlTm-rMIO1Qw$w7*icr|9AhN5^7o)`bS+ z@4I=2RnZfi>(^3B(Wt(D5*(t2r$wNF3&7BCn?6&iZMxKCK3cK@gM7c|f?Q+cV|-Q+ zs2ntL`y{m{A!S1;`ugSq#wwMN?%#mMVD%{TfAIE}QFR2}+8`P<94x^(Nbo>{I|oZ} zcXxO9)40O{f&~dK!3h#PI0TpA!5xAe+!^kB@3+2L^JCV`kC{Kcy7sQ_>fOC+SJmFt z&qIQbBz>26=8$;4si%yx7k)=*t1&MX1}5y>H%vM2@gihIK zF^+2oQQp1Cmlma;NW1(%T|y2Xq3#0C1zj|t*jC?)XKf07YMlb5)}5yVfAB;|;vkcM zoq=8i7D6 zQo~kN3DQ`VBeXvuH!bzy;Mmv-F6zpDm^xZ~s{J%AGzGJqyrr!{4t3V-!zK{%Gsgk7 zGioxBt{78iOj}{_>^Bpn?a`A$Voc$8x&vybIoo7@0mjwvM30g3&O8$CF3o_LHmz~DbCe{2T zH8p?u_%-s~53!4aE*JGqPz}($ni9`92_n6S-+$W2onK|$LFn@>2<61=7J2D(V#)ua3}Ft{n0R9~RwBrbp6(>!t~oE7F)cOw$;xWxskJRQ02F+vP|R89+YwUX`! z@$s&qP4_4}Vc<1IKX$HWuEkT1A+DNx5&ocQU@+0BVmjxJCI8%55CNBfN=H13((Dg( z%yiEdN!_hKIR8n2jsU!&$m&UQ528v*rQqi4^F(VC$lq0;Qkl7Vm3Xf^6EEY?+sGlE zEPnFBVq%EAysBtB*g-47o85@!9>09iKHkN6anV6YH{v%|={4=&h=T#Q`*VOE-;U$o zPw+0Y{MLB!hsgxSd!mzapFyo2>0)i2M|zs~jab6<|r9EcH8C;uAkj^n7GzE*fs zO=Q^p@>>Tr{Fg!*IN+({cM)zA(lYV1cYr5e)fKJfB#HATHXO~z(=lP}#^kWrjtx#r z$}q9{oO7)Tj-(hmnZ}Lma}P31*myd>N_xPA_^L|@kq3jHgdf*`F~u@_K<>D-;VHXl zrw4M8V(QQZAl!cGqZ*Nx$pOS`SfX@I?om`3gIhQ{@Oqp0jPcyexlrL;c^RW^E%PVT9`?-2*~sX#?j26-DB=VROhIySEaH;|m{A>=|YrN^TK}@u}Z@@6{pz z3rybMKT=h(lu|Q6D#8ey2QdU)p`E402$~kV1KK&~K*2h}9_)xzqB}kr%qLJ@cG9q2 zGzR-?A(!tZ812RC76ipzqqb-nd~q-*8`071<1i7Ht%%W&BB|J|gAX-xe1y zmUKc9nm9D2cI50a&1aCm*5%NQ-b@z3mD+tEe^~x$6JPbvxset~XD?c|x;4LyB5c~N zIbYD+;_lr(gy(`4FX3NzSx+S-C4iKK^}6KyT5i9DgH6tH!C{a;@$ca_7rU*%C0F-* z9kEC+K`r`+`9?9R30SYo1Ma`Jzo2&mvotsf*FF9>oT$B~LP*$8ymw-5S~o6PR0gw0 zXmV^zUH6mE6S*v(LPv!AjrJ#ozi83W>JNOh|6HDGQ4Q}A)AD?U;DKW?>I~q5(_gn3 z44GIFog>qs^Y0h2{36n%7dXm$oC`#TI-lzf!`y_&*6+o74wrxN@L#Ksfo8D#U^jJ) zMuTpQ>Mln=z`F|j{Ygau#d-Xoz8r~&xFaje#$Fk)*W+QHT=?@+wzk#jwYRlxU^*x~WJ(>lvJD|ID zAvMN5(N7}g9MZveH*`Pq%;L)l&mSkKxi1DCXdeFM{$klXYu3Ure~S+(7C9Jbd>;7Z zbWLTD3yqYceO<7RCVhqneaQFTi`;Ryr`V@A)Z1{yd~nXGk$pIws0IEt5{^wcE{B5= zg^@Y9vH1LSARE-otSYL;Qn4EakGLng+_J$1R7nL;i;Pfvm)lx+>S+ky z$4*O@o^x78TVk;kaAxx8E#hBSm)!?K4rfU4Xre$!w^4|-JJ7lx}r6dUko7Q#Hw=+fj&@x`-C*SXb0(<7xe$MW_i-)0_Mf=r) z!KeFKQSD4-mfp#^%*D^~S{+L6ftiy|3_)4Nc`y{`@PCU4iJl~PJ=&r_7jP%pLN=ri z5d$wCt*rVxUZdNksov!m9VgIz56G~&2zkqsX2qO)Qb+)6YMBp-Mc?}_R#Z^wp%K8Z zySKNrZpRYkZITk^XzGO>@Jo+@Zmq}Mc*y2 z2@@iH_`vx{jF-o|7K!cF`^hui$)@n1!?RMILof;K29P1rG97OkjE}dS9~o}EV-zJ& z{s8YGb1kB1F1IBV+{d3Oe0(o6-SxFB*M}QJPM=Wy-OCHs_mO*p+8k!DGWu~udve5Nb72O7ymREaCiKu=T*~G5T3NB6BiTN$D-XXBFDCZ z^@pGPs{;nakZjBk5jR5IL4IRy>+6kbSi)f34h1y!R)MZS+kSZ1mi@}{ zK<)PKI2v;IPkM)I<^WdRC+AxgTZ+lM(!9dRnk7 zwv6YY)_on)`WgrZBhcoLsUQ1$qLy;h1MTI_7gYTb1WGb;a+@Gyj+|Lnf;7kx zep*MyHyN%v7#j!g!KUXW?Ut}Y@3R{vN8+JiLUuuhha9**$Hq&2mecTCQ*^r`%-zrJ z!&e%?Ihx_)$+uUoR|KxGYv9&0D-}O$z$Id93v`JrQ%d%S7w2ep^mSPHHD8*qk5DJGyk7=Ol#QMe;nZ#Zcl^ZY*V z;QbA}Lbl@J87iT&duzhg5DEr(>aw?c^?Ba}1cF=Gc8M^@&XH|-b|QA&5mZBxP|6fs zk(Dt@ZW9gK>03%g@q%7M>W_x+5ZTefytKdD67cUyDNhPMSm)H6wN$_Mp_3hvCq46o zh?h;y79$=`K_+0~{Dq{Bajbzstj>*fJD1i~;PA2~5LW9V2oOueivu2KZ3so4{<(?w zKg`4Avdoge#}&`R2tfPw{)f^*UX{vfDPtM|_fF6^r+jcDO*hWP+z+pST5gp3S;IRS zi!yM_7TEGRtun`4e6&7*nl8v0^fN$&}^ygoe6RwJg7Y;tPFFSSEa{-4GrpEp3%JAx~qPVE=zdD1DB-bis8Qjco%k<2z90AsIH5ucgs)S)}WM&-Vp*PX~M)PjY8x> zs=K3JdFf!-cPQ1Dg2yJBtz8X?+*w|}*SAm4Zy~y_S~f0>r-fj%)zv8+{eB@xM+YNn zi#fqNUsLYbiHe|PwN$-3Sz8gsi_JqhPRV1LMPv=MFMD2=R2E9evVH-;my=ziafI+t zYsD2qSKnaokus%N{guFqCPjO2>V@y%^~QoK5k|sNiQ7D|A{cv_sM4=W)o2J z!Y{*?;-`cjn_Ww^7jOawM$Sxit?Ugx1yt{Fo2)P)+lS=Z;HFa&JQAjlOsa^e(3&O^ zqYUuShT?~S!@92criYUdS`H0!)#SUwM?M2Z&Z(LB{Ds6k@h=-F1^_hHKUcGi6I&Ic zmH73QEQ%!y2F?^H^W^$V3C<<`2E)m4tF+7b!0-q1KhxL35q!713 zVhjYs%?KX&aAG*M!+c9PWxD6NVsu}YA+oTwh=+L;NT?&y;(}r;gPux1CUoRcvPv~_z8qkG_kOnPMczFB#{e#;kq zN499U=?=O06~yg+?fig_b{O#}j6L5-CwUc8Xnm{NVtx>@HNXw(X*y17lv4kePb+zj zga5M~Edcs%yl{sULoxY~R1;s{5<)yFl&C@vjIWx+dlb?uFE_W~=pO z54M9DahnJYW!aa%U7V*|*kQPn5sjc|P~knXaZR;{lC3C0BB|!}6AdR#l|R<&zuMAn zyVufK!?xeI#sxn3iU%jZsxM<-GoYq@<*HbZe4b_p z;)s`Vf&{o+yPzbcwwuQwYJFyuOArlC0Wp7 z+w1)S0aqp(4#}l`YBM@PP<=N}y!ks&`kX^=l&CT6 z6fwLor`qy!pl$kNScK9i{mT`S=umJf9?%E-nN8mH;};a_Z1iu7MyLhohe_QFh$u|~ zjbT;l;@d`7n+x6BB~tkpC%5p9mrXu7_JdPU^Fzo4-UzHbr;_c=OiWJ*67Q7z;YpF| zw<+0a9`xZIE3~V&dyD{VlWcsfpLo}14T>!{Bh$3! zCvIb@saOMH8m%`{kJ^nfz!1o0PVW;CAM`vLJiLnGW&#$K5_BS9lrm-YOD)W(8Q)!k zmG?BaRW0^StmTeM0xa|+W(b4`afO#zl*^Cz54&EoqXn=6I>yGM*ixrYU1PJ==2}xO?LMG zAa4o~|96^f!E>_-hfwM1Ip^NpR7SssP*gdbV77-su2;46$E^2G>W@V9fmRHAu6gJd z(0xTq)Cg{_c^nKol47%mxSHH2VlBb+Uv&R}sDS@Z8`HdZ(bxXFmu6fmKT!Lc{eMi; zE}yD>{Al`Or zZ`c?1V8*)i3$UYbJUsDzC<@mtZDgYC6>VW3Sga77c5%PvOe zxE8$izVAW=`z8z>^vfA5I{yCk3)$VW^`^2WV=*|0oWkbb3?2z~N30Q&lUjVz_OAi= z1OQ=jf#%+O{zVuH)o1bckhh{0hDSSl=u6<3dZ_v}!uxEt0L3VB>2);nd5eqNI@5QZ zf{!;UxG|=C^|wJSZCFlM$l)Q1_3E%SwFka`Cn-dw4V2)mh)dxe%;r?Hmv@{8<+Bg5 z124hoanuk}8u4DUnidj#m__#f2`-Gy0J@#?#wA1`duawKz1Gtn`K&0%Xt|eyZ1>yj zkc^D-f6$F5TaINtA^oxfxLF)E6yhBB`{EKk?ZCR)c=8g!>@knlo7qsx7Hd);s6H*o zSknoW^Kkd_o_yVb)nh)C40holBSVw*C_FP$OvMcojzcaIXbBN+>GHBb{z{?)(4cs7 z<0K#4$U|D(GP#AZYX#zFwCZ)-{kbr%E{H>iBngcs8HQkNxk7trXLl}!^!Yc@A|0!0 zYISmUV8B}%){_?y``pn*vo0RPDz0(U4X-y2DsnU-(UdVF6@J)F~w$$a}0tSA9=*w*Vc_IwtP ze6PWMl!-fe;wYq`ox5;yCjblmfZ2e;iJsUeN}s>F%vXpmQMYtn>C03|k^q%*&QXbbLqpr)>KcXQ!wmHQic zhJ5o`jt7MVpL6KrTV6}RzZHKc!V!IEAemOI;6lyCtp6tq=nfu8&C_wJJ(8a4$Txeh zV()oFQ9FgY*>V*2;rbVuHo*66{t01Dky+ zJLAvS3N2U}fqmpK9@)Zone5-bm!$$G;mLDkDH_o9W!m%qk^uh^oxe`&!JT;!c(xsCc}+sa=cpI9hB69GBBSyG zOhiV)WjL(8$rP*M_16+#pnnA)GN8fW3S2eE3n}yk^oLP>xi8*d9J9D3dCGjH@m`CC z%Ll&WXSWAJ?aeO(@daoeYaTo(9w=hX{`xGWAJpCAu6X#1KIjuD4fSi~j6%Yl-cxt? zKvAdOPJ4)K?;=HS`pej7B~1zG*Pe%kJOWQJDH$UA1-RQ^#d{Ogn|7$QY0Vc^ zKdC%^!3yY2?np5c(yL693*^k?c^QAW7{phi_!i#A-uJ%CvJ>iD5R&8{2+r;Acc%Sz zj@-MKQI@XZAdIALj`%jKTDlV&JAvB6Sc=hP-S3So@*Ad;YAaNg!TL841edsXqx>u$ z0}NUEevO2lKXj`r$0 z6O>Wu_@*hpCC<^F_$qFEJ>nj>D;~4}1AZf;T$sfslcp5h2h4Mk1F>BW&8rPcT^t{K z%L0M9dhS}L-zkm#OOKtBbI+~xDrvYq-ccVS9Mz-)Gx z`kUC@X=pvEO!x8<&TUu=XOdzuZD5wMmi@~lKB}d;h=HA9J7&^c04WAs@L}M)EjhKF zP&7X)a3lXx?;*j_E9PpqG(O?;umHk;#7#-Z$LI>Zplu5pA$wLFnr}L8Zz#oBo~jC4 zIs5TA3zfeS@7i}GuE(0v0;i0==U#M(w7hapw7mkB1fV@jO}z-I$;@9Y-yKG3%6OZ>R^wmRT#;HjCvqbK8cldG2Tu^NyY zfMh_SI!$Y8w6M&6Aenkhe+ndnunc?7eK<{;eoPo|^1kJQsxSKipOK|T6B2qt=A;N< z3m?8$buv|Oj>`YFlL`d~I-fe48PwHOy^jEYd)_Kv7yca+A|)0M;Y(GWdtbp)-V6=t zoxWpt+xAR-LwffkyhA`ZhUjY7H8w8_yrtlS-5%Cy9XUySttNWJ+nU)o0xe1X zjdNBR^Vbl4PvVDDKo@C@sfY{{ z#2{%uVH-h>_Q89m(3iY_c>f3qXe2c{l&jbygNJLy3Ys|?9T$RKVLf*a_K(I`$P&&1 zt8K>=18q#{jM8VZU|m?qQ}_z|W0E_D)1j>y!tHx3G-HDc^Iu?FP)bDNjW%yLND!m= z-@px?CxA#nn%QK)YoOxJN7)|*K9>M-B3&Y{7lk%Oau-bs1Wp8!=(2nqL7l-3O%oKA zZ{eKeh@4Oq#9Zj-N~P9LeiWsL5%`uz4982*2+m~%?0hkpb=sfat8hbfNwg}N|`or$z;7G9K z8=ik$!Q|(QQmH-L%%B@;2x!{O`qc3C5<>Re%;Dl_ybM9zaM+f@t&1m>0OmT!{B#J1 za*EO3AqVHH1GKLtLwyt4djn0yyL`DfDwQ}|FoC#y9Rx^!6oLY4R{)!)zCaiL=)!sp z5Fkm&YcQQv#%Aa4!0DgjuEH5XRtqgfi(CbnwAqTGTfMCsb(6_KQ<-r_JRzuE%up59 zP&dW$_I1~SMtU-Qy6J$Me&HU?ZDPkObI`(8awP=cD+?b|b(irt4qAXb))7 z+;lfB*urHD0^KadzqmJC0|W{puM4IC`m4_|4AOON3Q)N{rdQ}0|(YPAqOh>3pj zW(Hs)Tgp57mP}Bo-cmQd*>CV0>p5ScgUn?V&!J@Y&_b#BBTUgeJD6j^0w&(R3N`%i z&LnIwl_bp(Lf7|IC`Cr@#UO7mdk)LAHOv@U%n-&W-GqeFFGJArriMH$lXm_A+dmFO z=@S3+El%|we!Lgb9`iz`Fkz3%`I0(ZikxD#E1}8-KQ%tP;X|f>Y}!fI%j3k0;t_d| zO7JpGepo|FuD9bjXirE-8aLlH3sf*-!G?Zhz|E-U8{Qk3KQjDrh;SZcVl5J}zZtU5 zs??__x06msZR)cB%g^N@)okYuFqvwgh{^OMEaZFmsE}t?R+myry0%`a=y8HViCm(= zK9YNCh%*7QE@qR;I$R`yYa(ZMMMZT`mf3d7U^1|=YNcgQ9UGNk75n)c5ovL+y$i!b zOKs(29W9B`A4bw!)ybU$U0`9q_i|AndUQd{mSZSa+S(JuTDsKFGQoBNrj9KdvGh8t zuyTLA-8c}$D$Ne^`dMzYOW!6D?7rVhFvFO1U3@OYAHxp`x7xjmvAUEybDQEHb*(WqlbF3=bq!lX*Z2n4{ zqPgI>d3|lVWCD~=O!KFOc|3jyh%aCuC`&C`E+ISvk6z1Vgr|=?X_1sO;>m-r{1d>E zdF$bWx=|;mZ+USc7dD--?DkKX8!Ulb-Y|+fX!6rr12O_8e+EV%tdqmD?dUXJ*hoX} z6Ly98pN|^M+X_UQR;B!0zG(VT!n;l4L7b>zo(@HE&UH%g2^#Mky!qudo|I+PM3%{t z>Xb69q!1HEz_uVs?z`2Vz;+glgtUQe@X7F$!P1|8YMVr8e^Lubyfk%I%=V-9?T z(-7bIiC4|Dt<5$vg!nFo%A+RVDT8ir(yx2=Uj3%QO^}BHU0YH>;h>EHv|+Vk5EFcQ ztkk_B6$HBUYrwiXfD@n}=sla=caeNduGbUKn=PWb%YF6GQmPe3QQ zZv7+L1NEFP9U!R~lIvJZqVyk0V(oKO}S5fv$EDKUQx8k88G!Npc z!lF&o0G(-!hlJleh~^|O+>^W`+C%#@Nn`As{1=#-cC|a?qBeKuiC+P|9&sm)i zF)r|7Let0eQFFD$rOY#t{gX@qLdSqNL@`80#r83pj-3}q(gJq2fK7uz9Zo((9L;(BzPS1P^U zzm_;mHhd1$i4*&ikE9VzzZz%l4Bb5$6$g^^?}}LF%A$( zBN6rg{R&Lkb)O zoWz3BO&YCHu%UYbd;Zn0ZS2E74lthRp%Frzl1@!_3^PlI-72}O^43obddHH)y2wAyL0tcq2o zdJ+_ljS9W0T{2D7jZMLa8nP)kA>fg#RwmhqJ0cY;h?RElQ|I74O+~hu5#wujSg$z$ zppaCIJpDcP-Z1kOjuvVhgH*v#N5LXW31a)oqCl_STQSAJLwJ_>3nx0vaeZZIeIN$> zKB)K_33B0@dP4H@Ij(+`dVxp?~pG?(-b*=9=u!k?mzOtM+FlHaY3dhv?^MI?F9k>>n6F*vTR z$4{v(2jpui?h!8sFX$<`GbrQLV#{CY={}^YqQUhBI(1tgSxg+DZ-AvvRJ_zw6d$rk zM$PI?7^~y7pZB`|%spRU2`_b8Pw&^Tn`;)h)UFCcV(vik83(^(Z|l+F%>ez>duB@a zByB~!)Gk*D_A5LAeJojhkF1M}a#35hZ+$gNR3j@eJ$UN5#u2NI?>|12$-^19&%B?n zEp~k{4(0JFoEkTPlK4h8-j+s}r-41G^ZC3~GUSY-)Hw}UixQpF`pBlx2^#z|>ntRz zjHzmL)iO@tLh?64$HVSDJH3zP$NMfDQGAM5xVC$=*6`?>td+$(FPlcJX%f=)nReUU z-D$+l%Zx(q_}m)g&H?6bj*kYAbPGB;W7(|Raetp)lV^6|U}Q?wyW5R1vG5z|duYwD zYlgVn1Ec{6XgwtSGyui@TBR+mzw^q*XX+4zB08^;jZp{bA@_=a$pJ;fT|cFGo%wPK z!wpyE?|x{31pA*^9XkGwMXFt2i8q7ORhLxDaDGVv{LFS95ibW%?9)JA7A}?J6P|N(Igj_u1aoAIXL?&^8sC8yd!F!D`P)|Z8a`s+R6*lSW zByRCHg;lFZzS75DQA~=KZ(L|x^UdByz#tR)+0dU?0izfah>X%jo{ee?&P0c7^>Tj( z2+kT_HL5JM5lfgpG_}~6PsmzBB4SNE?u2SydX7Kn_^$Iy%?tNkKxtQn2kpTG6k%ZJ zWsC+?it&_?_`eBGjS&Aa#*K=>oEceXIf+nr7=n4Cvza{@#=SDxI}s@qBaRo0%7yl+v#kQMZRjprP)~PN|hcyyJ$t^V&yMYEVMa0 zPuWC`KRadnH3_YU(z&Lk8|pOO<1``KY>_T%jp|QBzUedrDPRmB61L2;zEtz)3k*^>$I?YNX;SLy)XFt*3}f*`uKbv8Ghcswr@Z2ic8vRkvYRh$Us2Y zutKiY%9NUhp!0sAp{SwD2Gd@=6@MuA`RGL;KpY~n9s7KJow@YM-dX~AF2pro8 z@E)Ok#$UYXnDEcp#NiZ)YPKt&jPF9o*Y*g&No|w!V7xKZojpZA)F1n`pps9p3}oe% z#)=^_Um;8Ngecz>(Yqy-g-6Co&^zErn7<6!-QSrPeN|5~O^K_Z7eeJ5p2KIfF7sCW zM6wW# z7x;e|fA4sD?z|X=?Sp?ha^2jaWmx>?`Dtp59~{8N@jvkPF-aQ&*eDZ)j8D&LKP{b@)dE9P5Lx3*P*Q zNI(o@C3efie^Z%EVI6iN%HofvyDsSOZLLA}LFe^%`*z~{*Z}LIxRDPk^{TI?$`)*w zY>IFS-&CG9X+NUBU9|js8A9Y$Gny5xIfYKQ-neeTmS~$v$E-_-Z0!-M>1`cWGFwb@ z>D{Y0K-2<=G8;rIc3-W=`t2vrCPxal`&(syilr|RWftoiccG|*E zXe2Wo{iBtXF8NmV>!UHtiw7zrcA_F}KFxx9r~uoElG8I315JmorC@4F7gbW$bG`GB z`Qn=IhhO_g(+t3^aoY?cV#TmKg zCO}pxisBwRd)-;4Ll^UjrXIiX)quv$JE*;v!8LsOPfq57tk5e2mVjc^$}PzL3r}?E zI~F(^!6?D%J7diQyLZZbLLYxFjI1Ao60~Gf}&mHj^qx$MX#p1j(vcH?)%RLS%ST~B&@-lVcnYabU`Z-Q1{)8K5bjc)6B8DGftZ!I+ z@B$j{b;4E|GL5po6~t=#-O&iF%61g4;|Z{ilEp3#&(YWJeAo1m5!Uo!nxW`c=`IIc zT;{%OTFY6-AF|mN!Su$MGkTbKSY}WfM4s+hHTSi?hZg_1YSp%R$u(>o?QMH&vWS+; z>ryk3S+-1+`Ll{u3=J1}EO(Y&DDuBo05@sPN*!jHq8f!%+SD9W7zd{K;$LW#X*~sK zrY6}J5v>gI%Z~cP%$R;_KHPSBw*Y{)rbJ#=mevlsMA1~YIs^6oZNi#%aee>>9FC>Qg#3iG4 z!o}}wllLfF;jMG8*R$B+l5}~Z)=fZ~v0_6wM$Z?44CR2K8QZ->6MshjwqAh32sz{X z%m2S^M&_L5g_maYqU9#~DrfWYoOeS1u4xSPU-Fm^Wxy8?6+nYtq3e(5$gdTFlQxsk~EUaTvGJ zJeld{PXg9wZ(8DrLj+t#FQr7Z6&~40#Artq(JE)g zXqY&}%?M)LI6_ZB(swN!94z zxBKY#+9Fp(YcKS7X`c1-Yj%|_HY}ObaTj0t$t$-K=?yUZ|7NRYY?a*}z-QI;8E!!A z&@6%_^h9Hu4^b1!MLvcrVPdUx$ucb`)zk&2w0v@OYx@ovc#nk>rlM>a_L zkitUaNue51S7Ddxlw=gx*6jZoAsPyWlq?o&Ys4m-AXkh5g@rX85lM?)eaueWnJ%ds zDcyQ*sUJ?#9Jl@|POY10!E)QEkC-s&=oHq$2u+&- zD$a!nV(@G$v@IGV-LWT|8E z{O=*~*nvs6t7kx4cvE9L_*J^K&YbO+v7UcNvU#&6Iui%y0KlkYBK20^Q*O3q@s90O zY~g&1bi@2oe$lSr4x^kkfc2k9)liWELG^w4g|~HG^v(@{!BQ0bH*}w18FWdET7bg#jEl~exvubzN7CTr5sdAf^HnHP2%{o%*=`^ko}MA>)EE+ zQ4;fQFG?WZZaFJl_pTgs3%Nyy7KXG~s<*z1OmxI|xi+4)IgPV4muLX()6gGnNqV{@cSSD)E_GEG19m1L zd_z%g%wNr9H@rN{e9+~i>XGfIclr3;@sQcAQa)_H<#Yy7&R*#SZL7XAOcBRFkEJsA zu1tb-_up|dca`Slz0ZBG4|~<49+KYCBvEhCRC55Vye?D&!%_cm=jL0;t1{<}DbfN` zr$JnG7Ke?1FIDDM0lp};LjXgX*$zH4P_3uoSLRir`w3Z>j4Z*V;ScC_7xN-V*^eFU zdI4bHOtsu%{MWD8vhDLpLz^I{`o*o7)>DI1E}oO0+F=g8A8g?Y5{H7i>%Ja9c>+U+ z2H!6`oqMdx-1>@2ovaazLVnJKnQ?O8!p%$%tIJrZ6N32yzjs zij6C3W!A*{YG9R8p&tF)5&i-VaGv1>9l8{o{PR-yM zmNq%0+7+qhCtX!7;hdMEiCB4xX&t83dHBXK=vchGKKS7y<}aR=#<;;tkBK4WAYX?P zjsI2Y6d%(F-nf-{7#+jq8bHya;aqrm!>>{0Ov3%omXK_n)I&ZT z$)Yd!t8N|;PzE~9$Has%zDpIR#2^I6q15e)V-HrkDGou={oFKa;B_c~R=5q2s#!~? zIDdkbdk+!{S8q^HyOO8h-!S%Ad{LtYXD%>PHeXQw_G61bU$~w2h#Alkr0n?5DbcU{ zD7|xSMF9%uDoM(!!_7)g7#6t5;{IcElXqK#vovAqQ2+&Hht}q@kMmsQ{EzmyP<0_s zQ*G;=PZhsN(|;3O0s;0r)-<3>h~DaeWqN8@z;w;&d~?pQtB^mvj|8P`(A8?@yqpeO zxDvp|wpkdCIC^-$|J3%xf=AoX&0ja?OshXh3VNFxRo zJMNcw#Mr8v3mW*fE#^dXy$J`{3v$O3kqb)XPN^*ZjWh;iq>Ej6I~!e)_{`JaNmBmd zm5cV{^`e5Uiv>&-@DhT8wuJ6DStxmQd}@rWa5M9R{wAaGhA~p6zmFri8Y2)y^i@A% zt>Swx>iByTnC6)7Ft(0a8l6G*v8Sk84pDQHgbPvLhc|!7sHydt_9g^Po`8Az%~hQI zR<)5{|=PE~j~E1mDH%)wK>l{arWXuTk$ zJ!|*~u@cINpcufV>JOa7iTI5ivA@&k{ck%M+4tBFpr}F5WY29Mpg!vod!m+vC;Y~U z*t{PocwQO6il9WVty{Mrv04)O4CUj2V8MQ(t=q*|E((8M;j5_D1%HVw*&9Wo z?flLGCwU*7D6c|kw}N~>CxwoHdhZHa=lbe|uYCCD#6c35Josdcf0lEp`Jky0Tnw#H z?D!4DDsZU8rPonyP?o*FPi!~hgBOj2=|3d?g{CuNp$Lal21;a3|2n<}?=xaZv{TpdxQ)>Fmz#b%M|fYVtNzw+I_eEH;FMmSl_REkzc(6aM-o~r8e~+gEK$d# zJc=pJ>2*T+&b9Waf7ls{PC95#ck>_?^&6KvvAN{~Y!$`Tj1qzY{Ey+2LhqpZp*4B( z>XwvPIaJOZZpj&F=GS_%4^Kf%P)P~y#0d5qCnTm9Yl0)f_2G<^$nKffZX6oD>O0?G zOrW8hlYO|3mV=|K9SSm74xBs&NRU#FiYs5bEk?4xR->fM?}?x*DK)7hr55wGF5Bxq z6j_f_8wCs`$Klv%jKTsW)Uic=B!sXr+eu?%58hM9k{^_2UyI3wwLhYE@|^S8TwO??>nqwryFQ$_2iXI(gGXxk z9_IgZ8!tnT#jkgwLzKMFYq=H!u&@{34L!3u0AkLz@_&Z}QThzEI9D6?9!&y4d$ za4YgkT~(J2o+zvCX|~>ajKP&WGy!P;*kc>lPW7L`1a*Y zDDoFt`sgNZQssk}p}zzru=;l*@2}8^3@6;$pVWD0a(R9mQS*t8GNAblQH3K~S|d{o zvu@=a2)@TR{{^&Ddp~z<7YvSxfz;uwO$L;y3axF}$8o~O1k-cl-A5x{ohIPf)A zvL%Nc(=`KJk2>%Gol-4E5M>U~7wqFM)hZYMUi$$5eX>*!GSt;PZky^3~Dcp&kigpajZCMi;IMdkImH>L6u8QdA`MfS2M%xGTPD(UQLan5!PLCmj&{8$;zwbWvn3ZTy-rp znV20lH}n8lF!gXYMIm#*<6foCk%~neK?-O^|^U`6X5y==l8e1 z+=i}@$2f7*g%;Oj%XcfNr{pYsn~HN%TJz-Q%Q9GzZd~4lz%xQ$?0(Da&;B`8zQJXr zu}3X$Tss3hcc0VLCgC*YNsU-Z14f^{l|DqN5lRf8be~yrU~Blg;j6wq+eXkPhS2OB z#LnuUj1PhmRa0O_mH3|xJZ*Eb$!YJvuVX^uNlea!Fj2}~(KK&c%E1VtcbVu)irjG6ma}o&=k0Kn)_X1+w!1Y$nST3E&&}&=V<@jAEn*3C?gdP zZ#CusuygF}hx6R4H=q*vzJg{m-QtbOzwGQ9aO;1ON;3+@YqgK_4OSGF%eh0tAwF4j zi@zS{Yd=tS+m|E5*l=f6mN6>?;kcvm89tox&AMJ>@5UHp?xWiBM8&kA=sX!gji{Jgr;- z&(^n7Z%*KR*#pOfJEz7(*gJV_68dK z|F3hQ+5k@;kWTCIc@nYhL)`X$9OVogknG;R^TBvfe=0s`&&HX7OAiT0`!MkhVrrLN zdoIRozA&e3ovVJtz117K_F9bTNmPHqFZc-Rv_S2hIfqXiCH?&4b8~)0Xrv)qBoJ0Ey6KG=GlV%^Ik&axQeTBoh)IYu-N#DJO-3ZJlGPNQ?eC&E`}0M^MS8ZA3CJ^{8?m*F z33=nr9f)jqUidlb>WH-k5Kjjf3UmUVjW=`bA z*=97e^$yJlRei82%zb2NL zyr8hXtZc1bk>1FB4bB7yePK@?t+P@_KD6!MVZSf_KPY>vs5qjoTNH<2jk{ZLCs@;1 zkl@-h4#6cj!D%E&aJK{}K$<2v!5tdc;1Jy1f`xGSzVqKZ?s>Qmr>e%-tJWIzP&G#F zx%S?3&n1xNF>3N-2a1_NlrU!XN8O5jC+oY(QDV6U2SZd3lozy++Ud4%060{rM^D48%&RCBt7XGWjCYYw*&Bgb2 z9g~?pet&Pp4>Vf!I-$YXU7xDU=itX^E?6A5xp@ehJ`>~zq$WJ65pqQD8Mb<_;S^3y zEV@1}+F9`O&WlbCTud>c2w(A%Bp$Ww1Rj?H$47b;NSrakA02b1=2HWcG~T?0{`K9w z=2%ek0o6**9ziSgw}O5-yaeVGCJ+-NJvSVKPZ?Fqa*b8scHuxMBiA1L-$Bc=X`{?@`czV?vDGbOB1>@z^zCBMUov+Db@-uO7DdW*~?&R5`*vvpksD&*c|d{!kz9{xZ3Bhjyv`%&4iD&3$`}J`Ck!h zC`ud0AD>iq4#~Ite)s3kTpv2X??a+90LE z(~Xpb|74_|rSG)bYWp$=Oa4Hv)_qw3n{F61n%lCp6CuUE&WKoq?|-s$cDiP?OM7H0 z5;wJM$?|S1x#$a4Vy9tNcQyV(TQhZpHZUP4zSx&VH}istPz9IhGV0H_&(8udNI# zJ*^&`yv}%6kZ9h#NI6gN!;_1CB&n*dJ(0Dl1R8w61>)UuqkorS_JHkgpCP`YM8p>q z5%p~{Dk8I^w(k9YZ;z_^l(zV_<;J(F{c@TIWyR)EaS*qrf>8uU*$tk{iF~d>Yf5AE z55%Y9Kz7uVbRxSCPJ-Lq^utxQH;xKLCcFIfr+n`xqrTj>w~J3jkw0`5O-Gq!dSq_} zdO-n$@;Y{OtXnNniGKhDNx43Y0^FWB^tC@XMJECRAsNk4iK^78reT^0(?FA@EV6^9 z_!oz+x*!w=Xd(de;Tg^;6|0!o~~mDnDE_Hd3)xM$_Wm<%$JMSEBxpU}sa-A!?!l zB|EWO{Wlg9bSvSj6Co3Q@p4-LqLfB-o=Fk(L&<22y7-UAD@ltV3Rr<&F6k#gW1zsr zy<5m=ke4f2CD0Hkf`&z@be<#tQ*Heg?;I`j;J+pERQlqNiEjsQ!m0S z@$ixoN<5QSeBth$AB|>%A!qwr$OMEfeZs*ienkkPFVi6i#GKedU=L%!usXZVK-ha6 zgB|EW*T$9W!t|kMEQUQVzV9!gQN$r6Lp$Z)YhwBe-S5_asVEFyj8~|HPlW9_6`g0RS%^{ESh55FY$p3(oU~vnX^9xLJmLdGs{I^-%>a2 z37?jBs4TxG@uJ`QJ*}#bhq{N$&B`{5fHz+o>3S{(_KL@gNbSGKpF!ovTUGg7=#l_} z`vQ40;F;e2C$SUT!qj(FZ_t>(xCxe3mWTV&KTixkbg~LTMhM~vrUKp3U+)JhBed0S z+U#p*o4$Sc1~4cpvmVrZA6OJwtGUnZgHT?mUKk&6va2WKVx_CQ6ZDdqzJA z6ruNYvf_(RJhd43%?ZtmANIyFdNWR8{5{YML#T0Xp(IeN%Tf3|!tMw5yB7yT_@bK>}BlO;hKW>dwX`_BMNmq;+ zPSFPNJ*FFadj>B5Ksf$_tFW*`i}GEGdX+NL>R^&8hC!UPhlCX$pCF{lWBr`t4GL8- z>NmRfH9CoT+x|~K&n{a_2%z{Ku&0wU!_v4vs121}Bva$;txJWVPaF_^Ipw)^zUq`7 zY)AerVJo`%G;V5et@3-wJQ4hDWx?gpM9i$Uf(BF2yk}ub94!P{Tn7UEB_`d+DbB}C zQ~gdcK<}F77ELw#(?3Yd>jc7{+cX;kX_O|YquhM^~Ng^|^2lNN||r2J1m zrafSS=4M-qLtd|hg}A!MD7(5SJ4x%H7v;#yO5d|kz2aJfz;9&;Qlp1oiRDC6v4Z7n zICPb0nLaU5I8#*c&M63NB5LM1_OZ!{BghI8r@fX*+6e!(0*&?-Uf%ezbIrr&nC7)} zDV#970hgJd$o`l>E*?`?w7@g2Qs2JGE2ks+qe_r#>ZGU`gcVgo^oe|wYl?!*M&Y!Y zw*u4YS#p2)@~}^(W1)`pu`UG{<>*JX?@MTIu$*iu!1DUFj zq~O=>YK+?VP^g(3gcf_v`hgL=X?zkKkv{O@bFra7%yd95Gr*jCA-&-Vb!>=h!U(zHgu@Wjjc_6y zRIs?-H1obC+yVejFZPfm0EQPqrPMl=t6Cg?-EW$;?m0<*^f#XvtBg&MF3ESSDX~!#;b(y;C1#*pIA& zC#LV?4R-iJkuFfN`|s7r->}0^tnpNPRKu|9XF0x>v)va)wa$F0bM_NgyM12zec$1T zN^jsxm9&79EGkSWkDPjH={MwxMCWj0*J_O~n_CLyq)za>hpXxJ(wpDYv{&U~qyaUY zGbsiy`_`n8^;F<07y6vVwnUmGH#e`dtR6xbBF<&E z14kjXaE_QK<{WpV?sJrdJnLFjW205TYI3N-$oj-!bPH1jmLk*!Ue3bJF2@{w_rV0H zV*tCj5Gfr7&|K{Bbrlx;kl#AWQHmsdL8996DM$xG7|khfGaLuVbCVD z^`|2@b+liG_jdWhw%;&Z;KyU_@Jhdqvsy_1XK@j( zo;?fC0r85a!aB!V$I6MvYEI2aAlxaH*>ktv#PMcARv*j?q1SV&gB8d@`s1Mm4*itE z)v@czh8mB)0{Vxg#G^)b zT}E%#+MF=GEBvBA_5LpTVcEpw?BcqH-vPNW&N8kD6d2dcHI-&RjjaeO>>*78u_{sH zhBm_g@ATa)lo70svacU)&F?f(O4v1fRV9>=KkseFogAWbdX)|@4`U#Vw;`Zx^gIag~HdB@4hfbHgdFuwnhV8D*ycNmPkJo$TG}};16R2>Tae<<+3J2g_m4DUl z)ygg7qfGk;uG$b2At{8_g;i}ZR!`3u78}-Ivyy7y5b+$603|DjVB&?2Bx3Ms#j9co z!|rmyvapFxnth(YY{il4A`Tl;6Cy>(4re?D^1f<_R6_?}_|I?c$3;>#Qw&HP)!0A! z|6+5+s5l+AZa5XHNYXY1mxXOIM8p8wF$)qXP#at`1m`#W)=$N9kzY*ZODfwK^0@ zg@WZQJB{41_g8!sAN+L=Z;?O2L-a|jQzU$ncwv0pShHnML?y=%{hxa7kLI@CXi>cC z&uccMxO7Vv&}Y~BzB$g-YNu+Z*%_fmJ^VBkYn@6~2&vW>jbGMRQeL}=5yNiILJ#ow zucUA$PCL?awIRcP4{+1}#5VqG{%EZ}B)t0wkL&F8L}Xh&_45G+H>= zuUCxDC3$!!9Q)w`H)noFL;WG<3QxcKPAOg4Bm!jX$>2Cpg)cS>X2BRnIyy{dOYjA943- zV=zhwu^TnC7k?+}52J`+FROQBb59zxf;|f7il|I&2C#2CK1vMQ_`hn0ei`^gx;;i` z#MdtWXOq~t3jK%&H~DaHuH8_I#E?>bj#tihwlz1sP-7K8CuBC)f)+4)Y>$oKV8k;c(hDZFJND=VvFhW#t);;v^z-(Ww) z)Uf^5lU!j|lOFuvOfpkXhky_|uendZW^4A{^1Yv@r#ZhM(#ye(%#Eyw^S@~y%PlZ| zg7BTNTjv7`0%20P9Mr4 zu5)0xN}iE2yQO>EN801~WG=TMtJ3=6rIh!|sTK35+18S!y?N`1OnV@oVB(bFeONOh z^|Bd_%eX}uycI<9@LL5?v6SXtYqUzXDG{%aGaCZWFm-IH=xe}msvpas1@m)lNm3XF z88$F}v*G{D<;mO2@2h8ZA^2JtcLQ2y+dM2d{GhCb=~+4h8FDzO&!4ML7W+{XZ9R{2pw-zi_<8Tpv=LefZW+T^(x@F$3KO6NJejB)<^mBSoYZ%%( zN>UL;l}-dn&<9JSH}EpTTgdXbhcY88akttB(TQjb4Z1; zSL|eV@GqO8i#neEj(N8E4nLuWa`?U3WNC2%b`UAS*t<~Q&7zdOZ2DzHtp_##I|jK= zkBv_LZ54LmuvnXq`OQ!1mK*()g^qPR{RRh>|mE5uNfWX^$7GSY@%IO?JXmu zC2v039vH8)ZeLJ8^;+&nbMRb=nfdd#2`KFU_E#gXBJlk|>ZH6f!u3v94t#&+H zgev|zkVfPf7P1+sQ%$I-9-YF|BmqC|SXX?a?a+OVD>tUqeprCBe$G8SI82hu zcJ1cvOVa$h+Gt(9RGfY@uJJMBBqQ%LVckTRH7HZx#b<3ZOK5MGW14aOW3m18-iTeD z|4*?Ovc!*op=v?O-8OBoL!7^rYFmc%?pKafOT)Awqy0-$ic#$5-zC=GNxRcv$I8|B zLne(Il5Wiq)|Vl+f*o`2fmyw!Lfp+Mt`ib?`#v0}u81#Z_7{KX?a5MA_pm_C3f%10 zugAswt*w&+eGDn@M|H4ukp!2?sRX=ELiZk)U5o zO|8l8_n)1>3L^MeES&7vS}htu=(y8*rjH9(p^c%lmH|Q&w7AxukYY3C;+>H%#N;Xi zZ{J3(HD(H?tpRu$@=D=1{{VBG){7DE7Y!oy0+g}>eKTt39;G1_Sp!)-q^PC~ZoVlk zS@HV3$=S08fCh%t4a%kW)nKU<^Q!8u-WdNoa|*7bWwR;CLGrd}h)Gz+k_?<~sFM|} zAN5qfNdy)CRn9ITiiw@Ob%0b;*m|9;?fFgh>QgRH)=mMxLFdr#t#?djL!vy(;GpP>Qa@cJINXe8g~IaCv$6HS@O-%8H98 z#Q2!-0HJm>?gOMR)NpEz#WEIe|7ARlSxG#SMKIS1s(5IikgZu{tFSa&oRhPX(+h@x zM;D->`n;df!Tc2p?gapS-A5F7xp}=Lc21pD-KK$j1s*|(S6htHU;GM#jAKHOJt01H zHFrn`ZmQyVPp*`ys4zDCkE?1q;qns3yQY= zkt1Ex2|T!SGVsWJ2y;!$!uxlL6X-;OV8${#mK;9I&`$~J)@}wC3UAJOhq)Sw$&}+p zhPl$Qa9G&5Ov13|-m(I7d^l;-(23-0V&rGP=zmG`jP7~m|BFnyYl=XpgAw~R)Lzkq zAylzfYs|0V1I5rG?{dXZ%wi*EU5ebq;3Fv;7sP@BEVqx2YUd+pH2o(EaxsPf!F8BZ z@)dV8RU5^3N5w|-x@3VU&p>Us^CPZB06Lcmll}KFV9+K2HwA#~1ggv-K&s!D{2278a!MDtVWJ z9e}D%wM+G`z$^ROo_WK4?&gpA?P=PjUw#)wjcU7K`6|V8sN9hoeorVGqS=W|bFu@| zLGF4pU3-R+f8HWUl2M_h7)1XMybJvY-UnaKOw9kn`|5ISF((0%7JJO|^Ue@{n8^b^ zXLc>UhB{G%8Pfn>-_{e9@bmzUtp8|%%M4+5A@L_>zQ&*}p?%Z)n6%2O%9l3a{}aNb zIVC>AF*Pen6qwc@rja=IP`cyqff6dGmlyx;6?cXBo>G;|JGe~acsnLdY9RNRF0X1TH`w2S=Mjuzj&o?e)M2Q?Bx`(0S;qB&TEK-vW* zhzb9^Vrm`hfEVVIhDxic+;M*@DzMWzM<_>e>hy)CGwpC&g4T)RoF1Zr_{p;G#3$On z0Qg#UX1&Kq*XCC*R?tNWwGjR+yR-Qd%k6zE%|RH|PEsl=x!TH+n&el{P0MhByrx4!giS|P-6c<4@_+;H|acD z?Zpk0rpVYwfZ;$tOnO+oSrXWbLh3xxp@;Xu`kl2O{H zeU`$?JgKF_KLirE6xCFWy_0lfCL{U@o+?i9#Uwbg3!`eZC6W-q$kB`WH5Hy6t?wRb z_DBERb9+gZLL%Mkq0RE@q~nPO60o`(WBE}`Cr}n2dFP~dE}TnHiI!pCfF{8menh`v zgz3ZMG@a%4se;zzm%{?>1~2As?s>6aKR0IZ%Z%_Ca*)UIJ9cU8?oW;qx@dE5@H2US zxWluc5fut>>sy=fiJ;6$#s=jz;3)I4g--L3Ay0j4+PT#&WP-Tl%AKojB zL+j$f|5@h-Izm%-g;9q;_gS9K?c6YjMjd#Nj;yK3mJsAAYfM=+B9bo{tM!hhk+ot8ixWD1(L9 z;P!a@0BoAIVad$JWIoCt=I=i5>36PjX^@TVbA3IcFOy$l=zF7nRJ}Y;Kd=~VCcY~# zinm=ctg>BA5J?Boy%2wrNhC7bi)hNmfFRUNI_F0?kjMPZnPoxQ}#6m2v6sA3*co19xYT#>(-o zeO4+VrE^ZZwj!gO$)}YQvwMB7c>GcrUs@QgHn&Gs0HS1?H;^1mJO7&sv~DjM(Vwg$ zJ%8l7EyD=eSXEGwf>!sq|NXF*QRXq&SWI&s12v296~+G{TU~qW*2n3YTCAxP+0XDM z3X>M=6T4Xx@>v088Z#0;b>Apt{oEn|&BFp|oXBaQ9ml{KNActIXFo&8@9n zg7Ew|^`;^zLIs&;bmPq;&8F$pPW-eSSSMtc-35OVbi++`Tv6rM*JgF1+26y9U{&eAAZJd*&`nP#YBtpFIxLdD{2J{mq`|$8j481$$ z`xg4AUjO*W9(?DXiW>ZWqk|Tz6je~c+ypbH%E|K_t+1(QD;ZCuxd!c-b z^8npi96sii-p)J3Yz)&qfaW0h)Q;90oC%e@+{EZlw{u1KtL!!X^VgsE`P{p@S$%w4=kBmBuJq5h9`R?DD_;s}d+h z`zBFTeH4FXgd`lhL07UpJb`p{j{VpvY^Kj1N?jf`~F@Z`>6UqV`_7e^@J;X{~dBbg}N&I&H-aOF`SJ`>) zX%1^Qe6=igDfz@2&|Lj>|EpI6OiJS{jbrl1A`+Xa`1zgf?{QS#6-mlUZ99OJeB6%a z!*X-72Ce35RR90L^Z&rrB(*ZHBafQ3%49>E#J5!r?`v3NWBM}@sp;IxcD3a{il6U9L=2BDyPJg! zSz@iVBh<-A$VMge6POJ3TE6y&7k9@oCK;a z{7?r~Sj)C#MnKb_Zl;zV)K*7(3NB#vjmqkoW=bK+7+W{~^nrr0<4wN<{#1utbg*;M zbx6ox*6iaRHQxRcA?;nr${Ug+n>hO6?|O1TQLki35qIVA3F7RL2-E`CiRCKB^=o(L zqwBn$-7*Z6;D=nFDFx>!B-55l@mSYLr9?PC5s^tIxIr_+$NWzGaEz4hxIYJu(cs0V zS~l(FV&H;!|J`!m@kDj^glHoKh5q8lR-QD8)QyvS!_6Ww>-a7BD`d%-_r_IuS+2O_ zNZaUewxd#k=@B47-*uP)esON5k1jAX;-k)XC=Xc<{ixfRHCIzcU50`txq46Wkr4{2 zRSo5YF7%m?`%Uog3d!w{1wq@A_*U;m{9QFX_1BiKhY5^sdsd>E`cQsO2NRG8kqsf< zf7mM!FKaHe#b`E;1=PXC#}D6BrAN z3>8q>%;)eF|?waj;s)ZC3$Ffcui zs4$~+tbfKk$&HshIVJgz?kkHzR6l)eFX#F_!8yYa-AI#pqU4+}O~p*uuT_0tMHpwE zG{-@0T7A{)5Mg++C{d&N|8kxl9|P1+)uf0VyxgOlOnKBn)k|2d}Yj)-mWH>``|Tp4#w;iU$`T&`}G@iAGpEnu6%#E{KNf9u2af1oc5J z?)jLxH1;O=)C85;jkYGyWf%?Mr>+U8NDu9!Lur6CbP0fnJzZ-koL4PMp=)J5uretF!s2`&d5Z;tzUXTmDnY zFeGZ6!Gmv_bF9uD+p})pIzSNTp!4LcN?fT&_qbWMChM(zaN(>?MrAesG%7-=hW|*= zu#2?~nasf5*Y0{@>Dyv|tYVA0RJKBy@X{xY6UEPUStkq16jvxWL+X{u8PEmg6s=?z z^qE02WU?Ec4;Eg;eVn-LIj=evabqKku8n5fG{AwfxBwj0m{!tzQAo7t1fnRb)%8Al zbX0QLBWPoq2A#cI>bZ(U>l^y*v8cSq)nY9O6 z`_tvxf=b@l-CF)GIX^P!o=-t@mGkUG812r*8uijV(dpmdGPm86EcStMa_$^Tj|*}r zc|vTX03Qw|ab0;O8B{7b7=K(s>z0wsQOoojdLLAd(ABQLo$^rT6pHG}BXr0fn>&b2 zb9H-M9UeNN{2CtHPepO%BrZ=ISGx~QuB`t-8hfC7@Ry1{V9}=LOK~;o+5y)?#bS*> z`=7@SE1z2S6D~jue(ZrrIb;+Gh+3dBaGubxF{qOx z(VJViQ-Ey8qUO2h{w-M`So=&4(e@g3R{eL4A;*vR+A&}6h72$0L?So$!FJmB3}obi zio^d%^)QsvNZuD(*Bf$6S)%Rct|)X!ULtE|MMQ7C-v}3I_|X6*hkccOG*yDsx4Nf@ zVu;3}bN_)2L?PR|XDOT%*538HQ{%L+w?feVi7)7LD?W5)MLZTBwM;0JN0LaQ|JKf(Uk=bNlmJPfZPZx;2bnqzwJ;W%|^+ z`mW?@sdMOM$EgT3_RaS9quhlj-G~rbAGbN`H{ysHM_c}KPM1*$gp8#DCHYoCG zDYDaxKcJ%vwRk?J*0_uj(nb*f^WbJp;k(Lloz`yFUUk;K?f93P1v~J98*S|EiI`ja zQL9rxd_;}bD25?BArdyO6)c<5PGDK^2kh|_A7>**EfGPV_+ES0upWb%`!GtDW?GLg z6+bRw7i|sdzpMl}*ReDiDdGvXD#PhjwGq&hjZ(OF5LDf4sES?7sHWhMwYzZqBi3s9 zuI*32#V@6-{))3`)HXfw7tde1G01-2%}4q!xd)iLFA{FwDvm1A#Z(6U$!2KbM~EK! zSYB6{#rl1TQ5*kpPi=2I_(^X43(K|_oWc9|1U=y}ZYDKkd5Z z{2)+!X69d0l6h;W9exkS9cM-pa@%+7Za!XUo;k5*UC59v3Yx+(6Z@aIkt~vjh@`L7%xyz{*h73r!;p(<1@eB zjQRut9vSo8u*4iotXSM#5a$>JhM|n)=m-&I;tUa2M8h z#gpJv6q+>|MbVq=p|B~W9Mkha#Q`O9-n7Z#N%qR|+ys-^vswIEXnG65Md^5%DT#&; z3!g36W3=Rd+Hl#TW!wIS9xWq8X}^T$9HNJ9nBeGhd;wRl8jD4=wfIfwNROtR)N0PZ=>E^oP&)IsX1Ie6>=^uk*f<9C;p6yZyR^y43r7Y0l#?l1 z`1C%27ZHkaK@wta`;1`8SPklN`(U!DttW06j7_^s;bW8?$AD4W#*z1=ll`#aNY8=a zW0U>Ji=aT*r@&lF&F0bpWcy?$mt-&Ge6vA)_5|PLzsYa^WA}5*-OF<&RB&-@6t?q2 zCtW{K=4Y)5-M=bCT$&%-MXbQ9Xn~L;u8v1yqIp0@U{0n02dUzJvSv!0a{$dh?I%pX z#G{6vm?ETLE@YdZ>6SF1ub{or3`3Td!)JCE6!K^zc*8ouR$`62mYQ$<$B0G!*+0KN zuf||%-*>0OO<47dV+ifwf91Xj_j@AvMVa4f4iJJFh%J(77RVNPs1a8@b3?9 z#G_NXjRn7^`=AaVEk5EvImQIaG_1>((-Vdv2!X@DvR|s!hPZ_GL^P4tcp*k< zQ30oA=wi~Os>Rtthz`p7wmj+4Q6zDoV{IuRDi4b+iBgS%4v78BLg$=cyFtCXS2-!2lSi->0L;;DjTL9Wm1)Wvy6?(=Gdr z(v%KFlw+bY-yG;f^`(CZneG7&7kxV#r!_uj*DXXYvT4{;GKEUU&FyGYP594+B8v0R zGFOFnHx;r+|gGQXbf!UXmzjWLE%yOes`i^jyTjWA?=t3s9v|=+p5U|nd zfHW2H1IV@q+#mb1p4=9?hu#@=zP8Tj+Blb_$pAhVgN7+J((eRU;1T+UR69S&0@r6G zL;wei5;~Niu021jptFf^aj47H@fAViwfp+NUaO8OeEI;<&17`448^NZD+P1Oa{`}| zY$^Oxd?Q^d{NBHm01N~S*u-P{$aMP!Z`uK?*p2*in2EeS^xNgt?fzoWcLb?Vk`BN` z)`dgi6^myPWg# zC9qF%@Y~F)j#n%}XSG{D#f!qJvpQJ*2|xX%7-lvGJa$pZ&r@$?jmo?GN8h6FxBKw` zaIso~Rq4uNFh7){NO$Z;Wl!{u3PyZsN({-Aw4d6NwE%vP~GW zt%!3lGBt0+9rQ6h$l=DM^&O)-hfCCskj^L<3w#)<7|A$Sp4*r)pdp58Ib6Ql4ua+% z6jwyxm{d)B3nx0|#mvX)A_4q^%rReI>_=~rS@(yVL0w)*=d*{@*Dd)R_hIrvjH{SE z1)kn?=qx(M58Mo;DZjgn{m9TWdB=;pz;hVx$j{>wJRLisewKI5Qiqd<+$Fvt$#G1#`#9Ig1p?( z>`@Z0A)kvMt{fit3__?4Zl+W#t_VQ+7=Xrwp%YDq%t*v-lMtXZQG=>)3s}YH`xoDy zK6SY56qO-lOO`TzN0w+oOf*L6vnCub`-|c4If>~DW8=#tx_9qDbXUIcAZR;Npw4Ai z59m9Gd18vhf_K6o&XLcXVYUxojAJC1=%w#rh~&M(BZi%QV9dW3Cj!7I)Hm*g%+E9i zcOX#6KMi7I>Y6c=X?+#+Sc5uuT0Sthk>05u{r{dyM69FLK z{cn30d(M&o1ykc*ldJXg-N*B;ALefj)H;>(&x`BQkNvu~KnzKNZr4}lzQ!~F1xqeG zG3j-8B^ua-QcR=XQ-gTnFCF0FDZOxz!-JEj9EUF5`D5jhJp)j=R~T3>n!)48B5nH5 zb3ujaN2m0oscs@(71ujm zBvqN`Le-MerhFVw>EEt3$=FadhQM_*s-F`-q#T-J{QC+;RCyp&{IG&KE+#i++Gcxc z4Rc3II{g@F=kMV0T5TQg* zbN{NA7yvz_Wx-))D{rdDzXh4B-TnabJ_|~7kf+{2c=v_Wi^maVmkdFA(J*45y@T&B zox(#Cx;ZHKQo7QgDEs7IDmrPiGVjTxNJ)&WirJ|5lu&8Z!12eaRT)RAdLz>L>zLgm z+@upOnf`Fqf*$u+r`9gDQpiCiS0ojz zXVz+xxdt#tNhIRh6)c7wKIC$!Ke1=#1R?iH5|CxGi=5Cf7L+$&nHll5OW1)zsRk21jxa3 zo|Z37oZsJP*#EfTdleI%@-CVa(6b&{yQ6d^9Hzujg9&db*MdH6DNqIibROMKk$X?P z>po}5wf~-Aw+hIM>hScU!9n81;gYS?z(k7rn2`UQu^uud;{H|o4|F^a0n(ak@GF0c zU6R(9Q5`=^eXqa;@E%fr=SU}Va?^NYdE9ZN^c^0n=3u=Y`(p={r^QtRFcJtEt^CQUGLPw(7I;jn4 zwK<-cm6?IhP04cp7JB>!!>)$O$4CQIZ5`c{8vpM_S;c%r3`HK7b>{LRl=Uz7X9W7Y6w6_SfF{F%N*f;*0K65ecN2XD&+ciG9C>X5-G*Du1REQ4Ob-!gD%W)NH zw}7^22y0kh^<-~#3VALo+iRX!zYNAE;Y3@=BvEVXE_R2X$UtsYEw^~*9|uoSK1BTG zzMtNln#g*V>tGBQVEK0#Y4x zV76_0ePkwjg4SutexgLW!V0v!T`zDN1%(`;>o0E%bUksu$S2&#=#J-ZFZ;uKsG`PN z405Y`y;BLVj76v+OrN*XYq!K`-Ikc=vl`U$q6&Tqz?5<7-_Azq6^%b2Oy!i{RzFcmq^ ztKvV%fJQ~Gj1C8e% z5^aEU6oSV-sv~j=DvtefSh-Qx1QXKfP^v&J$^7WQ-sCiNv zy>*M-LLKWBi*V&#;RnF46)$+%D;HMhkVBH&px;|9ZI#sVWDc&ER)6pxKoftAxYu9w zjQ@tsJ}F%M6(MVxs-XS3%+@(3KiHq%N_+vlM3KED`1ob}EE4!N*92=%8|fS2&t(=U zV#1*96N*^5YqVv>U!oSP(;Q(SRPtcph0G5gf zm-m!hpuc||8-dY38+`;FT-G08oD5g+3O!yV;`ReUa z8TO3t5=us>_fgwv6GMTRbn-7?N&>(=bX4Zjy~IcoOJmK@la>`K_}=rpcnIecwEaZ0 z-O)-KEBNf)i(h~JF8@nDbpP#ZP>#q4x~PMc=7bbZx4*wnVbb&tYnqN!D*~%8T#lnF3tOx{x;9j6fyn5MVLYeNhg@-HM{;Q2zVDwCx1e&0p zH=XzK1U~tWEUQg_v(%U>TZ3fVYMTHGT|1fvs%$tv znEb9d{XVVqunr6}{d}3n8N`zR{ZtHNm+(YI&&LFvxmoR|RDeIx&7i1-xq@QI3MLen zdbjCp)=p%8$*MisIBw%mE;4>wA zwf#X3R7s}Dl)T@6Ju|+$?zYM+8tyNBVF$P{RPEm+UADw8=w(5NJ2{KY1bZy=;H`&7 zzlHgEU!O^Hj16j){w4`s|FjBx;$7XkC?=w<6(KeoA1l%QyeKMF+Wu8}Pf`#H5ldrM5z3RLEuaNav&vgNLa@umJsQLUdR zDQ>%+Ee#r6_$US)++g(xs3*?Fcu))zB{S^P?Di2r6WyP{s zO#4Ih??NtS=NmPs!gFdQ)7{CO9|$#d8%BNcCmG5_m@j2a#q^N!1s{0)=@fBCndNzb zDGrOO^ahc8$?m;6DTsZNmhmp4{ksLxFrr!ph7RsT+<0i1zYR+%%#@+3^nbDT)#5+rDF4FvbW1`UJ&1HnDG4X(k0y99T42s*evzVH2R)w_SZ zS9PmiRabZK)2B~&pK3Y1_S$<9|6-d}i|utnJ}c0l7HF5IK#|Y6rp}y&uZ|%bu4ht} zL2%&h0AYX7qR{HQEVla1MwN8??MS3t!VZAOA1@&>)E-FNRKj;fgKU$g2tSnWFdo`I zg|529)CRa)qP9>N(OtkEjmh+50FMnZ3^=YijSFS4gX1%#L12iv8SqmFc|S)=_tB^( z)N%MuwrMMoWFAW*!}zUP;Zo)p^vf{8S)ZU7I<(njQHn94uy`de!>?z%L4y5@U@+K_ zn_n%Gj>Sy?n9E+sj-n3Cg1>1&VyChL9gVBTr{MOK0)yADZSLy4^yt5598g}!?#h=9 z*ayN=3s2vFti5wl6lS+Z>F)X$aYN%J&8Bc@ERoh|F!M>BUDw(EV;9JR!5Kq?`#h~& z(Tdbd=7vt3t-e-}?ZvO{Gen_{??#T6)T8XF$=}Y-%EQ)1zfhqZwO$=R)LBk~6>h;IA1aZZiFWyFMg`=I&ol6E5@1 z4>he71oSgQVpKu*ip;oI0Ly?}E#tvYv>c5qFWO6jYW6oBHVU(;NsTrT8&(M8g(md za4|ABf?FxoY?(sdRjf1EyAquY%-YvJK2%CXgBn@W{(<1&-Z%6X>W2ZoTbvxgy7^z< z%GSQ5*;M;OR<`^Od$+^nNmWbh{AMzVd~K-EeHtsAE4=FukDyYkKQ9U=4=Rrk#k9Yn zeIqn`lvmn?GY5f5nm)f}9mxETJl~dkxT;XWO)IHXyI2Txz=72;6yD=aw0_#HtjP^% zpNH?&K+ct{8?_Mmm#8xT&-ACB(jQQcM0nu*7>Mw_CGXGf$f%> zM~BG2f7UTNWEyzGJ!3qnmaSe!uq)<^iwVx4Yv!FHvk#ML7H?Ki_MH}K z;o~&(@i0K143Z>lgC07`6t$UUFdo0e46F+H9N~r1=gp3_*#WNU4}wzs-lTtrK>l{r zrMlgGem#b4t^5;vZqNn!1+q)dDEQ(I9Na-#b}+H&bYforz{T5J_ZjJLoH`!S4A$Rb zPoc@$z+&Wz;>Y+fk=CPpRv}_5^oao4eCgE?FV|mp-CfxtU!(c z@~t&ug*f}qtM$sH$IFw}P(pxn`<2?KwNv2eHXTJ?iBxB5!h`=CZH z_-^_SyJ$I9ZixP*p9&H_lsb2jI~`>Hf(rxRJ2yki{$B|p-NI@0)^{B(L_ViARUbc0 zM6TON*I0jyUm}D4x-vbE&y6Zrl>xZ5ACm&u+AJy>@W=rV)$85|$5{6>B+1yxFsz82 zRkXTYgV7RQwwsF@_eXP>qOr~jJ+DkgHimsPF?666!I&kwG<TGty=IwH4>M0-~J0B{qx>n%$#1k3HD`G{Ds& zhvm!IMhgTfo0S>4Ytg{6We`SbYo$12eYkaJ*M}rla(zLM3rSS?b5I6t`X=>KgXbg0 zP$D3}6`%J_sXy(AtT=2wAq%hhF|(KLhOCm%KP)kf7*ESJ5v5cL;9h&HOK8N7kMz@ON%!86Gt z>n2qhM+q7D5=ELNz{R!;<1zXfYSs**3&$Mn!x%5zz&`veYxHzWWBWc$#+kt)Aa~P5 zFc3C^<@%v^+xVS8y!Gi4@)~v{cnl{?P6#cvJOVpfh&~)eHYr~)pWu-)AH{~&B!mSS zSA6W_eCs){x2v*-3q6T=`quS!h?`!(qUK2~ldP`|tOSsipyJC}bdsWK!slAY4*T(h z8wnBs-USyhNx|QD)y*#}u10d#XgPn~jU^IExgg+844I;-q0b>vrhw6l@#M+X7CCyo zd?sBeQ=Lz=?F*=^u*v+nZ*ika%MYr7Y2zM!(hT^;oK#x9-M)AGbo8+D>VAi03n0tP zsDrzOe~&%*CNy009{h+kSo0k-Vdeb#Z|vKQ?o0%=vgP2$M-*~7ofM;)X!@lFjm>r% zmf`ZRa9X$cQ+*N^Q$@9@YGrH{sDjLE{zN`=nkb&iIA`O2 zhjG&ry>t!*H~rTqm~wS)2vj15lst0@0Sx zut(V)cf1qToL%qxOYitGq4#b=>@AFC;6`rz{p8Dd&2*|ox4`J2jNapWTiBo0AIyH` zxFQmSYw6?~o2DMH9cm^)^fRVML4>-nV2p@In(x&%HM1akcKm)g9NYll%LP(du82TU z6qW@-&30%q1JSfZArE&3Jdz_X5vZ zwTnTMXQJ7Q>fC`7eQ+Wa9xW;qCvU2K+EQACcP4B0&m_CH zms-!Ey{J|qz0J1umMvp5+M*lI>b=lUGXkq!$v(1%K87K$OykMswI+nFZ}={99mq+I zY_n^zS&+sx5|W+ce;_U48-u^2fSchjhOiIFlK|{N<6B8PYAit8ZAm?{Q1_y@iJ`M| zS^8Nc7Cu!lnb0V=qW+-UxSgpH;FcL!RW)~gs7)Gg?{hRDn~55CO^Y`Lp!}`}|J&Z( zuSKNhu-Nz2Ge@MZ5ODNG@o%2ogJl{sq^Iw1n@C44LL0VzNzaCJ45v@q0dzm1FgN+P z^$`XQA%*>BZBnCU8+v)`8ptG^zrLgH;#8n$`6+bR=2V>!oM$WZdnI(Ss~1Z%VaFu0 zoblr0rLpHD-bR1GLA8rJ)&42PC(c%*thu2^3DCw zZIh|(wD4bNiT3$BL0ORBP zo5Va|?2NC|{;Ge2ysi^)vhyl}>KrpUT{YxEAYQ5O11#TCP;s$?U-nrQ5?q@T9lmy< z+JsZTgnXm+OBoR^CS6q5eAQXtYMfxKByU0Zf*8e;QRzz|^FXKZvqmKHI<*LdUHbCi zd<9~9y@`A7SK68vv=A9!^x81d$>;g`=Gl{l_4vvE*}M9TR&?Olz-#-^6!W>r{c7=S zPAjv-@Q>gaGHrykkYwT=BT$xN8Q3@a>cd?!*qEGN!k6k&-GF`CAkz<`A0Il?vyl=X z`U$7$O%?v$bqn;LzxW!O*-hz&Kqg8O5ng~X)}~5WX&K5#c|jj~CeSJqg{`^EPeHkcjQ8=O;17BBH6CUY3S zpDE!^Jd{1I>d3J(os*BNo<&DRjX@W$isCV*!HuOh-HFYWv8x;k=gE&xV-^e#xGW|A zZ^$g{{}8YJ-{IQ-bL$Bvoc1WZft9!_dT0^#@eAJnpw9mZDESZS9A4l3o#-ttET`H` zZ-|aTVV1RL9#02IH89#M=`+Zs0H=og6TX=As`%{I^Ob;1_gTEPL1zI%JWR%bTth#A zcKd%08DS=HBuI%RH&t_es%wi~vwkbMWZG7myU_MhBcF}RF?eZ(R9GE_MhtiMzlBug ztvdCsPX|TmfSrRTc3e#bdYFYt$5xhp?jSzhHjc+@DgHETrYq_5-@RP54s>#R{g~ z1jkPb-=_4?kKb-SIkbR7T_xz>+Gl&ROwLwtoDMGmk#^m>)Osv804jY@ZaN=3N92yeDkrjJg$ybcT|#ES3IVj;CA=iKlTavw39I zG4d^~2Q&tdCQs7E@9etKJhOQcz3K8TLLH>VV6;=2=OmxZ2cz3r2Ktc?TVW>}RmO?M zb~7K`ZXG{jla->n?!kltY)_GRh8q5gZr{9PDF8h*>uk&GWFdQRp_d-YQsaIKhk4v+$`Tl&~`#Lb|CqgJMqdWS(U%sl)@QADpxa z2uniMs8T;{`n1W%(XTI497B>#QSw6y{B%MK-zrm#PgsZ@f>{Lr^hcHKi~~mfq8Q4v zS-6nj=8}+K^hb)6(&FBkm6Gpq+^|iNmn)AaLLXov6eQR}7QQDAdX*M%hmt^CX}kxK zJ~AkWD2OX_Gk}YyY{6(SM3^-yH%>9LPhM8ze7E=WP6vsM7O~IlJo~#` zkpa{fcD{{=JswPCpon#zgOv=H%xsdkIW}e8QJ<_G0z?yJtAVO47eBWwsU$g-iWi7H z$b#O%3&B{i>ag9Pqy{OML&O zAS^>80?IcoqD5ptXMi;xJ46_{AUKTEtmYZXYS%OnoDI z8DC%{MGIWETYL547Y2EGnk=_(^u+#~jHuE*T`_^5OQfo1oXS&{zKf63?&XUrT$NTa zpuKpQW!I~rVM*e1t-NE@YR3E9>I>tGWPKP&eP?Q2e~4e{!fCZLbj!TeCg9dB^w$U4 z-(Mm3&=>6bhCi;1eT#DMQWVR7|70lDDdCcR@IhA|%He7PZe}UQv_@Cv26f_YMd)mM z?2NQXoR?30MSAX*PffJeE#IJxQ5G01+(c??2FKXvxd^T8D(bz~g0VU`-zR{huUzayj_9?&m6p1l zB|XkLD^m6STi2YoqUw=6NFe2|w1mZuZaVpuyMCmih4af$=mL7HhTX~#j<^u`HX=tGiaNlAc; zAyi*}v@Gw>?8dGiwzqva;Ey^+`d>5m3EbYNCK0@y{i!mNBPu|woo@7f0|9fhqpuyN z3tPLEqmr;2Gfcd@N+gQ!56=8srO6yYAVIAoTvrt`FUiT#`lf-I5WS8?hA4^m4yn)3 z?eklGx1^X%!t_F>CN+qMh7gU-8Bt}wj+#029ET(;IXiY;49+FZ!t;u6gvausBL9LG znl<0YV+wCqWvZ3Hk5BYun1a#Qs#EF$=s7 zxAo5Z@KWZyQvr!0(|or2!pT>7E;OWHYJHMUQ3W|mY%LtJE=1@jPB49V4Cf$4`EV_sJh5&GkPphEu_+Eb&Nm^ULdi1vxo zePN6@**VLkeVZ|rD?*h1+Eb)$iRU>jGFgd*vU{U|iU8PK0ZQdBg*p<{%AhNE-yl@A9i_$S&;8C%WS`u|mCJMeK6+_D|vgmA4_S9~DYH2$rw|rE=rlmjrZ76`hS9>*UprZE zRd+3L23OEhVZEjeV@2K^yzsyMZ|QPI!lYGG01LtB_XXn|XJG>A4L2pGJEuV-E6_hV zM{8q@Hw#V-P{%UMf9^5E$ia78PDfZb5JBKJiS{E30{m_$%50~7JL_@rQ?~M-1aCTX zBuDFZ8Icei%J^y1$@^Vxmm+nv?3FriCsUVby6lOwLXHS;iRP`tCN<2&=>h&Ju$cf^ zxMhGvfb8r0NeU`~J@b(eV0vQ_X@Xyyrw+}6Ea*2^;_g(Lfp=Kw^~|^Rl}H^dVR&uD zgJGh0Dyn&6bSf&*|31U{xNg+hdMbDi#0~Kq{a@a9zW*5q#bW>0`=0*8d4ma0Dt-Lf z{a$uBJBIaA2{`c!qS@qOmP5L$;U%bWGzx#WjxT~*DV{h&Lco^zmxO>NQ4E`a78VVm zqGBok!-rC!1ZaU9F&CihjC8z%sLSMYb4S3LX<`LP`+93*Flw;3a+Lc1D)gMGSy;&N zR^Po<9teYwMPSoNLmC?3aL$N`y__lZKe1}QJXqA)TxD>0toDI*9QMHm>lXPTi+BGn z1kzIC8?8XP(7W<)!RLhZcN35gMswC~AqBDD$O--BaQsvW!RDuHBeZSHWdDA8+6YQE zA!!#q-e6y2*t{6ss)gS_RX0CjTX(J9l(b5We3{ce5#(7r1?$&DeHgTIAXVx|Knww; z^GjXSKlJi1PPaGrWbA2T?>se}R-MCg*o5IJ5phNyg0$)}>9WHgBJ>7eBMi9TKbh~S zAu&qeGcah#;)Ifz94@{H{-Erf$_6rGh}iYK2w9J1 zxzV8pnRj8uzZ0k6)X3W}>2RNhze3c9AV`gh9K`2KM)b1{&iXsZd?SEY zY&MeF3mp^6n)A8NT@XVC=bx?N**egl;#1OK-~2L7I4IerP#bc7I@KNBwcHGf=o5CO zERSOGb|f_jMQ1)wG9LAGIT=&K80h^uOv=#D1@;*p@D z_IU3D`4V!CKFbcd$`DoaeGbkDlFA&-xlO3F^)vI24LqE8Ilg#T?0`RbbY%tA)hQLZ zGW3}BY2Nkf`Uz*g%@7~TOca|r(wvc4acO)&GH=ee?33x-9#Q*`5(NCXD*kH50h++t zgLa|a_=nV&z!clleWTOIGplDGhy}%rf3x88J`1fBEeOD)gu{IFRm_e%r^0%XhsPcM z?~E^OtCKoH8O2;h7Ff1VOfc{aMtOc*k)#I;+`cvJ%l}#+5~$aFdd?YucXRDuY}RGa#{dyf**mLzrCC6EqZ3qY)}|}>5wy_5s#9OT;oF9Z93w1r z^Jadm4|am+q1DRnDyiQj|V zhW?pJ!Zevm7f_R~eOmMAzV&EEj_1rG0 zNLk6U(gody!HcPANd9f}W?ZqYUVZf%R8sC)(7w8Hhf*jL_&B(ndecxF-R|2(QMpN@ zeBl22QYc#D+tq2dTa(P@M&R^e%I|nMi6-on$JTV+@UAyC#b>|1!bui%k=SB?3OW%E zz`HB#t9NgXNlhOWjRSlVUJm!!ETVLffmBUK@za2GZF*Cks@e}Xl;y!&G-?8SZ`)+$ zhq_;wEY8Y`kK}DQ_Q^(#J8?9tfX>Fg`Is|O0ycVPwBsO)!Ppx#sh2hs39eJ*%P^oH zLwM;Ieb(fvGpBg+W!X9e9Pj1}%fUHDf)7uEflqLstl3-(FgiNMC-=olRA)^2KD9Y5 z=w>mk%!Av(>mT*mSi~UeS6fithW_81d$BzM64w^*U#@8cji5y}fg!BsD10AtG)9W; zZdTvT|15($*TNTiE#8N8rbWYHBF_uQhUS!hSqILmrsb9hb8eQ&UdkgtISnJ_PT=5^ zRnqhI(Dn!XDfcSYv)|64jh*ZpEh)PjX@PuX3E$*)6}|ubs{n7PidvIn^21rvlHY>n z?=kmiL7%jic^E((opf5(a&Y)-hQ#KEqI>7?SIUrgTqu)bYJ}}O9gMK1wQV|4kV~fM z0GDUv*Ezh=#T{e{?R>oy*Tsds=9|>RbqIU%q^vLD@52s1yVvwsazx}!U}jO-#VNr_ zmzU*cWT4b5$L~gt01zFbUU(AyR!~BfIEjmX-%Q6Lkzvw`J$X!468ivWl$n>f%n|~U z9#nz(H;HC`s5>zg0>LZ>*)H&}h8UP|RnzmAQ-i-s=s5f-zM424-w*NuhmY*EBu&av z9vo7?!l_2FT34&7sptGI$<)jFt!9DK!gOvn%&j|g%3*~+-)o%rX6kY!Ux|f$;aVzD z=l)`pw8nh?g$6^I`GOFPK2vXUD|}2anKjPXEEmDAUcgX-1HJ)61^(okD)xZy>ORJ1Z$tP5Qy z?5Wu}QadOG%ljQ@M*?rIj-vp6DO*uxp|&a1C+jg{`S|Q%2QA`iQCPM@aXi~nhI*mo z8traN6NZ1W5U_WkI^Y7g!{P0$KjwLLX`4$ zF%$$7_uZlqS2enk!<+Pw0+DcLLAFKC58D`Kv{#}ZA62+QfKrzJWc~A*(U{Y;pg%5v zNxA7VV{=f>eY5!RPjuh7#E!japcw0~C`R8;{G(HiROnzm<$o_OI2N}A3UM7k-Ic4p z{u%kLWZ#-N8orAKIfG8l~;V^23K`b!v3so6jWYZy>+)cR#H~xK{hhljGxSq1J}_XX4${ z+Cu-r>;5ZI$1ww*s`avGRUzTR!REn5m- zJ;ASZxmUgI+iLPgIyW20!j5Y_j-z&+^s@c?D?qa091L=3&gps@lF_WJ;DWt)7;|F_X;R)sAM#p1)PbpEW9nT5QfBy&4zW>Y>!j*RV)cl-h z=lh;Q+s|5ks7e1%LnXJs(vp%`V!=? zmhwQ3&Ua2n;3G^>D-tUyKB1Sk{?uDF$6L9=R0JVsc#*7Vuc)IOK(~LQQJS2L*#1|( z2#zdUo5OsiSzW7zq_q3ZUNSa-SI_9}AU%rVjE2_3uo=QMq1jP7DokWxj0lW$Cefl9 zSk>1G8$KLE(9+zNyzR2F4RF($Tk#k>ZvXON=g`H+)x%rdnYnpUgAUn)Ov~s#YcHGv z__e;S3@9{U*jODQQBAf2XuES+o#OqNODe-e0Nw4e>UX}0RFuRF%ro)AYnEF1oeoxR zwiY(u>nNi&UDPuML@FvRqo!=F`P-%l?S4_LU<@Z@COT0P(_y((oLA554VIg`r6p!j z5{vMg{LYwE6DBxzPtq*1Z!)*AaB$I8v-nqz9e;*o((;*A5!cO{iRWGuL?ngHZd2%N z+n;~cttCk$q9T5es+A}}Ma%;e?JGDorej}_M2wW;cPTVt;4rIcDM@jj4;JHTr4$J3 z$`jRZxMvJ0@Ua_euP!(JARp8G7`%$u(y15}tyK7bk!Y4Df^VcP@T9T%8y`N$bkbKzu$6mMEa3bb& z8?E>aq@B4$k&MEj2X)El>$0WJNrh-jMaz5g5)Ydc5gU~q&XMAy17u?_sDA}VoJw99fNx7tH5r@Lw^@OLDq`2ss80`eqQXsM$hjaT8o1sM-8YiWZ0l-lNX_4HCS@&Z+Z`laoRu+&uj48iLnc)S^fDIMh)R8uB>5f%r|FKlhe;LysNy#y5K zi$keSvy+75H9v18HAiSt5G`+UX{9>qP6bWqj0LD@osEyB>2xbFtX>Hqnjg%nCwZNGra|C#XpX=Mz9%6 z8@-Ko{QNsG-reNEw%n91>wBK$`ndJfE4fapmTyE!vnm8 zBfM*shuelA#N%V8=O0kG?r6x7pCO_M+H2IGKr4Bzr>4vJeL`0gqug|hIK4eQ(i+hN zT|>kz!9H=Ldn#yExix+9j~_TdMWmFG!CDa5#JDBK^(yp*9!lOM%(=XI(XZMy*PNR% zs`Wa<4*{#h5{T%L8VTZ;+95w0i6}K(8#S7L5RE74F{Igk&zLurrUj+ik9ne&lqSX- zZ>Q>Nnuc!J5L#*O+r6G`*V7tf$kd#5YmGG2hTYMYm)dI;16tH=yNWeLhc5fagsd(Z zvn{6msQLz2CM(EX{UhpAaU$XkTqORk4-U5DTe$@km{09l`-<>n^zCOQYF1%(5$GB` zF8RkGPQt1OL?r#=m)inc3OQ`nyyp$i(X>)Ecd4|9v4KDl6CS}S$^pzgA=b1h>ie0UFQqIxGxN+QR$&8 zgj&3>267%Rw$Kr%0}1292*{Cwub93Y@8YOJbavxawa^exnb7B8j$lnY#hHpX*w`I! zHjA0IuCfc^lT*JqEr@l86>k0%;B7|%IGGBD_I*Y%sV@-HV1Am7^%wL)?NK=T3AM(%U2j2zr?e!+PYm_I z5{e082EuEysl9;A*Mj!<8RBM|D>URZ&o?Ds^EaZm%?s*AVq_&qZ*860xop|$CabDq z_`nVsvkK%B+{2iXqB00Db%gt z2cjnBxMsue$t@6iioM_2tt|A+2<&LJdZGfV=8GM6kS3zI)e_r7W)~}eP>xg*<6V5i zncAm)R4iOQRSk)2Gt$R2h zUF|DoF1;g2bZB~%8#YUz`>Kq&Jc*x?cDj9lE2pv;m>5S#%uI14{!9A%RGr;b#e3uf zKQ1- z1?f@25{TXHKnx{wBK`7c>Bw*6LVVQe|UcWgjIH_(gK-u+oyI7 zVMNR=sT?IPPG9@`5OO~jZo1v1DW(Q>NTZ^|n|qpcctJ#TP#9&Qd-$YuLRF(jOUeL~ zN(quuR*!{hw794-EMB!wl)x#nc_X6wz2FZWLCtvXC_60^!RH?A$SJ(l#R<(~Ps4BO z#QOK1rttQ-eXRkOtVuCtff(>hOn)M`vPgFQ7i6b_?>JxXS0$0JY#ieLJ6v;z+=VW1 zgnV99B$8;BCsB6C&R~Y9F|JXFK*!q55wXObRupurp=-j5b+%e#Uh6p8X1^eQlZZ_=?|JHGnr!Rn9wzO7ShRRK_@VrzMW$Ee^JG@keC{xbh# z*&C;DnKqs)csggnJ7I>Nv(JZ$x56|nruk*YQHVHg>={iRv6U! z;FOSd7)~+7B(0XyNNH&Vw-ond65LQ}x%_8spYTY8yQhq(0%h%D{qH|2S78H6jp?PiW6jRxCx?#WWc@(ZB zd)*L!;zY7FTl%pq-|ChFYXd9^EJ=>sPdS~bcmcBH{!CP75@{L%-+E2?5q4p+c)6cL z-DPiCJwQJTa89Q4;dx6S$ER`4z{Qf#8garoWlF{~j7M~EU$<2`8|qRYbuyM}f{3!Z zsenDK*;4|MoTLRVO;IOmrs89RTO!V^$y|<;1`<{j_F= zCjn~VkcT{qX6mvYeChIe&C<1EKm&66LmNU77Xxp|O!_;zcL9}8jHO+YU3B=P;M;+a%k;wHu(!&d&TiSSSoK3p*vQZxQcB`qVgB zpBE;u+LJ+qn&*$nf^WkfazY2BIsq%0l)y98ziRrd3z>9R*R$-iWT{DQ>D^qxXH}u2 z*BP~c4AX*;_@Tl-EYP=TQq$s_%pk~y_w=E3>wc#y&6Iy~ zDsYtzG;yhJbYsE|OCm`A5X0(w9dWE%|GA=8HWYo$PUIW8<-gLTMD{zcbl$NBow^K} zQ9vlHePq|%QK-|mqWVC*hPvf|moI(q1`-wwA8;l9yB{7Ap=@=F0n#czoqx&WDa6`M zwk8Qq_kZ|pq>}>~1I4{Y;~3^st#ZM(nUD%?{*iZRfb-;@j?XYP{d$Ksu9Ga^o$XtPeK-!iUG ztOKv{P+4WxHqBb=jH5h2e@%H3PMkRM3i?t^6od0{KM~BQHO?-yhFB4AbIbxCVoL%7Lg~K&~_k7h@CiB5LW(2jz#}sz& z@$#F(Oak9`n$#6{yAGayroy0!&`sAS_(tXyD}!dCAOU~LwWonlg(9YQ(O4l^PBnRx zKB*ju8;IcPAG` z)DK5m+B)uU_~x#_8P~b2XCGJ}>vTuBMJ9U3U^^ycgPHJ&F+&}CocMjSewd$K7j7nG zT0&P%KG~&E3N)M_AwKl?_;;p`UuzRwj~G@8RG$pqsgb?@b-n~gtZn2iiGC51lbE!2 zoA`uVz`Gog3nWqyXzq-+)Y^7nK z7boVH^F2~Kr`TD!L11YQMdKC{y&-zOv@s=IRx-7R;P8@c3P0PejQ3|H%Q%VzfGR3ASkk3cHMgoVU-QS=uiLI-1PnKlpT)^CLZ?$mB8i z7fVpN`5m$^#-aj5-dc4w!7uBN)*D6?ELCEL^#7S300{gTjkmWQR-43mmQKO%}#l}Zw5_)A2gxIPZpRsI=9VKnm?)LGs|i5*&KM| zuShoI+J5X@we>$RllNJKISOdELKtRZuuDhU=$~9t{Fw8i^n6LPQ`COWPzA=oxp}BR z(>%<40637hv~3~fkuQ0v znMYlJAN(P`>bOO6UPYB7sR^B_iv61QFdmQAq|oglYW53qxj#fbA$kCE9Y`0UQ#`FL z&EQp|G~LPx+pB&Ud1ps)L0Adx8h6!sV?xd5Ye{sdhK|k!VL;wX+ZQ-Kwt!a>@pbSl zht3WasgZr3l43qgSK&V^T046-y02Ty+h=9BI9eP&Q@si)-Z;nCp6Ly3WyJ++G)@md zCtB^C@RGhhe3e9g*KmMFswLeO_QX93@{4}K--+4|#O+vtaq5}=%OQ!dE&SHm3r_Tn zYs;U+#M5UpkYZ2DB~l*eaR<3v@3McQ;7{|!S|xu?4eIh%pE|8G&rDsJ zB~Ddm7IXZK6>+z7V@wm??-63GVe<-|?ZdOckjkO)m`K?F*wXwdGIz5}gn`OMMDH5X z2$#OV&>l33PGZWQb9w-_hWLE+b%=#QHCT~nIkWzasDXq1?J$AADh9o^TR-t^ArC0+ zTl(rN!ugB6ZUnaA;Ab<y+%FX4H0}1JVSK1+6$r`*AM2&-Dxb zI+La~By3Hndv7p`E!276s=;VKN?L?Qm<9IwoV)B<$%qnum4#IToRV`3?|gN70H|&> z`+akqQ;b-7!15$#gw6=~Y#Pz>;TAx&@TJLZWlNdckd|vXDhIxdjlTKw=hm{AAZ%=( zX6EU#mEJQj=yjT}twfK{g925d^EFa_<*E9?vu~z+Gk_^nH1izCIT2(gvHh}`0yZMX zI~%>B#3t&$`=5J~O-zb=I&I6S?a zjeB?FT}cr`F8yX;gey_wceyw7qc_3umZb}$_<8`PB7%h~X5D;SQqTvSccnSH6IyUE z9Y1m*Ud)WJ!1JX>PQ_qkxfcM{4NO>H>|v1<5}&2k;fg(fW{gvUwsc_%KdNsGgb+s` zviEIw;g_~^Ee=k}`5OoMjv$>&5y{wB{o@isT6| zue<$k=&BuwF5)J!COQWT1U>#&&wDPBcUSSdg+bv5QGhMsD?gZ&o}hkzCd*Tyl8XH9DkyGRfx-Ni>*hdI)Uu9Ie|>C41@Pu<`X@XIT$TaKtZ| zl#^3nbmV;M3pX&222S?We=X6+*OLyvlO%%=asbriwJ`bjg)45m*Pe6eGqOMlzWt3C zQ^(i(-F?I`xsMWjmM44n zB*Qw;A2~l?o{E9OvnEw3THFieN(mxtDjLM)UzZsUO?6FU%kb;XudHZ@(Jkri^Y0}M z`~erw>b396DBgX2sXF+O-;y(pV5*nlXdD~AoTl!EMc_Es3&2#jrqTbiXS%q8MoY%n zO&U|99tW{>kxR}5=~M2v(U*oX+=6K*S*euW+a~uQw`_s{?M-FidYK}D&%2ZG<~{LX z;NNo~0EFKB-r-i3a~0z7{IhZaQCW;BC-cEP31>PQNyLJncuEs_>iKUbLToMN$dQ zK!nP_wE6bc_q;+WdAZiOefjA8=zjjn(WYneE(juYnx1LwSTNAc7A5`*#W?;Q$9p-S z6K;gn;0g)}3gTI+af7yZf1lHb!ZD-!gDfl&+3;Ko&ykx$ArZib`i1xT1esouqt&Do z2B9V`>$K;imeMD|(7!?cLj4b%3P6Etk+Poeb_0j@Lh&Gd6QUIVcL#uQA$XqB%jXzW zh9>L&z~>I*e;``i`GNc9$A63!35UqQG?_!IYmQZ-S82}r^Y8_Y>##YP4EZ&~Dv@;a zw9#JP+KUrHS1CRA>08@~m9x`FrM=4y8_?Yc9Q7X-cJ~o*?SluUw;%u}s4nwjqpP>( z;fNR19MFuDIx~Dlx=NJCLn2@(C3rH@=})*y6jDPXFe}0PAM5QZ(UvQTXX-a~z{yrQ z!E7AS_~)&3rk}6{ndvC?}^08`IqITRt8rK3ZqMmMXp{9U3ES^$az`qR_muO^YRZqafGtVtVg!x=Gy5GA>1U@xo?xKTKFR#rjVFgXS{#amoKOt)Ib8$K! z2J6SOoz(Fb&vrFtLY)|hO3%3}C`2T;_Qu5)JltEdozwE*;tHMse3-V{^GpEBm%*z} zSwMm2nYAuTAJ3@6`Fv*IMIuf3G7cn#Mt(;bopBy1ej#eG`-eFnYF$ls@9r-C=o)*g z(*ZyUhHGEL{Hdp7oL`F1prD-JVm zEYanwsF^GMUykb?s9t;rM+2I2UY*L>7I;#WAfUUOlG(UZgj9>yo&*?FMVQyLGds&aZt4ONpwl7%!kHRwHfr$!C#Zb&f4*HWD|4LYFYDXWB&v`fy+FMgJca- z@lmMa_N)RAirt1kzlOt?mr*=(i8B)0i0Odu-_}%1X1}i`N2LVibLmDKU39BZ0L4TIRQ498MFdzidl~WrmXaZ}DqnJyI8P z@cFRA=4hfN!(wIBGSohv2(3}`i2b$2jd9o+`@g7q>!3Ei?*X*9TX75SUc3Z~ODQcH z+})vQut4!rNOAYlqQ%{c26v}GA-F?ueSAN^H}mHGk=;3V&za2KyZ7!fD;N7dUF3UjSE5bx?91H7vjvvH9zCh(v z97AQcE7Ir(oMw6G5znW8=&n|WEt3p06>WSI|3GF%eCcbE zXhP)o#-t1c2}twCM5)ND9VePydsE;AR z%f5dd^7Stk6c>=ACX;=_R1myv+#fhw`Me!xIamy0$Qe^v&xzaN^LmqKK{!>)bgYd)zZTQ(jw4tD@M zx9ae#rBjR`?KS}vhRB{z z$hZ#K;15`-z0cnj4;3d%{HKS&;_`Lk$b8Fsx)JdG>f=8r?+r2U;Dr&S^m2&G;#@ea zn#eNy6>O-U0PuyE<*9s6xFg=jx0T}Z&&MO*wiM-|0brplptZ-*dC zdRn4;*vPq5{JsZa)xifUE2-q6@=2i~ zi7V3)l=b<&{;FDhchadjlbtdjub-|)KZTBW7%HW=rr7UeS&?TjJCD!X!SBy{ON?lS= z0QKvW3@0#~PwPkrZl}9&_s5(*=64A*BSY26O`9Rj?DG}-<`@6o2O$0&3f8qi5Ow`@ z(0X4*v!|qY!nxh$?lf^EKWJfltLijLyM}2eQ)$AuJ?RAn=3)buyZ-$JW92f0QzXJG zUo4M9jo#Lx%P4D&=;A~^X$vOlc{edS9RfYhiAaf%J*ZC3fX`rWP#^X&^NT2 zFPBNpOCJ-*!&DTRuH~ECiyDq}avkZfhyS3kY`9BB8_zKHFX}JT?daq>vp@5hn=(}@ zU7V%~OFx`diSe9xY&~p<6&Sxs-8La(fZSR$y$O!AZzA8%)M&T_zofz#;zgf~bo|y& zrs_jM?-lCWF}9}OdZxN!++JVL!gwbZ%;Y96^%6tm+*N71g%te^vgr4|GgGyEGk*DG zi5>S1Mz)kRUZwGPsJ92`?OxIN>I$EUox6-5HT-CM$Dig zm4C5BU=u|u4!!zS2Qh*BO)Qu`5<-W6`#XQqOW7%G1_FgkM-@$HUkdImV02G zo*qWOymHc~;zHih85vKV7`Q~6!cx(}WrCzdHf(NP*bteY==B!yez7VnRPP53%~#Ks zC}e^{W{f6e55T`4mvgkmXSl{YTwd;=PCB(c7r?sGM52u_9Jvx%xwuZ@Vkg zZz_hvwFmyW3m3Zm^!F7aOFXI@r0Nz=&4`L&Cc3pF#)ox$iH<=-_Tcp(B3Ci9-NQjv z5|42YiSOwVCs6zJN6aoWe$GQSJ#_&SGar3t0X8z3jS`3E-VGLFz{;{e zf^-V?T0=|Hg9$A}M|(n{%OhMo-|TftM*nY^nb9Dck>dthHG$xLASc=~?T1m+FuS4m zq4!Zk-DnW#`_ARqX3YAg`nC~(7@xOtKFZuWMrU|>TG-?&8Uy7*;t)Jc? z0j5+Gt?PuiG!!fiTf?JYEUgDP;Bv$g3UfnJpO@!EGPd%?07rgDWUMyGvfBO}!ptkm z`=~32YtKt_a~Y(`Q$Q=>W#hm9Gu)9mPPG-1d8KjwnnLx2qpr4mWw4KdKo~y)))|W8&tV|>7~OuPEq z!i68F#8r}lfvOB4RLJLv-Rg3l9lBu$e0{S#HEH)&AuB-LuwJtiOdrKATg<72H3F~b z?22Dc>w;Gp`bs~eqkis4aJ_T}D$*FUNUYi1cW|GxLpSo1uY&fRfn(uokP)Umy)8Xc zhd&Ev)qGxKa;6lMFu$0@sLd<0Pk3F0hko}W4Ox->Rh1k0dLa(`9g6YP~wo7bq%T*^x>bofv9Zl(ryT6a$EF8QuQT+51N?qlHbK8FIp z^QUSbnuJO1ShlMe%8wUUkTQpx?8qI0Ee3}YN_uDdtoFn0&wztMFwIHBxgpaJ@R1IB znB%Z>1tqO^XylpQh4y-Q4u+|Y?q&yHH1ITRM^t^TeC-~Iywm+0Ox#Dn-DHd-P-HUtrqHago2 z1ZQUNMvsWWyi%#4Il-Z7+wHEeFB{@2-V=d_@R|0kWbUKA0g=r<-F9y)s)KjV&| z(t!j}_YYF>2jF7JR>c=~7@(){;rkdh(?LrEzTNQF(Mi*Xt$a77DNnVp4agdyjz7gA zDSJlO4Fz7#%(rZd4yaHCfsf2j%;RYwU*(gVXw|~k=Xh7YA0BnPnVzo^OGpIKQ?@~B zz)g76n69J7sk%S^Hw-Wa^f<;YU^7z>9Q7J7zEKA^odZCC1{^>W*OPxT3S9_a7D0RA z0GR_pO+T9`BH+?;?03(s;)uBp?Fjg11yzHqr>WjD4 zpK$NA(y7yf2w}JFXeW;E*BSdVW1WjIVQZZkClEB~{(8-8C2_+*-{PUC`|(jA*`rF$ z4_h1h49Lo3{VioH9N{ei9XHW3ZqyS7*oSfw$RNw8Mj!787`)H*Hr?W7a{oJK34C3l zTOj_`e$|jEOm?H#>pp&JiDf$<-jDNz{(8FQQQ7|S_0k9P1K>$8j$6b#b#M9t#q1sw zGsxag$!_U%a1_<$G4Rz@stdC0x1=e-=y7kVWr&FP0p`mB{N~KDrO2aVaY=-Itm0@) z<7FMP;+!WDb$TnwAI@HI8NMvyH5$q?HE;P6qn?dnlUmJtPt1lnZ^xzalHZhI@XobF z;>r0$PgFnEkcbGF=ku0=&OBtQAdv+eGxm!V6?l=_yyQg^ld^NF_ku+OhmQRMi;;Uk zLd8?vfg)W%CZk>jKixadowD+f4|Qjr!(kYSJ#Y1mmwUJijZh<6Qv5kq|4AQ(^!8fa z{mda%Iy3*Hub763t3#66soRow5#uASzanSp|IJ5j4VowlFvgI24WKo@CjNC$)$_s` z6{qX@)wD0|muTEy^X2X0m-2x4P7AY;cfNmOZiExYR2#bx^aqNW3JZ}?_FZy=uEN)6 zOO@?x=$(dC{KiDIUknwRMd__pD+>j~VjNP%y4(YJpm6^1x4$Nqd$B&iGr=@*?a%(+ zzhOmS#=FqQul%mk$_9=>=tpU=t*>|0G_IuPtKXQ1C)IXyODGBgzYKrPwU}aqEY`^{ z`@A{6YAt#kysA6b2k>ZtfpQ1n;GoFut@cIR_^0hs)Ae-{Wst>ZH{f{c-yhK>@4a%U z>64S2H1C_h_&km0Raq5X@-sI*z+*awSgL5&P_>KJ9jUbQa4LIo}Rz9!+%wLNDKESQy1K2lxx+fmr4C)GB-4nU@wsyp8z7L+3Ntkg2;( zXVW9Bzt0q^bz6o{+gK#ER?(b{af|#tc#1j>h6>gkWpI+^%EI!=WLr7Z73j$MP_PB*T!|#`IjB-iCAzP3DwRas7(a zGktOv$n{^evLnNzFGIcWm42;X{HcxnI_u3IUfY5{j0xg3IYIjU4(Yyv^~HT~pW9Dg zHof$8m)q??QTFNgRhbwPQ<;v17yCm|T?cyVSP2cf*`4~^NjeN1Ju6s1`RZ`N=MvZE zf8!KpiYC=WO5H6;CGIJLV&;+wOTPT&ZgiEHW{~g`iKObVs+NB5C${6zBm0%$X}d_2 zY292ktF(M6kl8zoY6C|6grl^tI)65Ds5PV*_0(z|#T>I)UD60h%cgB}YDT_svR>iz zHhd~|jkamM8x{L17F#4w>P80SZrHymBB5V0Mso+@RoE+nE-Bxyb*vnh?wZ#JVf>mi z^n{#>oL$u&mjZO{;#T9wOWA#@sPMQVblPcE&4npIgk}9c(_i!}=1YK#7J69Zy@VjH z9t(2z(T@U4{|L+X_2SoV?72MTRo(g-vU;Sl zLv7I1bdc~%TK)}gX|tY+PX%dn1q2+GX^@vSU8RY6tCt?JCtsfQ_W2E0eVq6fCdk^N zOo{2dC3#EIzy6O%qzfqHfPSL(7jv?=i(uKb2GOYZ@prvQe(r4pB)tU8`1^p%_iSfh zNC&a~`tj|!6LbcCDKr^-g{o=cw4l&lhtFt7q>^e@2QV|&a)PJRB~Zelq!4YsU>&c( z(4?rFu+hEym-O(QNqaGz%61e<`AGAYGp;8e&6;s_V0agK_|q`e@~XwE3EX<%G#!DtIad+Cd-rd zP&$&Vzh)JFO-X*gj1cC~{rg?#In*p3EXE~vtq!__T{4umTw;$)LZYTw9%J>yM{gN3 zbSl_#;-x*HillgDlaTimCR}h>hp=pR-QC*E>}FQ{Y>oE(e8pRKuA-V*Lv15ms z`>b+cP|AtUzsTfr4^ZujWw%(}()%bgQ2)KVohwLJe?2F3*RROm)JA^GGrV>xcAZ1T z%dE(l+Sah-7lp z>_~=3STgC#SdYU(JtntPRoaupHvOH`4-NB-aHD5he~nR|CZ-Kb*U(%amO$E`GfLa@ z%l&}TS5_>NH!&YW4C41=aaJ-I=lu0_>i4iCM27q<r3_Qck(W!5GqWGq<4~~)YS&(dKIN>fvNkkaU<}5tK369yDzVr_~HFuSGXnR z-F0lyfO6(DAC|{Q|8|sj;|-@6!g0xYL8`+n+H<&4Zwz8XB z*L)329>z}mU`;w(wl!6Ts(%RA<1I@w;n6`I?zl#}8lQO0H6Z_?(E&tMV=KJVe8vu{ z^eMkp28%3({hlPOc&)=1fExj9lnhUnB5X30qww?QH`XE2l!a zhFqUD@s-6_rTABI=5CtLRx7G+kHH=Ixhiq>HFs**D2F+BMQfk1KpjVS4Aaorrgk~? z)yQPU2=3@%ow2U5s)DI0?DX=MZtUUrs;F76zqGbrOR!;%$lpuV`q3)Mo@amFe(djF z{pI}ZQ_elk=||#8r7KZpw%Adw$*g*24Z+GGxM-nmYDlz4L32FwotJoS$s40h74{+f zS@Zf>AbKogCb_KbS|$Dm|2qtXHy&lvM^&9Eea6I3GcJd6TsVMkK2x9 zX0x*Ay6%z^%8kaup(d=He$Umxm$Edc{`P2wtCJAxqBnbrI3VK%~$q94pN7bgRD)R@Ba$XPX?l% ziR^z-9OaEGrij~DELY5Jn6I+Id3L$@?nWxazC!lUC5=sRxuV- z0?H@E?W~IIly2|sL5il@{^$A&{AFr)TRMNS_1>wNI(2G{6NKm|OF(9{S4cau8^#R+ ze@NzsjLTT9>9B>w)=`PI3=LAWFjQ+|Dur{JdRW)~RFM7sD~Zg>{Z~JPYA22g`B$s= zXppp65sA7&D&`@_Bw9n3QxO8Cpd>k%a~>!K(rkq5&qhcK)f1{Kq(_9xe&a%6pyrw{ zYNY`Uoym-iyx(~!GQ{EPeaC}(WfFgAtg4q0d{d@f{dVyW51vJMJGAm0lb%30D~MNb zWvuv7`v2RGr@plz$Hjlyp^IJ5J%b(y;{E7n8Z~Ul_gn>LQ@?Wt{8h9CT(0XVUu@UWdj%t{??J{{5u=`BRI-Z!duem&F}~lE<2h) z?DXvQ+UHPe3w3p_HhWAk4FUUbt1~@X5u-TJ8N+oi?ifo^rbrn8RP;eB$QzRax2Y&z z3YDym0wbiac{#qMV}#;P+X5J{bS=`sLM*sFyJKh&l8La)R4Rp0X>4Vxc$ns;hXs;C zRXEt4rknQY4?0>M^AhfQz_?W%3N`NhXD=#(@=V)JCI6}}JD$Rgo5lA4WOV9SyCJw{?1TIY6>QEx^fP*%AKTp9KZouwMaZcxBs0B%xD zDyKk*05^dWMJebLPj>$3JW=7f8TU(V=VhgBcM;jO{0Cf9z9D#W58D<4h1pg$0;^OM zktcSor)$1$9>xY$oK&RGO^jUVa9-&H1KCWr2g{NVC|No)cM9>5!?}>!%k|MW8GO?2 z&cLF4TquoH__{mp;Yh8~97tiCZc7q#DZ3Efy=SSNOVe+Kxd25!*b;Ik0Y24trxhUk zr$CHia;dk_dz`wUXSso4(QTG?%Ok;bVthc(A+V>-W&#T$49)%}f=KPZt9=~Ezi`{( zZ8x+IIrys$6*6%;IH*ZY>Ei=DZyzUa>LWB)@_!C(4Km5k55W%(NHBxSthU#;93il? zOP0!;Vj%qm^MmV6O;-7{rey}WHzVTQ7wxmp^8pS%^Ke?lCcd!F?-;mrBXmvvSShX& zI@m)RnMZJqHUO_5ZlQaGx*O3Bc!6&=CJ?VW1f;jl;1A+)F;M!{t#uqZJFq3%W{l?D zePaKhA4A*;(1^gbJ~`T9@XX~0M7T~rXt_f-!Yal4qXQsBS}$|p%w$v8Q!lcvBH2Wj zo~ZM@fnSDGd==+I+l`5L#l&;xl67PA#OA>|@%lXH7SW<1>1e2W=ly&$LttCzlNaV~ zXa0ljz2;aY|Kkq%kZNRSiq@vD(meZ|&ItUc#=kX`I{3pks>!#rqJ4|SDr@hRP z3R-|FqqpEGaX=P>i>?&-OVWm5<)(_s%}yujUB;!!u?7){h2q7Vvf-!Gx;e94Lcll7^)I z;LD_iAaxS)tQsgy?rK>*kK|A`Heci#{f}if1pr6WWRm~p%>zim)Kt99Z|S;t>!k}$ z&KIf=ElP2pj=kX>GoQZx zIrqTa=)AJ!;`OUcr8uSc2`!^J$7r`LRsAlLG<*?XwyRx2t=$&`&!tZ&&b};!|4ulrHc>AlacH_OnUWo3PM>(MC*ji-F_IeYzkc?W_8u1LgjWoS^YE?%e~?|5 z6~4{orfA+XNd2`$E{gN|A>^122;Eu7*jMj3sf7UPG9LG_% z2C1HE{hJb+VYI5xtJ%7K{m$r9S&aWB=XzRb%IeAkXF5WZDTg43K7!$F@* z*ohQ@>?6?IO9V_f&i@Cw!_@EW=IaCn?kL=U;)*Ya*zT_||uZs}FuKP{%83gCxu^7^d(Cu^{pRaHIrbt$( zNrCdSePLE;8BE|Q@Kxv7>BmVqTYxb_&jw(ofdY zny|;iN*`)RQ8*VLp0Po6VN~F(-?A(_3^uuQZmigw?k#qZGwvx}m9}Yo_V1B)Gb2ou zRuoX4pOp#UOs3CL5q4ESgfe3jUS{xIt+%LAVq{yLD?P2MkNhQ&9mAsxPi7rB=0P(e z2t7@y0*-sz0ytO_&;QY8fumSj8B)bN5vWNca$E_jS!-bAm;d=Lx|vK>@?xy#a#{h# zCF+x-6ljQncixTI z+h9V)9I`5(>7vW~P~kx5iC0&;3EMI>_69j|ci--_8(iLRz2ZpSl0mMiYoo$x_8F10 z_N!=g>M&15N&pT>C#0mNr@YG(<|(}D2`Rv|C;A~(Rn8p*`5iuD-^q9EJB%Z^61*1b zIRfM^IEa6ehHMXVc9&zTn77c}g7reuRMv8eo&mg2+HKYv0bQ-BjUoYR$JzTm4%&8)rZwH{cNyW;|JCVZ|QHC z=@4gphUO#0F$wNyDAQ8ll}ONRotpV?o!JH{jG}+B=L?^Dw?)w@$|fVP69l{=Tg(m* zBTmy*SAJEde}N=Ah$=pC;PXi7x>C>YpShm_3206J^oqHr_VV=E6?H2SQgm$@(B()Z zzJaF0p0QYE`u_LD!9#sfr}?gcRg&n+5Qv`UBw0bl>mX6%2#mM?vVR$KE8Q^OwG(r| zs6`6lK(|j9j7zViJdQ51u++;j7`K=@N_txHpDe z2Enwf>%!`3gsl(35etk@%j(0?F=K(b}H(X24*7EEI0SBA;JKn@IlOgX7xr z0gK|=$dNS_m%0UXUR5fesSZ2T1@qo~r42uQ_{d6ph#~myqYv-kd)3~QjR%Ocu+A%p zWQ+$Y-}i1G_Cc(Ju&vu_T*5z)z1%v~itoLRm4kcxp*wKq@2^a#?6LG1V_Z#>W@a&l zPq5xF{&8Q)sY5M`?{BOe+TTZ8M^d+@Vdgn~h}4X)ihwUCPPce=H>eu+e52Nv*HP#T z${A13ynhtp?Jxxy62f4m5$BM+ciBj`nK=kb zS>(xkcj8|Ych+=@63)rA)>L>Nk-f3Fw~Lb>E_kb_H4sE$ul63Ak@vK%T*qA+Dr~I< zyLXGpoYE$~kjee%Mf@VueJOWP%TDdkOOAOxRVh&Q$a+&#=CQ7rkO7IDilesCvDEm& z_Zh|4b#9(oZRjTz1d!cujVOitR<8aGvRpAATpKKWY+kS17F#WAEHO20eZID=4^2>) zyN*>4)G%_80uZN*lqos;CN zPBE`R@Z(bBt6(pkyXp6|jjWZFKebEIXnEcbiPg|G9pm4r(N|27g86Cn>@?nV#2@_& zM`Qd!?%Y0)TPU>{yqKYaRdQA@r!6JO&~A6oZWDEBe7A!AbsG{QTv*}L>dxDV?a_8l zgyx#8bWr2kDpm1DOR~Vs6JX_&)&c9>5=2q7l50od0SyTMPGr4e$v&dsY8-C6#+ivv zGRnALIj8q~G}-Wne$f%og{M<}#ydpm>#$NxEs(l~&hDd43+EI&>)cng&tiNH9Q+1Q z2;BE#(aZg9s04v;yTmMkW+kB{cJnO-;ERcs0vjX8%MixGN(>M@Vj~!MJiq#2``0xW z7DV0es~!kggwPYz>7d5qS4nNUe?wQ#la9@ZxCr?&`KiYRXevRagG)7Kq^*sj{gh7b zH+OP=KdIs)R-X4ByxBgsM}Z%>u~*(och#?-q}$8WY)u3^NKD1VxWHm-$N8!}jLmvT z(i`~D4@|RfT(H zHc21T20I!8Bzc3mL*(h6gv93YJ|pLZmgMr%UtqwTu^Lg&c5iw(+Ys2|<`V-zJBw#N zg4W|^-!}3=EKD}a@{d+SOK=6RZ!7?)9bEW)4DGZ&1+tv_Zu@0pe4P4ao17JCEwyBu z{3X1t{o`waaBq&GC}NJnqSBilab@G93C7RmJn0pf#msLQhN|0lg zNw^&reyn$=a;wgdws)!Xk;2shRsd1=)FO(L*Z3dR(VAkx^T3aKTgF=bPx}Gwx-^ZC zzm_TXYDHYWhHs0euSZ)kSn*4{HPe@}M7-v2r&Xe!*&5y$Q2hfv@ z_?Q}V%)Ytjj`XJs$;@hf5}tP6FVfW{U6rKX&m}6|Z~N4Cu|K)~W)2$8U)ARY3uWTF z5x+%tpAc59i14#*-uw>4rNxJKGKtd3ERcxQ^Pf0r5p{uC`~Ils16JeE;~AVB%~uy8 zKN-K&j}LY7uCt;|!Vk}+w4Yank;I@;$7=#DN@HvGpMwK2$pt6hU20<&(`rA_}uQ+Ylx9&M5pWkWwlRAB>A* zwU{dmgJT|69&2)L#+!xW?5qU>(j#x`bH>2MJK#`}`1XI_-r+z1e;?w&VnIAo1otaC zZ6@_Vs?Ba2{^Q-Vo*bj`b=!*?i+|{*3-|ep3~o2g!n*~)JRJIyh?)6%)NM$sSY_?r zn2F2U|s3g9RXL<)|(@aoR<+fAb zP5F4>Z}W8`!TAs>@Pv@cJd%N~4|4xo4RM0-odA~kn18NB7t+x{<(yu}6mQXwpO}1M zz&9t=Kcv2W4{jVO?1rSuzg?F^H0@gaTmy-AXGt1*&LSvs8ALEBvsT_-BqQ$Wv@*Yt zjA=0)WPFzEveyG*=KjUK7=-8agTYO_AYKM+=wDpVAvvkq@#2`7;eqZ#QKXgg?^4V^ zX3+Louz#xpD4M+|jdFGhn)K*SmD(?Ad10#iUD}}=&;dk$z8Zuz;cq%;Q;GW>uvnk@k$d3%TE#x`_f_NPqM}Rpfg72COrl1CQF} z3qsRjuZqDCOsv?Hw+4Sm)z1kV(pd*vw;mj5E_yOp6MPbB(nk3({J-5 zDA3)@(!jWKi|sQw!a836qloB_09gq~fDY!{sb~k}WGM&a)c@}f5Ax-T^mnw(4F)%T zs+70&|G%d;2l@YfkzD+;{}wki^68mx%^&@JW^YUzvl@e6IwjR`jZjfi4KNpnc-_4| zI2@S^+FW&>hVybG9E4Be*iWwzq;BS?{EYRHF#3+6nIW|D$gcx{9jUw!(!mdqVRQ(3 z!PZ%A2=h)Cy4z~+i5?g9@Sf{4#yS}e7R!qi^G#oy*HMJV&6rSA#SqD zmyaup?<)Unf!o{;NyfE=G!Ld3LC$B{6Kn*IAVV)U>%l^Y01wYWxxdBh+T8U&{ZW6W zqae22{qA&K+Ruv}(Nqsi+XmSm8%veUGQC@N!2 z{<<QV7+eNHR`P$cZA+Xcg*6M*pTCIE~qGkcLW}=$l>|uwWYxi-0xghzA_zy zG&>oCvnU*}U)nm1V?e^m=c>+c_z6kunEkn(h2@;QZD~|ao#!=nGiCr+`MlaF6}P%rr}&_@{hoyayafHeyFsJffe+Q^6CnHn zxIQG@L-5;3sFVd0m?B3M{2Pd?dcWh&_!k6NnnD5xO!>CsvkNWz8s#btA%%^@Z9

(CP=AM(12^kybX{Irhhc<<%X%C=SZ=Lb@@u>bAsLR_ zkwUKHB5-ftG)%;pv)FRy*W*Y64zZkcGD5Pr2r8t{D+0Sw&a{T%BJm$mV1;Aw_!O9= zY&svo9vR)vkQ@gg9%8xq{Kisw06utQed)3FQjvWtXZBOVwik*gO$&|3X4kVs>p6P{ z$xd1hQlv!-aLBl?^r~2#9@KYpQlNFZ$4)?InZi9hPeS#U*`goo6rCC2;4Tk3}@!<8z?_O>k-%0 z25t&80_)+7Q2vu*-S)$BNl|*UghOqkX4Qfq7!qAj5{pe%(%0PT3ecQ>qAbjdj}ZE) zW)%mtn&+pEwf~SYN&+J|=SdYkA!ml*m{TWIoi7lHFrslmQOvnsySW3#ZJ`9zpX3(+ zW#aDWf_=82)1(QD_-RD$Sg7CSt^bV~73%d63dec`0c`!{xEk>fJc<*X$ll z6PXN4e|6^AgBS?FB+nZChIPL1Or#4KzeU`jx@!OmnbKJa&>`T3oG2C^Nr=G5>_MJ$ zeoDDkFk`Ql*qowLn1BKx;+|XwS1ZgXZ{ubXxUoa`3}Vkc3qE1wBH$p{4frS1_DZ&j zQqfbMqISm}xM)2fcjdjj`|@xS$YlupIj%-18%Eb&%G|U7-7&Lj8i%so*#*Xl*E`nZ86sclZs^lUdA zccm{UyDkOwT&(g?+=K%-Heq_WmVSqxo!QB-6{0YMDuUiP&;xOa5g?$il4()^T(#oW zu5b}p5@&L3KR@w}T0Y?1*)eYm==o;lk66aZJApCz#He_IW2fxTEuJ)r5p+G_Fv<>b z=-G=hDB?tSya(&H4``DXnRq@!Hyxx8@EGZ_Hz$1p0p?M=2dYrb{aRIiUWkRJ!AL{C zb2_#oGM{rj7AF-X#@9VZF;%(!dLoJ-N^O6 z*|{+6E+f82;Q55~Ma_Zyf<&Pjp&Vm#pI^-Q{56JE>znh;gCbxat>6ZGa}xIr8T_2$ z4RsRinT`D6u5z%j`S#Uw+?<r2u3s8b6RSN?~L~AQX34Tb7T-~%q__|V(VGoRN3QQvOUL0P&6w#X@yWjR9 zJs8n~A9667%U?fpfpJ?Q=;_hGAcyDR-#4D4q52UA)HDP2-~h64;f0N=9f89y23hNO zKy`8^Fz)-Uec+qzu*dtq4x>y;Y(lD8GWm89!@iR=yYNuXMG+;y7Q*at;vLjxm+M@t zacy^*G=*BwS2F&SGwg=}yJ?eq1 zZ}BK|F({*&*)q$MFghMn&y~{IyINx=beXsIL!a&E}eWRnge@F@a!)%A7| zSep2{jxyqNpw*#0CwM zwgO1v^AOw`9z!OiF7G^z5|kvaf|!gZ<`6-T$^fLmP2bl9`@|KtoypMNC72i=KAVR& zod(}a(07#Im0|kHp5I?dXp_{KMjMmP=ze@)AU#;G(`E^aKu}coo9yO#;1}P`WCC_5 zBjG_Ce}@pk!6lyAN*mbj9ull%V5f>kVpMTe&Bo{rggiGAM?Seuh_5ZHw^DI>tJSA1 z$L-@XB`MvH7DxfwpW5-Tzie2F#vCj_1=56|SIonMg>#*aGL-58`UgVU=3;4d-O;gzP;+VLXzg&1s#B)z#cBmac@xaj@Det-uTfg|8 zv}=FTs}ChdO6>^uITC!J=qjstlHnaK}w&4v+cz1vG$|u7mmTxCdhL~m^ z(<0MOflitLFAVvAhfp7c*(qoVcW07Y=D3PJ8=Ue(!2BqSknXV*T_vm3MA<7x#{Pqz z1ltHS@a(6!-!$$JBl5C1gULMn@vN~>0g+^nZcP+&G^GKl6*&S*QqE4H>Z7xqRY>f6Z~xqsdFsV$@RmsG{vvXK?;z%oJ}_|_kTV8ii!vm!`D2JD zJw36iyCC!J(U>)yvPvY>%yo#{V;@RQYV&6a_e*<8+gNY1g*H0Ygbm@L+O5~+G)Kd> zN#PsiU=bR~pM&4*!Ew&fRY+MIHxmcNx#T;O9X;%4o~Kf*Zt8yUl@Ky6WR3Txlo5=zy0($vai zw)-_iOC{?;k~$}=*f*qeXPn;^JWyKdK{EqPL9R82bos?Tbv^UdBBaZ-MgPT>0&wgX zs@OwhJ00srPOk9VxG|%DIyxZ(BNVVm?u>s9YV}wQ;y0QHB&!9({>OKMn9)*PSig$l zslB|WAhRJ{%+6`q$9(rUXx3lot@__;{?Gv_s*G2azMgqamgeXo{y-tDRiugdjht{S z8zczCxKeL36E|CAe_I&r^qZV=V4?o>ym;r`MAw9Uq07|(idMFOzOghJ`Eq;V+4Pdm zuw)Nv7_+?BkeS)-~9@_?(!w2epoQ_AIM; z;%?sAyVIeAdnKU9PO@T<^ou2L-Ri--=_JHE7bvE){VK~N|I(y$zvYEPF7x;IuKq14 z<6niM)%aK8C64zj5SL5xZ4D#2^11c?39qo3%26hMd4=iEe*P0))~#8T-VT|(qCyG( zNLaK~51i%Z-B(8t9-m3BIe{`b%k>908-czpD)XmeRgXO>WSiWk@391=; z5I;X3s1%6}IemNA4stazzN4`R>kXGxtPAk#uL4E3?5me|G+gnZNJHmaXD2Z+SB~tT z*A_^|-2k~PPLiVTGy7P;-Zn^!33=+aJLgrWe;}b@}XN$}UN< zh+_{#b?>@nGB(u1C`IX*My#>Eus>dXJ%p>G4*#0#NvH)usr|Pv{v+=39GE{)v~luZvgr(>&H?iNRlPDiHi&M38!W~qma1Cr_Y8Vf zFTWK?*B3AitOowwL`|JdqW@JSTJUiP@0i{JU}BMhcgYtsS&3>nnrX#`>n!4fxZ7dz z#6c1#Rss`8h%7IQKMrq)w(GM0555~}JH6Z463o?`sUL;3Hft{7prmuj4gi7~G_Z7N z{kICSf1HT87GKPP^!~~P#YxJ9-nUmrOECMpN*^ zDRJRJ_6p>(i+2F!F3K&6V~xE!=FQc07amKV~T6$C$d49=PU@o|*Nb*uI1y2n-p+;L$9jc4uhF=nv>P?M1 zze@KgaAD8HF=oyFS=nGkyLa4-+Vkpu;_5Z=dt;IG6lpyr^ro>MyA+|C$k=sA2|`-6 zlaIiQkt44B7i+E#K)l?Ucqv|>-(!V3Ipo#?J)V<2R$r1rDFXbd(N+HK&i_N(TSdhY zbz7ql+!KNYX)F-j-Ge*93GVLhg%h-KcWE3F+zBoT+PDUHcfWk+od4y%-0`0=?ihPi zubz9?s(RSfRkK#_IhUS_DJOoIV0Jh@c)TmAJ#tl=L|*u@bP+2EI!}HZR7{SK@T-XwZl{iD;Ol__K%r(RLV!DTxFz zV~v7EVmfpM-HyMa>5iVF_=siV8SjOhK+A8E1KE4?U=7_Y+-OzxhvM|_gu%6v0I3UU z&vZZN=3I4d?yr3%;H`qh6^ZctPq=^Vn>O2s&%3yT*xzfrkM~vcIOP7s{960N6Y#N( zs-h}3lXm=($yKe3V?8IyaQ>Re4bQHrRjuEd3I=sKRrG;N<)}l%Io2u_yD%e1RB@XZ zbE~5Aem9fDW(_Zp&cs1f&hm#W)7(OG<8ks7sDkWySB*;!Adsgl3^n9lf6S*#hGInY zF6reAzIH9$qEk;)eqp4^Z#W_FG?}UjbJR%TG(m1)czh?tKavK!qiVQBN5{m|w7I|-ZXrh3lda6P=|pDvV}5 zk&30L^k*pnrCMuN%HMtT*mmDMW0N}{85;I5QnCe{X6B!nW-t8I+dnTLn2vUyl`FMg zYyt6j()ytHXBSaI#-|2Q3~!L6-anUF&25pNzV8=P=U%^hbZ=93?^m!*P&r8hX5#8P%Uvuy-vsAm$OLtb{9rW1##$pW^TPE^f3)Ni z_|(KR`k*jdjvw@euR!b{j$dQcjvK$s(XFAt7|e&L@_|1 zc`jayfP3I@17SUjd_3mGyxi%2&a_X?dsecOEh;Ie4Hh@={0#mn$QV-_+_!kV=K*MH zkTjg6OGWnv=6INE zdzT`yaGl`R=FN4ta|d<&a<;TzW&r*wrzv4`5{o^EnQZ#64C*00phD2^&jm1L@P8!6 z?ApH`2vmorNp<|v1jT9vu*A3jp>q3r&3*9-$Fx4%&W$Ul-L=O^>vhzQwe(RuiSIE1 znz8vovhBVdmqNT~Qx3Uzh_SMNzV>4qmuT@#d~!IA><2Ec`X5Ow4a--WGnsam~!4-`Io?(ZGbYnu6Bcf)zLEI5)<9c{gZ%Ebjm@&_-Od6 z%flbfe`(ZL#30c?gV#$w5Df%HFgScZV;fK)*PHoU=<4GIE&U+s6_QSU1p^{Qz^W<` zNc2Vovq*SR7q9<9v2HZMpX*(v`BM+-F?rqnI+seW453}{6!B9D>!m7y)BWiE4*W$h zl)&prhHugXYh&l$cJt03EBAS(Og8B@>ftO+%quB__uqVK?1jHF7AQAIV6pmk!3G#w z5@R5VGSgK+T&lR8gkGmYRM_BMdt7HzvRWXKN;%CkS}qm>UR>IKIb9{gOzt zNyT|FU((${~MJ4jVDdhoX z>m69wkbWaLX9kk3$8vX2B4UITcQyda2_}o0l37N@Aks*_LGzNA7uR1I$;KtTqc-#> zXc8UnHGA6zd!|{w7m(~)@M>MZ9BhgGh$%yIx6{3bo~OXRCvaOc?`Deo zo;B8(Sz`v_(ZP&}X6@#}wRyW?BT}-B^MEQknI~rb*QjFvCY*l%n18tBT*OP8xdU6dIZ8G>ma&qBR0S-y2yk^~V?NWJFmZYx z_zPImkDpfMbYblJ{ob%wK9Bnqid$W@bIWvYQbBcBmkuheqq2Z5yH5aMiAiWbFF^y*D~q|2`3)%?d;C(nba7~ zwm_zk%3l28rHiEm=OvE=zOP$ZQeV+7?>T;AJ$%7E)_8Dl!v}xq5MuU-QjKP;>E708 z^>Bq?AF`J6L7M=d!Gt*JXxtIC?V%=zc358PySaR_m14_>SMgu1pzH>+@w%1JlA*HJMQ&>-ScWGBx0~kh-rPl2>IBJ zG4bst>-dk9l@MNCA)((%0zdz&P5htWoeE59Hx@xi>I4?S7ZT$xX|frES2$tiwVVG_ z$>RJUf7;q6ZZd)d1k{v4Vq~APH_Nc#)JZA=7hu?--vl!0XbkGCL%1{wwAd2M`H>B+Pve{r@ryQ-dR_kB=#=hw>xYsz zZ2dqLd3|!^7PqWGV)S4iHGLA*>QdylVX>7q--auKL#^zhG?!dK=j8Xfde`eW0H~GE z7m#mDY_wQ-8{WCaHZ1lFzG77}?x+3rf+xDZA=(`4uX64WMGOWlONOmMqn2eMRy;kN zGTPs{R$W86ei?S~-+7MIFj!YPJ9U`Xk(4R>6yd5m3-}&A#*V zF#W@zQoa>qA{WJp*3_jAp8!QSm5D z@ZYMcNgxR_cZ6t3S71wd9sb$cd|TUeKBHpC4A4=ZC#LFCQ-U$@EEx6Lj6ntdt_`U} zgJSq)q=O5dx_40*i;NukfX}W+{)8KYGn+fvoRh%xphEOVSslDj3qEl-1S5rA!+(4E zN}4U=!4+uAQPv<$R_u)zNm5u@aAcd*$Km_5fzPeNMBr74K1tv1Z*hxL21A>4Ks_<2 zCm`nYk(<!*u(4A$6?PV9v{}Jo{ z=Dec=i@w95*2iv_{{vS4jZ+n;K+ZQu0o}QN30hXL2RjCeiO?e~b2<0CA<{>W^r*o@ z@3=#v5hC!+U%E5h118)hB=<(x^LhFc;nnDS94rS59Z>FSw15Cl9;I{H5p1o)!Wl5X;YAJkQjb?&M9NG(3la3*K-7fl_=4 zayQ8BsdK{bLWlTLOKA!GKc=YhR71aL#g2dAl~wk0gX(Ogr3%s!Py(v4PJ*o9lZf#b zusp0ODftyY`kfNu(zT;KX!KLW+!#5~AW!Z28En-g-EHH`_ZofP9N39tb2M3*n7ieP zFvgq|%Wi{LK?dR{YxBz)G5hz+peJ!YnHI!6$kcOq0+`Mh_4{LF*4XFov9(xbzt4{u zj?Lwk4$deZWQJZ?06(Ai`yutKRJ-&@RDM5vW==RP;uBLN0Zl8xQtD&d z`7!*w?iNZnsvzjn1RKqXihfebKLDE(md>LD);Eh z$?;Er_oLTg-4=%0L2#eGdzepz*dNUSiOa3bb7aKYKNF~6=UwgG%T+YG zF%`g@&d+keLS3*yevFrfI5x8UPCUoB5O~jxh7M<8HY*C+wA+p~7>B#g_^rI>RVjC% zA+X`OY_Ejl3=n50y1Y~|kBwBD3A7S43FCsBVs|EAqIyt$ZO=aoe5)BiRz0{1C~#UC zRJsg%kKgnpf*!hR0ed9y?^b7by}ObP-+N8kfT-|7b$sRVo{?q4>o52=y`tSgT`)&# zUrpfYw5H{~<|_`CEOD&d$KvC=nNS{$Yu+kdfyTuW9N^N3AoV84;qpovgIhGh%Q6r- z>ge>YIT2KmoDzP)reyWQV}fmW&ujk$vrJZ+sPoegm5zfT&D|_Lvk@U8i~{U1zZVV6n%xy0C$Y>eOp?3Ych{DebpQv$-}zy zC(rtbA5y;B_ntpn^$kvsjWqI6{V}i>IKt%h%?GyXaTz(I`Le<}Bhfr! zf(w}I-cj`G*#AX1?yXf0X($NeWNS9jG+ONx3IIl#XMZM1RGBeYeO=kZhR$C1x)2ME zgNy9$Lom<|Bvbc%)}Hc6b2?2AD9OP}Zj6c?D+4%?p8Eh4-E~?f|KEwc813gIzv(> ztcv%i&B_5zM5oX{t3}QooS%B|EI4Uvp(viE7Ho)O^F3L2D!H?B|5z?2s+-h^mPB<; zi-qinYW+^sr{$W4Jy!Qyp}MjgRot}zf~T~cUk2B**>_LNFdxQLdkL;mtm3+BogZ?n z>j=^-tEcBb5%HA72PyY354Av@RR(-#sM#A|FMd3Uizz6<$aRG_<3vj#<#}q!wk+me z5YStvRhJm-kblAEM4N#!U&iHJ#?G{O-7Ss}QNj$#f|#;{!`rsr7`Cg3j=eA-u1cTu z5$Oqc-O95x0N&pS6`Hz)F*!wOx_B3E`JKRyJXW^!j3;327KT-oK81jLM=QaZSuGx~g(XiAX2v>%*QuoN&NY zgaZ!Gtqp0N#FEW9DW#rUQ;q!(bOlw!gKyV8M%U9E((*Z0DF`Me$h0sDT+__v;!&Hwc3(t%pk1f2KV9C5&=d_J#h zkW_L2qXq#A}QR zM_E_IdU)G>M&d%eof|6nEtwn4Kyk2UAlhf<4m%un)h+SxkHXI}UZ`1`RJRC=X$lE{ zKRD`t1p{wcMs)E8#`%2*Oyd40Atn<-*qE?0o4zdJ)Sv)|kSIwpm|uY;bt=dxSscTc zY>{hf&{AAz@sUNBQ5jBE`P5)M)G)JKgOHQu<29nTTM-u0H7MghAKP394}csgOXuR< z6SV$&5f)76SP2%#elS{5_?*+{%2}W^kX9ta^PzcVD*RJBSngrs{9x%JeCgnotY-vF z=!uss#W^MM@NL4L@~@oMy)xW*K^06>ws(^hAi7I0mu4y$qK`s;#HuHCOu- z0G>|xdI$fNknm4f)zkalH~T7H)|6a1A*D+;-Ch3*E}!At{@uw8=Q>Y=srrd1^$l&v z-+Xmv6GMjFt5{bXS>gQA2XweVPXSn)0|;`I23L!>PU&Z^eY3(GKRGt25V)9>$V)fG zqxalNwFu7>C`f7;P4g1&^yLDIY08dQ4tN z>2SgWITm!?Yzm}vP2j@^kMnD|OqAcbyXoa^;*S%$0!_HY)=!}>>tmOZGkV4|Cp{-u z*A7jCK!t(i+!~=TaKxyEwd|$;t5t5A8+;f$BP>1#b|^#h$kD7k!A2nU`H(3A&*wje zbcFrQBLV`x#SpFtwGJn=z0V&_K2s0kpJ3PUh{%pz+ATV8BGsK#5RPd& zNQ3F{Z>1+}mL<2qRFNGub5w9DcgWMwJCpD1HVAq2+)9=7Djh-GDZF(`gRH)#=Me12 zvm>J@O7Fv+zVvdRr-0PEyO|liR>M^kd|Vkn+c8o!F(D7vobpk49cNQ->L}^X3uWR9 zw|}ho3Q+*(_{;|ss4%=ssk<`lfR7B*_<4wr;{lv9t^_k{ZHqrM&n z^M&v%;`&ExO45cz*^0PKe-i3Zev5lKL|WVgSnpvxCM1t}ilS6x@n>Ndo`iRLfj2eb zz#d#1E7-v+Wr@_{xG@lLNmzFONKh|Ckzr}L2;5B4lsU20(ELjivM#Mn+Tgtq^EGS& zH-B6_narNUv zA{v8?fB9iujJ@mOe$XAy&29?$hSTqA4y#i7^~#q&rp4+Re)YOa+HZ(iEvke|mvQ0m zCSd)YI|zXPxbd7k9qyx2H+|(gG-CcNJ1L+l`FLK;Q$2_cwgZxQ`vEegx)-qW|XMo5L4ONiqBeVA2f|5V%}%-pjs4lSZ^Dx zk*W8oYiUu2e7w+?=qre9My0nEH$!V_I5l0X>x%RIbe2Pgd|;8~@?^0&57G>#W4z;m&?n1F)3LZj1I5Yoi zPsIQDXEE++}ex`MXMo6pno=!>o+ z<5tjuUW}9rdDmLHowgAv|Mk_bS1qt;f}*M6W{qCVKm7G{V)DLJhzTdSJz8rP_u{2? zq;xZ~XOJX4lFAN1LCGLbajBe({D<~eR?@*AM@Tk`o-P`mS73`Gx14m~)(0mAZ?43F zz?Jkm+&^&c(1e{}DE#X0$POH8J4`OtUye4j{+SPZ$OO)f;A0U!k{|v&h+hGe4+b6x zf}AN$>Q3gN7wh|UmXCRt=OD!)1m$@5=AH`;#xZZtzDP5F@dA_kAdmNEQnLiq~( z5NPn+?u;=<8bj(ky5&KhJ)6zIuuidQkG(exAWzP0x#unZqyM)y$SF z)bNT0XYE^TA{<1e<01K1ytvo;3?@?^8qN&m5u4y#4s<}sB{=#S&)K>@V zO$X_ z96?uO)%QoICa{X?fN^%~T%(4il};<}ZznD@x$geoy($1uJoC3wqr+f>WY^RENxnSe2$0pS~34C*jN}k6w&cX2T`OUtgMC2MU zsfl#sEc{m?Ot*0W8c7bW-)ZSd_pMY^+vaxJh)Vm{EA41A5-#{!bU?pS1yG*BwzBAp z8ql)n9=muf)s5fgOI(vw9ZWLrM~>G{7wYo(vXI!?n;4wT2VQ-co68ShE)(??vJX~N z8_0S0UB5hh^mti_I)~@wvpy*)DqHNX#e*2?E?oDKebzWIsAMbQ9g?%O#>(UWnARN^ z9y~2ow@v9Qzs56glz-=!%z~8Z-!~s86u?fG%FN~T6YM{#hBfz%`hLRSc`iPr zvNmu8bX3??&n1#fyBl!A%=+$;%+s-psciH--@8-;5qagUT*djx-$M>5Gj>K+ixm9} zI0GAt)nA6{qiVT zkIv0|b~g9OR#}eE<83GXqPKIz9!ig=32xlRNSK1Lt}TUq<07ufI}T2f9nt$f1p7Um zz{2&Ul~=7b#>ACuy);GK6r@lKqu{(Adp3&@i0 zSf}4;VuJsraGxXDVSxBux@u>z+)4k%dN}qSr!0ASNVAmE<{h7Gj4cuJTkia-ArxI& z=~o9VN_4BRoH$L^mW6Q)vX7m6ebM0-tb{wXnY)hRmgLc^%XdNJD~9|L-RhhpgGD}s zKePM(m3v>@tWW>2`;4lzaCxffI7>P{`|7xa+X$u+FpKi@9d&`OZZZmgSM9is z_@K0)L3)7SYV>7%Vm7oe#_$G~2WM%PkGLGbaVDJ|nB%w6Idm*l@f@%DyK7iHnW|9T zKpDbi{k|MWku>2=uGm-Pkpo=;U6k~AAM*$Gz|(Fp;ZHxpQ0f6P(*FFbO_N6sRE6j( zR!o^_MRBhR`-<0aJ=wrU3!Vgm=O16II0Fwy(Lb|_f9Ud7v7LE-kh#N^{ANN;9+7_o zoIhWp{Uze&lO?xHANWR!iE!b-7F2IW$U#wck5qk5_}FTU~G$|8XLVgpE%`r`= z6Zv-i9nOUa4<)``fN2rd5;70!En5zTv}qdn)PO9KA5TrlJ@;K8&52gr{aq`N5%d-r zQY2?l#@`IqaS%8=H`nqUp&+)B_mqM0sy_nf`^v=7n!uMR zZ>I_WMUh0d*)L0JNQ-oP4FZ6%DE-v@vqd$ck#*l(8%kNI&#HeBl9VK{4TnF)jHOAI>zLT2{dz%A+SHFH^ zH~7J%>#gu;6+plUDWxr4+J+GsLU{l4)sB=weV{ji!;j(TXF!1zjX{QANU<=4%6x5* zH|wXk{2TJ&Kk54ZlZo|h)c-f6yc1l!$fJe*pTmXhn*>tjPYjOJ8%2D%JzrAPDky$~ zE&l^+KWG_7%v$?B5Gc9mNR#$j0Vf$#gO1KX!*A@W&aQGhjxH3r`u`las@CV>k-j`b z*OrW7a_a4D-cS+jDwlR?(qI`l&iYX()IpK|E8hG@oB!YB z`*dK`l;sts_$foaX-a}11&MhH^}o6OLdpTzdx_qQ*VmTRs)&$ZsEY9-WBxyN%t{yE zeL7opj}7qBBl#Vax~56sllo7A01cRRZ6(p2y7R~4w>?+~TS-uMpP&#W*P%GMSs z@wCl)*>zcPnu}V;M$dkEWwFx#*o&aW*WsQwRi=)vX}EiJfZ!%mqM7aXig)Rj9Xock zv|g(?$Xq@+*xU+LUbt5^`CbydE1XSubC}{nNM8(9#Fic86Z9vA+WZKFCIM4nN7^Cq zoAvn!@V6u-jLC1-3hpQ#YbI)ms(^<>am%Tp;>@)o3EhFo+_PDB`9pU1e(JiSUXi+v z%!h0-6eKE88&>d|V`7`fM3t>Y^~#nT128Mm%< z4VOIhGX~4t5kzwSVBU|3a{?tlMaIgel`ZSv{#xt!z-BCn%eyi*4&6nglW{In<+(P- z0n^twYJ^&|)of2IiL>5g7gns4i688{BvES)-su~(zw`Hx0UZhjL)4A7v@b`lO^FS6 zr=P*WEM-Y;pKBsjJ7%ZbsD0u*OG-W$R2E6DB`xAb(BRMc38DT|i~`Dw6b)+Xr<(;8 z7TOBJ1!~FhzwG#KN z;>Vg16MCNKoS7Sh-B36+YoXiCRNP-37yU#yIALWrD;#phojEtU+F0)8)>XetUCJQ1 z72k+YaE9(&{N17!n=&?38`NM=>dQ4&jBCSct8{hobiS~Za3%r@`S^6*S)f~Z$AB!^ zWI7XOH7KWs<3ZkF2{%EBadDMmVx~-*(}N!oa$i~eYAtIG zhITMKcym(4S;*bv7ByC6wWf`E%E=9+QDS&Ck!MaA~T^CI#g~ z_*>ow`nve_Ck`@U&a@S`&Z1RosiqA7V>~O+Tmg0HqyUP$7MQQDq)Q@b4V(z288d6u zTf?Bwk;5`lblI}-N2fN~#+xrJ@v7=n%F1fZuoZla_)Wyca=hx&oY@Z_d2#2k<&Qgv znT&J4XVD$BJS;b6-OKT<9F)kWu)kI-hR!MVTNfXyLAS4}6?J(3jC_astI6WIJPf#~ zyFKK&yZ}s!aGVA`iU)AnTvgMAc&-N{ic7Kngc`2i(h8sIG+QCiwHrU{%MtDU5yix@ zy=fRe&HzP>JXN^=g#BVAo-bxowAhE!L39HiL5n6$Crvo};eP?&Y%ws)mTxK&?On?=N@Fel$Jj~!bGEl|zQ7{d}DQ^`%)5%_h|Q(gtRuK10?f#V6*;gfpk}C?l=A zj6VA^wXk_hN1L6eDi$h_J~C!Vz{`kxXfJR;tF7jfcmQ|8A&?j;=gz_8vY4sDe5~kl zS^cg1Zy7^?@)gfYLX(t@x}k@nrdx(gtyW2iQy_FF#PEuL20am0G4rx}67YzY$l!Rs?g-%)oIuAHeG&jYg{4=H2QZWaYF#m$Tyd-5!r>;k^8{Ns%td6Nr*f za!WQEB;Azj1Dy|ozN*nIFPX^Z4eh^lT1tDsWIVoh#W-hRiMhKAL_i(Cw+)p6+}yfc zO~_FqtG{QVr->K+Dp~k6z@)Xy(3thVTg8*@X-FHJYotY`>emawY<=sCLCcbjBO8(| zxg%y@e@`$z4aupRb%VaJufnprj=r;e7UYI~oXVPuN)e&Fn#KB`+Iz1Rs}|V%e{JHl zvt>M2t*Um>E4m%HkfEZT1g3JjKcKpv#k_Xw6$d8N7Ii2A~ zDm7V;V{PO4$CCIHiCK-1azS*VaayjBWL7C9{9}eU%lwZ(ciE_uuz@u7sj{M3|C@Z9 ztOaSwqUW|Enu=0?LZRys!VLVO)uiZ|TrycmJVG2%+J#4~!Qlc?HNxx^tB z{qboUVO6s%9U4-2M=&G5{E;VyX@FAmip=au+;_T4My_nuoVaRxqQ;?P#Hc8CV(H{jp5RJ&WL!VKOt9~@pud#DI2&L zKONRp+=bb2HMn?+h*dtC)>@_s2~N(}wR6z3px^dgW)`0@PIk*VpLEW_Gkg~A6IL`c zKT8OGSjWnYq_}&h_Jzk)`TmxvS#nM`Cl~P|9+ptC3)~BN=+uM{#(m6w~m#{^Uv7-m0oa-Rpv$3jm7>vckvqj z5U_dAWU=4OA=rP)_AGVj8FJW^o&mgass8+nGV_=CwQFozzxNd|kDRGNO51lRs2Mc< zt5ynx?*C;k7w*2wcu~6K`ZKBaiTU+q?eECn^#|^>2aHUsCTICwR~Q2e>!HT)*#~Pz z-pbi;>(;;)IIx0E3V{!|X$KZhb7{^x>p5u?+Xs(m~Fa*eG|8f!kKf}kb*YB~ExSGzBf^6B4iaaOXuMqEeKyHMmU#5#yC zPn{|$`vIZbCI2}mXb@rN9g-)w|sB*>TtU&IYbyKF}?PijLWSjMmWwpx1PT9 z?~o5_218xR zb2@3%j7~pu1_WWOF2maT!UcSCoGJ9pKH?9tCSy{4D(K9CoZy*Qi_0tA<>WHMAGa7Y z|KZS!)DEJJP}Z%HUT5H=RUJ@kupQ0QZ9Od6I(>izf)J_@A=steyEJ3fC!Z`vGK(TU z^JW9oH4NjQH5s6JcG0_jO9+e3)P8Z)#c>v20<{bKq!MWT?RzQJ4GBNTo6dA!{j-e{ zNs4On6Jmsq8}LVzJ23Iy&04gHkZ86chMmqhE_8pBxAn>(4c2A{2M5$^kh>h)6Bb6w z`|Q2|<=-Z+U1?yu$*bhYFJsE2=Mpk8xkz-u&)9z1{5zZcu%)-ju0=XxAvCw@-<` zR`Qsrq|Cie&d80$uEn+Zhs4^a1*)gX6@SG8xLZPR|LJ9z>@fbYYCd3Bgf-e~9PmHc zhd9D@;3w%X7xA_hoUCwGkf6nS!ceF?JnoyG|q*@)Mm)Y)8!zA~KqLi6l`IzvhR(wc$Mq zXeTBOuf#}0EUO(M1v7C(Wkg8=st=rPJO(BOdKkaXov7GRk&%-~@}>9hbU3>`MBf!Q z;cF5OPS>FP3*jTNvG8`3e`c4XtQ(8Tv}}llB0%u?gr5HzRo1f$VndKt2$nil+iHJ% zdmkgBx@=5HPO~?h!1jMINo0%J+)C#Hn7t@#m7Ma9(&*hMllmugQmTE#daUKDBGV&< zb<~S2At`bUh=v73hp}q3P@0LS#v0bqYS}4x<072$%qlkdUg^3_Q<@bZ?}!qQhMz+! zah9dENE|U=4pzxMIua$8#m#JTvjYp>bmvHJ|B)dIr_4?DGxzIOI`y~0rhy?~fTj%- zx+fSFBxMbTDJQq_#-JmU6(V{irG6gD3{%b|($hUuj2x8zM30-NdG5_ot7IguEq|O% zt32_2z$f}u-_MY;Tz7I%eC-!g%g@r`oMmev9NU*8=SjlO1pUY{IlC0ABbuyHR0=s8 z9yOQrlsIjoTeM>HvDO4u?G#!7S}y;*9{fQC&t_5`Y1;bSyo^eolT*$heIeGH`8HQl12{_CLiZ7 zUp&~r>SiIYp{xL);Q_sMX9!3Q7cy9p?tVS30Q(ywqa=Ni4ca+bGc3Hgik9YG zO3do_HWk=Gj0_VJQD3=WX|u|782n&WQx<~ckNMN^>d91n8ehYg{AFy|^iawp;Se&{ ztF}-v5gRC=XYvOt-_-xw5MZ2AYexEtU3+^!6<`v+w!cjcXHSs(iOs^ z_%hQI&MVd`VDaW-QKnVNU3LBW(KHTD%6_ynE2Mu{92u6L?Yc?D7E*;*%f>xDhAyF> zH>*E3O;U#qebkS5glOZa+AG=k&awI-aW}&*QZ(g8vuuO6xEc|gL8=e!9lY{O6X^bA z7_p9!H0YE)#CQJ#1ddd);v1yJO_c@;qW=`-Kv)RGJ~c^!J=jQIX}qTm1#}5yZbJX~ zre2q%n_~<^?eW8`bQN$1X!gEPDz!=}$h%CY?fq&qad~-&FO=Wr^(ZS79__n~VlOR5 zT49e%!-R$i=JbX~Fj?F&s2KG2fW~o+DM6cq zhFk#Y#2}R#9OPGRG`CL>VSoAUwlrty$CCn&{>z#M7KhYbIn~x|Yu6r$it+lQl$N8S z!)U$3Rfm4@*vGRb8V>3YysCiJz5kNs=wRPm9oA>P<6qF(G=iuruQv zb0;UFZ^oRk0>vL7FPw=95u^+Yac|OOn(5{V?NOmviFmsVk{N8rvdHC5kWlLl0KkeQ zE*Y(-C#@V9pouL*X?uIxe>0s=FPpZNnlg@Izvi5Uz!JS`eU=;fL(IX_5PcZAaFex7 zm@OB&Uo78i@duNAv;l=zl_)E^6q#38;V|%A^F`XI45?9tO(1w9;pevU6-qxx4(eTY zwmki6TUzUL0i7VW!J4wu((7|S3$T46_bE0Vs}wa-ycJ&6B-p^Q3&&p47_^W}g^h1k#pAlPIB>F|z&y0j}4AifQH2 zP`?R&RSUFw&wC%(OZkZ4O1fx&39koGvhe+brjt};z4_t`gE+^u>Op!@oR`Z-p~X+@nly8h`lE#sXk zQGnHdSYV_pErfLv#`koyWLktiYN;MEtBqDA?_awjnWBeGDP4*|068b=qS zOgt4}_06lBT&qbpEuI;F{Mhhi^5#OGR;@`4iB@o>idDj=snt%nD&(s|M~$0h-?upW zCNfos-bYARpmqDP)S#x9cctWMYEb6ZuhW z`CisY3t4yM^c^$+r8!x)sxPVW)YHM4nyhwVv|h^`1)>SsGUZ$Gnajn4Ae1IYBo2FE z(z6PpbIVdKj4b+}kvsC+Tt50<8bnzAq`^I*ydN1TMSg!;6Owe>Nv0|mc6(7~{3p4! zQaEtkEWK3@haB1pFS+0>0r6r#WNnz+#6J91Y%}#;kqQDJ(95whe%8;|Y0B76`t&?i za2_a^E#*XX+UoR$IYbuKsj)>S3h_&l&E5PqIdcsR$Rv#<+meF#q%&wKn>|)R5oJ2xmGf< zlZ?19gJ}uqNVoEms6sH!wvv#Y6V4L^#hihWhRqSCe)V7 z3%zIwOY66o{-FCu4t#<<&ciD(HRgs3s z6>@MdqU+PxqNiBPb;?Tqv~`)oDOSY5F6svcJv9S9f%GQy8N8nKw{~J!)_AIcxy>}k z$t@pMJl;2)g)jQQy&XJ-gB;1q3?(fWqKs8YFdJKc()U+&UOkA4+uXOS!4mcRs7i!i zD8+V2&t)px#dSxc-n@wy_P0Ch*OO1{Zr)ngs{C+w7Hc|`a%w|fFI9?&kD7`VnzomC zNjnW>)RW)Cr4P(qITsTYks8Wo&?b~k2oJgzywVWc5 z4AW!jC`mjW=+wm@fO8;zD#Ib7s+kFdl;zh!E#j^9H+#RQH2W)YBCy583oYJ!c`z@S ztmSXZp&m!@Q5;|W1)G49CPXs&rjd!X|0NCRMBm3x>#SgJIArJCdCATgtygELv01#K zE3#o#m_1!i)#8E*IsHYyWQf|mZVkAQ%~upQNZj}Pu-(t@N0-sAPoSdzL9Ky#1H)Pn zvQAmX4gIQT^4M_U*C%}Wh{xEU^fDX1z5{zYp)HRxeM_MiQ|9;Qd7G+gaC&a0WOE2O z=!oCGKGANaR;{?6z=%sReK@ghO{cSzfyl14Nm(gFl#sqnXUMNrjpEe&|IoPpFOqHz zFY0VQV9m6qmp5%%5X620^br25HnbRJU&(`xX!!o%vCFw4AN_M*Y<3jNn8R_7U4+SF zVNzhB-dvfnmp9C2z?_G`KRqU+wdM9r-__tJaSzYOrmSP{u(_WtUT?o1sixCMcKdkK zVNHz%&JJ=8tuoE}dYJk%tC*{G>c)Bon5!8bj2&~M1rY6|U5EHEeB5 z>OJT12_v7$6m>WLr1#gB^$vNv)Yar_#sk+A;wAdhs*8cpoeO8u!-U8Oy`CPw_Cwv( z!*gGEg=z0#S%lk)X(!LzGgLa>tEsxZj)cuZuVCJFvyOF~C$Bqy+%7D$7dgh=XTc7% zOW$j*Q&I8yTu;C@PM#XAD%Cr-?96|);Qpn$J*tEI!2j}3;onUDwbk|rI>_q9d+)Nx zOL+a2B)j(OIo9_5h_chF_NsUK&Vu(Hm3-|=2<=U%bjSRsT@*z*WnIvdTw4%wqJQ!ZZiTHo^tIrcc&I+uf4_G8;I8= z-kIe)q;U-ilS za)@zap3@#7?M|Nga5dH2bJ%^jj)m>eWc*LilRqsh`cY`Vy|5Y^+-Ku(!=I1 zdqN=L<|&UoE#Bj)iXUzQxb>N@N9xuE@y2F+I&Fc-W~BCWzV=p3+;qserrYAIzSkB< z3$1L2oiNzj=NcEvS>$zkJ5s0PMI|WUWiy7_e%5%A;K3zUv%Omrdi#*nQzfU76#36~ zLeI9NRa>y*en{!ubcmYf{Gd%soZDeMzYVE<)6?gvn&)=ao^N*bQ4id9dPryB(I*ye zMgn-ZR8rK~DphN*EK#ZA>ff$TCr;)Rl_5BMzq*AOD@{#%ho-hSoXTWqpQT7>GJo<( zfM}cuYVoJrdfTacMs)_~hM2=H>8tkbHC_S8ytm2zruaeT6 z>hJqLcMRvwexY5Vw13CUnLR);%zC~GY6EnAhPC(M3k2A$d`@$yhi*3Y_&n=!wUoT6 zve!0}Ex4}_nq%6j7S2*Up);TLM;8{l{C~@h(cj8uO=X*SI-nJcPx;^^d$wfVtg4;Z zw4*&g&aDw?9v=wuy{7|KAMIaPT?JQ{PW*8_2nUyLFOl_YR(-(Sp7+mJldSFM>Hzia ztR&!Yu)De9gY=s}m%Bq1Wh7>y-)9AddAH*P7dGkZj9_}tm{7YM5wp61puO8xyIr+K zxqtWXb(u=FdsgZv9f7pA=ptyo)T{LKLLJ};%;3Q#ypur^}xDyy= zaCdjj;2IbtgA?2b5AN<726qYW?vHcMty^_py&vz#x&KbpuCCgvw{-8_-|Aj_ueH97 z_XN5P9dUFbD?y}7sczaFO{!(?*?Dp<+tI9|!ECErWm) zfW{f$l6TpktICqYEeiY?s!F=8Dk9m@g<2RH7yZ6=pu7hJj=a2KLKYQ9AY~s96||bpxKjE znTG*U_SQ)Ix1B1MAA9?K`9?YnoJd13rJk&0-uK>Nxe`E~sRu8s1s<*KXY4}-PWjV6 zb;fYd7>xGZaZB~>#pKwb2 zP5;|?b~W82j(!d%;_}UF9V5yJmCy~td$@bJ%As{2Ui7a+shjoE>K5RM&vE%6inU-Z z6p+|XRFbvvVQNh}-QOs6J;MHedAwotttp#RYT3s1?QKQ)dhlKdu(9*(3d-o}VUf0c zWLKy3liL(?+(&;+`te}VCu?L6c3mUnumSAj@6Zu-_+~Y<{h?J-#d#y0M8szHwXoEq z&r0aBNxPqsjMT@yf)KP`Q1txq03X;IlnR6aeutDWO!-jpr-ia7^Af6`-z*s1hd ztqxj8IV3*JUW(A)C#dhms>Vrlh{gO(j`1Pcul_MrsSP}!(f-kwis z0~XacZvk`5tJGYDqs1dHdvjO8og7a$yVZ}Ttx>7^B|SGegKLD~vP66BJ#TyMHw2XQ zw^J1Z9@D};|MoI`k_mDIs3{YIjqrP)IgoccGKmRF?9F**9A+cPC|N0#-tkYi*{ok1 z7WmEU_7FWv^?jj_T)5^WczsnmJmVK^`=FuUf=6k#|L+rS!qM|EOSp#;VBzdYE&RPi zLnaLQ)nfi6yCH)n5d4>WNZ7<$9YIjs+QYI(9tBoSH5IEOstvMaHyu1UF15yo`S0+K za}1z?drhZ>u>bGdp#LA&k}IEkclV^8me;76iu_!D>jRcR=(hcsCjl-nLmmVW>_AN9 zGt+#??zBNS_$0@_t_9P<7mmvObI6zfdRxE$bHw=`2+%?o7e?&3uOk-RyGTVli*Vpk-#ia2HZ4IXkK{C}H4etG zl1erc45!S}Qg3MR05r6tD)J&2^MT;JqfT znv=M3G|JK?@Q>znCej^}rKO7s&0X0ncI{N#rvoi9X+Ly9c6N^1Ek&88S&IF0OOgc$ zP}zNnh5f5hC*;Z)=eT9wHB=z@Sk(;4fr;@evkWp7<#_tJG2@Wc+b^6O%8kbj_`sPt zmZ)L5d9uPqK*$X8SZ~nT_JG z(m-0rm@jX&o3#*YCQo^Eo4EM;JR$(paGyoNrjq8&lnPXNX=osNV$@|HgDMX2SH!qr za$&{?t@}sB=j6iR=T%B1#KmFOm;*&`)Dpm2IqllN0I*OpC0?|Y`a0X(UkuJnyDR~f z`+xmp#zRuuU`Ua`*`WGDM01u}znjX)iN@qlrAr<{f)HEz`&Uw%uckv`5=B{RtlWX> z9mXJS*!VlgVW<=M%Vs9Q3$sA1L;gV;kZeO6fuc*M` z7_SP?)e5zG2)~UPSmt5?-|!-7fE6-4h7Ky@RuEycAqg`--r{p?IJf8^cy z!8hoQ&8xI2(l~9rc^H z2~(=?P8qSc#=)E8WV=Q^uIn?Kq1do8vyaR*{zqKibhlg0<}ERi+M~{e2`YtTZ=u1z zdA|6&?$nJY_PR(deFuBI8~c+Fk-?d4dXw)h3QX+hLGV4%mj8mEaYA7$N=enk6mv8q!aL-&_ehZhc+E7afrOVb-DC)HHXgJ( zeMGkGLj?6Bk{M6jJ=1lR;aDUe9HwKO^+58m=b7h6wqRFc%rxTH&nadjC`QEUsDqYS zdFSVDDhPSX0!PvTF2gq~WSPET65I@$bGEM2;2dFn%*2h^AK!g z#wCsmG*wO)R4P2!<$+P$aXOBgz78II4K(R~G(i+3Ofaj30D5B;jJk`$rS-k=6$D-b z`{zHNql3T=nHrZnFG>On3{Pj%dLbx9jLb2*C+;uVzdK{a54}zj+jq~=&0g|B8hMHO}1!D zyAgF054u<*vdK5T06EBwa%L;_`H_kF(g~nmW#_P?XTIYv!ujF1xd+|{MCxLxP_t1o zaZ4COcDOJ+Y#l6ecR=@B2BbCp@tl%3wg_r!vO~7n7R3*84*)n=v*bVUP2hQUHysH^ zTlvF_7biWnboVx#ej0HfvLWvGv*_lmmfq-f49xB^fc(xTNp(7QJuVxF9mO|bZs;_> zoy43oGWNjjc@q60C>INS4CwnScpzh$GD!!tWT#`Qy#Sba#*++Us9+jQ&0r$m26cQH zUmo7~rc-xNbLB+dW>wlmuy?W-oLNl?%=$LPBv_Z7R2*l9v0OVD$;MKa@%D0`DzL*b zjT@K|pEbgB5vr;(y+o^QE&x=}!DhCue5VrWMqDsq3>qHq5f7yx#LMnR&^)}aRF$?j z=!`KEJ3zG}QP&$BV5S_e{b=Wk4F%>$3ju9@n_BXpThw+1!zYNi0zvvX{~%P3>aS?k zxCh@a_S_e?#V!^9g;WPczSn_?)P6i&J3?wXaR4`UE5QzpSe_KRk+%*^^z?Sir%qxV zKy}$*_{I6mu#SIIO2uohVTR3iO(C%5^1@J&6li{NWeG>Zn#nqq!{#Y9$CL8!&6p zpfADWBckQE`2MCBrx5T1$^DWO;hsAmBf`2wlhmwy*NW#;6w%UhCM;>y1Ej}W3v+l4 z?5*8-Ks1dpLoyR?-=INrxZ8`ixGa6{!0wy{S!cu-Az+U{VS$f2!ZKAyvy(R4TLGtn zr*tNP4=(5T8Jol5i2Q2^VOAWSdVhGB6;t=?e=2=^Mnh*S# zPbvu^#~+o18%hw!h0=LGnN?qviXFu}Bc9=S{^4lpepRr{6Qq20CUyfp=>_u48`*JYcqt;vZL*Ige&y9>fu?dMw}7 z{ALn{F!a@wIe#@K%J4W`boLE0-uoqo#A=GqIu0@}PlI>?#P0D1)i9WL9llJfOtw)` zo=T|j$K$VPfMLx$md>wc{3SF~W8C`Pwrhvi6+Tr3fnsyF{6hY<21CJ-ataJwDe_e3 zi3758O7UIuFe4=p6GDob@z)(Gc=kOg5MCFW+&}OdlV3(~SPArRTGZF_T&5>_M?zd( z2JIEbTR166@4$x-a*3n6E|PBD77EdCPr4xdHQJ@7xwhldbKTyfU*eGBrklPJxbKHe zG1}iLLd9tH)^j6v9ckZ_K=XI#onQGTJ?Zd75LZdQJyS1_9odkBaFDK!41t;CmXwg^ zGksE(vi$u$FG?7UF^f+ESKmc{i$YZaK}Fifo9qU0h>QYLUcQtdd>pX*N>ZGV@vnK}>f^71(54b&ue!BEkN5m;N)N-2a$OqcJoBfvPT zMl2CbD&alI;Vj=6_t^G@Pmf?8bs#%sVt#BezBQKO9r(wD$oMCj>2HrlEDW!9TsWer zDnL9<`6R1POUA|Fd{G1@hmccI)he{?10ln{-8i)>VbdTz@q*r8EN0!-Mly4V^>@Xj z&?23PmtY=^6=Fp2gC89TojBGlv634W0fy@Y(*YmMMgl2{_G}SCG%4Ob>KN*y;i7sB zGPQ=)6hNsM;?RK^JNL)P$vwSim1vRf9e}<`P;kJ2vyRYn)29QDu=D-2SM;yI!ndIL zQ6b`$+0KVW@>O;rn1g=2d=SDhE%_S?uT%H^_^N}Q*f$7*!Q>+Ib$tu_o(*(xqtlI( zy74F6U#sq~xH+FADo|r4q2jh+rb{DF+J-S4M@)Ispc~S!siUw599Q<~{!l;KZ+oA|Ld@ulLw~^m(xB=?p{xf6AkkFR29XT_xIBgT zW^=J7TDxgTqLH+?U394E?3M>am-$TwB6Cc1OM;N5IJwddeIN&&TZhNa&G%a947*ik znSDo9m(xvn9!Ldt-g1gXi9hI{O)T31=9%HdPdQS5mQ8aH`Rm>&L5-1#{g$%r3{Hky z<(!v)wi_?Z$!ELq zXT{Tt4@PTBHg--{dd4oc>>Mv%u%NJ@eBr?VFB5ggF`NBWV5Vx*6VQ&a21Ul{obvUG z`qPYp7}wu32eQBe#NOM2^kRG=>4c{$GU){NKV$^ZhkQi59wgvV2{foxQ{YwZXk*G5 z7Hw|ff)K-5@Q0hxJ3&$r(Ysd$@Hh$S?h60fNgr^K1wWXlF|k0foO33U;Z_IW?}7%( zv%xjJU7tYsyarB;J;#o&I9VOwrk1Z|gISMCWckW%v_)E{?$f{)x?pkLqq`s?;`zJ+ z4QMhhfvJQS*+}?h5uBpU61mTg_?7VZAeG5UibYjbqV$G9M)w<1Q(RL48bh*wQ&VeEF8PSqE?2$<9vBv!g0H7(-GMZi2?Ayy}xr6dp zFr2aW0Ttz{;~XD0X_&I9Q9)NcRq&P`x>H_9MjK&Blw(k<9XWPJ+?!cJROrCedv}$U zVW@o6zIL>bE0V1S$$Vod6PP)4I=7C2(6l`X?3-j-^^fm8~PT;AQPy?@N7)Xr{O`!3n(Uy6S%%3u?&p)t1CyhuA zCEm+OAuF>E-(tia&r9%5JASV7))M@~`C(2kTwy*1-Vvx(T7~LU zHfbITpW{;s#V1n1PQW{gz_cW88`z!i!|7Lp*3}J0KHk#Jp;y&bOG5E8-1g+9oNfo$4*1mlMLW-4R(fSAj~r=;XJ(WR6p z{J9neoInJKXsF6ESp6*=b%4laU-^NcsY6bmJ^=ASGkr7PdP9W+9kn1Ce!`Gdp{iLO zSAhDNK?diDr%q3&E&Ma|UDXS5P;kvK-JGR zmIROUORCsz88>-kA*^i)BZW?*()X!M4mI-SNpKaMX=aqW2Q1};F=6tO>+R-B&5yk_ zk&%hR#}NAg%~EUnukVZ*e|?y`IV|!jvNXg3{y4l)qWVO)0u~wH+=I15onxqz=5#+@;!d^7heHsaj^vk3pS}l zGr0SGeUTZ_*M_XA2KIs+9Z5Z1Q(05>R0-if#~G&(gIlkn!T4DH4T~LFD z{W<@LzTOosa+0z{t)vB^+c|#~tnQEqt&#pq6sz=6vbogN^nzF9Qf%#-4~_4W$G+cT z@{rc`DcIzFB88!;r%uKfaUGHxg4+Cu_?b@^v zofb80bFBtdy~CuSomPlO`#b1Mzo9XYvoJyGP~M4YeMtK)>9vTQ6Nf(HfYXTy-~ za!FLoJeTW=wlu1Lm+BHSGasrfN74#Iqkb>?aWJZ~i3*?H)<&R89Z|Uq@wzJ0oFKKK zmg8p?VYgpF9`?JzXqgEwP=e1V{(?~k0>1N7Vl58i=Z~l3&f3$Qdu}@Tz9R^1If&K4 ztCt<^^yQ(%f`ff%ixhiTcn{TKB6^!%>?{aI&e?`sha9|=+C>_60qSnEhb*sV@&{>R)=JjNwL zwq_<7CxJ*{0@AH>ATf?#)PL7+m#y5EdwMG^XEY%5x!KKOr~2mjFTchKK0ZL*oQAwM z+sB@}28s_rM2)njt0&tEw!4UfTsK#vpF70-ctE8DGK66xLhaJFvl&3YMN$|fdN;0f zAM0?=rU_`4FN24PT>8~O+K;Hj^|$51XDnypgun&Z7``1OD?dqZfd_gzO6Bl$}4N3 z3A0$f@?WKDBS#ghzfI>yXx<$!vtOUAXXK~si;45f7=-m2*I0K;7~BS=KYyL~$I_R) zw8-3vvbdSf^f_FcS`q?7GKgHXe%k59k?fdXQj*xjDamSAs`@npExE07Ty5VllHmVp zqw0p{fzZZU@nZvR1a*4k^=R>S;8@pJqY`fHzUG~J2RvsqYa|AOHFdH-xw8|z0L+S* zD85ym?vfq-9Ej94c*T5iIh;uN zke_Cvc+q?=%0FI%Ch|*hy+Z#9Z-x%mmXa5VA8Id(k@?aRG-rL#A76^jYhtxfIqbqg zOhZ{qUKF>c5$71}7v2a`8o&BI{RLm(^+`)c6#F8Kn4ziU8|b%2r*7|x48=u}t>FcE zTK~XFqTvhRS4q&n(pSPk@O~5i&v8i4Ce$xP%BmTw@2gPdq4yGEGK~YfFDwT0j6qbb z3NQEb=z+>Kz`wi_Zu%x3tlLbX@Y9fwQst^g881ILw+!$nWGcP~cB;)I%ZCuhT%-=o zzdLuC!LFbW%;0ilu>m>6AZNG088rQ3&w;72~O;uGbL-i z`m?3b;z;`2v^7-FSEZmvvW9E4>z-{YaLiSy3P{emwMbZdG`uC*Fqrw*qPMl^sY{RBuY0Tqic>X={Lm*36!8aQlOX9I7ZtXy|PK=txvJ`XT*HDz=mzE zvLMICu-98LD_C43Tzo@4llMqPtXMdH_D&jlUY+%iz_OC_?eTPv!1PO#i=3O|f5JHK zmf5Geoq}2_-tK1r4EgFaSa0>UUD$b!4TarOwy)aVyLzomaL^IgD25suu06|5eW_Is zn+v!(7J0W;OIlpns}GcY1YZ&x2mRSMg$IQjxUAshNr4@d+<uj;6Z}xRVs?Z*kXIk$8cTmgHB-UPS5k3xN*TK>#-YAVT`anu@V`wR&i^uXj%wN3$sl;pZ@svk<}GA-e<@B0@+(14dNa&}2k2DiG_|G4wL^dj{RMaX-xKU3^#upx( zHd=o@px?R#7e(8PG!wm+llCjW4)SLY7ynAQ8ZXlAGQROv-goJ&YhYX>-djAn;XAT1 zqbqe@nU2YZHl)M-ckLl~u^-|Js*si2)jPT2oJE}zv;%YpHab2yJfB8Bsi}c|mac~; z7KDpi{t$-4q#$XExSlLtv9Y{zM%DXz_>x>{ZmpvII3h4sxIpqRpsr3v?8vSUUEArs z3CL=fc|{T5)W%#hn;e(2+;-X=;aQ4%K4ssNtS5uns@VCCLOH>qos2UfvYm|N|15|( z)S+};zlxqvt~*|6{_khV^CmgToe z3vH?~lxZ;(9=hEToO)fn0wNVRkPwEN)(KHeHeI`v;bPr|DdRlPLpGw$TVTSIyI5b7 zV;0W>evR=F!lC{AVu{N!4RSlk4Gk1QETsDc-&~MI#57I%Q0#`}a!ZooN~(6b$>Dfn zc&ZU3IDAWdN+CWwaViilYfT-6D0OKkF8lPc^cRuLPy2nYxq%~4uP4OUm<&QjCDKf0 zb9F^v+n>kB7luvM!`my8e?anEt7@_~hp-oWVfAmsUl5pQ`Q+V~iLEdMlkNLQgV_ZiJgmDseGd0DK88tJzzfEIw^B6X9C*<_S;4)oz}D0i9%UAbQi4 zgtPBEUbx-4FJqJeF*m8(Cv zS^?{0LijIN)`ME4pimHUOR7T?(N~a*(N-Hhf@ngAZhjj1i2=$@yfAJ@sJY_;EkLF( zaK?q=kR#m`#ni8Q+y=x-!6$2amZ;T3`czeIk@Ocm>CiP+ZB*Sv9mQJw6*lCnUgb^?N`6i3!&?2P6-j~!?Cx*yu&{u!aDkRnUM&i{ z{Q6idaiaVpOX#n;EP1(O;Q(!cK*Mh&V@7{nxMBC8(MWj7@9zr%U<(d@yjCrl5K2o> zldAP_H)4uVZx>t*!EQ#3zEce&Md(1WBcgQH1Dh8(|$r%~nsCCuQxfCk8G2UNTZ zl!dSZ-x3dn_ZeD^%F&l=1|cNVpg#Uz#}TEGxW;6-_u<;M{gagw5PJ#9#5|e z16f-@;OiY(%UIcxTf=BjlOjRjygFKIeElCOHCK~%+5MF}+A;q>-Q1&F(D{QwOhu`y z3{TMToys0!q}+N$h(&fYr5Padl4g!X4MX8aQKc)v8 zE7l@H*7=xM9$gjsQOY$39ZqwdsvZ%kY`El)+neu2Rmo5 zXFS&?OF2T+x<3ha_@MjfiE4AvXgalN%jJ=J+C@lO0;hhyrxZ^LWl6dD)v#QrZGS4v!6UZcWE#_oxkXU1Xd^{Bp1G+A`@cmv`!3O3b(43SU&1uYN z>P@Kj_*C8Wz4C^$ij)AqQ+A~8RS|q`WcS#`4^GTV0W$2Vq~s;j0Hq%U93V6Q6|*6j zPARS3r~}{>Eago$p7R918bYd)3uohSQLOW13}`Wmo0B@a-?k56!m)ut5qXyfYzpxz zkfd=>=*u~~F2q0c4ax*KQHc_nKis=wA&9t|*rK~=SAAYIS-l#kg&ag;DpfRKtiH{Q z0}P7secM@~%2qK${;%*?fujT0Dxz=&VF7lp->B4=N`IlNm53U(duG{=|%sr(unPR@K!dXA;9t-Kewts zcJ|3bi}#J)ZPxl?{{qn?0g4Wq{xU24>l@>9W^F^11VdHD^~!0(8Lt!>SCZEz*@@e) zpx!6F$dY#rCWR5$z#Khc|8J?%jPya8wi3xz6H>2adczAg9TTna!` z5=;mIAX7mF7`suXw+tl8zA6+h+V)5Z5$DGi-+WapdO_ ztv}p3{sn8IgeBwaA^@fs(t@=}cB5k#IzbRYTciIrKTSFdL!XB_{)0=bB`%Xn^tZ1( zokLi_H`+>O)zsFT?ByARC`4t$_?Z1_2;UQ*!Ba0pp zQ?o!w^@Ql!#+~IW(BPw@(z3thJ6~k#I*uGP>ldPEM~Szcso3(CQp5fB?>G3fz^;=S z67#>xPn|_}JoxzSmdlYxS_X#OmHB5OZ?1n`#Hm7m9(AFSIcOlr4sS_pZ=0I`)EiV^ifM> zK!n+QyVb(g1mc#_rPF|uKd{FWel};!pPh!cSiIyvw!{^7$!Krg6=4lyFQZ^qWFCD} z*3^vrUMSl}V^i!tLcE+=%s&jL@fqiD9I4kPuMR|}pc_yhAM4!k^?JS5DJ|w|gA2pv zx--ZPG4*DNtH-?UldW(sjEr(VgRuH{m3Jt<>%3=S4 zxt~Irx%uXK6F>C@NT_Tpt>Q;ghi% zB%;}Nws48Ek=d*0#lIR`#?WfEHVNQ8cteZIfxbp{c|ZQFBOGYHv(F+x9w zlN}kg)wCq~iSSwaqx-!2ibWfE{!es6KyLoK)%5=gSe=Z_ z&Gd{6oYLQ_R4y_zm(;9^^V z6>`|9q`?EB{{N~p1iG*Oj&g;U#g!h9JXwC)F(hl?qj zeNsBG@#P60UVmE!WiV8qT)gOhD#tgOEMEvsiZPlwO-*4_1+)M6cau6A^o1_=Rd&J$ zq5gn{LOkodywmay6AwPOe9C-r8u_0SL7fj*N{OL9c2kZLuQS5FR8qnY0cC^Z@?LD= zXzUzc-vFC|7q@yQjh`u|yI#n!@$GQp(Y`VMyR)k{ycm(!U?KzMtb3$G{KC#VICC!g z_qiy^R3dh$q!kNj;yQo8zh%>sN(mXUF?rLR%#cJeWgyMd zP+;{CUbT4#V6M?{%F>7n#IoHhcXxaz$B$dGGbf&rYv4G z@ro-dcb1yDiDr2HEZnvq#7(#2D;5hNllu=@EIkrAs9gLM+}e1!?=PPvpA^z?Mk~W0 zT~s{YSMqpQ)~t!-p8Vy5$v4BU^{H}hiI;7gEYNRo8M^4bQi&1;|6ASDJMlVATRUPsaOxOXDo0KW{Hhb+y z(ho>@c+Sp`r{FjfOC8%81C4|IJ(`lCJPaS%B9G0nu`>L+vC{}j7`aaGI)cnm zT3q}T_xyxJ4K2Rr?=<(-{L!4cdbF^IPE(MyPXsDfML6hq)TdgBAG$=iJm(#IP7JG} zfZ_k~Z%u|P^}nyj7->uzMxH-z*TO4ES^hinETX0x=H(s-upbAb~aXD+aKVY$5@$>pdK-U;e zl@sEQxJ1fSe(P6olcReD_1VrZua0|vzVrOvRXp^eWOUV_5jR(cW9H*^iVckCN%HI0 z9--GlsaH$m-573u-0kNW7*MM zL&M>K=dPX|y?xHEMScTtn_pp{hSES#7SqW8qt)sQ4L7NMH^-Fgec?i`Y*tg%g76d* zV)i;w)Lgi<0H48LrRie2k>=K;sXiT;D4_9;vSxib8d?pTpUs8R{^u>k+o-K^mv3vb zK~&^owiI6Lb~@|-da2f^V(MZY8gH|whzSo$W6l=oKxn5$Sc}nHSNLhr*izZ2QWn!% zcYXE#h_xgi@!mS@dK|m=KRnkZT-A0D2Z%$0XV%@(!w~)1MLpL>q)%r;m>$L^TgM-C zs%uV}s_nk;&5{evC}`#L2&7pjhdki3SeQ`~x{i-n#3%z(xC^=GQLgn&@Ymbz1agCu zjNgzA8ntD0^9(Ukb?^b8M<^yh5^Vfb$jQUHGT;|I(k${7_ZuNLZ%a8ms&*rKd_hh( z1!>a~zK1)T=`~t@d1RR~7s_OxXZcads)0!h0c`qAUCp18OwTAVy{$(Dw(%=7og%`QyLGG3G#_Hz+q zk6UQSFGr^`ctntgFi}rNA=UNFU4D4Jxb4T(L&AzmB=7gBAM<5Xsh3q}V9e0LP6GYU zFxs-M{0&;c791!{wORhgBQZu{OXYU6A!p?Lt>$aA*+uQ2y`yS|e-qi+6l_)odF*8U z&!SdWC#T(re1664;&(~k*8a4;5)f*U2BgNF;@`{fH-gqrE+kM_5tMD6N7`Y%>l;D< zXJ)Ij3_oRs%$kCaobiqT9&pqu(M3>U7IaH>AV50X=^SeBLH7N%(0#y6r!fj3Fkoq% zewdzXxzZH`*b#eNzR{9|G?`**kMa`kGoq()`bwd^QpmMN*M0)fzTb>dD)tRIiI1q? z3KS|5#pb;4QMA0;7XGJw6_9!`MC|?(YD+k1m!?MMPmQ*B+(wC4lvenzd1kEHFQvD* zfLp$KWenOQHY|9KM`-?7Ui9ya;0KSF{%7ukVd6Mb;(O+l3w9~$LaF5a$Pq}8m@NQ9 z;v_mw%ESGQs#jXguCK39RzPCzi1yoPZrC-AVea$ScZPnW1?K#ZTZHGMO-gc476_Cg2xUJB zH&=uXp{2GsHHwfYMv-n3oyYMUx_P~{Jfk=cMXV7$iVIz|MEiQt8D_GyEW2Ay{@}544}4Nq*Rj!r zj}-B?pu-xM)Vt`hjPFIv$~=S)cZ)|$!h0103)w!uHw^4Wr%A|OV%cEAJ0Sy1G3-L6 z)M@mhduPh?*hNd}PO^lU?n8j|?K9jEiG)(4YQ#Tr8pRP?fZ_`iw$<{X897CIYO|unl6Zla`~Lr`(ytXRfWK1rXvgN zBhdfiy$8!ZQ^%Zs(|Wc$i}qVsgB=uV2e2WhNR96;Tzw^kgNf?F?7bmA2Ihj=Ge%N+JqGs;%I`(Z{o6thD6+ms~7qR$5CPhxWTM{z#d9x6bjV>JUTJZ(eP=y+!sbGN9ztKl$(_2_z-$OZ z=@U1`QQDE=9??l%9?q&`)=FblOVmqCyM9BPnV-5=R^0n0PG;90+Aim7^NEFCrx#KX zvLBNRjnJEZ9Hjpx9oQRKcB=^$?KnF+5dxF@N;#eH<)cPs%N_&5Sv%KaR@Kb2zQero<7{+> zjgqjBn-yJQp6c!v6E%@iTg)Dha6jPXZ{XLnFWXNjxDv>^8( z4>K1>z;>sSZTLx|YW}}3d9D}$E=*ZF0^<$Xi?K|IfZlS2B zf}&5KD{+sn1<(j95B{mBJ=-hp(JmMOxt1T%F4zDkk%2T-jg=E0QJ7K5)#JMRq*&b6 zLD>d?nu}WJM_R1Z7z!seQUc<)(oEW*hSR<(URyZ2dy4Up@Ux8u(hK-4}F^w^7y1z2f*q zzEYug$H~IpuL%EPcp)b+Hp#p7*!0)%FNTu2rw`i7fxaasL_Dj^{${bCj> z!il4&hlCn!8I!a*-~)bjY1}MJyT?3G0qT0rws4>ch=0LJsL06%OsHovTq_0aE%n?E%JcG0HO)c-VRd-TB=ph<8K>7-Z9QfHx}{oPSe zN_B>)^k;RLbDy64GR%kuwvS2F{pQ&B&UNvPdx6wjKuk${ZZGM>wKX6jzE`{HALG+=*5|d%$bH@OFL0!X@txV(wjg_2iWDtuxjy+#8*km=vFx3I zf5-xgOj=yXNt!s2Jtd@Ce%sA#bEO^na|mN&PodKpaC>)!3MfxntK6ax;uH&CPRHG= zGaRT_<)Tnu`5@GKMAjY(cmgtLj8-g# zem``-{-h;w%y*{JSl|Qz4BWwK`NqyXUSbF_3yIzJ#aZbIjSSISp>DQAr+uMGhAsOD zvXp-@&M0SO=X*9>s6s8TVcu*RW9T$s)}HK~L{>f! zn+~{_r^iVvD(?*$%doIUyE(BFcH_)NQ$;@g5FAjTCF~8cue~*RXDQ;o1Rnqzn=pH{ ziJTMKDW7c{D-?;*z5hO7bZZBNYzl?{zQ<*dbuZ9^MdH-m$Jqao=YWltl?}g|Q})uB zX%+rPL2DN|^-aB0Rt0P&cB- z?)AJV;WonB`A@FsGat8$>jApo5~hRwMbytUVXQBwC;_oNUK*WIOr_+IfX8FIobiF^y0mp!3U%`wlPRr)970(l&lDjN8vi$DNO;}Q1a{q;|4_6%B z?d+qxw_#4<|HIl}Mz!^PVZ$))MOs`E9EueREz)2`g1Z%Wr=_?D*Ftb8uEpKGXehF&g>H}=9 z#zs~@K#C6IA>wgIsAkqgID1zSZksu(Nb=Zje^2ivQB~k!Pqt3RX;z5e$b43A5H)EF zMy@S#-)s!B=2>t2=8L6_;V!-^hNRb#f1HbqqZKPp|&&rZo^>eP< zVO|>|>hL-71B*`5L*EFENcFfjMA|_wR^mNHQdmMJ9mLl(q3$VVbDlcFG*-PJ&qniR zhJFU^3uAoAdm6pw<_?x7?;mELJC|C^4*X1=>z;}?ueqk*_9i;c2qlJ`)ho8>Yn!MU z%}#Wu*_ zK9N_=(Zw!M0$N5E1+W#nM`kO7i=TfWI8yYQlstIpX+Ra8v`@KR3*jdibZ?DDKuChW zw^c5g*FL;lA}$+9%R)O9 zBVvUPfUb!*`y1Y6UJFY-+54(2Jpl{c3yN}SJQk*r*hkx)lb54t)2JG5#ub=0GpHK3 z<(VY6xq5_?L@tdg|F7mV|4nwj{@-k8xc8j5^06A6nQUPZ^?jTNpze?laKoH;U0qd{}G6N3DU`w$w#m@*kG?z^|l00p^^hYP~B0E(t6l4;IHub>S*-#ET^=-Jb0lG)7vwx3@d`8Jfh zkE)W@0d&1~JV!9URGn8Qr!pulT|c?15563u)GBMsDSZ zj|H99Y1QuWG450yo2jItFF@|fJgh12KpG4x(dc9$My}@MO(TxO`qfyCd~IzoU1Cx@ zX#nf%Kip@=HHa9WSOx+viqtYBM3|-gOuaimu?_t3z$_Uo`uKR95pJQofirs3aoH7m zylEyK#Vt{TIn#CKzX2}N5KU!3*qHZ4^xkXrII!`h{6%u2f&>6=TCdbhOLfD){E@cK zuqbTIG}}o+;HycijZ|@~n)i6)50JYqLy==R2MzShJsyu_JUjI>>PobRU0L1t9$t@h zF5hUS@$8!ri@xvYSr^gXCfXnD^%B1wkL+aY$sAN8IUaw_=n6J%TJ9{1%hl^6j)}9gmMnoZZpp8C^J_U+R5Y(DBV5lWPiM1tt33 zq)jdwigDea{(!em&*Z?!P%qTG*ChD;EGI?9dN{jLMW_D9CyPV(45x-Y)Re$PZ{1akc@8%w!Oa84x7)pjF8D-u2cnvb| z2YxC(yOuq_9eI|C&g6DW7jj=57@*ULsZ~CDHH3T$BP(JTg0^OJfyXftVQqqI*^*8M zl7K2-tTzeM(V+Qj4UMjW#n1fi$gaOX+lT;`0yH%G1}2Rg`R-hSLCdo%HedFj+u4L! zUXVD@({n2VeTOT+ug&wXJvCUN|3~dpEJ*)lXMo=hueI=I}@vJaS z<;^~qrGd2XxT_FvHxhR``5AQYyrRIx==$d>o}n?^POzJKB*HA4T2i~pt{%EO>;7XAj-J% zF~OpMBsx74VSZs~{ZLvTCDTBD5rJPBt*v-`sC%v6FrQ6EsV_adzxMZ!k){B^SPsZI zHZQyjL@gi>D`QAz8oWTY&r|#HFt4Kk%ibX%V2|u(`m;SYAs>;udEfL2`bPAwmT&p< zJ;?x!so9%P_%kKv9$kjb)d?PoKyaM`HA+Ggdb16_!V|vOakLd@-I}ym5OZHw4x!~i zlN_q;hrf59+@<_heIgQbcdE_-UzuYLX88Qsg=1kiKS}Nn)0AqhY9GfT#&%>+d`uTBQUFgFj3cpvQn(-hNhe#US5>0SE> z9$IDo-B=NAS-Vdz4CGi6Y;80ek#uiO1Nm^k#oyX8Eas+CT;os*r-rcSh~U!*cA~OS z@eb8Kx4Ul^s>n3-Z-iJx@Kuwz)gUYLwB_B0dG^G#uVzq&=3x#(kY88wMfqoTt9Sqh zk=G5Vz`Y}JZ$tmuuHmkNl0|slmY!oZ$AQ00RT6C~HwTfqOMQ0R5_Up;7lZPA>@FpM zvZbCz+m$AfHKVz(rQF}7NG9RnGYmw0Z>1nXL7QicR{stCbH2*nL~p&ItCBpLvC2*AuqsW4~VZa0)aM4+TAM&8bHAU;Z3GVQ&ek&-VEhFMg0*@ zCeRgEZ-AP)58~!wSYOJcRI1cR-MM@DnN0^tu?03Ge{PANe&1z8D079H^o1m+3b#nK z$EBz&KO~!wcJmL&7SFh_Do#L_s6xcH5n<4szsPtl0=G8(|0Mz5#JHc!q_z-;tSOPh6#IWzzL7b!`-KQQjS@IQ-uBji?Ygo1fR9chhLaHXDD?1oe z-xFTmpZPz(Z&LCIh_bZfD_1lLov7lfU44gwUYmFNS!}+O%;BB5jhKUXCQQl>D2DeW zX)huhPR&DmG*abBqwQ%d5ak4T%%=*UmW^?Or#(u0u*;n|hcjJ8y0|U#V~wa7%LF>_ zZ$@E5tO9iNXcm8?>?#?AIkrXYPyUgAvyM~|LNkCc;)jPbz>0Yujbt@#97ln>`KX*J zfcuKqrTX25aA2$cF{zKh{P!OQBgD>0`U=dNsTyXy@dBD)+*OG zB*yEQDO3~_L6``#iOv}MY(d{5<`2HEavf19#m}^#=%yJ|PUxK5CrOt<6s!=iJ77{! zH+eh}1M_1Mf;o;b4_*?o>6oW%%?G1!e%;-O=57>x6O`m88XOQ012j6*{|GnE!%e>g z)!y9qx2iE?ifVr*}j9s(7X|$Y>A_QArpTVZXndGRy?~)vLn@#Gweqg{Uz{q z!;Kz)X2dThZbs72ZIYOroHm-S36#aFAI)b;!&DKO-E+(~SxD$>Y&XvbUaDWn1LSnaqeT_rRWlR%h?QPW)6tY z-2tFMP5Mov{A+RneN!NW<&W6t+bE&v5YCuF*o71XFv8^10aCfK8rPm7a8#2Kj1PIQ zBUT<+7M{xj9kkm@Q?aX2`7!CMg|{X8WT0f1&C|l+F7Xr1Vkc&N4)~_hyk9P{W;y-B zK8nC_sgpe4qv>FY6-tvd++hZI@_5z-C~8(N^Y(AJ1P8NDX(~a!C4}5*kKW$MZY-Tw zwrkj2Qfw2HB@LOZebR7r<2c#$Px`yV<<4zIZtM2MT|$$Z49iK9`bxPAzvKQ&+^dTs zKWHLN-DI_SGk*Q9;_gXn?Bb;*4j)85i~BCeq49Tv3Ms6`C&fMZ?@DyaANNBb##r$~ zD1vG_DA|T-cCZez_nu(5#>RUA1R~q~7Gt=w^-ZdGTQQJ0f%ut%H^w zWqgc*59EdN8@!uU$3URg&SG{)6091M7Qj=--9e2<=w(FR!HidIV9nUmA5_UhwXR*q zbq;?D!M4Hm@UT^q|J4tgtP6KUrkAB3b+*CPgZgMT%-}<8ziSlf5bpFDRe*gwLw7a%_Jgw}6H9N#SR4{!0I@FXZoODdkK)=Ey#aQn0_6t=JBr!`cd`7=C`)1rB zB3YCHG|IQEFuQ5LQT~#%1J+`vJci2({Lvz+;CD0Rhx~IqgBID8f2af?vi{AznK! z7d36Nx1?3}OXRQ(3Kbe9e`pKcx*Dmreb!#_eC#Wnl7e`8&RW+!_3gvkv!*=xQ__sm zG^AZD3WZf{nlx0e7RhU-+H=u$K9wyW|B9UncXtkDZ|gn8vQqa6hSSwKuvNA&G*XgS zG@}9MSwE&PYD_$l5Vok!;XFb2$_BTmqRW;$>ow{NiiNe2d7XzF3@R+0=V8aXu(O9A zcQcn?a7deAJrY}=mVkeY2C+$%5N?@_m1RB((BgBdE$!-65^RcIwv*_sptRneEMWi*X(7 z(UiVzh5Iu1*>lWiRA%ORCH;QvnfvE;YuMx!q^AAaGNAz~yfknuceRpgY2GZb;-Y^h z_-@U!s8(Px@e9YhX|wK|-ClQfND%a!b4^1_=JqGykU@)Zg&86@uf`=yMv$jMQ~AO0 zvuW89**giGotSr^e8&uOL5tM5!ptoJvKh z$_7Sdz^qBxCa;+wiHS9;bo5w z*MjkGu4C6I3tgRb9YE*XFiY*gckQM+b8S64iYa)w2HCL2*73!GXJp89`mUykww|u* zrFVE8;0weuzvWx6U^kWa-UIEWbaq0NhJg0Vj3UJO|A_Ex`46!Sf=LVZB)6hhmx1T? ze-SmX;1={Osd{VkKfJD$Ig_bGi?htnO&FFHEy*(lXuH#Xv2+%*nevGD?l0w6;s2#o zcF{pS^>(IsZ4@4xt|?a{=FyU3wbfs1Y~d=dlWu@c0j&g{Y0T(7Exc$}@*47gHB_5Z zsTB~vAKj-FO0Xo#Nr?JT7*UJGL}sp?ko8j7W;q6Je#?B5SNs3O|5wz)Y`TOfH35~q z{~^ty+L#StS2sTb8U}pG>ksMsa=+5e4K!_(H>Xp!s?UaM)Uw1__mW>S=qwFZ;3*n^ zTuyvpwog$zL|#javi?tuK%4qs?K&K?wkH+(|nU}GcVdw zQI)+k4!#7B2uZdw8ULCKyKfCNnPfo(oK86ZTeycAo6CtKAua#?nN^XAepSAn;alcr zN6LQXT;dh^U}6R=0HLZ3*ViqM;NdN#Y8vLE)O1Utb!hTTx3y8{B_Uq&!UuR^9K0;d z-{5~)!QVTo@J-a1H&d|caI@*FBAe{gy+rNR+c;TQ=hnL?TGie)6XCujxJR7PVi=8( zjL*v~c-xzoWC*|(u@XPZUKfFUOBOmWdZv3-+XB__U+=fv7-C9tRIgkEgeq-bXaFy= zqIR@Sy-2Y2@r*@*TBkm=#1USUD(}?`j~ganEvGJz*S|7aG}NNy(mrGkot3_@D6|f9 zPwsIpMSOB8RAumfFYv&OLLE@lY<;G+q*tL<-g z+ApMm`|FouNqaK^MY^9b-<2K%@ksfEuzrN2_qSbtRLr6 zdQ9!bK7jxD8rt4&V4}Q(&PQJFJ}cfr8^ zVt-@c)hNujZ#Ngk+pww&X7MZ7Q3p;68P(d%<;%!i82?`wRP+C6J>pvRzi073CFWqp z?Gf#aXf2^!dbJPmli`pk8a*wPQ0VD>+T~b-MqQL3mo#w6dTKvR zq>&zV{u*vsqMlE;CdObYMM7M)2o|_vp%H7Y44o1Rgy@OZh2ZRU(GuTBPn6@o&%=(; zI-skeV7`ui$-hShco(mUO*S4RQF^I7i&}j1A4&*JNL6P_5vr{l4~d~kcW2!5E}aA4 z6&5`Q|KCUU;y0z&GzOUyVBQQ82hH})jzzmAVe5kqnio@yZ>VcY*04i0!(||Q-7mbF zm)LAnBO}x-ukdEpS#7?d4N!guEiq({MKnT%XL zV5`=pk9XgceC!)Wr-gGAaL)>6ZBp{ebbX;0pJ>=alYsux5osrKOrspI{)O*wm;2Ikja!0 zvr3$g6}=P+51xfbHU{Qd)cYGzWfHmL4d)3H6?&*iE*#swfGl}E(!Bs^z^j|H^{b3)>p!~B|04i@}0lsq3VED&nhmD*N=SEP7+ zK8E=&%SXuV8xXF=RMP|Ar)0A1ro+<4_BOqj0@B8L+v>196WJa6u*0#edDDMBpj;Ag za^GR@(iuX`&)>)it>_(X1n;znRiMwn8+Wd#z1d8A9($Onj*AI|@`lqbCRWzyx}ZxA z5Z8JCPZGhipu6-;Uju}Oqdco%Np;7J z!Q0#Sq{{{6DEDB8#y2DsDLR#qAIGYiyU5ESNf68vy2ZXxU5V>_hQw*}%OX}(;M?Ql zT-VIz*LTbk$6w7XzlK4py!WxZMeaw9EIGVr>CJ_8C!HR-Y8CZfwvG{U-a5~2k1!fg za!S10Y}$6TI7wFE>?iXO^RnTGgU5jygR}OSW*W($(>#)7_At;B74emDd z)~n~hWLHcU9jGY^w`BBw4j0l`Gbk;1!}0VE5?+P(?V$iqu+3XshrBxn8Zs5q;wwZh z4WIQ#6g?*pM$Lvwrg-&?g6ZhIPCZ74@qtHkdC-|brjj))8x1^fC;B!>;Fs%ni`Zo%LDk&~DQOXq1 z_!RW*^83!&LmY-M`(;%)ztBUrzYzVRxYR_`y0Y2jSdS~5RP6|*8Q#ycemja@6f7iT z*LWX7BlqE^_G~j;;Db7g?gEnc~Q%G?n1-np+8Iw${Ib7ru1O|MdouQ6srMFR}i0tZxcg|4+tQ zS^^?KGn|fX1%5M~I-=)l=*+)H2l3`ppmzroGxDz3jrry3W48-Noft4b95MrAB81=C z0gaX$AdZ9mgC9L&=YKE~KPcSNuw<|_ZDCO~X5zt>0-1xfnKcV%AHBqdgl^heGg~t2 zIxfoGQfu<6YOLAp$iD1v@TID+k`BzVpiy|OZkLDZ+5-f(893bMpT{CkR4}{1u4e>h%t<{5 zubKo$=dyRKnU;hdT&UT(0H2W_;OT-fLi%5P&(AWf6l)lJU^yF8pMm#x-4|<->cfSQ zsSI=Z(1n~cub@ecjp@x+*qzgC{=d@ zgv5cFH_O4dd{FTxcG5pE$FA{2f@hBMoJA_{JZ-Ft=WZc!ao|S(?Wl7#fiQ%{?!{*u zx{Vw%bmVT{i; zCKM~Xqlc%xkm5&?%9G9t0jQhb7)2R;@7UC}v$jPF@V1Q7+`c8cd9&u-_)}3n0Sm0& zc{fYvGZTX4czJ$N*aGJ)K<|ZR_~^?5vAsf1xZO-zSp$To;j`roms~K|&-02?8pQ-G zJgj1J_$l_wPf9EF<}rri&fX;Mmt$`TN`6)!4AUFO;&0T>B^QJOej0&?Dbu+n)(mJ( zg1(TgH7dQo8id`*?wT+b;JtLXu3wIIt16;&%wH-Th_BHB;c|@#K&i{`d-ICrCYl~@ zU;l;56~OykoXhI}@=DWS?=O^inl3c>(l9d%sf@zH5q7(S{@0(}Qv?2^;Qs%+i#YoS zcI+7U$FR~>;r2!$^#<%VGIDAvb;|$74tim+xs9&_lUJW1?hST00{i^}^!B_-pO?sr z5gi+jmdLmeAzWEsf2h*xVkJ%xi_!0%->F*l&=xC^rzcSfJ+I$Gr>m`2$4>7bv+gmR zEQ@=ijmvv1HYH)DqjJXbM%>N4gLutnzxyvp(Pr}&>x6)1;^2Zm zF&bG&;JRF83#W}Q?5^w93quGQoH%C?92{OP=OdnAaj zm$c9mRp*Ax^^H1?LqwoWE(N$VkIcJizWvH{{7xG0ttzS(2k+HXPl4EZaueO26C+NE z!y?4LjFwIFdDdDBtZ%-ujh^gg)9|joy?8n+V`ES#Y%xYo$nOg;HJunC3wi)Imb znYXg@GFPz|qBe0V9=KQC7MmE4NO4-7lkep4sY16m=C9w6k8@{T1E+FaqT-e8Hf})n z9h{<0)G5&8Iau)U@f>?x#3aAeiNtuMo)!c*nMMHrPw&m4iJ1E8ffNy(fr6947Ko`= zsYdTdmV+Fl>-Cr8y{S*TLbh{~C&|>UtN!+2GfL+gKuoXw*h;KawSpO}}B@@ZDm^orAULlBr`UdZqsO6e5KF7VlK{ zPB``Rr;m4w?Z*f+^hnKPmR_lc@jo!9mkUnG#nJ_vOHT*a+eYzBTCGfS;>|s7y)24) z{M<7{8LX9i@$|6SeNcgOCj0NJJd$uB@g?z2ni=%}H>CFgVZXZD?@|f*oKb=1AL?o1 z0s1}to|1#cnDxErfvN0dPB?J8-PeuU!nE{W*$HN?>tv+NpvYUr#8{DDP#8Pk@VKQx z`i*NM-)B|RSr-&1IZhMitwAOtA>yXt$Xq6<*&qigKjj{MZvB}H8DT_J>qDt6$l*Q8 z>W;<6raAxnE#d6@%-4|{%t`@b!vV5cf%93c_70YEu=WUfqXsYI5=b}=%s>rRx1^P1 zCq07hO(mUlJ@WTA0MNF%CL^wQ)<>8`Sj}7muV!8$Ul1C+{j}rrrN#Y^x#HqG*4J9a zqEv4wNEakf0)YtykV0^KJ9yxEZdc&Wb@!LMbQ3r&ljI}5PcklJQPu0v#{D<%p_fNs z-!^f#j*KpF%Yn5Xf$l-n)!oOV2b}3(4#mf*A~fOSRv`{-$=Yo8if5#T{iZSw4HinY zrAB&siec1oD^h+!;d+zk&(@!w!9@!^bszMk?wIrxOJ!aLP!7m*BJU%jhpl(h#mB)0?(`RI3xzQjFHF;Zsf zDf~6QW7$XMV|6Es$V`FPv)^?mV8-;UzzRv-rnY(F3A!~lhIL9qWk%xI$7rOoJYXLc zbkyt9BzqaQIyb)$+hhgKl)4+0lV71|8nB)yuoc(77jpL1y-JxfE347LCei}kf64S# z6is&>2H)#-mUHmG5QCb6S%!EPO0NIta6^RX6Zxc(08phgUQ#MVPRe>DF>8#uFU!m4oseu);<#iU9EKFaO|_Xw3f zpRZu!LV*1WQ7XoC-PFA5SZ1^qgliXNf1yAWoHd!SNSuK21lQ;9`#Q!4ea`BWUz;SB zodek!T;F3^>-@+_8+D$YHa9dK-Qw@Vlobp<&EHfgM|oMfvcB}ZL<014XOnneM_}~5 zDY*1^vG>~J1vRO3LmbHldW&S;AKuMB_RhaMtReGQXD9U`@2&!}yGIJvZFe7Uy<*nE zHv$4dzXv+X;LASvUOjg@mB3O(U6S>4lZc?I+xeq}yS^O>pNDT4x7W%p5(2>kLFIi) z!m}HOIoSClkaZX6NiMLMu$fd+crw%@UTCFw`P0QM3|R2?u|7B9GfDR`I#tflLeQtx zV91dtel4Uu?N@)D{jDefrFLV$?EFDVss9LAhiue*YvO}&1KB@mzA-zSYZRq$*Lt|k z4opWL@DA~5(jz(tuA*0Wz!`k9UXGGmP4j1k)6DQ!0nc)dF0KegInWM6>e2TeM6N_1 zsY#wagabdRsU)vJUD$X-FE^&R?n-*SAY2mB5o33qEP7|9v;zm7YWk~pslGt$yO~ZB zF|{V#@CRRDZE};C6#?Qv+(jBP*|lwbN2VO(IEZugRMsYi92cmL4rbbvM!NUp8KG z2ljuD+^G9{gf8E=hVCs$(Ds~-Gh6VWM$&o9%@A2#{UD>H5bff0QM|AP6TG3js-G%J zoertIO*2pl=JY8{t3#a0w&=RAI;tPdZUfrzvVOJ-G|-m2c`NqOBeNiO8ck`4rgA&K z`1h1P60dW(La{!SUv4Jgw@S8}Vqyj}hQ#UBYmlu&*pwj2?^ zHi=lE6r4FDLO8?G^(-m;0~%1bwx4BA4O!AV3rP79F@1t8>K86UQUN4NX0p9Q$j6-@ zWC1@I3HQtMUH2d=quXttiTUAkq~D5qsQ(2D#~#iWo-Mu4CtJ@UUwA%nK>VUki;JbE z)|?JZec*j23u;TkJduL{)t^;(B`L|()l-gOvQk@y5mA${g-5=1->1J#ILzPeb(O7} zfw1QyxUo6PBSN3^(KDm46R(GGE$=5zXPhp-rEVtwOeN2K7%5W|uia`K72WgoUj&$X26g}W)Y^>(YDYHhJ&(4h(;;qXb`8?ous zWc>(6bB|#Dp{wraLy}_jSKj*Hxb?pbGj88Y+}XzkQu)LKrQd|N2z=!2@~M=qeK>b` z`X!*E<3EFU?1Ej>22TsnZEM?i^Gw8c6$(ZUJ8Xs!2D;uTF7Vk!|1ZE=FmG-vwC>d{=0>k zeEazr^%K%q-^cx`~gp`I*AA*~GK^*`%i{K}Q8{q){TBHILTNN`GK~IjDW-E>ogMs>E933jz933>UE*p_B#;v(&qk{pYW_HjJ2n=`RNx%klt1m&V=ZuDR`@)>n6&CU)yRFLv1IuU#QIt;P zwvYd+CX8=Eqm7uS7bOkG@KkQ!3$IH5VtaYjT_4GQjnezzQJyus?UH*Sd%P_pyKN)| zu>kiv{Ivx~1s07i%G06QY!b}`5x(N)`irMaQ&26m8OlfSrPMyCbsWyA``c8DSshPr z;o@-aVcvsNqDPLNpbHi2k4>;5;jzLLAw;!t70ImdNA4bh>4oDf|I=J~H5W$>7>9za|iT>?ulqoTu`BShLni0mo&!IjdgYz> z8}ZL=Y>yy!(X8+Daa%$-U^q<~;?`Yi^)K6=4zI_>WjtWn55FxRw`m^wzb5G`n-KK8 z6$uM^8OKHu`w}NBU;jjzC zb3LD<|f-y!*>g$T^*^0%fL9@a5&SS03Y+s1P#j(52|rAgwUTdbEH zAkop7EyUz?Z#3OgW{%|Hu(`7IsuTb1X{1jmw2A01%y*?Lz2kswkhTxb17S6O)gLro zt7(msXs6DtVLQQPcOz$($VsFE4&-Pd+i5F5uRc1!E_9EYr`chvH2>@+EV2&x?OEEhYfT@TdarD)GJGXFrW4ejiWWAFa9|NsZxv2mL0>7Z7o{2o8}_BD3gT8cpkZWyv|P~qf)2% zt)J+LQv-x8GA4!aY^N_bZ>LvhDRCBMl}*LV^N45dE%S=UEv z5UGCB*8O+a$YgI&t2_U)6vtg3e4rG0MzoTNVG}@;wF;#5e+8oyzK!VXmD8^?ya)$+ zD5agX(bSAU#8jb3*Df3hqe@M|bkbkd^;-2$+f1QA{1lJlD`h4gwemHo*i^JLfne{> z4fKG*O%1B5F~7amml(Akqn%Udx1zEZ;Wj%pyeSJG^#roB9U_A{=j4|eVPXqZ3Pif3H1c&Uubp6hHa{d!0|XBU(;e(2r%)VKagdnb`* z6a+c#@iyE@fbYrNf$c0+P& z(+$51?M~?bJ(98Ot1kyNW@TQ=&@iWR*&6A2V~w_>oPK%QyTjLq zY^v;j;keR+@s54+lF}0lcvZ%tI~Gyakf~R$+{)ipb;TdG!ltl38C-WNPEzp`p)2q7 zSvwo7yjh95y%lgo<*gtGH+8g<)7T zU4e1ho0tdIEpW6Yn-{VFdYsDso!!X$xUeDdfU~$POp}Syq)4BGhW(I~83hPWiXkqc zUEqQkny}$mlgjr`?J&Hv`6=tAoU6N^7dRU)6DgK_-Gr@qWIO1Y%WjC=3Os2>Sj2V# zX1dd6Gcgwrr855j>RucHmp^eFSS{-W8A*GSuXZq$;NHo6z4pOBD|bU$lh`-WiKr|{hdGIe5uMZ7U>Ne= zIjKh@b``OYZehC@0sGs}Z(c?`XN25-pR$&LU8+Qw$eV1(J&Ywq5CK9VWNya z$`zJ&77nz29L8I?FHrv%%jm*H^>Ozr8_SfZ@Q)K@P0SbdP>*|IPz_;*5Z$!?B%YIf zsekD|3VWo}`mp5z8`DYu37fT=u$cPoIbnyZ<_xKB5FWXEd5%E5Bz6}iQM7rSY~mSv(wVQ3E_cy<|l{GO7q-)nk;;5A%k0nlT?^2 z6#c$q>-N#MOE+WqQK9~726^xnVl0e-r%*QcXqs!~$$`oGFGJ;&04vMJuSG zKq28_#LI+2W6G<@V{qC(rFtGJZ>PaN?LH5DYd1O2X;`T9pDex?GeL?%8wt+DxaeUK zn!n=NRM+Y^sMt>U0m76Rw`XA_Nk>JSM^n=%TdQXQT4;A;r9cH1y}LY+BSDRc`t@BP z5Pm%%7Qm7jZ}HyPhxvuG-Teaw^)yP#yTgpn8yvhY<_CH`FxyML?${W$NPIBlVE(mM z^2qlsp}?HDLGx!E38e6xE>@veS9m@();;Lv^BiUY-A)?~y276p)W16&`MmB4D|2xd zLoi+8fupI=$mw^dbX)un$m?x!%h1*?&xFIk72G3zjU(`|*pAtMcZ<-O-t`Y(x?oVW z)obf#>%YlyTI$k+SFBlg%Euqk4kZA>h->KFJ~c4$HVFn$c=CUrNP-!6#KZ?Lk-TF{D5VJDQ+!S_JJO*!O@v z8D7^R@ww8UgliFQPTt2MX{RZm`Xz6WHF9kVH20g=?uV4Ai7Oo*VhRe`RsFDTaw{X1+>(6_G5P)45dEGkFs-7XCu z!*Q#mPTCoSo9{N#&Fa&yNz>Pituq&1ANb8_#^*j3*l6`EqOF)+*n&1|pQo33&@dmMT&_ zS1Nu|2fVw8Z$9*h{wu4mvpvI)zc%@HTzwyl@)cC9yyj~N8nwND)+G8L8~-L5J->kS z=%k(GoW}N_1PsoxmS#8oAOFD{k0xv3y8F?F>^z;D+nA3j0B*t2)>%f)B3AokWbsZK z$VGG}pXz*WG3Gobki6}&X>t|aC8*gym|sMV@;$zEv;y^sf>zRyj_UeG=&s~T5JF#b zxqP$yz^`Pd2`2Z#l9YpiuNByW8N>BTGg+$xKaEq^QQjUYblK)%^s&^O-b&XsT{V;7 z>46NL$1YZvPFg}rXJEr;vtLgO);S=M3?nvZivR3m{g}o$?<(#O%@N^FlazYWBJmw}cE3er(>&=Ww1Q7Sy7P#C zgt*Y(`R}+20${-(^&gE6Wf5dgUc4M4#?o(Mc7;ZVHXQU87rp-{G-nd$&YiFXP-_fn zi9;;^zNwqMUg?)M$Lx+fqd(onjLts0cwCOlesWSNdiJ?MKZwclV%963hiP}j_>!!r z+aQYhMAg!kOlD63@Hl zX9BwMaJGxAxO$yEZLA}HlLMa`$0GE;nKKMTM7MZ8sOk{zg3sxu?!XE-bfxn9SR7?V zYq_KflIRUwJQGeqM#w{;W8mSbx+n&BcatLXy+}Cf1y>vwPnP}Vk??}3Lw`&aM2x%C zPHV~8Fv%;rCUk4lM$YI#^ND2>eti-H)y6taHKMvDJ1#Vz%gXBHt`$>MU2FHMYSw)| z8WoHSvHBgasaJH7{!8+Wlcq`0T&l?vBPjfo#o`|@^LdJ_E?*!-@ym_Lr2K_B^8%P(@Io?-z5{0EQ?BNBiZ)!z=cV%( z_?q1+RgW1hQx)ug@O>Vl&9Wij9OxE0orw(WdQ6lAkcEucX8)oY&BItILWmPp zLtP_K^s|Wjpi^XpgC=dnVp#0Y=x6D<==$E>Fy1!*7Z*bO??V7+;NDOA9%o?>E!sNx zi7ixvjvi&8yM=oTy~g%LWTdZ+0!R9Tt`|+PEdo@fd=*ii`;ymSqs>tJm1bs$lG&+{ za?qJ&R7n&X2oKWx*xFhXOT%wet|3&d)xEVtGZ^nT&We~)LHzQs^Sz2oZAy89Qwlos zwBcDVsdSuqiHn!ohx;4Mks5lg+4E)@H3yEt%7;iN!ZOLQue}&LMJLctTO}M0$qZrKVrC*E90n+c+a+i(A?LdYwpOzy63*FN`Jk$!zHGXiiZ zSiJJn0ThW}q5CKD;HTynyb+48HpCI!ZkM_ZKyGn$wmt10~rGJ%soV8?u-F~afv%)w&D($r<^CM zPj5iO?-```D^M}+vFU&O5##s5wEPzVRzO5CmVtSOe^CC_gV zPH6Ay*aO3$&PWTic_zI|u~1b}+t3@ab{Bu$)h`KmvEX>wrAoW(z|ZJY7#Man<8t z)q-Y`X$BHq#d|LWqR=IoNc(yBp6S zC+rgwMIpZn@dZEXG3EW1jDa(?2?D}DeozQOkBrh%`G44Z%c!=#cTpE86iO*t9Fn4? zNbwd4F2Ra>aavr9Yp@bLP@E#g-Jw9SqQTu=i@Os7m*0QieeOQv?0xS(_kOrvnhzOc ztvQl8#=BPL%$mdkt4#6rlzRQMevkbZ z(fbe>rV2cxQdvy5YyNC`yh9s9Sz3L37w$o}x0`r61AY0;Q6UQV4OBZwiUsG_V)%f^ z{=ralc)P?C)$-q+8`~r`<0h;S*2ULn(L=?h#W7CiGEu%#h=^(9ak6gHS=bT>9-_wo z&zkuwGhXp=zOUmymtUl!#;JcHYYPs$*k17V z1)8Ir7zOunijKW~POKpbm|Tr#$~`l(hJiAURtX|dFTPT4Ra${2Sm(1L0VEhFB zXnIGpjq^&Uv~obsEnHPOUqV$Xwq;s$DM01IFStuJbO6!XhMj>1Ox7l~^X^ei)F~2CaQ+LLFB?1yctu)P_;m`_|*leW^ z1?$rCt4V-I^sOAA3D_+mXT8xSbID0lw{D>nFQCYo?QQ{g`DM~26!cqh$V~jh7a!(7 zy7EG+u5a*0B@~{0Sf1K%oRTMTks3~#9sMByGliuSUxws ze=a9JKkUe8d7-c>2#EGejwF@EbuVpNT+V?%%c=l|=-_4F_7QK=<+RYS-&C%w-T3x~ z%95d5f`>My`QyT6Xk#{`z^^k-CWXW(=(pAQA|p^jbsG2D&NI`o8FqWNb8T{0F zpx<`X_N3YaM1eQQo4ztdOOcvG7-wHECHLX<_xkvY)0?t1dTMns{xNY}E+W*NMtC-z zw+fEZ?J5CbXZ^e7#ysOJ(SR@K7W}`_zD90U*5X2fVQ9~GM_-%Qt-8Eu1rlR@SjUP{ zmlhN9#5kyqVB}200kl2w7ZUaLhwA-g3aVR1$$AO{B=1mr4+MO34o`VkYo-F-jbu>U z@W|Lku{3F83&?WrPpSDOsanY-exXPj>c>((bbd|EcTWvyVN6hnSKUN5e_;20b$T?U zMa~a#)iBDH8+FI3daN>fq;=_M9|HFXWX+PVtKtugtJ|ahsF54D^2z__;)iDWlPJ|+ zUCzBB{J)hCas`;y6ve-Jx{Z(Hac5!f6a!S+aJ~NJ&S);zkrP~!pQ4*OEwTubUSNwNqaAsbNh41xt}!z#G9UR2 z;LkFiu|BGTr6Q&&tzjdh+1j0*k82Xfu@UidlICR%-ZR>9vd0zO4h6N`O_dBKSWih@ zLJvaS`doY}7j(S8Y5(FSb6CO5rCBNDt1EY)s+CFNG=|YNb6>n=+>+goE+ikX+qVKT zJ>m})2ZPKY>>~50Nyo<5wtx|(jmIthf$_7e0bgCG?}y(R5rVl)HQu8&JoTO_+3DkZ zGWU}_Sx5dRcQ;tt4F+5u2rPFD$6$0%Qf>N9YkBf0>C#8#dO^I1{gUUXOf4D=kv+o? z6uiGNC${gGD5{#0Bs5;8E6!wKET1lteFaLO)ki^6!LUOL<4O`zG%d#b9aul$(j*6m zyy)Divzl_9nm;+ADZulUkB2V$8|pB+kuLe#ycT<%J7U9$>n)thg>S*;hWGL#pn(rsL3qYoMB z0uXryuS`_=ojl^^xQiyR8jwu7yh>3S z$w*9jhF;T;IiG-}yP6_WM4DF7Yl<&r1@)fBLEo9yhB`;UG*)N^BYA8@A%$XLf-3c2 zu2p%XBu*GS&IhzUukP8j`!O18?a$q9zE^hP#{J;&)gRrVXNdk;1@~n3?ENL7p5@IC z#V5S)*GICZNMVHB;8acfE?|JQfV!6})k2~cY==k8ixamztS8p5G9<$!n_%&?j9oc; zjor8R<$!U^;A?TR(p>{UI|Qs|FLmW75@g2U+m!uQ{32S}={#ShscMW*1|nXkTmOM3 z)t^F1QK<-^Vnq`0E=+Yun+mR-`9eeSCS1G@r_x!pFqv$K$zS}GFE0J+ra4=LZ|eP7 z5;V{NI?0G*8f+t3qItEhVurrhAnUC6cg3z+%IjE_SM zV<`JqRcw6b)PiyJdjVJn2B~GjtvD0EPeY3i*9Y<_3fTA)Qp=P(P+V%Wo_@J#io%ME z0w1bBxS5jFk`{$RZs2ZVE^PMm5!k=F!*rX^)6hMO_5=Fw$TZg}7N>0V0#Ervo5M5@}E7HT{#{~6j=@edlbuXi@WgBfT(fWDzE`5klYYTazwMKpQ`$sLZ?pZax z;uFxhjskL@t(k3=^g!CKUja4BO)jFKr9?)eq|Hx~c)s#Ju97$~VjfkzR+nh^lJx{K zd~RhK%XfG8{QW+BYCuc=4!wyd)=g0_M!54yFZG!&QD4ML%y&TllsvvNVb1_hYAUhxJjKfSNU)(VN zxpv7ZX?pJ}pK8N%`rzzHjBB~ZJu6h(@Xlh8#FZ%!7}Q7F5(EJy!1rH=q>hro~iD1dHOLfY~@V zsC0-rHc}$ik;+*Oo?k>9NCtP-7T5Qo*mnkN(88S01v^ z+QM)NrbI$IR%k9OW-_X%qK40uRZ<5n6FC89RAZsFEROGwpL>u&n4+Q_U)@B*Ob%n_{;;8TJtAMpVUkTs?$^X zpc*T06H%N(Qj1kpY^m{tBD_#yM@33{{IQ(Rw4o&Hj)&Y1ahFt)t~&_;RpzzScPf;K z8RK0qPYk~T4m|+GYWdK{MGbJbbxVdfm-S850+J(?0R5uXu}fJ1qF3+aw=V;AwyKEQ z7$QtWONQ?}Sgg)HSXajC!Ks2aiIOo}!?}M{`@8PdDG1Q0X%4C4>RT^r|9So#%%*rP zN%1*r*6XK~CZab4__flP6J{H}F^BE$TGxzSK(&hM91cmOj($ULm1tQD0NuOFsEudJ z7Fxx+Gxf<`HH%Yyx)L2ljS>Imn$p$5bhl9n`yt@s2cAz16W^rK&DrpiMCC_(C`8Om zGF3qMif@WmPky4YV38qHCmMTrRdUw+#OwF41g!}?SP5Zr-`{{{FzOcO=hDAIv2n42 z8lyO1P)LDRZsZ^xMy4$m3?|b?;E&cqr?8Q!XN({Dl9~`S=WgS#yi-Y^S3G|f4cqbG z8r6Y@-t^s?E?gv0YuI%{l=VPH<)gSnpdRdqnZ=$jboYU4Yp9s(J=7xSbZ0n#E1~q| zuh6AcQ4;e8)Cd2{O24DKo|6tjBH?s|LJ(3M;+EZy6bHN}D6`D1d8N63y(%2WLD+qp z3;HRvsr|<`=eb^nAgg3!*24UmHpx$eFEbtMs)9iyeh$WXwI7$SJrR=}gqP%iuM0x< zARIt^Fq|b3ioG+}&WT_K#E0dl9V14~ag|gawoT)izT2{h?3G(`aam1Tgh2}+ zdW&J(&!|8x=I-97w|XeF{SEIx1?ecTqc%rFK>V*_E{k{ltM2amsGkAnM;#ug0OXsF zj;~HGi$8oqFa;%JMSfVUS|DP0;ZHZ8*5B=xQ7m?& zZviRh)d~Rrei#9{p;5+Qwak07dEVk!OhhMmKl}63{p!%L_kG3Ov$60o_BQ!B~HZyu0rfcdqcvZYpuwP7% zkdWdooH#vW()|!s!CV9pHt(9@Xe9EpHiONb<)I}Q)HJioEW}5T`{Q!@qT}oe6-lP~ zVBxJU!qEW4ae*A~InDyxAyhN4tCqFL{p8pbyI|W_+P&r0GCYV`7$?&X+>dC(FRXkU zytY#@m?<1n5jQL?CYV6*y4T^}a4PznFHVo?<$4OTo*#1~dp9F6F%r>S!O*`apr)8m z@Y1sP_RP}#D2xSBIn0-#B4 zRyWx<=Zv2!*wU6iFoHw2Si}5GtL0ACLaJEj64u;?jIK37lBqr5ZzH$6F>Y1ZE)a;( zW*O;s;^!+;97VuA&ei(|`yDWB33EAeOU1dAiGBTWl|vN%Y#W3*S1ALM{h%N?H)s_f z#jQO0Xd|ic_1=L*cHB)_Ew++aowEOyLAtl_6)J)WcNAy`Il|u#7YFj|u)Th>_A(Bu z_z)gaGXw3EEr=$uf$BO+8tqH0u~N4pX55xWXf6Dh_52z{xV;m#%yIE_9+Eh#d{ciU7=3;_9{bpDG^^s!&gezV;?$gvLqlGhiG*b`$iJyz{}q(_ zl%CT?6~(3ES59Vu8yZbl7`&K2-)L`^(SA*a5a8w!VjxOUdc5p zelSG8zj(=bppS*NH6UKwcvAY=NO|{j_j!l5l)~OXcfds_kPaJ0o}*K%Z;X6oQAGL>88CflklU(@=k9L`spPTorGGjx-y)jJx5Q9g(ad)0EWlVo*FyZ!LCD-m1ch0=6GEY)hPfe z@joi)%hHV3==>oNbAqf7cTpD#wPqO1C}LoJ_CncSVOPepfNufjp0=1sML@|5At9NK z-qWi8)AKpVZ3f`OPiBvtcmZ!4dwOs**U)wDINn}_Y`Su_ihIX;GWUC~Ve-y+yq(!n z7l9xco3b*{B#=E=I7JIW$-8u&WwIRhqA5qvfc54q^Akva@EA?v#U+dgtcbUZwU9%h z*z%U8twXL!_T3vXzrN`P-Z?kmVt*_RL7V9Rmb;XW>9&`+L_kRmQ5c5g0wYF-cc6T} zaWx^X_BL^D9j(rYd$~`D(db27gs|f#&q=NXIp!DZK{DJj;Lq+SpXKo)v`$Jxl=HN9 zFqZ)_dsvHYz9SpR__)fR3yD7hdTuN-JD8P=N3`S(!}!lJNARhyWxnv(QfBWku*7{7 zecp{=>@_=-wZ70Sm4#RmNY>IDM6M$U z?BP|b6?WvC!{8t)ef@N^6&w8wL41WLJU*Qx1(MR`yd}ItlBPJaH{9WbMtoI-0sw~ORx~bwgEVObRI$e|@{5>I2?_azcycls3ami_p zk`_0*5`8<0W}zm8bMf7!4(@YiAKLV>HEr0+MrP$xQV;h2l<1EEz~0j}Bl`9>d^F~} z6u;IiQKS97(g&lpTjU{O13H`FOz~+z+gU&dDI0jvLY&n$;#2b0iC_WTv0`h(Nd@1w zOSkTDZzGZl@-flxZA`wxp2^jENigdsvffReKGyH;==z!-i}7SxE;>d4cG&x%EpMOi z^m%maZ6}OXYOXGYjBR=fHJ=J_!vy^<#7aeE9W*}T?$Exi9=0CbYea5#nU;8e71QpAe{k#?tKRV~=d8 zRVrMpK>T7_j81#2!a@=?i5LDnz$Jj-^nvly6Ll^otB!Q#;>hzStFSdUCDvMcsX2U#udue8upIHIx#e1Sore%ayP4^}31E`09}iroX3SiQM4H#_*X63>#KQ?bHm zFpTYB4!I>L(Ft3uRH`mJq(Cd$9PkC<8r~mG!G5x>VZ$N=_QFGb_2>hMY1q2(a$^yW zUy)$kO{D`Hi7!Z|Mk`%R=Ac`sS`~FNT}j5y6(+d!wZ8S_kLj7V7qW^l=TH1CKn+a% z(E(kXA=6~v5iR-E;E^>a&WZE&djVkuqGsP_2q$pF+fKwFaGENlAzL}ybQ!k6Idy_8 zm{;6T8IM8|u}(&<*J(W;gLMpX?9J0$J&9so#uF5@+_R}&FZ)0d=uES-8-zdRh;*nT zLagqhc5OM@L+Gr-NyC5H;rCq7y-at@xa#q}Tk&0<_+;G=>wc`Oa^M512ZYr;v@*>@ zT+k>jCnq!@%gj^JkMoUwaP=;PR6s1)FET$Z0k3cNy=MIEF@doEQC^}JJ}>$Z_fM_i zX-@&cOYh`#{OWC>gsol;O9dgt>ypavn*O62CT%EJ{aojamNuHi-CCI?Lh}yqDNd_* zeW?5i&r}`M89vKX8H)Y(S&Y)9)_HdX=`vZW5Px&>%x&Rw1x`fiE2D#UeVd+33Vzuk zY%#K{4XF`8a6B*B_o;Oxcz2Hh#s2it+|)#f$P<^kri%ioVf+=GoD%+V?=xgXy>8+7 zdyGcX_%Zgd!1OjW#zI=tSh0hJFE=<9+d8m8wJYn(n-_knmO*YedCP7W>$Qg$5TA{~ z2SA@)^vmx;D)=QFMt^?uSuM<&^MSY9XxqWxiURBq6IKgTiz5-cZL|THV?`!*m=|=D zQ9>H(coYPDI7y`RXmX_@DvimmHNr9k&Y%?zh(TOIV7kGCgO%wd9}VyEjZyYpsKujZ z1sU?jA+M6c!o~Qx#F%!3Z=8-Rl?{KfH42GQtyX?z>L{MsLwop0yk*@F56qDE#YB8k zN(u-v!nZ(`nMb=Xu89p3+3xx*<|%%_0~gVp3y$d#u~6@0aTcU>HeU%>v^fs1mdMR1 z-ZK%3ILxQ7{j|&?z4YH7Km%zdEJ0+P%{0S9ntS)+WxhQQ6U;>N$*E{w&>8Rz^XMZDUshB0 zbABUbmMeMVQqDbM51ZHb_c;tPXg2zy5)B&hr@% zQ_qXo5CJ&GjT{}t`Rza>rJH=?x_-=ZX@>X=-`l*8(=YHsM}ltNbrJirw&-$O;;1aY zVLLcZ!crk!Q`c*P81V1Ypen!pShgIwX}cr*iZP=L_dzM~1NAc_yRO_pupim}TE{59 zpSh{>q;#dkV;w0zf;pxek^qC>yU;Ow2nTt10S~q~7*{zyh}O_i1LwyN0s(BqYL8#; z?K$1I8Rd;zf<%0#1bnn&4D5{#iGuiVyLyv2H}~Nl&H*xLO%y-Lvh#2}Bhd(aL~ecHm%f6ZMN(vnFiu!sLfFy; zl=w8t<_$svo47S{zwp4qq$S&tYI zeeNA_-Raf=b#0ZXivFu?bAMYWWyp@d??^5yswT-Fg(h!H5j0c|X2`?u7SHS2pJf8X zvVv}+Y{frm-aI{-xx8XuUvH3d!ca9ycJ2$e)~R)o728e(&iLjqNO7;eEOB#RQ)bxO z57%8Td4J*m!=4ShXgzZuVuW$y8ZyYp* z0*#}CgqE*>l7?a`lO@$Ukr2Ee({HXzm;&kdZ{h;jh>Ntif7Cn4M7n(ooe+VXsEGZx zbR(V+<$KY%Is>AiZ02Fkhfv!}m=HU6nEbAKPTWZ|WA3_7rgE|?W?PQ?;%o0)(gZO| zV^Vn;iF3Dr0{$Pn2SGjgrFI9)DorI~w_zVl1OK|sgbE$At41t%+y>R+>hP*{D0pN36d8 zQ(17Ov;yf;Grdf}%!VqMl92Q8AuE%Pd9{}~Ph#MtkXsFnpm6M7zH~=QJ4`$ll*z^Z z8h^y9{Pl}zwA#x#LrsF8dTS=Z19_zKG`J(Licvgc4U37k_Udzp(G$V!@m!j%S7F*= z@uE#axJ<<}oqR!Jya3cTyQv+_SBhYo)K~C7RFQHlAYPi%C9;_vj+vjR;aJJOZc?e3 zOyP?e$C#OlnC<7y22sO~9$VUDavvv=c8M!glq9dyuWS;`ipd9ev3@r&H1HT$rt$08 zL&soE<#aS3ad%yBUu~i)&W0sYQ&ZBTzDpFRri9>*HgE>S>KBpt&n)<(mLv{SQ0X*?OWpy1Bl)xz{N@+sCBHJXuL$mbP>CKBvHx*dLU3?vze zF@p?nkL$|o6vb0jnu5-h^~uh9L*iQiB@F}-bGwH{a%b6Yg(WfS#I2cuJu|+?zDI3x z?Hd$_ADo{rJW8dkbkw?krJ2dghhbcwjwzWEXwh+fNp!zseECE%0n?d!D-010+%F|d zo=1vi0B=)h$r$I0vS~k{UhLEa?qceWL!GimIQidB@+og+EZ|9>?fj1LI*4{sZh??_ zY<9}28L>w7*P#6TaJG)G?xZNPy%jqBd+D34jYG~GKG}L8{copx+{|=3Z;^tNM6}rF zyDyU3G*);d=?$?Yd49Y%3Lb8x9ty>>Y#{_aky9_?H$6S;SgN2sQVI_2F1{LVtRw{| zCYyG1Z^2P>ewu>e)~sB68lyeH1sLQj-&)rjTavFASu#4Mo8#9k!#cSAyx2V`rey+6 z;w@|k8mJce5p9L9fU&ODbuf-bu$R7a=yl7A@(mt#ynHHaQd{0YIK8QBl7 zR_4x$H(5}x+aovIZ9_knZwgX?%@i_c@WeRRZUrOg=<+Iwv3(_3J9F2g@Jb=w_Ol&X zk!xua)8`UQ4%(@f$7W8FnOSJh>rM-Jo{PSYS@(yhbX;3c0E1}Fuf5Obmza#X;9nNC zjCOudJ@uHXg;VQM#~TP0>Cv8ZP6N;>rjxs}}%e@)q0G4Yhv;x%!7s! zwTCf#eQ_2)<=V;n7zr-9U(v1Do|wIsup++~l^Bt%?X3pZ%IJ8PioTi2QFd7#$D62n z*AV==_>gk0Qtt6_z5HQzR7g6(?82O)$|?g{|Fpyxoi!?KclcbQ;+HVnJ0-l;IXW3v z6H5tNV?C5yWc>uur<;*P4HmPJa>}O#OXGpakXky;J!gvptn&_BySj8iJpby40N;{r zgrj}SY)B3VLhLif&-KPz$N7ea<$1f8ha%f0$Jc6~-$L_%CFQ2`C-7T>6W#(EdfWP; z%?hW)3R=o{7!t@98tcS8T1sy8FQE9DI$Ao)0cF&Zx+5pb8cc`)%=~`5Sp<29w-_z5#>l}AQ-b(!tSg`Ti9ESMFa!lwr6fQFsL{TANTMela^IaQ zV`seR-AWMJ{e!9&c17et*T76S^s6Em{*mI2dR3yGeK;qA*Vc&7_7J)>2i;J)KzlQ? z3=>2&oc){Vosb^3b$3;4y;NbPJR|rE5LA~T{5=HnBHGu7;=-eXP6$m6IvVme;n1Pv zc`iNP{p`f$>$UCWo8TZn*Vix?_SiYl%>B4ps_fcm)AZN45E6EnM(E28v2Np;i$r@? z?CFrg(ClRWcn^oga&jw%HBY%y?HHN#P}2T`AD{T8Jm|H)VtuH_!rFa$-sNoo=$)tP z!&9DxfRfDpaz44IpY&=)y{4(A#am-j{T7q;a<2#!m(iW3Mv$D7C8E@rQ_KYG+-~vc zaSko&rQ^KK^iYt`r^WN(ipLbw%F1rO8JL&OAz|g^yiN8P2&b!@7~|^(KNtZ{zbn$> za=|i!r!$IA$!eSMp0&`F&gojOSJIym zKMtILb?_A2M1(%)8Dom-Uv)yowQ0kmSR^sr~M4vc&0)IzF| zZ3EMcZ*UoX70v>um#G!~2j*v@y4)=<^e0QRB0RTxK|eHSYqE=L)QCCT>e4X9!+X`7 z`NPVG)<2cZxiZ5HR>NdOJ9QjW%YPQJEkA1G-~K1s_`LsG8xQ#}yz%D$?u{4uU%c@S zj#T6SK^y;z9@g=nYU8&Y%f95FABDQTf)>>^@W7T6deC8z_jqbLZUcnE9VR-Dag2nZ zg-*UWv*;TBqJ4p+IvngBB;7RSA@rx;WVnF&yc+D^TV3>-ikR?XX@qoLmX$*WYNdCZ z*_tx6^ODOk&&S;R)u<-j5l9cv1|=x4ZPmRb&QR_grLDq;>Fg~AATc}vn~ru$?ga#ki7{ZMDeM9c70VaB*|zqd8A=A& z;#ia6PTuOVRMrOoZ%u##JL|)K_6Q}yi;V?228u(Av;PKf-NJZvQ++0Sh#~@qF%NJ) zw9t>;%AdLiCw~6Z@zvuc!wI>Ecl?{lNYlZi+PN_iLA+`TVEpB89U9yt2*O_c_~}>e zxJsR84E_aHbp@GtpNR1JSXPHR&MR5**rG%d!ChMnW6a%-`T(al-oUdn<@Ne^Fb}Fq zSh7ctC7;L2X=h3w8u^=Hx)=%V2(QwA4D!N^czUS@YRSqhZh+Fe z1HzWm!NlJ!KEXi_oRBY(GFCfMhTeWbC=$v}+W~yR9urSbpGe+jk;e37?@=j=Gk^O$ z5+}>I65T@bhf}q)RFx$4y^D^9kP0aI`|}i+&NV@z(YG+ z6$LDZK@5-gko+XSek_Z9YH`!Um$yX_%N82gBk_`OlT*Fg5m13&DBAk$jVoaI@TXrz zZaO>u*ek{)vzN?b(>q(n1+uJ#w6Hx|{~M`z>K5yUS5d9spkyJ5(5p0gL#0uq>zKI; z!QF)ipA}($p;m7omyT8hifmyT^flvukjS?or&za+HfS&c5Nx_p>F_?U`b^2Pj196y zCFjYK{&kl>y~2X8U)oaGiqvR-3>F!B1GWO#K9SW`Z$hzHnMtJnM$QPS6-l4LPJ|x#yb&R+IuoI6^fsa`zLeVq_S3oI8rVL=<8HHQbn1_XbDqh62^H%1d zN?M1@eiF1hwJZP>(C`!1E5ZA<;9lQ@$^Qn7>5UwzFhroa=LSibovi{gBxV~l&sO7Gcd!j;pF!>y&!U~N`il9ag80Kl z%gcZEXGc5bi&h)~dzE11G#bK~c^K`1r^}chTeQV}jWb&)ICMJCtp8_6{QrAJJmmj$ z#0UP%5f9q;KYX>xRg&yc;E(S((AVKRY=!$+V+9RaX*7t*!>#w_IVb}hWmqnLM>K#x z^qP4AzV$~10^fLUhEA$7d0?sosDAP$fZ}nFaYv7^Q98JDq~xFY;4Ej6H~8Dz zlz}6O?B4IS6VY(9grfdyjXdOk^2i_kUmp3E|9g-8e@7!9^>#hO8x|yXi7RS|EUKZA3n6ved70ZWSFfheqYV|;WMQ)DG?bLN=;$ZJRjg$ z=Y^Be#zv*eD?shn;9#r`nYVb`k)-svx;?$7iGW0MN~zSS-v+breS7HvanKU&eRIkta4a)*%e3iN1;C zd=TE3T`L7a8y$@E!O_A6XGZVuss5cB={AMAUa-{a^Ll^Hy+1iD6_pW-tT zx_AI~hSzU8GZMkO!XI?^1Wcmj3d2v8&8&NBD>WR|H)9$~Q`L%WHN#>k@b|JnJrB=| z*y7Bl8OoW)SN1`w0ti#IDV*fqFH?<90LTz0T8W@`wmQ38v)3l)#@J2WK!@Q`M*sRQ z_7nouBXwxRA@>%0H~W;s@HxeUucfyxU~1Yb(zgSYby4NP>J7KT9o|gSJN|M5Vzg)c z5cpykV#fQ4=uG>Zus8CF{*lPKnaY6JNGB)({o8kGUv}Gv)0ANtu~5c$a9IxsA0k2y z-!Q2K3DZQ^?=22+Q{4woC=8iCh=yoxg3*(9hXNa10|u$S;}Wfc8mC}`9kF8fB+o9X z?}OEwh9A;EV*(rzbd%K{g?uROx*|fb08!<#QBhlpRvMVg!}V{0EnH+XC;_=nl~b5@ zgW>UG<@u8vDGz0&DmRVv+o0SX2>x_YWX$xH{o4}$?VU<7-elS{mw#4^|$X-KSmr z&)t|J`|0Q{^kv~W{N$jVMvpyI;^5g zJ@MY?mHYE63|hGhsyK}RkrFou`Q&5 zH6P#aKySzRA^O9x5|bv>Cr0KC2e#IsqZZ?C6y>_6yuSC#mfn-J)oxTq2N`e*|HcXC zMz{YUb$0_OBY9gJr_z|J_62fAZnp2gQRj{tMvCQHVxeR2bz6 zI%-#3gr3Vz_c0y#8FJ znTu@pglc%rzfah!JX33flDLLl#GX>;2{mdIdXGJXdd<>#-78fD;4w4}l-|t6f{zj} z`iL(>xrkOe%7S1J&V9?KbF0L@81Ek}&&V**x7rK&q*dMl7uY?U4z1OKM4C+QPe%?{(H2@CtG2_1 zsJ0ectESz{y@Z;kr+9^rGsT6Z_*Isro1o1PN58h{?#npdw^Ce>WTmfIz!l9hJ~g)3 zx0Qv!ZYh9Qqo)Lw1SbUCV`l_DT6`%%Pai|7*y^pD@8Z309GiC7nb?tBQq^BypT+%aV>J{POtEc|Lo2X%J$u=_;s{`{uRP2k!T!7w%5C-X3|dtEip*ee6DkGt@2I*TjrhoOOk=59FCY~fXG zBBB&x)okbbwbDuIb}u%A63Eg!+?-L}GT*;`4N`SWEmlp1H}LN@HiM#u>0ICq%w0N7 zLksu9RYIk1)I0NKkENstQ~UQOu18k)o0eQ^j^uz^8}GkY6M0RKwp=rX4vg!r>Vpwx z-jYM!dPr7UqFPP&e`^_BFXulD%~gSvUorm~GA;KdtPH*5g$q@Jb}tON7CiPRm1wwO zt$jn>Q}b6k5Ylvh1h?&qL?kB=o@#buk+w51n}H@=(=)VQK4eZ<8Y_Y)e9RdbW4R_> zwKzX%KJ)`yxQ6U|j=>hg+GKdya5^Til=-@caBz5jy4a~1c8LJH9A|dn03ppbVDE`q zt-;Kv!f_#6TL(5;v%+4Ig42+?KP518^2Z-kGWvl}sa&ag)}CpDnE*>59zzv*0%B=t zUl$2s8~A8`vyCL>5`aG5lXQaNb!O6OGK1P_gJ)p_np|{n9T!?&Ql87(Ev=v+Ui=?>#B=IQqf^N%~;#!%GONXBQNN~orb^8iF<*^^dUET1+dwcYY z$zbCHca`uw%Y4V)g?bgYc@@P@{K4vl=i7#4Zkow1mTi zksf=q;HtjELIeaFPI|3O`wf;3BbK%B!(%ulpWS#gU6*a`{xc}aX*)&T%&6TPDBIb$ zZuNldsWIPK)LhRk)NHr!H6qD&kNz_ z-b@5(&ZV$RNQ=GW2^vsN(sstW6sL3;bRcI7TwY(pc)YfX^H-~zyDpK4B*6y8>k(QJ zTb_P$;ge;GB(&{=w zujz5<=gu=cFdfPnejKm|QXs96{UgDDb&-?^5fh$IZ#}B^$K(Bz$MNS0DdqKui7R2X zcPf8J?Bm5}sp30Y-+z|=T)0L%wp$0dZ2dSQm-Mft!t8k;`_*I|EuKf%2J39O6JB4x z)xDV-mX0ubizz%2a?Q6Cib(RB8^#2B)_7}Qf#~4F7T08`Kr46QrdrLVgcsfs{&<4C ztiUBX7Dv4S4B+r)l3+&hV|1-%Zr0b{9%nv%_c(7o-dAWq&lQP(pUfU3^BejY4m99D za~%lt>P%$Y4zIROB#H8c0_P~szfwZe<`dSLaHP_pw-1KtylI`B+J5MSRP*K{&RTlf zSO+U!s^z4pCLhyKWD^PQFpv=U0@y*VEkdL?mLDyC0CcZaSuK!Er`$VWI=}to+3oLt z*C7A9p_^%m@weh|TUBzeo0-i~##L88q4>5hO>f@rvbu*-QZ2DZ3Cw0%3>Yr!ZPR^2 zpj8V+T&pkd)7g*+^?-FdP=PU+y|B|t>ZREy^DMVy5XR=Fw|Z9Zud#%n-odca&hoZl zFqb8|SZ4nD@TKE*^EO?E6k@Gjp@WuA<+9Rec(^VD#%2#;RV#^tB4+y2ZY>mZe=E=h zvWqXY^W9)gIjR9?<+Xrq4e(&Yj+=VR1^5yd-^I+aH9l@koG|u_v8l|$$ENm1i%D$r z$x_HIA2ez}=-nOR%g2TGVjl;{l34LQBXDb`vH>b>C}GO=sTDGL_3y``lR*oeE7>`{ z?8t)O#mefF9pJd6#vA2{^NF%w@W;%O;bp-UlN#Ypw_knW!^i(qM}FZ1EDJUTmnUVU z;IMu)o19bC$-4POa)DEAYE)0Qpw9+^O!H$Z?u28$w{NDzx0H9Q(Q$q>N zX%iRYrLead4*bSAOTDFZCX4&i#;ZmR+G`&ga*RAQZ%!N$=$talh zS4!@4dBJG4deu8f#pnkA;BF5=X|yx3MylK$zuDm)9e)|&Lxe7kj6S#`Y5tn27SU`0 zpRuX)qgz<$1UD?6e5IoGV1wqvu!}rp`kznxLga7t>X{qT@$@-!miNn}SjOOF`OH0& z(a#x(M{Dr%VR38_qOI2y(BKO$q&MFxk7x!*tR<<$js)aZjqlvpd%08Mf7^K?ij_P4Tqq1I@D63K_;Z^Ij zy?EBs@sij+xZoJ)D<9{TkCht{X~O$GxjR>t_LXu_taFuI_2j$P%`oQbqxGdWxV^_* z4mXvLwlYM$OZ9OWkW?eNO@fxgg2Sb`^Jy5KVRYh1?PLp*`H&r#g)YKZHxR$vlG=>y2Kgn@{(fw!j#qB3nNfUDJFD=h4mQ|8vZxZiPnFVE0Tf1B3k z5xYEwwT4#gJyBM@8wmfTd-<|{GDS!vWl$ghO0WB#u=@*e{d-9pw##;X7T$r3Cv;CO z3qXE#>FAq14p#VdAahDWdhB?Eyg3@ESUQ~lk(Qtp8MLLKiJe^2%#4Tz&jXGjG?zw^ zp3Ztl-pbrjb6#rH4_*(=b<#cp!dqYUg*2-jVb?E8m>j#Hy!XX!OooY?i*XdU6s4G~Jt z$OdU3fV?>EuKP>OjS98IR3m7`?WO!{8XeNu#;F@4Tl%7(8OsH?#{#E3Gg$OLo~&!j zMN)R;Ucr`Nx#$ZX@b)W zKbzM3;I_C|?GTEWVP{2NkI9O#0I(Mh(Y5x|GP_6ssVPf_tu||US36=e=;+&__nx6O zuBOc^0=8Yx>I>};@Gg(2Dpoowd_5)uaKJzWeo&12rON)i(28=~?p}gRJ;@%Wt(VXu z*mUtUkHf?_hkWq%5Be3v?+J!=nP81|70znv7_Uzpv%ou%%So__TU9grkfdvj^A@G; z2-pd)vJR>Ye%|EyLSd z*!zpV*)>^M9Q(;I6}CMP(w;WAq^+aaP^fzaW=u$xQE3(i|dO+(8b*)XmEFzu-IZ@ad)>M!QBZK+@0X=?gY8q z@BaJh`8Pe!)KpDZ*L0uhbNK7cCZ0A`hv*$D3}>s1?vQ=K{jHdR!b}^(Q-pEC6+PzU zhOkF{Bx7!F$$z}Uu#Lzg4us}wV<6?f$v^o9#FRg#J<0Z{2gFv-2=3laW1o@>mmC5t zQUGYv*l)hWMh9R1KyltW82r-G?m=IYOVf^m#s5Aoh6ziflwx~eV5!qQAJR=gC!>2y zINbcFWHQr8)MVJc`Vzf`+{}ir8opWxGZc+iyvk^3e>Yorqb|xM<#d7ommq7=Y2Q2k zJxNJIc!Pv%(mFc}Vg6 zBVFce4saQZdLs@#qNn2H&D;!6gm6R%WIaGwQSqsR#P0(T zW7c|HIxHN5BVRVBl(B?7V>KJlm=wf9{l2P@yZIvAdVIBfrf^vGOUhZNWjcgMcdV{S z+YeUOU~V-OkC1#CGWr@8Qzp#w0CXDEC(oi|2|AatU}Kb27<>JA`Qmqo3eMTO+?j;& zvktp-c~o1^^m+hO!*#tM|AT-p&esq8P|C+`VtdY#L*;~96tp3nuQyqE>OX{QboQu= zR!G^`KBRLgLfpO4dqp5Qokg(%J;HUVtKS;aj(6O9;&%})L=p%|C#N$N)5x#=g$g!E z*boYfFi1t&tZ2h@ZQus^~~4H4^Gg{b@EL@aNy9bcI9?sXz9GQYqsSd?!PW zcnBX!E8Nn_#Q8^N&qw-*`o|6Y|6YpkQsZ9`oiN02@X^ev-eI58IZc~YuSo4kA^O1o zYtn+c?h0U%&HsCcbP2@5iBofgU4JWWYYdgNc8_IHUvF-9s1_O$E{E+HIGx|oy+6KU z_PO&)>GTGT8VcoDR0DS(hRol?{OtcJqfh2H%FtyxVtx&4)zu6s ziMc3U1Ge>_tJ38Dn=j0hF@xA0&BLf;a3#lk3G`@9vE z){(a7&9tuDDEKwrtAKy98h1Yh?K*dQJHIP#(}^Way)^*;iX?xjL_i%8|M&e))?JJ4 zejZ*YydBm?a>hG^bw7_}cuq*mtblhAW_FLvc;_j@-hxvAcZ|KH9SrFouPa`U9lcs@ zN}F9}!NY7UUau_kchnoRIVV7aev^3MVNu#m#_ngFoSU`IwEVP|$yGU)%u!V5_**G< z;hg?*L33_cFsC7WVZ^Smkvcr+CAmQyo@Hr{wL!=-5xexvbkdrM#G&Jk9T_{d1b}VSJ_RZFM3$4BNO`JfL_RaG zA9@<**n_x}`5#+TnfGcidg%8gLtC!97F43B^Ix4ae-9^yriX{iW%6IAO7vp7NOvEO zIW8Y4c#nIE)ts%aerPTBk^BZM-XCwBxNudS%~R)DF|uNT5N9AP_p1CKCrCS3{_#u${WxP$qlUd=JBoL1Rr&-7K-?#vrQUPTC0qUz`M81X(6Hxa zSRr$V`BZW{1fKtv^Kx&{`k<+2BbVcITRNIr_AYZf^eiL?I9tPQZg1!eh zoX&ZkFEqWmgAk>BI08$0vNwzZ|HnqE6qS!*BWSqZT!eI9?iPsyfPJaVeUtNtCIX<}reQJ*-wC zccSv0fL3&b5RCh*WPc*y5Naq)s>g`K0TB}PaaX=TK%TR9;9J7s9xUgDldU(~U3ZGi zt=h>))0ySy>q}Cj89;R!c#4L%3bnDuSeSmjKFS|bH}$XT zLdT4GY#2Z|b|llW7{-LscQ2uSI&G2r6@F3Ks9`ZFRnsW~+hne!2@$c_ToXH|0pQ33p0;Q_!w*1&d-q~|nJmyn>8d=eO=5yUV=*l_@jn$7RsT z1O~sVPC$&lf{;EL?M))f!cG?FDg#>^vNk4UZ5cA%Dauv*=;CVJV(u@CuU1}#yhZLc zOQtpP0lgtfJL9`DQ8M*9%9SPtvuTAXTFE`{jnCID@N;2YU#5B544D zS1e1}@y!A*_wkhSKe;#Z4Ym4SZFK4u=b`DLfQO}ol@#o5Gv)dPD`YB}Ylm%De9_rA zv&a!H&1il}t>!b)E_x6@vTr4UPgxISC<&rRTv!2WOxC>_vTfM;tO*yVVlBv$?D|Rb zv@IUUBQ3_gibq#HihYlb$9rCkm4%g7B^y^gxb&}&hJtR` zU?4ilx}7A23ZFM4eC)go6#;$=C1^WI;!d=kCJMH%PoiugE5xU>zN)pa{)T%R4+5Do zLbTDK_F{9ruX^ZZ&+>*r4Tf}`hRV^_pYne$Ii^6N%PNNYx)&BA!*AO=KVcZ%mP^O^ zx8JE+xPF?4r#V|P+8SV{Fuoy$>FRJpCLkNXtpQ}C!ih-9aXv~PQzF1>BO!=Mp*5x> zaWe?xlxk$TOUIoP9;(@%MAGbpxCyMGnJ+5eXE-iX)nwY|0gtD+^dT{~wnhT-rF0SD za*}d0B0mL(9F2i#Wvm?E&_UAXKsmP>uW2*wBy2 z-)F`q9-A;4cTG~t#H%u3gfXG}^EeQ+iASnB=d0;1WMp7gz(E^3VH4P!>732w-V<;> zNcVGrmJt^_WdAJ-_~J3OOydfoV^T`6>_hgYJXuzg*MZ zXu`nWa#qLUa~+C1%@Q*x0wsp`XVkKRwDp5q4JX5vWmQrT0%{20QizK>kyT zipVPx2+dPWh%l*jH-FM`S>HBXY3{&z-|a>z>p*0HwG2H;#EJ8YtNq=#F_KgI!EYpR zvBxH$4?f|Q5&#=<0^eYC&5mzT*CQMw(dV}D?SkeRg8+Dfs%&KM)VNmyugBPC^u1!~ zkVIHIB~i3t;GBx@M{p7a0$MAm)wklO>Pg2wLFSoPMpEm2DlE8B?0>%e@;lBjN{yzIwSZN^X`xQGpUA{_s zKu(6^=BSsJ6c>Yo#yl{TL$Xtht~QOY?Ump&5aWrZPfQy20=8rOF>qbnY_!p_RGOc3 z+wbxw>UU+2U3df)F*{^Qs#@*$qm==yDvQ*MA{PvyId#{s*r)Zo1gieeLf-bDOPPXxTCAh zfAB|J)Ks5|Mdx)^^PJj=786G&s-OQ(=)r+47y<)W55xpYuisXXLjI&hNskm${CdR` zEeVvd-d1OEU8F!2t>@~-J2lXa7WVb0*DRR~{{8Koz9e_m<6kwtm7|Uq{h}wZ`;iyL9 zG`8JdANT)==Tz^U-{J201Y`E_hN1pDYD3FfYOx3;*zA%4Fo+2I0TbLaj=xwTG@^VZ zB9Lc7Z~%j(EY}e}*+M;byG&)?X)=l$4_~13Mf572CV`|h*_^;1IC|y%}z^244%g-U!dM8)f(y)gn*k&&fPQ7ixmZzvNzpi zni72!|4sLP(sYitXN(LXn%8itWZFYkk0bI?eMt_i@VIK8a7iS@qxFr0;-l%Yp{)D~ zignsGLk5xoEL5o!Ua&)kQRGo|T1rFFybEgYW8<}m{eT-+t@03)AQg8^L`6MpTvIoJS}fiLsh35D3RrzL zeh?W(h_|Qvha>+m*DucW-1MOBZd=$4Nm#5;%o4Hw95BKjQjiJJk^Q4Q7c6e-ja7r` zxBy4RVMcC#uTiF+b6ZhGb0D$F$9EMv|PPP$SuANAnmasw&_&%uM0T z_lN2CPzE3ZT~!*P>e$NE=dFatw&mnrct)&N>{w`CKC4CVNK z9QOn)#GkVV<8Y=B7d5K+F>>U>Rx$-{3Gz=SAIpA1e&&%kw&t4^$1_GOY-LvYqD^W^ zlr)~x+X8f%0s?*X*Pyq8E(Kx@qZ(b8Gk4dQ5@+nvlEL{^r+2nk{sMNC3V;$qy zAPx@#0(`a`GU_LSQ3!WM!7WL2tCh}ntW~62wYn{)bz6|cdu;;NE0)zNQo7G zzlGcq|NWpAMM8aw!PpO79(?i)2MD`|t>3U_Cc1E)Z-7u8)yR?*b9gipF#+&+^a~rLbV|1l`QPcRUHNU{uHyG)2-&{HU--)wHoYQ^ z%Bool6L!%P7X(Wt{WbLE{4Zz&r&W4Ki$-yO4rbQyAs>u~na~?(-e{{NN8kQ)J1P}_ zdt(S<(EPsp=5oU$8Qf#?ZO)l?k%22)WVT4gHEy2qAzDH%p~uwRg?3u+=tbN^=y583 z)oGviNDWf75Y_lQ8&U+94?IP_YIN0a^$!Ok^=9eQ{&$sc01@teKwEVw+!6AA+>KU; zwUjc>`uW@b;M}Tu!Tr7^56xWtvrAcqap(e zL!j69#`_O!0{Vh(Ia7sO;XZ$&3M!BylTkSph;^S_6ze)k1p>c#mTGbjh`RMEfUPo- z2h>@jGH8x0)+Wd(M|Kt~z5J%r^_5FBFqOMfg8yX}1-oo0GMrjXTf0`*0mSLGehnfY61IBhjoR1DMrb4Hmc;#*9 z)xVOy^W>-a?FyeeJik&lX${K4LA3Q6aegLSzRPuorND1uJ4xl-4Aczmo4q(1MWDBP z(peNRyy!A!SX7R=u{u1)dfw-ty&gjvHNwB4qMUizB+#|JCK&>32)bce*794ST`Gd0kG{oY@8!7#8%3R1V&up?)_I z3b5vNC;E!w?tjyzD4}Ljb5Ya|+Zpc4yQNF!=@+H<{$2xh<2wpsh}U=CQ~L$69^S}v zswsnH>r|1K!RId?rc6^0#o`3HSS>MSoemc}wfHS%7=OWEgY!(3`PBYm6$Z4tGybV~ zXHF*z);uk7R}3sc9vimI#{8K$fwslR(B-7e!*?L@>96<}aY=;Ve}bhrnEr`HQJ;(x zU;K&`!sz=qvEuB|rL3~hQt|~M&NZ_*$n8C50}80N{&R|0n_K~HidU&FBP;VcP6pm_ zm2QU_w}R4#d|+AHudYT2f^_UVNzLUA5?7!AjKnHt#|5SgZggPAR?V&!Se|TT+q@NgQ)c*YPjt1Q5uyD<_Y$=VDB-u_w^Ob-C&d`Fv`+M;AlcT zCRv-|nN)1%-^~(FNU6)dv2>e;m&K%yK=|ZA0g#|wBP#L!HE*KHv4jj{ALeQ4ajL$R zylYnx%UWCj#COwYhsEgjMpZqe?K>2zHe`Q1sk0eKuTKHSX<4 zf<^_O);Q-A&FzHbn8TYm2Qm2`U|F+Qur}=<1D0gTkZR{7lcxL*jq-i(*qw!F=jL|D~3L5H~0s(!wvTwd^P~qjqz*1R^p^%QRc; zdY&zlq5R0FEImji*(|i$c4KKOXPzYJ-(+!|cVLxvZJ z&0fS$`L&P(gk)dEW?7vJko#}?3h`kE9dwN0%$c7(iK!g?^#M0rnIK22!y7}LQgP>T=d8-XtarhXF z5T#)lquQi0QjwAAwr{(HH`KvQ-%v!G4=a@GL3^dy zzO^&~@^OwWG5sglVrVri|LO}WPgcrR$}Av)xxRkf7lPkkY#T=QQA%82C?e60Rho8{ z)LAfQx$KKoe46;Xyeco+f_{E@o@uR^-K76j%v zG@=Ofh6Dt1ARHml?XA^kYM{uQ@+;c9BKEx)5Bl)6;v=t&|1)r@saX}h7z{WlDDFIk zRo@BZ$e|20^@c4P)LMWSRPAk!hSZ4>_5XT8bX~oDllNrYL*damKPf#^w7gHCUg&i; z|EN+vmKFRpU29eJ75b7rgsh3QC)E*JrZ9P64S_mqXP39$#Kb3l5xOkLi*tiF0jzS}n zOb|b?`r$sxa{jOW6cb#~7>Jv&(J)$mq7_IAS8FbOCAE2B!$gw6o z&xR`GNOLrxuAKVCJH+X5d&~l8`k;18Bcu#CJyo6Gi{nR7@`aSjwv|mZ6Iq%Hrc%(7 z0U=64OCd_Rf0}k~`8T)suy{YgJUNEIncMA^6zDtb}h3GQ6I2Ixy@8MxCiyJ!7YEEx&ek zV@RUB62-Wki**p#AC;rQ6Q-7q-sQ*Zf8TzSWs+{xibuF1-NtR}%!?!<>J~!%O^Xcu z_#DmI{ml9EhEidrVPo70IJgphJh0`g$=aUWm%py=4gGxRCdNqgN>5)cw`(}$f?RQ& z19)eA=g9Go24b={{ZQ)v&*tvso8%S)WT&Q_6E-`x#p~OcH*5F2x9a=#)CP>wE&R10 z5xqt~;8_BUGoT92*m@ z$;Li0kF(Vhx<*&ug~7?*LimFt4%fJsEek6quJ&2^a|)n`|4xBNwNl=jH&p2xH9)Iz zZ9qOet)7MG3gxkB)t3&mW@cs0)At#%Q53AtP03mmzi`(jtRmXy`J&S z$3DVVM9zmf^}AiwI$}VP6V)!}efakbCy%SEYKm|#?S1~AhX%%S^q`-J`Vgy4vAD65 z`9YU@gDv$1U3i#!FT{*CdBB_SKau%!X6ci*5UstMh5rh_iAA?N5W~p;*f;W!cOK@c znVG!;5O^IEtKeGxmLoGnJ^n^g_7vX!B}Pop4hb#kzHq8GsQeH)1aQapI;g$z9UTi(X0q&Or->Zt>C4DAcXlkIJITe*q zlKICJ6YYQyvQXgd2Uww+#!fk;owUs8EdO=HjxYZKNADMMXNr-5fZ90mNsoi5VBsmY z4jyk$-PfUJh($_&{`l>(D>Kg*q4#QwTBN#jiGJNm=szU~`k_|*N0r^$8LiY@8R>GM z9sbkzJLBaZ(t2%x&U?Worce5K()7}aj_AKp7wXL(mI^bYUMXRflEJ5?zop{_k6 zA%qVbtQl_-MWel+*7EOa8D9eM9bd#o@1Js+wnr9-{gQVUq{G`ca^wDv`->V|l@{CP ze|8_(1M({F+`^mi@w~)eCJNrKH^}~x++*~0B?m|dS0(Ocq7X1 zmL3y#EQPduaeehFkjZs^4stku%vi`lK7w@FehzcnY9oYeKz`}ENA-T$x;xg>f(WI; zdEI&41vHWLF;RsfR0A8{%8~2mi55<-sBTE~5b9RpZ zlNF0joo6H)fKXT_wEwW!Z3;q;OXw+Fw|@F~2unlVnw1d+FEq1r+U$oN``vSo2Q;<= z`fDS2Zs$kV43ps7FqYC#HXoVT zx6^G*|L5P>L;GSN&p#0caSX|14okys6Y(6fx>`%i z-E`G{J~=iKfL!M5)ikX?>0+a}KzwJ>Xz|+1=M{*zbMmIaEWE{t!>R~Zg$C?@cC2z zq}xSMGDJb2;fAK6Oee#^)~BSzxlQ1Y3U?sAqh<=r=>R^1`T5Fu8%WHc0L2w4XO4VoRKv=CzVMmBP#~v7Br5zAJ zhEjD+5nHP;go4v*bPM7(LtMxL?UT9#IsPnEw<=I*%{i6~|ikhZK73j*uCh5*RSffNA9!h62Onbq`>WAR(+H?MJjniYO$)#eBRnbYMDA% z5QEgNy$7(>a8&rEni(8Ve?fI^*i?U=i|&#YVW8zI#jkDT(2nI z|B%aw5B})_?L&%gYE0?%=m)J=`GI3=0d&gL+w^Zjq3Gc?4e$O1ll5Z)#PnV|;k&SM zTQ0N-&D>TRawQPu-@W(d*EPi{>%x`5(q?(&b+6A@0}>rRj^F^%j=jhXT~Jbt)90rV zq0CUM-pyK5PqhsXq%U5lwgL1NYQO>J68_SqYP!g2EJ6lWq=L-Pvr{f{GBhPAGMB$_ z2d1+av~Xboa;@c6yI25jtCR&P5O=lpdRRK=A!S)z?;C_YR&*f^Qu6J)^9)& zSe)hploft0w553ELsD5}MEQ#W2wL6e5bz7CM&B7Fl}*G4)ul(> zlp>p5*a_m{okJ4coD}s52ei^GZo;CmO7GZX3Vkl@>%DF(wK2YbQ~5oMH;eTu04(I2 zTV#qjxq-M91;ycm!DKcC5oLBcf8c9Pfcb(y92MxrOc`B(r9TZOa}5Fduk4uK2fBx! zYnuo>=Dq=?^bHfosk8DIVT#4RIRWnHnPy-0A}ib9Vv`XDG~OJip>WzE@}Qd2CbS z=SyM`m#w^7eY|w8*mn_5qO)YfpACVKl~mVKgCR_6_sUl_fHDUn=)g|UY4QOhJc zIFO1|j}w#<9hZ7n>u&p(Qy_pC{_yjHKoj+0+aaEl+UMx7vx$ zYe3sWp7oCeFrSTX=rtd8`neWp<-fAak>wPtcA3NR?64w?a9W`B@kO&NDrmwOGbY|m zYYfDqcOf3o<-^rDhUv!q-kSn>^BQN{5i|Aq*?}t=LBN&&ha4yOHD@qUUF|a#Y%pl4 z;jq8*{2Op@`DM%(Q{UQ}&hP1rQpGYa3Y!W6{o0s+IoUT(<_3Ju*p&t%BF~WH6@4yT zuEOKoyWFIGWMBtYvlQv)LeV@IKxEzhMJ$FP(A!S?*Ye5SJ=i2%-c-l{eApSo`Wegq zaP>jHN^j8>110dMQuhKv!!PHX=|8YH#)3obW6jm~0t|{LrJyh}Tu_LsDDZ=wLYTQa z3y05hu#=}LRn)S1NZ?8wGKcf6xA5&3ViNS!V(u?aC2YLiNVUa-D>v83cC8u^c9D2w ziB2nr%!5Me=xpqhmm=hAJa(3dupc3DZ6V``U!B)&AbiY0psdB)Qz312S8a?r!!7Cv z{+`P)48H}vR7zV3+v8!9JrCfs%=dE8wTQ3UFcGnJ&hTHJ?90IQh@rtD-F+jm<}7f*Pa0qWQ93F`o+?p3{;zOmr*1 zEWR&Tsqv4OwWEh&?qJ~9MZK1llTwsDuok(GwH5Y@DOya%4OLZ{zPjQ1VK~R|4%;Dr zc@(^ue&mR6h73eA&6*`fFJfnpEgZ@rnxXr~L9vy&KABy;o0vGh^Z3H*!4L4nW2T{6 z$Tl%XA^}|S@i%>0M4=AG0`Q7$T(QS`|E3+9lK$f7ML=HI`-rvT@EOp#Kn4`2`>0S7 zx0QwgrqPz#Tf?U9g42>}rWtq=k@xwrQD(@R58MJQGa+)Rb86#vAbFBl3ao_wBB5OP z`h?@3lACH7es+UU_ZHTj{OYlEG7jgLLijDpH{tN_1r~kldUV$?Le)DQK4>dDgIS^= zLy@TseTISI%^sui^r{0e_u}-76G%Kb#(H4;2vJ_DvzSpP+!c0gGatcVxUdU`5;QS& zT|G^s0O3p$H|-nS`oI*Mc>h4?0X(SF(~psg$_oi*kusMZC2;wACn{@}vT2i-0cBI$ zpHagXml9dxVg%Dmb;i$5!0x?IQ10GB0qzA6Gh(4f0{B4>(4{pz=vEL?j=o)OKoGH~ z{*~^ig|BMQg|0mW`FFj`vx{{lbDch7h7|u-2tn56Pr6qDW7Pz1;AnvCU{-<~tbFZ}$URQeWn-7{bKH%YRzK^N7QVauD+of{FX2*ojp2|4LT&YyFnhBcBYUrl1>X-xfBF5xG0e|C}1I9uR1qPJ{ z_f`>Rka>L0*A`UnrS6?z&gsTPa}lnIWBaekpVvWMyVgbS+G}iQD&X+$p2Q5oor4&s zb&PnEHcfN!WJVH7MyhV70@I^5=_UrWWwqRZg~d|3*BIOI;ZhI}kB)2<`J>0+>_DA; zc+V)O3S9B?%8L->3E1&fHZT7#!8rhQ2$PyoL`3yX)NOIeHe_0gzPJA^4W^5Zd-Dg# z6!{`*3zU>KdAg6_{3V~*Xuu2t@L&N5h9%!jJ1N5$5$14Y*@8af08(uiRv8=@i2KaK zpgNQKBp^pZTOrI;Xl`SxG6_MqmXxB-s!%3M^s3Ca$v$wu_-qbAw=3&`UT*25Pb8Rn zi>5IY(Q5Wl-p>pqKXMuN;zu@8IF3JpP+EmvGGq}^MSPjE-sPKSvj~}w4nWC~E~Yc> zs^|~85@kBca3BAfEXd&&-$E}{&0_>_M5D*cXh5mNKv+~$CAIjbD5{G}KV*g6mv#Fi zqstf7cXShWKZx6j)ZJkcp$TUvkT!&$+W;2lkzmsVHclyD>tF1?G+d<@dAQI401$~+%@?ghc}&(-dU%(ebs1H;d+U3 zYqDn-eajk7Kn@}Q_jeiq1FJ5fU@SyNyb#7F<$;5J76eOWQ5yoK{W8a}xNy~d@P{_h z(jahk3QdPl>T{9WFQrT8-&U0OXf{%xcCbBchj(~~8$Cd~!gea|*0Abqy1;6&rXTBB z3tTPbc7E%XFPC{!o0t<|9l@8hAHGdg6(v() zRTmu0t~NZ@k3jV@MWLotOH8l)PnXu~xS}`YIOyg<$8_sPVMR9vD)L7=DjY6zjCie5Se)>0581M~SL9*_!=vVZKBl4L zacpF#^;5*U{6mSYkcA!Hs$C~201elU+frSa#XhRpsQ z{nlxS;(9K|7%G~xT0R{~8xpH|;d4F4Y3Hx>1N^_(J1)vsy77t0G*0F+Yx;c>0H^7t zkiN`M`OlSO+C(!eU^i}9Ne6=4V7lZ{iCETcYk|uuoW^g%_iujLmqsP&FhMO@o;6`m zYy+~-4uB?E!w>EW+9no+wZdwE{8fk>1BbVZ73 z-~v+v=)C>-MGv-l1DD`nnw8B)SlibJ4mJn## zb=XQpQXROaf4xka4d~P!hOEu?_TtEcR+KaX@5A@-)}_5zUgSGIK9NEXG;&W)QsaRD zSlCA3$NmxlDG^WY<<>d;&f0bue>iOV=VVu|f2HuB8F*s)A;ai#aT&R6?IZFtZwoZ? z7A*>k{3s|wXe6>J53?A_#p(J3)sB(>{f5;2>!dxWwjXo-IMg2f`tTOx$}1=5pQCO6tvZXD zeAWt^+&K#ASo^$N%3$r^?^h%wkfNGWq@&^a?%D<)p?^DMhDJ*ds}l0nor@Z)2vb3n zn#>~;@;XELi#KueECp--@=clq@O&u~uz@qz|CN}n7zxkYa9NUb{7%rjEPe2g zPJ2Y$#WLu6Tn!&Qa7Gv$^jC8X!O)*BFKdSHRmbn*-hxw*#6}_%GD>bMfaDW?j~E0W zocMmdB!QO?YePeb{VC~!QAvy)kS2U-%Zb52arz&YP>x2mA(@P`A*ZTBP3J!K3+D7N zL!b;t9M&0<*XahdHz1^ZP|$hQPf&2?k0+ffaf@kbC@ky=Y~;oHF0g2F4LtPxWLKK} z79sLZlAz~D{`)M5CVE#q3({lIaRHe^AO+?>G(>DIy5|*n&2s(HblbtXQNEGeRzpxy zy9-GEGG;&ms61>FgC`13 z%7LjL4y3J&fXfmIk@-66>?#@cjOyK&)+@o6=ly-mffa+~G7h97izqKg&4`m1ou>X{Q8As09CL|hDvv;!;l-e*D3?Hr^y-8-%|2iuSDThXt zbC@iHe(8aNp$?Ak^zE9fS;M32|JJWxuZ(uERl0k&T74rReE01(BD-2(B3R^IqGmE6 z2iXF=Ki*JGVXmVq+Wy3NfYGQKO;;>@dY^!TO>=o=@KzN>1^vQqq0BRc}!4wVK=hhS4p{TrYJx~IUlY^_4# zl3JpM?9+z7YVHb|gbZ#VPr#3AYHSxu(2VnXZqT0P>|D_VTew*=k$f#u1?$7m3_FRv z53Rrf$F(^p?e**DngWuVqMp!gvZsX>bd-I3b-5svbkIt{Yw%d-G0L^qDQqlqiI;PN zeErZDKbQ!K3GxVP(Ecp9R~`Tv_2I2^Rv&0O;YyorFbW?}vKw#wpRZ?^CeZsgUu+1O z($97W)A|aTnm)6)2B=ZGsTxpXxwDO!yT3u#;^-qa;P~!;f2*W!*xh$+j)>Zcr148t z9u=ZmM^B)Bigk1YI_<&TH2GdZy5gs0EYzoZP^t^UsV2`L?IMv@VjrTuzz^pGv_*ua z<&txR4{ph>veFP??WR*PK`mUKvsa*%hrKdh>RV`U}0{Xa{s|o^Bdq* zc}Gg&X49-=*ZyV@#{t`muK<)qAJ_F`Nsd3k)-GQ&MCLPshkDMe_fi|`7C?K=3L>W) zIVf>P8y(E<4Pzl@0(O;Fi(3MF%*rXxPV*0&pUW|kP3xoR1 zik0h*?hHxE>$TcD^~|PL%CK4OLvAPr`r1c6T|TydpFfA1P&gpTh=~iEvMspY06=o% zFn}#N{Vfi}U2~W#KHBC7q%e2VQ_RLWs!L-|BI{7EmP%DJfjH%FQG=ANorFj;j@b7P zxf7(G3)=p#1;QxsAOY}Mry6j3^t3(=E7p{!56p*zXQ8aSe=X{43>pDL;x!^D)!Uwu zRW6+mYPrb@K$Urptpu3y$SY!`4zDmr=p`T4bWch^yToX)hogs^LYdz_$k5X&?sE^NRwUBv0_DCm$o&|lbkXXQF>&fZY+ zA4mtB?WEGA56oOlQ=WdZ4ZX${3IVeV36@cwc(;pwn--skOFcaP;hzWx$X&W{39+%C*$#%|E!oRR_6CP%y8++ctyELv1Jm%16EIb zb55-n$a}cbv>?9rMpJT2m!gj^?=B~eY5YjVZYs=DlM9FRXyeFE;M-*3exU_FVAtI$ zC1Wy}fA(AsBH)5=q(4Ij+yJK|-+R^fnOzyw|lsoM%(q6g)8 zi|)Bgin_M5yd&FJo~+yKP9jKq-S(dWvoc10(BLXM(+O$hurLV$Y#Z9@1F;|EJCxkl zzH_|-2E5_O56vvw(+IeuSs)WcdSee@9^q{LQ1Bt-o1piyqnRik*~|V{g)Kp^hEB~v z0Zh+A1-2K^+r|UQ-oMx5l%a26khVt3sD?buIWQm7Ibl(ea#O#(;24zu`cMyKA z;DS4-Fte<(a}LO;OHC~}8e?h#%Q7c!sGv#UWyD+0j1 z7xCuFd=gDu)c+2cacesn*(At5eKGkG&TMpdR%?)jEBT2Se8l=6zp#Kg%@y$?2k@Tk zF~4(4?)BdmDoB;0Dk@D5WO-4aaut{Lo0K0i&(Cp+M(5Q59~yIDPazzI1?bv1nxmf# zA!8KZqqJT86()1a*@X-k%q9|J4z)+!iL(IgENQDs^{;%Sf`1RLDUMWbR0Bl$3Q`W` zf6;XJxyth1BVL+DRY=>$d9`p`<|3AW^VrRS#WHQ_`znzfoTO!iZH+cV)#ef@P#y>j z{ND5h-t5d=oWZA5)2pSTt1`yJy|{t@MV!RGM}U8RR`z6p8imXF4BvA)dzJD{HFkW1 zT?S3qpx3}KJ2a4~(C5VECuPI}Y28ciKMGmD2~*MW6V@RO$HEfUD<(jF>Wct&@ZnYz zQyiSMmo;yrLHdhL>{%dq2stY$jg~o%A%QI~D*_kWqY#gMK*HfRpIBZ zFBZ#Y1wv)B)~C{FI2&gyIppIh#kXTz=oJEZ?xO!@Kpomgsu7LmApAN zwwd-IHPOT__T*b>@ABDyLVwKMZLm}9@679o&>50a0;pg7lmlcKx2`xUV^Y}OCO{+# z6%H%_%9H7>D@Gu?#IK*xdxi?^o@!=PgjXsBlILED4QgNg`TIiUxKnig9yXlo2G)+^ zwP23wU3Ei;AmCI^`&{DxA?_`s+KAruQ79B>k>FMcTA;XVkmB0n4lPpLizHaE5&~7vlXqv<%$l9ayWe@`dFWn7M-||3 zC>KH0$vmmx`ANc?6Nf{eYQf3@M}1Z-vQ{};RZ3275y!;RK7ZKh%5jX>NDMa0`UhbU){}pv~>ixOY=Q{CDXc(fIiSu2}kDS_RZlbv9E`wC@oKHf4@9F#aY%{>V9wrMxR~JEd+|M3K`^Y2TBt7%ZMf0yuef7x6i+~=c$*c$oDcnZB3M9`Ui~q za0;yOhu*j0E1HI6SLYGR7%|JgN|L7Y8-q*dI_POBb+cb`SwR8GOG@a?r+ ztIvbQ{ngKr>*X8A0Wy4mqmV~#H13CrDOr+#7J2=Fw#Ih((wu^GofSVm=x4ZoH+rzS zxY7U582WrJ?UBByX!L1Hk(U3nF+C*y;I(aO!1rS+OUccUduex=#>A9R6#jO6U5?Ek-P(EkG`mn@qaHF+AusV87)P|4H`>ds>F zG)Jy<*st==YtZUf6jB&G7?`xYnVv9N5?lH5$=N;oY?!Em%kDbcEkFOSKXhiaM=39!yv6C`<6_EaH(+j>#3`>uU`ew(JCPpe)_+7AsmwMz)q zYL~zC(YLI=$x1ThnwS6ssuKh=`Iz?pNXGbJ`aeoa9WHmh4iKpH-R}>+kQl-Dr#Lq2 z!!jFd_mNo{g5vUK0$<`9P*omIzDF!%`(!zhXDe7^9(&)HhErQl)R&nD6EfI8kaciD zq~Ckntpj`2zJ27f@iPZY`mJ+ejE@~eXpD?(p0S>kbOZ*!UM)ISDoeG`5y9A&*Xh2` z2s{l4+=-^rNIe(i@(|np<&n&H+|}}MChLb&9;jh%2OX`HTId;Ku@2Sv+3a`8GQk7F zb}Qi9$10bZUV+V2v@`e(ENrRY&-FKa2{52P?Y|3w2^Jejr2k&oeW?)GLfO36UxN>r zAUa;L5@uAW?rsUWYWkO4vi?QNd`C&g2V~muw}Qo$|F>6JP2x|9R_DCYZQpPR&u#DG z9u_pS9?I8701>c^aIs&$Z5^h#gsPvE51JI)oV@dE(Yn!X92x9yOFeqg%*_+;6c!vT zgr<)QO-$%WL4IlN)wsM}dtP7xzVp+Fh=ttki*b2(N-)1A_`2BDZ)p#fIm_+K48^T> z00-H#(UZ;oZI0!2nyw24m9DP<>gwd=*-R(1psF6GRp{yUO-~N^SYN{^d_t8ot|#E% z=B0~8_w;Cr`S1)a!3x3M1#PE~hy@AKg9gjcwPwx9sst=a$sVjO$Xf0*sqx(6;@OXa zJaT<3vFPQ`dA#0b3SONFQ<$}U?@($tOAvt)92`~}u3CaS6buhs@OXqLoBWu`8(ubV zLPIzaw2vC-cP?%wjC$BueDd9Q0i2Rplq?Om%@^m>+&4gZ6TBDiFiIV6(20KAP6auc z6*u8D%>1$ycD2_!^``P&3e(>Da{9JbesLE(s9-Xun^KcaT3B8Kj;{eHihgi&{e_~;(T)N{iiLP0N@ zZ-li!dcqZjjzvR;PK-{SW3|p3WoS93gE5;dx{?;C6Z-orOD$EGr|s+Tzw|66N6hVu z%`GmOE!8;CJjaa0s{B@uhkh8W_M@5lSWUe77jeF(1?#GFid`oQzFh>weTAxP0a~Gr zpbhW`lEPblHn+!n=Hhv`#a%sBB-TiW`cJ~qi}%dLJ#0_}!}i+C4~MORug6;pEc7Jl z_~*?ki|`?Qao^@2ea#uBmqJo?(pmETWvYs8&7~4{2nnSS8I=%%90~ za^6bSGc3wa$&aOL&s^C1wQ1JP0eu`L_LjjFb!3Wo!?uJ}g zZ!uFX8^t-!@~T%)bX#uCd#L5|+RiEOGDP3=WWMHR6!X{$eD%nKdrDOI_OC?qf_3w* zPk|JqSnK3g|NqcRz6B34-NhbtX`QgNhuZw#@@Xds|4aL4?E4lB5XcWf9%0KX>D_#3 zNBYU!OV0}F1YRhAPtb4R|6-#)I*W?8GvUJLsXsUs82By1-v@#6+m`<9pwMZPg*t#R*=zU{IoSjX|ky! z^N4wX*&Y*+YoY0$?_j%)oZha58%v-ww!ew9X$!RAe`xMQ@S7VX)LgbSMBQjj(!9n_9SsrW=6p_N)?_9;z5f%mW0A}S6Dz+nTggz_16K{S7f1?LfUPmxari53Z{rMzB)B*M*x zk1Py(mi%0lhKCF=_Qrx-&z^Rwu7{YeAH(1c@SnU0Fii36`tE9dZ7nI$eFFs{`E4YX z{><-ZXv_9T&-q`@(Rkn!iFq$=Kzal=s^-1&JxwiYHHWQMpqD9qpg?CTb*E1WC1bZ3 zp;S@AI+n}>%tY*CbJ9cYIZ~Nz)R@+PO|E&uF)CI5zWGm2Q8anF%OAJ4?LxK(?fA{) zSHx!$zX!Zaa+5aAPHS!P8-qiik0M9b&cq6{*g;@QRU+y%N(nTZ(``2-&Ez|xT}ZCw z0a}@ZBJcp=q|G2F2Uh$HR%oLKT;vp`U?(X2InM5OIb&K9gsydT`TvaGd|`Btb|~=g z>W#mE6n8f=i!EZ+Jj0eiY{|HiicSR*Lv61j*ep0q<8fQ7`@R>LS+UBn2F^O8e!ngW zEJCNYt&>c5;hQ6?FJ@mC4jGGIc7C@}<)wGrF4vBJD*8~^J9b6z(@5OvQdeO`0DlNF zI_o-Emso{f1T`I_sVrvSs~{Wfg&d4z3;48AH5Y__%e;e80EFV*$Jb~WS?9GVviI`z zs`4~9w`I2IvK08o{_!^=jYb2s5;74FG=(e@T>^PVqu=w^P7~Q)ef6Qw#;A$Oqsm^& zVypPMR-BMZpY33G^IJ>fefc|m12WWEOx?*N6x(tI8#=6VutoN8_jT1VbW%^@9yBVO zVcCKqt48>&O)ubeVR>o3Qi%RIu|zZy_jv|;T}g#}ck-tLad@`VoLyRHxlME(_DP$m zmlz`G8VeOXb~S7Ytpn-3 z`TPsNfxKZ!#PW_tv*qz2u%)VO7;8d0=(_EI66ieFbn+3{)FVgg9gl+?>p$JhBW@G` z9B4%6=KGY9La5=(|E}ty`m3{GbcC72(jkB2F#tknpgKOyMU5+7LFIUqAM zerAS?FiGjGp~t)HjuwI@Qemus2SDr|_k}(?l{)TWTG@wT6CUSt?G;gjJud^QpRSfeGk3yVm%-j7LsH+XCtTWZ4Y&x^`kf;YI6Xj-P3P*4W3m5QgI< z9>QJEDr8zu=po@*Z^^#8-vT1D7Y_<7AuzA+2pV>#7ypNY@L3NQgwjnqtxgz{ZCqVt5Txq|gcS!+XEgV~D;>#>a$CnMrySfCaU1yC~d@{cxpv#L^VE^9? zMm=nWEfvhC>8#nuQLf58tCU1u@^;jsXen&t70%R$PF zWy)b4U3}7W>uVOH?+q%fPDT?2f(ZpX4{sv(6`X+YJiKWJ!Pn5ACW3#tr1~!pmkBNRTKWmcr1}?0n z5`K7xyzAaOPK6$%j4vlaY?b#x2^olOq=d+aM*@Fny1170Dj(tO19#Oof9Ey|Y#z8l zQBZ>US(hQX+_AMPiHQ-PdavIJY(*_}PRxhq zr3tD$YOJr)E$9DryCiBFfSi2$-nGF2?v%p9#2mob!Y5b~On5nrnQ!}|IW=bT59-<{ zcbh?tb2B*UJ3L=-~)$>_3O4H1;oBXxkZWsOY${=v6x>xoJ>QoZHaXnS>ZDyX2w%zWa^>DH0%k9;n;u+ z;+}I&C{V?U0luuHd5GDRsm6=CE0RH-Jmtj28!cwTP`j#I9sW@>7n&ehaLg1IFbZ2- z9AU*K%KzIopVre@9yO|q`{pGD)T>8MPf}g00X(Bsml8gmN8PDu^-WGxjQj`fFkAr? z_C!*G{&UM}EgclIX#+g2fP)gS8`R;xAqeQ2j7|uuf!UK_Oxi^iO_et5pZK_{C5Stc z8MHb%Hn(&fBVXc%v>*x6QL^=E6CnO6yH<|Ql&Ey2;X5I#HnQRA0Y>rKjsE*1tl3sL zm+r0rT$0&WsTM#!fDUYIv5sSJCc@Jt3wYT6tMQ#sEcRP&g`nYPB};wwX;Q$Md`|(1$abDxwQvon%=sdk9cY3|BL{3I zq$ocbo%2mf({s!Z^b~C+fBCCYyK+SxZ-FLgQHdS6lGm2&zI)VfRd*9# zY4)+VIcCS<&6(ngJA=flH8$Wfv?>L*nf!vI=@pzImLAwpZtBiQLkvJy3IvMWHG7i* z9!z9(u}cpdD2>0`S+9@X;YjuR7;PW58TFXS}Q~%RLuz4sq zi1BC4PXLI56HdJHDqJ-O-M5X>i)fzNC50LL#NLB8%sJtIGPcn6HRMH|`FPA6ZeeUfx?(gQr*f>IOvNUJ4M7L-=eiFq3pn*<^qic&&F z;4s0{#>k#NuAcN1xaWh*BGwZ)NI}E4Es{S+Dd07rZ~y+{(E=iKq-)EZ@t$G z-Womv`vHY#JJ08$C2UqD%EgM@<-Yh>0}`Sc1aN!Mu=IS;{a$*ha@DJN}ISHEA zXk_2Og|8FCu**h=Ec_?{RncFtS8fPEArXYnS_FR|@Bao}`h1uB=;^sO*=3<2H|=bv z>0)yl6igGxI8@hBI(mw;hLT|YLmyQ#`qdSx^jDg}4hWUb)uq>Ko^E+1^$=q?9QsRW zoelVVLl*e=Tt{{rXPaSnqE-?3GDN4Vx9e7{Jb#)@31v5Ma2jUpTx?$DaNE~6RPaay zv#kD8(ogho%V#$_;5hYaAqKCs2#zNN$N$c+n*hlTkng(Ms(PFmF7Rmvvypn7Py(Q* zD(pa+*TsgQ@RtOjR^k>2jfcxHlJ`~BcMJB)+x0P`w2^|WFi-JhqhcSxuYxO1#2nUw zBhC&OZ@f3FE{CIY;q;pN==cW)oPbb8Zl{38%i)Lm13s9B%w#=Pk*5kwsL&$0D$^~9 z57)0?J)tz~mJy6oBaEOblhDie~P{P32jrFRbHS|CSEl@ZGmpDy1=m)T0cErl@{caz| z`#@3n%5Gr%xj+mkVq=|Q^2_Py$eadX z)`fjSnPTbq7J~Mqs!%vM1I&CMNC6sMPoe9h18)I6kQ7x`eYRcK-D$h@az`Edj}|F| z-iBI^#OoJd^z3BqSo;P}K1n5GpVkkYQoi7;i$c(Ef1P>51}q+3ZhNL31!K%VW@XfV z2AEv07)OHXnaYui2ig#JJ z&X6i&b^D~PWc&BGOSFfLI|@{~Z7ghdmZ4}ORnsU@Z|Jip?sOy{1rIV3)N8AQZnP#t zv3K{nhl!c6v|_~->>oHZ!W4|5=SKI3mcU)F+NuRZuifBRQ{x7dkL0AijXj0^r0sM9 ziSchQw#k;0*iaMG1F*+CeGDjg6AhF42+XlMrmK{FU#(ln`xbiuc|5wJQt39w%@1D1 zfNChZ7}t{iB~Nx202WiA2UcD*HE_VM(2p*cZ}k?_5XXQ?&p{D)F`ARJDIVN7#AyQ! z;98@5?bi*b&j=LvNMq@4!Diw>l3Npqz#zew;yl?d?c`&MQYvQyHa>g6D{xbP@f;p` zluhyEWLT{q!bQZ;waRX3o<+>WA>a-S>%_#3PV5kpb4iu*?|{dJZU5>dH;%wRpYRl~a`p;ryh`ZAcd z0cUC4xvl&7_%!y}G80B;GVgLI+V$0ZVB#B z0#18@n0zOc=R5cb)h#+2_JIM6J$zGXQw6BNa1>#?1i$!tVdk+ssa+4l7={UG4QO=M`$eJ?*6y9cxHYW4VM!F9fJ%PTi*muaAG`bn%5wCr(d+;zDNtTPwbx;8rZ{LdrM1S zr>tu>vvm)OFxfl{x}UEE2G~$w`Q6FA1k${a1guL|)Mi>3ZC`HrwuZsR-G(vHx)+Ck zlzhIUccCF5fm4y#a8!%Gfsc*F$0F#9+494%?_bf?Q;lF`O}n8}bz`DtAH@ODbg0*{ z$p~Ta_%t5H%qElYv-u-LWj>7(p&;3C|P`23%zs!wY>A ztN}V3Oz1Z=K>z{~i8wLD!E_TDp_!OTrKcQqpaMKDx%mC1K%t@C1iJ2IE9le1H>z5$ z(2NGU02_l{0YRdc;m;!1`F!!vtd-E+PjH?SKh1`NtSn6&@g{(HW%@PHUl~JShs?QO zEQ7CYQbG)D?$}KRwHicOXRKqI^;W9su3u`?<@7JvHaHXhn72V3^dC6QXn4jq$J>CkOMd1md>;QI3~zY z?&_{@ZV7E87=%MFT)_jlm&k1EvU(+HBW>{y)Y-iM`#F#_Q8aE@uh6ee?eB8NO=pO- z1(it^ad^0>Y1W-zmzLCLYchZd4^&@noi1D8lbu-y@rhf&^Yvy8?l%k@9miF`Uv4nnConXVXx-j-QnW^a0<-iPccO%Ma3=!PIjd=009U7fFFS zeo`s3A6nYt2i~FRDyvnoJ~#%LI2M`79!up5ZA}`nhgQ_x`o#VcnBdN<52SbTqXUdx zz4`re4l?_JU%-!y^3&dNN-QM%M|`%DF8WkLzWP7c!Hc-6if1NE(E6;aKxVk($@}1k zvGup4jrz~j_y4@OO7S(Gd-}?}!%FjIob?K+!5dqq*2Cs2ao~v#`J=@~0w|uZb}B!j z(x)*B+l-(~-qrw==1T}1h{npDpg@hHkEOjEdXMfe+2DOPT?*+&Cko8@ngOc{_^5&h zf2faA{6L*!Aa3mT6jR7bMe?E($vc7xUH`nB3ZQN9t{xUS8ExGs3%}#MEiZHA>0gQknT)d~WNYfz1s0c1#;*N9tix4bKAq~%o1T`9{(PJhf>Zq<8q2`(y zg;<5!W%1^5Qd((h$7tAQzC`Sl3}WQ5j8KLqS~`g@n1ZlEGf@pTHbD8hYXk84)raIq zw#hJTPL_ck%gh|a0S?t+F{t`1?Y!tSnr*(0N4mWtU}Md*J=_8KF(F16W@~zOd{-v& zQGJ(P5qK_1uBMzc);}pSyzAy)H7olPh=9tjKIdnE-?)8ioK^J&Hu(D~0`pPV9z*{z z*In+K;D9xM|HiGUa75>*^J4*s@B=p{3atbz3ckOeq1(5Ps=WgjZC719#cjgTr9hP= ze|zO_LoTp%ra6EuM1qvG-nyOYH@%xle>>%PnZWO$MNbp3 zP@@Dx?|0`;US$VL4)CaaIftT4kf!bXm}oe5?Yn5b1Rcx`k14tabbd1sAGb3u7I4Th z_8b0rTx2{#Y_c6cVb>|r-TiD9R{TQ-_-}Jf64W||C@!^svE~${k_-w$FG6QvL0IH% zqB>@|UvBbYF(T1_N)KW4y*-8I_J-p80R+2=W)E0Rk9#7!35d@2xK*KL?Fy^oZ`IL2 z!k0;3l;@h%x*n;3sY`_njD>=SxL_Ot$e7IlQKDAHB|c~?RoYtfoBDC40PU40S zB4;};F<@Es&JJoY6};ekQEi&}rVin6=a2fspe$@c=#oJ?m8fctc&OIxMTa=eM@OrP98{DJw)e zbPI4?S8o;Ak83gUib^G14oNJ>G8`b<4Qxs8?6b>6zv%x`oUpZ=qt zN^X6xkoQ@EAI1eqL(}7&5Ie*zIk#%z`)V+M%lg`$Xe}>e^r0oA^p)NeRa~O4>?dM& zWwK4Dd1=Ael7UeqjdYni&gAJntWnP=HddU5^f~>6WfSJyN35RibA8b%>Qw9vPmXw{ z{i8!2UiJ!ks2=acI`#9pm;xPEXXl)mo^h&D!T0GoFi>Oh$i8uho5m>}!llubDe~)r z#3A`G>noO-2F%lyOLA-x;rU+ZgMAj<}>dhTRU0f204kVZkt7(eZb5 zb-XblkJflFls5F^zwWnRty64{L_Ul39~WnaxVZcy-iO|^^iKxnRN%2mH0hsdHp^kH z?X=G7VZSN@`I}AbYhTk|FOFY?`1CDq^)0gI;LDnV2$9i^t^LVbRs{oyfE9(T&@*u4~Zx)qu04_--d#xt)TdnoEtwH<$RdGdBvOi7#+;5l0w?4ZcG z+WQ*wCG6m=b2~-Zm1%E?BkiX(4f6Y8mZK$RTZPjbOvWI~C{^2}P6$qr;9#$G;Nw6t zQF1Ck%NbuA1b_Rb1NYzF*aH|;|4fNOVJz(fE|}2AWp1RM6_L=C^!I!Dj|3wLT@xIx zH7H-B*MhXS@5jA3TB9E~&EmrhAE<5oa?ouShl+@ zmx`x?^^t#(Ctro{vNx?f2smd0^=Ws#2o@g3ifx-{YW&SfM0pZwyP(?t>Gcx>RF#el zDrRn2dBkxvqkW)tn0{_EJ|RhP)rZ)CX6gGsFBhHG_?m4hu-HWz3VZ!_jkALk@yCAr zt6Hx~%FvDiXqE@i&{OcyYjG@(BpfVg$)tZTh@aH zUEPvfRSwvRA>VH$M+f}#UOX*P!@Xt=p_fA2i6NC~pRP=A4>@NICF3melI1wo0)@%U zvgCAP+(%OHdCx}u{w%qtU(xrV2pn(>=@H<)$A#cYN8XWF;H{9xzM<=u^R#teKAAnO z@p8YEde$I3eRPsF>>Fh{x<3N#vb~#{Ya(c`t@4hoG7E7>bZ9DJ&-Bg<_2PmHBM8c4 zYaO!|Diyh#A*fL!3CQ0=j8N#a=2)dWA3^x&Dn8r@?B-lXYqlK>GG^!5sse~FX4b3w z75_*dZM5QNxkQOsi4ws1@L`em4>LNUs+yK>U&K+#01S1T=p<5vUj0d zv%6h%m6o*z$%fabA-3t*sf8#nzSJln{dv|=haa2n{a(+&*GJaIG&@pyP2x(Nwg0TAwkCIRRv|&SR)@3Nh~t=zu+b=F z6}ESk2fNZe>q#yY9&M%3?sH`)S7+$cI#8m~hw*{(sE=%6Udlj!I=b1e2J~!TovYCy zv^+6NOeQc@J_-NCx+Flt_a*#c%dd$!-zkXI;7Ih-FRn8Eujf4=%jG2bA6=DO%uRv9 z03^z9&iqW)x7+DRv&+hUF1aVWFmoA)93U&w!ovd$bGcu-0nM^t)3wNZWF{alzx0opwUx}d~VEhZu#DC0xq+_>2-V2R|si%-Vc{IqMAp9rY@*~&Po;JNTqlFv$ve)oT6B$E4#t+KF5nKEJec2TulWmv} z`#xg3P#5o6%O_p#YyvvUcfGHNR;)`?#Bq@362l*J3`{PgU!tS>Ov{B2dlCy?8EVn& zTk|WsFkCpjTu9}U|$*L-a-#f2WvwTqpDCiRUxyuT* zL(vu5Ex?Z^>b5iZG`FD`@wckDfB_ySqfsRYp1DtJd1w}D-}XD2!Z7|yjTwU8O^EoS zVLgWZ96)xtnC@xD&yYwn5|y{BT(+8xTR+ET16c<5>p#TpwKVlw?OJou`{-a+f)~{c z0P#~K@!Xid!&!>ez-7%)Wus#3=Nk&+iz%-kysZcda4a?z94sxRy+?B$9n&Zp!Muzl zkcG*k;b^>_i285pf8NKmfV9J=K%n!#54Dg43~s$YV5c6;Zv4dNukTELjM-4QFbU!d zPE{p;g_V}`zYWQ%HUu`r9%%)VL=uRHfkkf}+9TugBk6e(o9=d?K%`H?BGSK>)NDaY zob#6-7zD(5sVD%i(*#3S?W3nBtRG^-LdSMAP1tY<)RuX5{8!Fi($6+}0|R1TK`<$A zEy2xkO7|_b8QFD0^kLZjU3a7=nFnpLZZy=i)PkV2X;j)OBh)EC!JOIq*P9w=i;ob| zQ^p&9{P0DC$0O)sG>ido+yZKSxHfaZ#~^UCGT(4KJBb@xJO3$3u+oKw2l-dRpJ*Ow zb+x4qRKQm?w+^uJ^e{2sc)c1fBL9 znRPSUgYR5_kw>qOe5rE3`JqZ$FFE3k0ScSyCj!MyyCq**F~Oh4h~A;rkQAC_5`ekX z9oiQDYL$L{O+4o;Qf{(033jCkgpqudHu2PjLpf&956Fz>;mA-b*4Sx>%XkfwBdk-Z zQXAsx9IhCvvEhP?j=~qP_JT3PDf;G5p`au+oTdEuUZpA(Hf*rqEtmx!*%f-*_7*s= z_woBOaxu7i$^P!U&r?;8=mz&!@W!e-Bq@kpfr2R6wm73N+PaKHl<=2%c6$NN02N3R zT3vws=`?(SI@8|S4G6auUK_KtU1FR(c>#KQEuB@?Jl1K4ev-atF?ve#A<(MwRSV8hDcm>#KeilGMo)>{P`@g<_2@R0Oltb)5=XEbklox@L_WlF*!F#! z3jtNC&%gDEAqc!NeX0cVB*gn*Zmkmy6)qTW!v%I>Vef^7@Sws8vp$SFy?$;j?H>k$MKsK?Hu-8-r`u~3w-){{90!GsnEBC9%WWv_S;vKjk%{cwYh^$ubyvEkP_D6gJD^Y-W}Q@*1SRfW)MH9K{uq5CyQ4vC-ElmGmy_kpI()s{$#Y= zJ!<06l)ifJ$e`20Ul?s*b^Xa(anPU%*%))z9bMC#`VyVq$Fd=l4)!-7z$MdLGk#s= zRos*{InHeMS1va6wWfl*@Ac!zqfoWXHU|Knr69yZZ2I0a>>MasB7>LAXEN@In6}>_ z;sw01X(i}(D4@%f)aaF=l(gb09iPM2w>MgS{(DPd9@wYr$pCk{j+eKDCLoqEU343k zKaFgyiAItYITFxr|5j8gUqg3SU$5$L)yucx1DrDO8xGdXTyffDF-FaA_PAI?LwKOz&#)K-1^Cv|nroFoja+}r&sb5C+*PSd-b6r~au z@SsS7U*NzwdFq_YpwRQQx?(?T#oB zCpR?#IN-L^HG%w1b7H(-se3*f!Pk}5xFx9w#HsFaZ^1a~lHTsPih>y8Psv=QFn3D1 z8+>aaDIRPmDy!AKv51$z-Frb*GjVeiH6Cgu5VzM(rK0vv)hFz)WMK%>1Gr%sRr`Cf zwqNblaEjGF0Zk+nQKu4$p-E`Q0Ys3{4@u$2hZl(7#Mv$CsU6`NXRv<@94sOPu&AwD z(kQc@xqUEu_#jl;pJmt7UC_I|(8cF`8Gp+Or@`oChsl+WGy#P^nv;MY))Qm4srYcD+Ho}1W!Q;LbKJTRZ z5ub8%HNMN1M%f6qE5YofU=6lQr%d1Xo4wGh$7_v^4ddNj>+bU;`}YbIbtU1oEkmfd zs5bz*WRZc2Wp{G~&q7E=pAf?$!8JyU4CdIFtzBmLsGYceT{IHZISAx-hVlgVRn(O0 zHTmR>ScQVhA``OoO}Sfhs9Na-LBw_nsVXrW^RKrr%mui~7y28zzwG7xOUeDSOGY}u ze$U*+1TI7yY-&?$nN`tNmGag^B;~lKXy8a-8$tQ>O!&}MJ{WSeStf>lsDs!mNl2vf3Kkykx`M_MLrE>B+#@i;xE63Q zX)?K6C!p?pbL)NsA6>f>xIG$Qao`tMejCHsxPHBapCI21Tc_-ilUz=v*wx$8s#7&Z zrb10zipYWLYq_8Ui-GBkv-0wjPjte94+?G(sIY#Pja#9^gb``&%reQ)Q$}Rxy1&5rkE~k95fwFii_uN zsQB*+MjW9p3KM9?oN9wWKt**Ax3=YpGFrl&c8=OGlubiMFVqbFIaX9Kx+iGg5-rT2@Qzdnz31 z14(L)yEO0C8jQYI0iKhtUrJ#a&c!}qu7Ad!Sto&bn#}hUWQV7YAfLnYU+}Hx9>{_5 zcHTbbb*`wMpT!U3P?4uY_dqheP+aaq)Couh=o3j)w=LW=db%ws7 z?fZraPYp+K1%u+0o^aqDb2uG`RK-nZ>n_{9>$sn@p_CQui0yM(UucIyM{S~~biUwy zbzW3^afh8H^#?5IU%DF(lA0Adsy%ROUG3!sUMK*vVUq1W+gf%2v1&blNvRbU@cvZK z=(HB(jr$4MS!-Es#nyRG61%cVbUDYq8tWuDN~UHKntO{>A#v3E0^3hn7X!6!t-Vmg zQ}ifW;cJ&$u0Xl{3TA^&Evmwtg@Ns zo_J6^3d@8z>CUI# ziWld_k-#`?4-w!b(7tuOdkWk z{A*rG<|tLYS%N-TBxlU| z_I<}h@Q(o9Xqp*Us-KPZtMp>b=V7#0%Am5UA18fn9584h)=C$K#tAWC>s>3qteu*Z zdrf3TY&jsp1!Oj58`PK^(M61>b92n?-KhVBxAZzYw^{S_5yStL>$Vm-ZCHUvTs)i% zD}5~7_6O9HCm_O7x>~^2`dJrD?v8U)N_^7MGQ6bmJxG2ws~bb|4k#e13%q-5JR1a{ z=m$Wf1cDZZ7{MQv5rwa0k-t44yECiXp`@Kk5M0nQwxRn50M(Zx@$yFAW>bsY{pJc7 zoM+MeSN%BN-j$oopt(T|HBLZIRN~ikZ&u|`1=TMheb5%fA|O-5fgx?df+~-mIO$L5 z`1yO|NM^1l?f{Gd2EUHG2nUzMXWo7LlO=NBu$h=^pAO!Aq+*H{)A%&Bf;(cd$z&dY!EPX z1DY6+tDTH(Af&46e6{&gFnQlZ6-i(&KC#yv%7Z4DtH-bFPHebB6Hq z`_YtR@)Dj7YTqKA8m#N*Qlc}w+RJJi>dkzF8~P8Tg~&=0usppG(6r}d5xwkK2pnfv z-#xN>0@GM~d&bxp{srK*8r6q=dHhm-$NA#>ZX>8w|AZ?7MAPyhS~IipB1#IH*V?y| zITm~SJ7FU6w@oDMbxz(q>Ha2d%`3&N@NvEly=*0cZ>R2Jk)E3|z)N&XZ(m&zYR(jF zVLg6Yw6~v3?*EdEKSJwI?|L_e%1)0~W>}6lxja23D~n{flDXc4+~!!62AM33tpinV z3kV25NL+2BW4~nY$^Zhse_8-Rxd0fThAYJkaQnKk`G!JNxIKsz+J8bRMdoxr1!Pz& zMqvWoTEjne+fwpNR5kcCsu{`o6kwlKT~z&TWCtHS_Hys_791MKYttXRpY)oLcDFX% zABfG&Va(y|3~dWsDr-?$OE94X53X+{%(t?}E`B;Yi3eYQCB_7vqGdq2{Xapy@AUZi z80-E#`_X-e1$yv0RxcBea|f+csLQ5Fd{}IFH1J}Czu&4_Yf8!c14g_2Iovh1A_)8t zTra28NI&Z~xNj6%0y1^fE*}$Az>a-uFlF##prERkZ@RYDc|@nBK=G_Wdn}aoEbXMh z^|v)g&L*s|Ap^W$dd3VDT6Ar9-%%cJ9#8O{xIjOl2GXq#nq>}G1)jg?EawQS*-((W z3p*U`2i5WOjQ>S)2_(M#mLnIyBbNd3hlDw*(%;LLZp9*Z0?I~t{f4*`3fq;MiyDs-(o_OdNH=%8l-%&g5n~! zABQV1crXP|+chGbJwVIvuu*O|(Vc(E&@nnkLRH>+T%^L-`!JoHRACr=C1{aQK&n~gyld4>v#m83MtM3KURv4^7Z-Zn)r zW+rdN{Q^KjN}-0c))Jv|dsUyznWF+;huKw+f1B+*B-O6_J_%c3|8=I!psJv}1CQ;M z;u5jlr}NQdCMs;p&wIudtP>U98{fXA_0X{?At5@ber0 z4QrD?5}d(MZu+rVb)4zt^UtS@+Y!6T16R$fTGgEMc!%$&KXGB-;N@ot#g$$|Y|OAW z)*BP4h@q6Y#i0mL<_P>{#v8gGWEj=M-`sA(*)vAg%=}0(98UfBf|+Gl zKp-V1quhL-6QEnl=kiS^khPg3DM#gSNh{kSZgJ@b}1Z)e!|L@xQ zw^xnD3hML={R)xDQN^k7+_3>JeCgoZgHhhJBh<_>dGjVnA<>%=SQ#0}13EoZR+}ON zlKl`qJd76~LOi2Sj7@&B3t9#WtSgfdy(nJLxSaq1%mGxA$BLZRSambU?mGg1q!5?Wh+bn+S=%`(JQ$}NoY#5)IQIx;^Q8K^C3zUUcornrt z{qcV$3r;JEfbp9|f0#p_Us5AKZs(7K5tTfhF@6wTM)HlvMOJ5|IvwNxE5oHM2%GE7cnh45ps z=2G|+m|SJhUkeh?1RnNudbiNJu^el8{|PqaZ9|T-qsWK|DQ=WBvS{5P*Gw-AYp4KH zbDHH!S#z+TwG!p}G~65WhU(9rIaJ@lGr-%b%^T znQrbgdO7&@rJlC?LT&ZvJ3S62<8E&6#3u+NHRG^%Vhc)TS~u!Oubww%v}rfMNk4}v zlP}AHk2&WEcm|WMac~(6yNl$6o5`Sr3D|;8E_CkeL!YRe&d#yR45gP+6Uh3PK6HvS z23FI|;*>w|NhfH!jbn`NOWt9U%OC-|TZ`i5ggk}`*%lv27e`Tajt$7~$E!SQ;( zE{*F^IH}KEqGbj$576J@}MB=ti>`YVNbtiJG2eyctg-15T?sE5TJ2$S< z{OWx9XH&F~sVzhx7Im+OURme%g8cZ{Lo52KU>G?>`n~$%5vIQPRU8$-+U%i;H46Gn zKls{339AfI#{Gt8X-8=I>5f(TSo=Z*m%21qHsR8MuM8pTFNLtFvSKjCn8AAyOOuz0xLVl=Qyco0 z@|x$m!kAVdO<0a9{=N+0445=wj%Qw3K)$(e%8R`{6*_r?wjV26M)d_*UASPpt?&)l zbsU~Qv>rNUx|R2KxGF{wJ?lEJ+6qAQi=FN+qG^+ zm+M;A_)Jzk?IZZ_kN5TJj?K>x0#6x?+4;%-uqHP^=LqHp-fI2;i2l4C;LW%JjnZh~ z)Q6x$(Axa0D}y*x3>2yMy~;uxel!Spn4h1SubtqmqoSF08RBXqd%a=}8;3C}+#!$! z3A?!CdtDyQuHW*v`W7SmMxtnW`dg?clI!ySaJ2dP`EuG1qnhfU2NvuV_=3g#3kT}iz$mLgWuQW8Q14&fp`@bjb)#{w ztW@#_k{{=fPDUsjF0qlVFa1T>PBlgZ4_PdQ#7b@>t7>5Q^8cN~X@WMrL^i;}($mz< z6bbm}ZkGnK2C^H`KR3IwqLbD>;J-cCetd-cVpJFsi1Ao{8vxXZh2uW-KMkEq$gyfcJH4;~MGtOq$Wj{-YRlowg9t={9S}^O?n0 zI0bc=i}+XSfZ7@4H)DC5th*7FDKy+F75R0UE(Tp6u8B zF8IB%sZh=DGywvI1ly_R0^Y@+?qm;j&dz;{FBQJ@&xs$MQ!cXijOBg8VOgoYTe z7`*WvKGBZ=&iYW>$I7DbAH|d|5sU4@P|S-DBN6eWMGa}@A-ktXkWG7F>&6R@gMQ$n zJVu?ho%p?a`h)WMwd*;N9T*Z?h{2F(D|tEM9d9YDBOb(x%I`E@{3_=?KC3{?U*<{< z0wH`&eC1(!I#ptBv&^n31q61*yGqk8ZW7y&u&-;yZgP31U8YY;&zFNe5hzL01Zq!; zg&mKWb`t9jP$`i(N(0a{{lviKn13E0dWcCcEM{Ueo8rafCX3m>gKR!n-Nl$EiXx{( zKw*^f5`?vw$Kc(PXn$8F31M^%Qttne`LJf7`r2NF% z>_`b+k;<}6p2f18s&F2|5W}p6S^tckG1dD_oje03JSE5drAJd@CNBQ~&E$5z$w}DL zXpnqv(g^rU`{E%%2HiN)$FrG(anjNCHiSQh*jeLoyAv7o@cm_0WT4y*o9=hZe9Kc2 zo;aBJ#zaDeF@2okFS;v*y+rLJ2)bl#!9dDVw|}OvLvnvE$bC@G!-rXF&XR6>?aHSv ze-47aRjz04CO^1C-kZ8jStr{{MM+)P zS5ZU!Rb~~Qk-|clUk%Bkd!NAu3y((1s=dS_`J@E zxywF59vyGW*1Y67lPSMRgGqdcvt3%}`@_r09Q&CnqMu^8vO8_roXu}~51cZCjTONf zSqPAgkZR(6!~YxcPL-I=f8{J@MqQ9T3e6Jk)b;xp)>i@NtLxTV2`Lh+pb;YqRv@YN z8{X|Zg**x!@po#)o1z>OaiO({!F0PMJ&xtXEv?Hh+3f1F^@0h6+5Q^zA!X)89lt*g z;_=D2(rO+iY=<>EO{EV6WW|Vod8LSfLA40n-vM?ZwHnp&R%dxxQW-h*t`IY;G}}v} z8`SjgNAdNEjs97M_w=i^VB;Q)7`}85ssqKPa2}eV#bIx0+WAC_Q-Cgo?80xt zZsXZcuQydqlxyO9lJi-Qro#d2jO=P0u1}J5GP&Z(I~5g8*Q+>6=3lq6OhnlC#+v~n zJfjX4svb9k=^y@-#ou-24zugIkKY!kDvaG%@(}9ieJ=caldSNS`jeDX*wCbolW*~& zAGSI_7B}OAX3E5D+BGgzCPhAl!Z`5@IsY&VcT2&p*C*%jTZ=gj8hkAAbRSD@O;NQp zqjSs2^H%VlrP|&V7xbLX-!&t@j)w+#uQgrKGPqC>ykgWSp>VRY)rKad8)`N*z zjWG9$8KJsoennG@vj7hDOcsT69{b#KH=Y@rgJWz~EV3-W>?!BjJ8bp$Lp+)SbuzG? z!0(NW-sJb+v7s;xMBg}9+9@Lz)DYi+3DjMs#m%w!!6+#WH_tXITPIHouAV_Nw`3LF%_TP==XBJ>sU-Id<76sj2?>eXy!h=h|Z)3P7G;PI4s=dVM6C&IJa%gFN{q$fM z7YFS%8VM_BeoKO_>m|E79@(q)C~G~`qAU`~3*h$PvsYG;3(fmw#uDz-&o1Im9dJ>& zPrK2Rci6A2>$dr0#WP1Zp>`(#)nfKnt&mb^uwYVm<*D=LDgDG2*)Xib?7|oHBe&lM z2kKn5xc*RuXKs6h*wWT9~gGihJH0W7%_x)G*L@h1j}3c zgxTRw=+TS1rKObKF5*I&zui#SAq#QqeYP#O!6gs;2qnzcNhK;2k`WK;ufkoydYd@lz^sK53dr8I=m*#MZ2ned>+pO3YM9yIv@9{y};XRF48*-8}A( z2_)r+FzZ$2NaUD@g1)>xB25?Pie}=}U|5E?=Bv+dX?GlG>5h>4$$Gj{Bq#5@ZOSdX zj6Kf*u9lT77pXol1me}lA9W|37+4L^x0);PCRgv*t$v<{?a|~l@?t*TXujqFQ++t! zf?Sdz{PTuo@@oG)|F1wi1&K0Q8@PT)aoE&iT1R#z|5TBxyC~EKkr%Ts_I?-{UGAg( z_dx+c@>B12r-W^^Y0H`U$3takaT^H$Gg|ZK_Aj&aW24s#FZer$@g@p^TyfG^ha*Z>N2>|H|itK?OhuKf{8gb(>Y_MDkj~UA}N_s zFib-D-yQvlv%MZo;;2+`!IekYgQZ+tk-kNFkxT$TH2Qkwhxw3;Ya??5l%aoiHl?6> z@6$?y6j;~QJW(`EW!#P}=3)+r8DmGz7D;V(+!c%gCMMdZ+?R=k85All0a6OZA*u@V zVz-UG%8RO@tl>*)b=LMLE{aud6rlSDw+0S%tE6E!QJpdqJ@W&S-KG{R8JD%hw$MJN zofKfheU_Grc6jn(BS}ibM31A8taJ(zO`*LWDlf}RgH;0>A10=DFhz?U#7eFG7}XRN zJMC^=Mn)$TtQoH}C|mMH_0k1PoncZx{em$zrZK)ay{ub#O!dh`NB68Gb3nbC_$i>D zwirrkl*WyE{a1#S;x-q~Y`yweC>{429{}}wp#N;)w_{Ml7x*PJ=dRP2t47$A%^qpl zMPNV|^b}gES$HDL7`srgWg(~V+_SYJ9Ff5C?fy-RhYRoeW>at>Kkjj0XF}KfJF_7y zs48x|xVMgg`g$ZLOx5bmy^|sZbvNODayY$=Nmf!8#X2{CoxGCsKdmf7~;5Q&udm89Grm=XjzOoy%L4E$TS2PJC{LNm zGY%;7t)XLc*K`cS)$-{VN9AYEXej{%`R78Us_iaonQFmoxRWjc#!wx5_Zi<~{g+vu z`eH{-p|}=do0IaF``zfjO3o?_jlUEMOPhV5PwdFCW2VM6DLSE+Erhq7Uz8S)Pj2Dm!+EM;O_#nXFW3}V2PLiNemP!hW$15sf<6c^`C4m;%8E;; zo}xL*kbcp6G0m1s4urL6SPIZJY-p(ZajExKq!y9fw!i!NeIsJUVUgA=m)Uf#vKvcpbW)z#ZDe2=aI?Lj z=dD$>w)tFSs<%7`#v&QSx|V}v?wH%JmN$=ys0U9Dzm`a^I4e}ZVTY=R+LjJl=w_jAYV@yi1El2=0)IjZcQl4ozwdc#l)l0Y-C2)=3~0u1vQ)Kea7ZG}UExC=ZBG6o z(dBlEX9Y9Rf6v?W6&oh0b0LGfl9W(u1g;}ZXhK~4{7}`8aqw$YceW(`h}7p?W`xr( z@Pp;9e+r5?@Z1|h8^>l^RpMg03fh$|K5W*96@Chf2SoOsEhhJ9TqhjuTjAzJTvNMy zAT{=yv)PBTxN${TjO8c@_z# z$gBG`mh&^F(^EzQ{G$dsyBXa5pHFDURZJ_q1JZjn8mYM_jiNE|JWq=ipxt#@GhFW4 zT_Itj*P4Y2=hu`TN~$dxJ0AHB?A(TfzV_}T7Exn_K?2r^U-mW?_FmkIMcR6Q;5|3j zoKt#aRfx}yTRc&S?X__VD)Zz%Z}oWXgma`^BM{MJQRK%xRTugwo=&!%q0kz_s=l61 z1qAbM;Cnm z;gevDeBhY~n&^#vnEh9O3Gg3yPf~QR&uP2l`7xe+HO97%|A;z`gam#%EuVh9vJSpT z;!6=(RsOY3Q1kEtfI*al9 z8We4vWq`)xuJIcj4#{=ta#wuLtz{FhmzOWoJ^KaD9p{DZU&vE4peRq^HvFUIe;@Ih zgydfk(X+Mrjri~SO*S5Z>!oCT!K9LDfu?Fukq1g`DqlPL#KwtSDqRaHEig&r=2tx@ zyIZt(@YiKaWLE2D?=Y4`0DnY~CMV z(hY(^SWHrGjX~wPkJ>1a&l^w!eZ=1|6fZss_q%9-pGSm{;QBDcOlkFclc#%YuquPJ zYP|CWJ(6fu^iLCt;F3h|0Z{wy>4ilc21?6o1DYL*r~ zuHyVfqvbDRT%as}OSgy=mY9N`Ox|`% zrpfz$07txcsvNP3#q-KKA`Sh4CUD0imcqx)QBmqGWcM6Dd`}6#-OOxJJpN4UP;2Xy zD|S#-K?uCHlGY0709#J$BUsw&X+mK_Y3{9j<5=CMtMtG989@)JMS6K#u|gN9pG?3e zKUeB-Jmc*@t6o10wkL|shrY&_3srU28zaCN-~ao73*rq#;(UfaIN|+^)7Cm-1H*mf zu(VB1bLLy>iOD{#CZ7w~nR+_p^*dS7SXn_;Oxe)@XBv?OXP}wE_ia{{^2SLzE1E*! z`~iHRuP85TLDX?@UE~jgmkR1~Bcowa)p$MySyt~l;&E?;Z5YR!P{<56q;1UYcS7L~ z?sAc1C&2D4Nq_!_m4$&8B;uL}zGzoH5NPMK8p8O5CjKMhv_ga3Sbk+V2xH>y?JSpa zhlqZjv%(f~2|zQn?rA@AiDII>cR%duCOE8@ez-5;+@+lFGSqPTif^luZH;&n0!fu6Nl<3ud9%m-mv;M*J5!c0ArcwWZNNnVPJ~*3XKN+# z3zPb)a_S@XiTTYL2kuz^lGyaoa-szDaU0dI=h5pznZVL+{HYDxD?96AIj?Q->&aq% zcV&>7*V~U)yWvn((9bWup)kRSaP){~l5z<3KFANmE7N)JP5AZX`9__u0@5dY5PQSw z)r{8)KHd-Ik7uJXn?OZthM&?}l=-Xvl#mk9uf1o!PwnFBYMvw z7hm65f&i8lU$p9o$YpuuO-W(0ULmq4oiAd~18fstWX2RXn<6e4MPTj8jIeQvHOHd4 z**4=8`r;6>HdL#)g*-n=^Ot~1(#7joC33>{-3cMj$&5@$uX4;VXA;J(nQ0papX%kR=PF<@``KY~XIwVTJiSYU?G_#Tg*-171E5DkVPUX_0P{lo>s=Xy9It)a^v-!@NSG@K<3 zQ13OpjyxP(Z{Kh^0QoMsEAQ2U%RW}gA{0R(bfm+KbM+Qya-fqQS#Xg$qQxul{aiLi zMn@RNmifACd(&y#;j@+FtJQjGe#R<+2SZ?C2g4UQwJ0eWo;R8oVeS{?g%0isCO>J z(B_KYI*&!qcVMOfA9tvLaF?k06EQ|T(p*j|HBT|&roa5MwN4{=4}o3oq#2;?HzR>o zp)>WktDe2@3A>b+GnMjbo_sk!hM+Ao|K^zM)+nuG#>OW?Vc~QR1a{+Bfzc0Nwj?{g*+qH zgN|KyxyJ3hz_Ae3d)q$G29#~(v z-h)q3n2TMvjp&*mpwdu3DF8OeRWz$U@CnB6V$?CPBL`iWQ_~@TLGgA=JX>AU6Y?V= zM~eZ^=}s*|K|2ibyRm>6Y^GOYMxKNtGi)BD)EX?q*? z>4z!C4;s=5lKIwGgsu2Eb&FzehY6Z=fQ&Tg--mZWR|{rR;mFH^tVMp%n~P`ZT(WDm zAqId)v;zWQR`u?ktb2+V$w3kren={{XpE|!)cErQb+g3!v@a+_cv$xI7`rDOV?N34 z-ZrU+lWfuN)TW@-w4H@6{zTdoK0iIa41`*2aC3rfAXlucL$Ez3*t7bTGf%zYPTaSD z+xqHdU6hR25!weaSevkX+0epOO^*-(PZxD}(w`3T3E3ez^ zgCshD@Y5>)g&EZ5D#aQaZij(vesw~zv~BbgnWFfxU79nFau^?_M+Fg>k2a1(GkCuT zE|6%W*gXkx!C2gjh7%*5zCj#QNy4hod1}vYa8HGH7n#GP%q_xn9Phkiijtx9aiOCT zs$jt^Tpk#KvN)kFRfmLJY+6_CddE8WS^_ArjmUG3JPL7`eJ-5{>8yIy-}yT9bx_Jr zif5t`TzG?C5y|ah2&z{JvYr@Drg4TfkRUysrnV3x#(YlhNl{Eu#Tq3-InQw4)mTG! zq~H%aO=h69hr#eR<*(v~(G&y;$8>nv3>05F=G=XLBa#XK(8d!dkYSv^=nmnVECvBU zXn0#ZMm(qwe*3U$jUK-ST`|vHf1TYWPCINTJ?_8^u#gkp*iH?JvW2MXiBN|MdGc2S&ZHGc2RM3Cs~;l9a&A`40U!xBGhQbEc7N!@BD_K3lOTS0qbJMdlg^l=j|0SvYyEj zh@On`mD}bL3H8~;w-!S$2ng^qEVR?{I!0=G{c4mMuSa9yYj0!@Ev}byoxWqN165aH zL<2<0rh}cT2MoGkzrzCAQKN%QvX|c1vpk_bE@Bsl>{?up1-;!QjR4np9}DngBHg(n z+!R}~(ba}ZzpXR6+Yub>m?xvsbaLEfD!^1^+SPfRjjPi=g#b-60rhKX1LhIyWZ=eL z*SfV6toS_cSpNI3Tv)?ssl0KK;6U5gjD*Jt(O7ykPqb}ZQ*B6*5o{I+B&~_?co>rr0>S7W!tsJpreDT(Cd70E z<*6142<>h`uV^`ZfWdiamAg%q!JFK96S-{avvM^ioDQv*1cXa{u&D=6O*vDQ0KXmX zS|PO5?+*)EhcGBPDSq^BBhS1!wgd+|cOgv1y@;^Z$K;8`H3C=(J}V)|rG;lD)_80Z zVHGTWF!wfCd>r;hS`+!+n$+PXbVAX(NlNe)5{6blLq4GjJWd^zLowh{C{pu23=(Zo zqjG|qc?+??<{a`@j>ho3IT^1QomT!T9+GQ1)k z0tV$gBeg!#p~XKQHlhMLv0cdSTH9#3FYBnr8n#n_=)R_3S{tfkbiTMmlH>f2!}*my zeo<+r&0UND!%C20`75o_JLshbR!hsnW&26Reb_;->IrgVj&^wfDyY;pcr>4)Pt2y- z0`>V|=WChD3QU&2#olQ~DBvynVhEE_4%u8jEiW+^1q8R|S@+x8*#`1oe(j16 zgLhx0Zx}$w$+h;~F(ZcO^eHd!u?UXGV86WRCGmKGbyxDsY85ssokv>^f&wuszon=S zdN?wq9K>1FaFiros{^VX>MZJfIdy^=Mf!Yk&03Xq{u8Jq=!ct8ujtc?9lyFCwFSY_ zN9cKpxyk)fO>SMlx~bYto4U18kLCS>O|#4o`-ozPovli+Aq{nKnYm_%cb62KZjq@ zookg_VG+1}QyPzlhpN89L{Z#!wQc#P^5@_=bDP>>m_6v5{@Z#@F6^S)%mLJx&k;x* z2-$a0s*5ME8)6x)X$q3FF147ZW!_3;rRk?gi$rtUtAAjw+QLbLFSCgp}zkr0_$ zlXxi2r&;~=!_hiO@fa!LR5D~#ctMP}7vzR<7#@S+fB5`+8PS5iahc)El1{Z;Vy$ag zV1I&G%Z+Mbia*#F6&rR^^h|B&LPgclo!DRobGZ*(PDcP!Hl=+=Fej>Q%AL|9q?GvG zwfP}ewkg@!c=7oBgTD1^&Ylj+-d$_fO1lzOWsn(mRj}Izkwf*Z<;`;p$u0Y@L<|Ok z8irYoGUzVnpRI*|gt-e4BuVMgYMHww016>l2kdi2heGnCoI{LYiAg#iKK(R36Hku# zt1H6rjTx_YEGyDFbG-abJ1MV;`R_UnGy1AIPjN7T z=h*h@pUgO6MQV%uqdteRPCEN9*m{3S59R+VldO0dzbt|GZg%|?VOX|I9jDff3rOFX zdVP~k(QIj)_MtWClv=hNJlH|j;UsdzD2#yHo4+p23c5owSOjv*KeEY=o=4YW%uJnFt@t_^|kGcty9G$O4%9Ky{#Jl;NbTQT<4+2WHtL|R4PkQ&!DBB}0P$<&9g%&= z{^`s;DJxE?Pgw)G=meydg4~tvHXDHqW*rwe=J3AhnVw)J_=?P5@=j>#hVqL-1T0iaL;*PT9 z;ClN@NullbocCU@CaNWjVD7qHt?(q_lUHf+`X#7B)N0d=y`~Sta{UDBc8vOY>!R1i z<&q7tMjtcUo-^X#rnd4MEfuIS!6uVYtZ}!N&vbD!Q8oJn9+?=UYI~FM3 zrR;4QSrtDm%#giH`!`O2d;idlyyx+~HlO8PmkAy&yLKy+dilCfbZBP9x~azb?tBCF<$JL-%t`EdwRL z^dT26iASq9E7IS2nMKV1lL_#jukwGj2Jr7XtT%97ys-arx;7J0HtN>%)>^@>r#c$} z9mNrD`m(c-HQ}wiLzC@Uz0@TP5%;ZW7x<(!lGZfstS@Xll2HdM+K#c+hYx?Na}CH9 zwoa^ZSY!Wi^j2)_8sAG&Y-HkDDafeoWwx@2rveZo^ltl&>v4&p5HR0A8=6ytW34aD zlHukdW3A9wl_)~wbKah_;y0>WG%({PzRfcZo*7Y_TXjkpyY!Ar#C&d4_czql z2nBloo!Y~Q+6NiV+r+KJG5cmp0e+4M#NptvgeAe6RPl^-{bGOkAc`OJC%1@le<)@)*YBI;NWfsvClp zuKA^4$jSC_RJleAJ^q<Wj>C)Jd743sdA+o)!7>%?Vq+TKZg^aI6r6$+(Wr0>sPmDzWcE=f5^D54mAIEWZA;x%nS6Zh*9-eF{_9-JcrRwUf#!qUfY>qES>n z8oU|5C?XT*E^Zw1<(YWrEbni(rRCBo*bU0g!q~ObXEH>%XseUxNPX2#;}6%r$|57w z#v#ZWMx(Q$nx-E|K8p_ux7PIQ3PvFf@@iDaR5{ywRoBPOkzSx&x4z8!dhjm2$`g0H zqzKRu&g7jgt9Ubr0=v1$!k$$Wn8DrhhRsFnmA8wd`}WL{dRV1zmc(I-;;_|HWCPj5 z+7IunUGex|@0aon&QcJ$rRbd5E8bRNiVCHcTbHf+Y(&DsgE-^8B$wm9l>g*dMa`Nh zXMj}_yz;Miz4_XZnB;o>=^}KiX4_9F%MeJq7`vp@7g=t-5Ki41ml>$SlC|6_c6Do7 z@)5-;rrBbT;o==0(F#}Wf! z+1z%)I(L2tX5ZS@b&ls&nAQkit~TN7@s{jT+S41{KZWwJ_OFg>ek8Pc_SuU=xod!5 z8YJVl>sjS=XnyvT<>d|$tXsb6=e{ZZ^tJZ~+jb*3`W6{{>%KVFTm0|tLI?GuJ8B#F z#+_;B7th+Kg2-!;*1ZuL#x!do!1Mki+ywqIZ46f4dD>KZ%`ptq>_iXs5dRKyIrrlx z@Zbc0lE``;j%T}nTe0g>SH*Qi2M5Fe{Gz=8nls^ISJC<|MrAk7W|5uxca*-Zael)i zE*A$&tz&z(o2zT>;i9(z)~>KpMT@e6&P{!vgsO%lP^yzH#M+&~_2tc`@5jakC72}l zx^mQ5gHS2=phI6(_QZ`4oaJ3sY{PcR(5cAlm6DMur_4a8KCN4w&Ytw z_29XF0)uhJCD{r z=BOE9LP@in>iSrAMlUGq8f2Wbap3Ha=p0$B_|thfEDKvyjoOUgTpNe|W;9_x4qamx zOO`rd2YuIe-Bp!;TQV-osx-7(%p{k9QWpb^u%EEx4Qi6g_P* zl|Y2H8y*suDA+b{-t``yiw#4Mni2Lk_5LePmCp;!&Kk+wx$QYMn0T?B6}1q5@d2j-S)jlo!(PU4TJv&#Z*3 zZ94MyQpXd9(^8#NWY~U=U+3(wLq0cvl1B<$$+D9rM%0I_iN?7dKqAY#N7M}qy&{9O zVo^eM22KH7@R@n~4#^qt*xvc?!FB|7HLw0d;8mepV@0n zzvyYnJ*}GY*fzEv*__r41B|M7IsHp8$v@7uD)%c>wImfP-Y%rNO>fsId?bQz=8n|V zmLNJyv|Y3Sqc|hlSO0Sopf@V~xQk4mHFD?w`UET@r~%&(@CH(!M#=iBItaWFuy)jN z1A40K5&N3%(Xg}>mxrCbx&3Z82M+jKp9{6d+6)BSW7%)d|1}i5lXSdkkW@-?DJK!L-6=$^{toXLu;E**~`{?3$I+*0;l@ZpTRCIf zvmNEFR(<+A!b!NAN1&)>xb_{>`(KC11fY!d`-oq8)mk`pNSy*=1+~1U*RB4#q0p0|n2@iZR>5R;nii>c zZ7C^}EH_2~C~jIqmaPtcDq^|@egAoi_(}Bw$B7(I75(&WKt?ylSRYBS zFKz2#&$_p~$TdEDz-g&F_$N`{n5`wt z?@kbS!X*$9Kk*k$O|k?%mrMb)jz?>~1_iNkO9;Kad(6Q%`}Y(;cbjpc(8ek88#L$C zc$(2kNfjf?o)HqGB5EktJhEcvmF?{lWe0bFVQ^0pOvW`I=3(y9ZWN1j9Ta=CTGu~c zI$M6BhcYxWM!hvNZ+GyCLO7Im)%n!C@$xoaJGNE_&62#uCA^AW)hDJhdt`vDBb$R( zbZyQyK{y!HedGodRz`-Wg)BR+$Zq*lwZdW;19alIj=nW3Wrn=eY^H!b=#Eb%u+x4h z?(+HOp5GjhI-S7&^U4$n0(5PhH&utxGwUPDF(GhbE@oS%X0Zt4J?mUjO2#nbGgw_O z!oC#s`T(tUP@75^!FCtHt9@d>AGK`S)S0jqt{Fchy$Hlj=T~1IcSeP8ReE6TSs%-X z*8MzvVZ_*}K6dv_D$}>w(!9*-BIdJsU$y{O!nPLXsyYSP?`Fwji!%7}^o$W!;{KG<`R2KCXw5q^sE1 z)9{&xTfik4=MP#y|D_{@M$G^y{oH$VyP3Q;Q=@fVlN*eBb2S^n=<^(6PiArd`!23< zlPK$sdS-Nwrd4tK5Y0N^SeQ_+dHQ_$Ype%N?4r48Uv%y+UP%vg#k=>%;FlnTy;jge z%J>j78TO;~VE5g;6qX zfcdRKfFiqp9mPp!CWAWxd`29;x4|CZKz5C-`{KiT_@#07vP5=KPG%j%D8!v=UgQJ& z?&SGhGZr%GVK<8J*+BZ&VkGq>)L@~#7OsrLv$ zsn>A7CacQJ;eFdA}-ZNxdnXypTr{0lN8**7;Nb=;oCWi_9h2dezg;Ohfe&y zs`xInWuyCUpE#QwjNTHoIX44m+>g*m~BpK}Dd_NA`^*3^7|>tDTG;%8e7{4sw-iuF5y zvlS*U*Va;cedlu4Np(e8(tD)Bh$1Rj>2pJ|Fha1q_ytquJDoaUP<36SxVofewcIsg zAxwvc>XxK6?j8M1)V$aFq|>T7gXr8^)LhowIXhbtbz<={L7t0|9pB?3js!9&6Y`^W z6ncG^fKv?)7}ZFLk+hQNU1Le3=a{PX=!=Pj6lxsa(3dZtOXQF#Z}|_{;@a7K~4If6Wv3W%drp;@juHKWDY3YMt-Aeqtx< zajN4LJ}MRm^-7J&9jM(sV3*5e3$iB>i~In^vk9PJZO&-Q{~8$)`^W;)yn7YE)1RE| zJ8cA>Ym?Y;Do)OgH^Xo!**bMyXaxvb)%zyiShn`rJ>I73_|vxe1(-P^RK~w+pUj`j zj<*a!^O}L=*3jIPS-zRnAEIb#{n$#DX z3RMXBQ}pB5^7J21-av0F#{Rw^ z@ASTb=FhGZI^=lS(rC>e@;y%Z%cikD-V#Ge`Kj{nM8mSHTN0HYcI6W?kGjupdh6c) zsa>L-1%3c2eJ9ZYA5Sp=fQxbc>c`HW`Ztx8Fyc-Ei?9&hL04vo6y^}J5(V*!gXu?8 zM{5hGr;Z`nAp0S=V*hiYurT{+o{R9U>hH71$E?1!VE;@>^S9^za^26dPAm{VUCwS&t#h#_vk3+hVVX#6+qL)-5+Sc|kHUT%K3nK5wyijSl#UI4A=WL)` z+#FB8>_qm@iYb`z7B}ha z&p0E^DZ)QZEY(udX*WLJxEXC_)vL%AbU|>d0R4?D4_o)s!^N_nNp5jPqP>|n###Pory$&A-3JA>ay?-@vM}kP!$1L^Lw2<| z8QscpMtfLJgo5yGg5|r~vXSxTpd&%6X}a=3 zAXf_hgVM`TW2C`(Ri|c%cMqmls<$;OC}i)auEl}ae~}fgxpU|Er;6T2eWWRzlPK~; zEnK$>R_x>fi%V^!Y?XOqJ`+1M%)d1x8a+FFvYI8&VzQmpGB37%dG~~4TderZ93mpR zcOVQ2;n1rSJa4CLcD-0jSnz`wrD84vX8pK^y9;i+Y_6rwoWh}*%f>#JXR!vNWOUN7 z_8VT<&Tt9u3y+Ju`=`($A>$484=D%R)L#uh1zcl+3VA;^NRGl;Bg3hheC6%p5&A?6 zYXR@z-xk89iZNf(Itf*cUcna&HRW;d#E!uNQHa_Qe5sZY&JV-Rf>zoqllJvI5ayk%ag;NwSxwUbX=R zpezoUJiKA0ymbcS4aX)bCyg<{w7^5_lpQd`T@T?ra9(u1-?7%r%4lg-3`_57V)Y2* z8QK_lWOhr zJt)ywwNzp7vyM=-6eRMzNM9m-ky_}zIjZdt?HHM$?bJG=@%Yz{*+q(`=ZKMu_rtk$ z-Cj%S{(U!+rIhg+j8!afH(@-&(R(&~tlIp9fM+nhtIA~)v!0O`XbQ?7_UC_k&0o=O zGimNG4tVP#<>238yXIAUX|4oc;c`pp4@;lnBnWylsgauDxTd4!^M(;=)5ldI!i3YTu!q4k#6JE} z2+fUxDHr?IQ*B=0`8^lbQ^Gu{;B6vV)7NwB_TnVY%SvUeSn2wM5H%3*m?hDT?IY0- zFZh+})g;>#vhK!6CNfXD%Ox9I$nB#XdiAN{eO8xI+T~wD$s^K{x|Y3>{vy7)Yp1P= zH=~@R_0=+imwiW$L5e6iP7J1;=6VjcOzj+8M{L^6cCM94MGXTb z7-%~54(!3&>n$_#Nh$7ENg0#fGI`rgZaC~mZNtkFi@YLni&nE{saV>PNs`kF-Hpwl zna^WGC{8Se*#f{|IYC;g>1@l74(1V=)LyIJObPfI#nL3hNFJFH5?$#*Fq$aV~F3OXDe_hncD8C2j-gL5R^9WZTVL(p4XX=j9aQGjhM@r&QD-@P+E@KeuO;_ z9w%ax9@l6*i>(q!dhfulGpVJ!B;%BDK%Oyb5p2Oz&w3_p+Ob@8dlos(epzNuuus0E z#=ig@|BB0PP%~fa6Gx<>d4R}DfyTfNc5%p!j_KBl8l3AQ-PkkkWq#~a1WEB>8{X73kG$rfY!Vl=`@IdD|p zGqB3jL1YMSFYY{yUHFjp@YUR1G82a+X&88Nx&4{q+2^w5NQ+m+&*V6@cXP z+wGQ5^sDBWPUt}B$OAW$^YZ7i3AKW>(W6^u{!K31-#l_xoXYRhFTcZX+0W7l??6EN z%N_0`2>5XA3-dP_vlh6&$EC!+tpCXLh*ZU9b~H}3z8SyixQHxmrZ}%FMG!V1`td;nj#AgY4AaO?$+M zt0b|*j32>$LDIB;x{S~sH&#NyEA}qG2qd0SBy-c{7f^-ha%)hBm2#}&@0VUkFmk8{L zr{y7G6}Oy7Md#>_~y+-W<_yy<~O@Q%ev#&lW&WYj^P6huf=jM+(rx665X#_BBaI|;7Ci?^=pm#eNCZjn6j?Q zTc~@?;($+IyU6XW@eq>?IOy=lhm^P^=!UnwMHxw;AdnsmK!Ejm`uj=I{V(uSAJQ?BI?8`|#2x&paK*OnbsHypu6!5vwZ#&Lxdk-YXzZc{ zcd2S#BbBq=oj8UfJTrT5hm!t2=X+QWFTx%VdQ$~k>FR|~YQB{{%Orb} z&T4w9Gb?zY|B-myu+GZgtdvZNWR%No#t?8M;@^Fd^8P-03rT6d(Q&Vwavi!h&Xea$ zjzO!2op|3m#=k(TtQf8V72(eawjJm>=3-SCtQ#!cI`$BK8z>6&ug91we|n5Q-;c=^ zC%DJmnwb_OCyg>Kf?e(^xP1LHJ?m_=69uK94H5Ty;HntG4Sz?`L~`%JN8T%g6NQRm zVU(2Ncz&Qz>57CzR^B4x%^H!(b9w3dyVNQnXo_)Sr9Q{Z6KAn<8-taiws7 z&IhK;7Vl~qbirea0r45cbU*z+|8cZSCO9eZ8H~4y&xspRmtEa^G|Tg?3&77>KtG%~ zo=>JS_9_MEyD&ywPiS7yU96oH8B#|v(Ef3h{R)8WDK&oFhp_Ddl8P5}B)X?Aug*tW zA4j#_19qeIPnky%=L(oJOL_~L+jF%}7>YUVD@}@7^#Dc<7U{AGsT%SMH*nMauZZyGSJe_DE3)cH@cLj5B<|#(6*Y_@ zLSGUwLjfB$%)~5W&kovt8m&jsT1-0hKly^xXlz@w(0t?h_j#v&S8M!{6#sWzPB->Z zhy338pRyig$}k`#xV&V4NKD<$3NWMauy3Y-VRsw4SGoj>Crk47e0dhd3g?2a5hcd= zRvW^rgKfQ6@y2tly!qfPz2$C<3vC0rvP_QF@1u6=?!26Q_Q!wxWTZ%VVRI_K7dxo4 zQ}M&8xrjuk>sDD?vZ|@!$ei>atfAr(=;ioj`45TXdcqq%6{AH$>O*ox5`OkikxL#= z@TbBS-FgJvyu#55x)p6% z^g)uYVqm=LFo8?7_)FycEd%Yiz{a=11@AMjPTmVz4Y4po!A>`_uRMOHR8n?CGun*C zJLmUT2riE6J3i}IG%1cDpDt)Yn_R+$M@ADIpRyF@<3Vt3YHI<|Op)s~lWFBzI~;Q$ zCDoA6C-+QWGA`+_5h?h;I98Ep3d(EJ&Npx|e!|6*1$vD{l)96-yyZ^&N3*6E>2?`> z>ReRM_*`vW-B>5a(6&?CY_DlBVDRLc!h_Fm2Zw<2jTYt@*)V{bUMfMRmzbRZA_i(z z&M?vz73=;nWBxNp3>6s_`3Cb}-{`&Cbt>$@z1`b31U5wtT5S2NXZb02Nn2$4rtnuU zTDCV%5Ea_idcK(G9aLh>nCKtfvH5qWbGaQxl>3zwV$S%KP690scQ@ z>OuaWKyt>M*+S?$sHGas0bgi-JZJ3Ho8u~}PBdn=DV;z7VE9s`HJKn&y z(yt}PP76uc1t2!)Y-WPnZ!XJOiI7s}7!Pe}iLmXsRlPV+;)b)=M^O#;n++2^{b(1{ zI$9HP-{mi-NwLmdl04H1U?rwwOB7lX>=#U%-f5^^qwf(MDSN+Ei<#aF#yJGdZ+buBSZ*EglI%h*3R=i z%W=wyh`|dK8?X++HBk!|iduMb!yjfn&|X2`Psp%>yg6J2PJ~c{6C!z(5TSlKs)wTLcgr(wYvC9lSbl=~CG4oFN*N}b|%KLz3 zdC%rSY9Nfcd}>7pEOh;b=m{Rr+lxiienC#;S&D^>O(I-ps<)el^{HKOtqy_(o8vp8 zLJRPvugKP&pF2qzn#Oh{9|2CA7@c1F%gpyCh!#VVeaG|s6V3^`y0Q7Ri%=?`X&8ezz!c4LOjXO=8VFJ)@x z=`#JSQr&JJ*_w(%|G=*05}Ka&072MFvYhgCo0^o~<;C^)ewWuoM=f>4Q|~=E$Bc3U ziC+Kht7t^|%sz;P?vFcUIOZMn;^X08Y=FnFABKTGf}5hY(VB`(AjO&#Vel4R5;LG3 ziYY>*OoX&TC`{Cy)!wdg;e~6=k3K=Z9ks+{AUK=FQ)jQQM{oK8C4F*`%99*LL}-?o zs%kk?s7;9u-TlQLvz>^YA^MLOm6xiTM_>w3?1%c=59S!1Dz8tLh}QpDcZEV)L2WRgw$$U1+F9v7L|TXu`8!b_-fXS*_sk@5!Ch z!BjO61ZqM|1!-%NInU{bZ>gyK`5sN0=I*qxj^_Vd?AdEu#j9H!EiPU@yE4;TIKmb{x3H7FdBDZc^^t6M9`8iA^@d z_t>j@Z%?ePv;9{bB0a&hy-ES4_pnw=ZN|eV~>{h|J8$wa1*lznQ&hBH9;I{PEKTRR7kzn^*|J zgKt&sE$%8w_?C(VsVUr8{*eSwI)OM7@M)vlDQmwGwu6lh+yZG zi@#Z(t}zI?!nyzFon|m=7M9@(`G}8t8y;#&8P7IV^)lsv&oA-seA>7P7Ox$i6_~PS z6~~}v9!zTWSO#lZCgI80p%d_;`XP|R_9nWJ9QhNGGgA)`24ik`#8wgz`*U^VAFQaW@40x{zTNCtOl`dkN|qUf}{MwrBT-1 zwQ$9}w-$P|zK`HWFTS*V5<~~P8ikOnR5DZ%=cYw?D{UpBp$^L8z@6A1tkws&r@;G%lw!bg#?@%K2${YdzHbOgz-7)6&1PdCJL<@A({;cU8 z45DUT2d@BnQz{?1ijO5N3@_mcSk4!u-~*b$xaMPPF(y zpDr+9HUNK1ef9>WB9xX`Z$r~a{!Zw-8mnE`m_=&w!;%O<`zsNfB5L-2CQh;`NQ`(@ z7*6tob4Qv?_6^E;vO#u^83WeNsmVPL5#QrAJ-Vk|Iwcdj9)@Q3dTOnqp%0~t6Ez76 z$4d2ck5L=+_|P7oVa|h&<*IK8RL%i2Y$E9@f_;7|^g?)@H7h-e`)D(o$LOxeJ{blN zip8Mc(*@v8?>K@Mk1U$tEa~N$kVX9C^MQ`4k)AMf3Nk_HF9U*O8+(y2hDeEC&7;X2 zDUsC0M$3V|BS_$16VvK;rdgkvrHSjP0#$pAkX+1S#I?_!xmwOuZd^#;WMN^Tlh6P8 z^qx0`a*UYR&3fBoJxt1<=KrmYJjwsR(O7V8Pwyn}Q08-g`LhVxIa%BNL!Exoi;%LA zl>cSJCWYB-GGmGnzkPgUvc)H@$5p#{T~Iv=)K?q#wz_+6Ecejg&*Jb}w67?ST+BXokHx<{{>0=gIKqjzQb%X_Y(1 z7U8ANBGGV81Mfw{B7ZOIi6P+9rV#wS!R{22xXCp1u!x5Pxivp(TaTS9Hfmpgarc8! z&BSsR6tz@4&tKPpe|m8-uVrcQHYre@6c$hnDAf|&VOd7M#W)~`@iOX1o2TPC04ZBI zVLcB&l_=m$lCp(-aM%M);4tr%HzzKV5I+ueq&>@l+P&XVL?ha$> zKFuQB$ibB1#@hVP9v3-uTLV97ieOIGfG_E@AwpcQ=q-Gi_VM1h^LGu=Y-+Wwto;N4 zUUNCS>7RvEDcCQuo6?3A2mj`VazYIODU;T34gw@rYTTtOHADs^x;z$~aZm91o}B~v zj&=|_lZ$H&i1n32g-OG=T|DOFBE;s0I9#onMe@28OY86?$_t>krNGY+L+~KT!8W}r z(WCfilH)U8&f(5ObqGiASLht^U)1#&Kx~cCb<^pJ-Kg9bEeDk5dlIZS!i9Ks3iWT=@4j**zk8#fnZ+hwP zoa1)ngVA=n&mc$;h(^dW>2c)RVX|-|n)B zHZBRIiaikS$HtA@+*eRQwRaS_dk|P~ja_p<3i|t6tD>pTz5_o~l4U9q#xK>?Q=h_9 zo8icZ(RC*j1}!P4+KXaclw*pwje4f86S9w!kGN#hvu(_p$}i~n*gy@vCYR#(Azz)9>B#`{=oV?(|EF-= zl$~Luw>&xN{~zL(^(1ai=>IfFQvbwme!v#B|8VuFoAHU}BO4k&Q%Opq7#^GRbY|UDK`zCW1V<)USkv4o$Z?Nv^T2Bl1EY zCufHee;fKR9ZH@-?g{*bYV^7E`rDY(?%Fx2GB#(*u5sDkr=0lO%^_v3hTUv4%M{)fg%X4Xc z`}(hOb_{dU6F41Dj6I|T23CuDRM5W6ucte@c^p$1`5=t9YGxJaASL3PhtFHzHwXXe zujQj^X@8fAJ)E|6d|b`>t!dkPHH-@p5tKbHfSC+<&I|?{c>a9nKM~L{mc00tj`UhN zu&*rz&6qD}W*co~s#hGv{XL3lg^GGeo7#+frHXLm`R3rf_PA6_8)Cd$#uXF@JvP^L zfF^9SA1j11s=1sPqoGm`vtO!jtk<1wVDHQx_2c{h>~#O?0RMp1R#mXFxxts^JeSJ; z3_lZCxi0c5%Nb9Hw1!vaX!rNg=<4i@T(CGeo?1U;uR}J?Suk9)Zn=qru0?!-@E#L? zR58KrsZlR2{9w~N8S}v8iNxTWMB`BCG5&hdc*;>#fFZ#&kn@@c4zTaS8fTQ}PikGL z7mhRqjxj1_H+v%FP=uuLGOauw=Tgu4B3=Or%TZW9bWU1+SGp(mHlb1l$$#ATXx&iaLk!yk#B=(x-?X_P&$#({ls4cO z6aFlOrucLVt1M0Dj}0H&{9r@u??N2f=BSDh%E_)^;euzw-NCExh8b7(r6EFyo)a1s zjaWBQlB@lx=*Zs_a`tL8lz)4XeP~|}ku7d)%A`NMydLvUWTI?%v5BPa5K?i(?_<$x zuJGc{>=#&$;LTqcNzgZAL7MJlP_8SWYki$0Hk@nxmEa?)e(O^m(S{h>Jt$2Y3dzY9 z4~c{RZ%z5l@NQAY8`hV$2}?f8^3kt9n-k)UHH!+bL+7lAUar9c-{pOel4SX*6NF?c z%cT4JwphM4nT59eH(^sO&7Lwt=6linj!oaK?_NbL_nshb3CmPP&7#5n&pCbtz{SeC zq1%^84{5g#{b_REmTVLzIYAfM(#EKiHwrm9grHUhV=hxAfjH7|lW%$UoGYu-mD3k_ z_Kf=R8V;)KIhj$$T9at0ha%X9$8|H}>FO;PFCkyq9e$9rd@_n4Gu4Dr$2Z1DXN9gc#>{3&SqPP!nO0cq7M zc31w~YcpP@!E^}ky4eJ|Dt&McPL$s1?BZnau`!sa$v(=-rBSkU1)RL8bfa`{UpK<5&La_5VdBG=wKu-U^yuF>1;@15bOWc^8OKfh{O z5=31OOhtNPN}yl;zpDp*q$hA@rW+**jIE+PLc%01XGbT(Jlm>chO+3Q=xlzQ z&Nw4!>u~xWLg66_xOUaP*>fsM{oM||arL5qk)1%WQd%|{h(iP0nLKZ}TDe(>bXEDV z1Uw38Wm4{JromBM8GGRqwp=Bka5!)UE8goEg>8n}DW0i#S>L*OnZF-DQ9=l|W!n@{ zd}cdh^<*zGl-+h|*@C8kro$3IOXBB8rl76Js++O1FFZNcd95UFd%f=5@ao4^kp-z9 zsynh)RX!h2zp^N~jOpM4&WQ(;ZQAna^eOa~G}ywUfP>2C+MwJ12i+UTXFz0jA;n9t zB*@bJ4x{k*;7S=g0DwlUm$`@06AP zzD*}?)W!b=af9oAxm+tGrw3kr-yi4@Pxbl~Ml<1Dd&+9K%}Q$76MZH+sY$FI1w|Mdr~(tBnwt_B6l?T998<>S>#L zM|#RK#QPyI&g(aAcsuB+@(%7SM!w%^t-NBRSgIjvc4Zg*yJoJ!I8kYCa)ko_gynYM zc1NXCNf_R(tkU=z=MW_2+@|_YB#cWt8>KsVz|mkYn%1+L;atdToI=gJ)5yijaIGuZ{e$QGr zdi(BP+h<)IPcY@&6nVqnMTKhkrs^x;^hvNqdfVpr3ewCT9i>jzb)V-fM!lEOo!#5( zdV+S(v~$mO4nYJEbJ7(Y4xfGI>cx3&_iR{vh7vLs$tkJX1EbuQco|;4*%kJTPf#Hi z#3|@`+)%vPg#kg^d(|bUWa_JQd zoO^`0lv&u8H$pjOwnafkBr4164kyjIf}js0sdFTd*Kh9t&k7|Q+${K7X&;7KbG{dE zl$sUpw#-K=^U2utYp%^-uGuI^%DroO!^{_f zPpNe>MKXuWZt!;5C>Jr8gF$9@M0M4=1AcWY4nAhYyo^5Of@3H%T;~3njAYQC*Bx#HSI_Wr5Nl5>?M zcm2ni5`xPnFLSBTveM$FaCCeUxzWg}dnMl&cANL1P2i^sRXs=99qhBbsPD?`f_Bq< z&!#U~jCk+C*v+|Nb^jJc-?R0aIFb$ws;W)xo{onEKmo#aa#|{gaf1BVn#wU)&5>|L zv|Xmi)hUkn;(Z(b+#SsTiL&<$WvDfKsG&dW%az`%lc6Jyu-dOzGKX+Wf6?E+J}Prz?aB>)?s^2j)w$-zb=OGmcl?YZnDwM)_eun1Mh?kzf=gpnhnOc3`t%}?*JHKU zbIPFR$%?#kE^p~#q!X4SCo<2uzf1OYooB%Cq^Go{tNbG$#e5}ymnDzsu|7Y*;uhx* zQtL6`7BgRoV*cbdxU{dmG3vEoX`~iVZLO=?(+r`bRN6zvnafE_1)1I@tHQOdt7K9A z!GE-60ViC87NCSff8!?{67lfmP`5i+He#^}1zbq@0>Oc`WIIe@YOjn)AW>|W04`!N z4UqL74fR(Rr(?&Extz$5kBl_)XwW}ay;i`lXh-t zjWvkH$a;gAMuK52>9D?hr*Fj>uXsvTaT`%80ucF22;w{*MHHJvLLGosabRNEKGX)r zrIz1CJ}Ne}Fiq9(Rz`sANhQ9Ku<^W%z-y@Y{BJ$R=Jk>T0i50edsKlC(7}Bjy5yi5 z^<3PC{2Hm5bK^UUMxAWciysu}?BY+}PA&!pJXG_MX3Yp#3X<5z%R@Y-m##A&OsE=w zB&5`bG_?oh%47YzcU=)DG$^XcSr}OvCnLC%!V&~2t=qIh(&(E%urmbFth5hh*4tAZ z`DmPTHey^+fd_^9Ev&VgS{K)PO8ZF{d z?N8OfA6UDBQRXY4Pww{>!-b48BymRCCndwcrD)WD8E5=dLHDXXrgHSvt49Tct7!T0 zRwo5gwbK@4ZNaG2bQBQ2 z^w@?2g|DdMNfha|(p(w5K{|MlZ?6J6`LE;=gtYSfj*EZQ#FAD;lO}cR7Cv3czaol< z_o*u#+q@JFbkvST;&E_++$i|=ZB`^ay1Z#<>^!wcc&cfjCxPCsPK)>Jek?;dvA=v4 zaL>uEvOj|j7-L9!vr?*TA0v=c6-<3+uge?2TB#S}19G2dRe;~c7c<3bJVzY_wfvMv z4xfyfvbK${57!ukOg^MUnGDUpUmoi?$LO4XDkSSdU_^C%(Q$pi zA*+s^o`Ao9E8GNm)KJG(TW8CZ54+r6`AUY`SW;SMU5}9}Z3W`Va|rbWMc2@1mQ6Eh z)?B~&qPx&bSDoKr<@Yt5&=h@Kjn&%|IoJ_rwQ`xXOZ=(txPC9Zj^1X>bFuP4J@{w% znw}_dBu6d*4v&hxI3ZqI4i0@kyw3HWR`@UatuP|n#q=aQ@p-W15{`9#geD8%xeR($@ zIJgvgiw0%YZg}Ww@D%KO!LJ=2h?2PfBTJ-!9a!z;_N;g8`0yPa$`za}#c`o~edJ{q z6DX{7V4x`t&zVqeN+Re$>&?7goe0=6ixGYf?x1DB0@n}W^{Y*;8p?WlLroa-a|1hv z^#(gY=uRXb4(1e}+jexv9X&ey_VT%Q^$jmuGk8tCRh<*Hahg2R{kp&$8o$kwHZ$H* z57^cEVI?S9v<8G}!h#Wpj$m{dUczQMZW+^epqEYMJB_7PN}Lf{{n0_%8gmpyJkpb? z{UU}ugcW!k8jM>8y^L0yIaZA?2~UPMlUL2}yk~X<(Dy3D89uT|ps$5!rP<-}Ymo1B0~Yh+IY_S6X6fUgbH zu^aL!zaZ!-;lL}f#urt)w~5Zlxcy2E%Ie-nOdHgQqmF#erG{D5HWyiqQP&}_Ia^gE~F{^H|b*eu`f2orWN})Vem6KnCn$QSmvnUpu)5EOl zeJ8~2veR}eyHQ9a!7rN9$?K0tGxEs-Cg&N_8_tGN2|H2t6v{K**KaMrQ<;4#=r-Mf zqdU_XFCb9wrcWp&7Ca_`vhlJICV&uDR9gYHLRqMv>JnjQ4r_jMC!cApkjxH+0L`CZ z$v-tGH=wcK!Z?Ot8dwaI{FLVy-~RI9@4cW+?68*|HJql_Wd-;0SUCTv=c*va$Mc5b zgU_-Wr(xWLo&#M)wrdX5bFpC<#2a-)JIO=o!}(^WJ@$>YDis%fP+r1rAchT-wq$j^ zHu3_Vmu0vX|ep63o!qsnD;}a1R?)$>DEy#)ER0P?4 zlyujk!GrtlVdZg|@^~YRz~~t#ypt?D8f%Ej>0&j9tF2nA5#omx69s;$Clt3n(2Z`n zdHanBF=U&D-(xwP3=R06lqdZfmR^QjayuQWF3=I^ z@EVFK^#HB5)9DnOYh-?#sq}s>Q_jeofRH|s~K)Mh9{rLs_l}1Xp7;C#eHK$Sw zHn?n+x;NJTZ4aVtc}wk(0*X&^a|uy_RXU2+`7A4c-`l>kxVf}o14qQ-h4@L?PjHz! ztU7F({zll)gX8IdH{UcBQt05%1o&LNxoct^#x>jXc{BIp*VSJXiV93s{#q=Nb};K&&n4Yr-{%hv_zVQA6VcY^!2MhSN)3p zuu4;y?RX!VW6MIVg|()k;MGViTSU2K>X@n+PSSl`s0>+xxxE_L9pz~+IhMSBsG#ao z;;)>`!MfK_;VR79-W52S0TYTG!HQu@g?#0(&>p0NuK%>gH2#XIIzXPQK zl0>VC)3@MF>h@DXa5ts9z`1J-$*=eL4h>tEF%!ngf8c&2?M?PYP{UpnFco2R<(otb z49eWP&DcL?p2)d&ejPqP5kEdOAX%2E2oMF@^iW$m(-Ph(C_Lzn1fB_mNm-nk8dN+y zMiANo*V>ef9R`1e0U_y)*qIV)1kdgjC23|sB}aHKRs?N5?uB^0V_-5v&=!IJ zZudFu$A-MqieIFOwZn%{3jsZyTjW=8wop&k*!zIi>+9Ch6m_C z*J17jwn)5%=`$^4_MwdsLj4BkV=_k*v4E;R4;}B8Kh?Mn65Vkmecgk{nR}hXj^GbM zefiShl^gZIbc;Bf8%2~3v>HNKHUReW%1yYi-Gph+Dl6AObh1lMTXZohe5+uiVhNa$ zH7xM&%h(Ug(8~BnFnIq*Zx2>Iv_A6pi4hn@y>yMby7nz08?oZB-luwXa_LRKy$I#6 zoCJwXo7At@CeLJXu;!#%PXeLa14C;;&;Xi&Rc)}Z-BBi`cRsy8VjXx%#rSmlm zJzo6MTJe>t__V@lNo+l^rR!w8<$8I|dw^YZ`R8ybFd_YByQzD%6;QYBHx@!ABf|4^|0j~dw103N^qad-ua<{b(%c6QXYwl#3DwY5fKM9xBb{8un?%AjHw zz>M3z@c3vBevQ5xJY!!O$*{Dot|K0Rp9IN#=4M2>`eiQEkRh^!t9Je05U85`t;9sJ zraj$_<_tFL!xT~Du)-9D3ge)o;^X7ji0{0_hZncxk&$wr{dIa5o2C~t-L>pt2vsFO zM$4XUk)F%5g@J;T$?CJsa?La~yud`>IwjvTu-nSDKx46_C`d+&+(PAM&@Y|0Ysh+f z-tca*FeRQBzq<49ABL?OBiB-5>(6>NlRpjoROhOvzpIX~NHmxLZBHQg=^+=NkSB6= z$j_mtfsoZQrzE9}g2URFLF@C-fH%-Eid~!Heke2C$&kKUvo!i$m5bn#9Q&`VZO;vDX)pZY;#Dc^WDhLw3cx6>-A@ z-dS&+cvxJ@qqh*+CT=si>$gHzSiRfEvjVM{9?p0Yu%1wRjPKl~-{)4q%|Ky}ey~_EVR7(Hl^w7@bzn*ORHy-Tr(phUMPsQmf_ODn; zhQPpMna3m(J1^nV>n;=1rc9asN+X0*2;-CwxBJJ;Z~uom`d`zx`ayu{@#GFN&$9IQ5q3~dq(Zp3p4pkW9n~IXBlL3l9xJFv4G{ABh`8j*Yh6i@(Y~SnseVgN>$2#Mv#D0@~17KvEcsdP_ zr(Ja?wmA8$hPE-B$CAfC_h82P_TZh{#8TWXZHL<}c?(Ng!|3H&tihQ#6|*ykvQn}` z)#s67@>C3iX~q}>c1W@fk2d;ejrsCzr|zvW<*Ixi*1=zv5XHttXa3UnpLc>j%enF! zcy@FBaZW>;@DM=nodg;t z4Zc27@N|++HPQg~T9X$7Up>-xc=))i{oG3-ZrN+qF}R9mlOPzN9Fkhk}~CQvY~Vbx1A}tZdMht3EvYJwwSo>ci)e zwSvh07K$Q%V-mwgixoyGN7eoTyf5N@F66H2P^3yGU6v7k{Whj>B<*_@tsAFhp`~tBh zajajU`&|qUr zY?Lc^D<*k%$byccDEVLP&y7PK4TP})P2Sf9s}bUro-V9;`qmg?+V*H_Iishw})C(9}JX_yb=s-KGM!a z4Hw_)Gxfx@k*9IWeTRCBUuX&OpNXI0e={l~_G25K{_mu64g z(eJt5__*x7+NLvzJrPQ4M1QNs(Z$uR{Qb2Hy!BI+%U%@?rrTQI-a8fpo~ed@BMoDO z3=bqDB*frdO@fkYi1o21&pblHhbXmljfUq%zCaqiS4p~pa+S-#ANj529*m{99@iT#7`~H8*H;FyFK-eZf5VF6>wU(2Wj__px(scL9kmJk5 z=JykY4JMdx*NJH^FB9n?Pu`lYm~q|mK?IOl(F!Ae1zR<9k)h(3I0G0rrRhaNrQDgT z1+2Zf)DBK#Tk>erMK^B2jyqjCxAld^dPZ%_!ygS^w?Nc~HJ#Np%KMtZLqqjV9Bv7n zLO08iO5P0_27{^@+*^)Diq)pR?;9*a^vl-H+?{FD_zzf0A6$48CsOUaZ-sf+>`Ni5 zs-lNCk9rPMD2$Mhn9flQ%&493ZZ16ZI@@ao*+XoUWf@90r_u%*^x;uud?i=)^Lc;* zh3YEmP3}$Nto6q9J}i4uad$Nwa^wU%4+aUf>zdZa`S77J^%amh=qfwPjR;rT_n_hC zlI6-f`&c(yX?Lp8Bv;?<_DHvD%K_2~BtP|}C;E3r`ovN=Z=J`r#Xqp}>{*kL58dhUh7Q$gH5wJQ#H{Hw2Fe+wce~7!57YBlOF*QpmGH#k zHobPv+<9ifay-paQ^}3l)Gv81%zekyo9sa3YdIrU|8BtmI#aynqu1Y-eklF%zq>t< zHRfwzm+Nhm$iR`J?B3FcZ!r7+yEI?6rpY9XZs8dOjsG^-{L8&*P-$bGIzYiVDl6}c zl_vOY^}OWLmDSl`vVC6Bn+ig{eLC8>YjBYq=0bEdefqqkzIoPg@P&=1&FEdITPJ1Q zW}*ssfMsM}c@zVB+c?_zz#@_+qNc{37B!kGAnL}WQRCJ*At$_vIh>9g{cR~t=}3Iz z3`fwd@zUpoL5D%eB_k|Z&gHhqJk+;`>@7mTlX5T@#sg&lW^CdIbyGb;d&3M@ziYhAa96Xa;tM< zV2izWymPQZjdfd7K@N!=`nDW>R5tt*BeHL6d$J+>TrBNCjL?-MK7vs4167*IGBL@{ zx&ao?t0GK=mZOqfQ338{+Ie-`@7#5v*#@*H)9_i&F{u;iI5VsWM+h{`T=oi%>g$;|j2Y@d3%11tO1MLpEOl&mfHQU} zu8!R*T-P({C6j$sdKERCQFiHKdeJn)b2#ORNz#M|&&gY4+@%0hmg!&?om8;Smh|u0 zm)xFZDT22uNK~jjFpp8Ny9#2Vca=OVUruvNqbj#}`9hNZ#pBg5=}@A*?&s7UT?Is= zlD!zrXcpu<0+?@0vbR~k_rQ;ZKi;?az2WOYY`!WVZ%eFuWpUO zU3aprW`~F62Fk~kkkUjFjf||$_48*{Gwl|Z0GQU-qgb7Ra6y04vn=B*P+Xb^lCIco z2fTu4v9(OO#|55$x6~;wOYzb92Cg`4H!TKe^OPz0jI6|HEs%Wgt?|KKo6 z#Xp5rDwNxi0C~i!2W1e9j@$3+aNUlX5BJ2XyiIX!P!fO6~}%Z^%cwQm$u{^T;g*O`Xl zKy`;-zFavqDq7@ZP%^W8HaoHduBCuuQbfC2eCVNhU`s$uxz)y76ZAtPDiZMm&_rCy zWi|{0uJIAF*SQROS(XZ$X3E=UHng>*c}+M|nb@b0pM3p9;xAlus=6CF!@~%>P}~Oc{^J0rM&0WFt3CLKFK1EAE#V-PcLunou7m5kB&wIxP)}24jsKvcKEB_9Cz(y1)QT?KXJ}vvFDI>9 z_E`ILb za_;vGUn!HO$%TQ&>|#er(&R9I609`Cx?089KF+iw%hLZeYl#IzK8!n-!v^QOv7v7F zqDy6NjK&y={gx~(HF*k>vZKB;CWWIBGL-K)g`H7t{Heov^sIMm8z}4D@|-%+wbg+PC^GZG z&IF%N+n_#BQQg8Ql*+`Q=em@L6#bE7g71)x=6njzAT3^(_5{gFnbUQY`6Qg5dbpa2;wdo!b|PkGw{-8Liuil0|@3Esm7b%lOa*FU^W zw62<)0Km(7?)1SPM%sFx40U>IkLo9_)3Op$l4uBO??%P*tjaG};9cEyiE{OAR;9I^ zBzM}sYcqQ%Mvew*>Lwvl;8O0x%JspSk5h~fG4QCqbxG=5vG~%Ivy}cFy$CJeh{>mF zURqQE$u2uP8xQ4?_Pkf}EW$(6Ryqmix_2b!NB#&wXK`T0;AoT%1MqW>1ZR0qU|@rv zk~q{Iun;l1u#kn+2%S>=x*=!d7P&hTsb=WJQa7DJR$K;8#D!dGLqJfYQSBs~+Bxrv zsz@Wjx!T*}8_0aG3amoT{yl7bQ1TF|XPHC@JW5+^Owsym@mfi?d@hMgFU_u2aix*z zIg=(NTnl6SuYjj+Ik{eO$gQ}7sWSBB;NJUaqd^gP9>c~r&3U^f1nv5%1ij8Z3oh-^ z>jJyY2s|(7K=#+DfHx7FTPIIRHXaYuF?vWHEq}dly3D{e;sAj9=R#P*b2IO(t|_e} z7!y$!)*eLv4Em~-BB^V7z2_R?s5-2u-|%;-YP~OwgP*K*h7)?-(+ndmb1NSxvBL)=hULOtKcJotq|!>h8t^mO5~nDu690Ye znrvhRAqQiC1DsSV#g6Q09qc>}j~J)0gsv==t$_7-AYO9RPBI2wHYt$dDCDJK-EVy|5|ZEm(QBXP*XUUI+&{$vQUV>g&0D`V7PZ!tWm5?*)=kOX`_w*_DwpWmGy) zxQHcXb_qw%6d@rs$M2<@Y<1otzlnpA7Z%B6PCJ8b@jge&yMjvly7!lH<|=t24W* zCim~bt5fAwL~udh{<3U!+byjsm5yFU8oh8W z7scGhxT1IMAqK1N(2pxPC5!`M$S-fkR(>k53f{%=d(vpfz+MlOEx~n1U@1OsinWPy zpq{cNA1}#C&UG#OS_kk^Gj0Rf_?93nk)c(Of56QHUoOs2?_z321BD|iJ_<)E?^Aw zn|T&2;IWADRRowN(as z__e~U?i=rfsi(^Q>9Wo!>+Zh$Ufe3APrVjdy5l8P?|WO>S6S_hGg>kTFz1Xtsdce- zG4k#$Y?ur(Z`W0xhXI+h%PRj-Nl~f?9Qyr>Oiw(yFFEMf%|V-QdA!g&zh9s@{;fB8 z=AzzGW}30};vI_+Sa;?-;O<+4=@3o7l$1&_u{ZZh5#_(n%l|g>Zh1jt*Qt_T?{OJ~sKPz%(${M3J6er0Sb z)2p|qF;=rMC0tXLO%JuJN`hs3CRbaPrcD0j)$u0qA5nz-`?q3(o+_yhr8|2VV7=Cs zl4E#4s{&oQH#4^2qn%t*`^CPTxnghdf}9QpKFpEYRaMnEWHfI1drRM-_uda3hMcmf z_+Jd=$Jt7-ll?aEkNa2a*bkb5x!KPW(0MI&fq`49`Gu!u@Oh=HjSHZB*#33uM4IZ| z;R?2tWh*54tedk!SEo6u9jp*0D{?ySDrk09)C(a z%#MtDC9gT*>=91Z>95YR@4MY~k^R zPY4Bt>jl>fBAowLm)VD3t3Tp?9~l^UTyf31sl|hVtZMXh!nfu0scnVs(fL-3hBQzw zMZ`NoG?T`q*^`{#k|wQ66GGl#Lc>a{KOd%0u{ZVG=Vb<^MDOztsXWgRf{T82*)=OAKs9aGpIj!P^oPfzu^jRR8B&ym|q%HxAo@n z17RFG@I}?hei~aC>$f-QDGtUkJtxZ?p2!jt5iXk!FK}RGU#Il9Du~M~J{>PlJywsz z+03MO*93(N7uzo42d6N48MZ-pyzLUoJ=Q^a zp)OpUi<13#R63>Y59Ccu3CeztrV2GBLP=rZf7I*Ja;B=vW+Oz0}b8?TW($J{SMrPyj;Yik_|D_4Keu!RbqY^fqOz*gXp^y)($XhwCUixJqvL~d1hXffv*7$<#3uWlqP2j&@!zUBx+sKq^) zaDgGnDzlU-sq8^)iNzX=1;?tP#e>H(ImmZp_fY7rWcloFZjNM>dF^w(-wMoEy3n~e zlUoSrAJ=b^f{BCuDeKJqQc^~0U2WTzil1n=of*jQU14ZqK@2^ui6r|?qVqz~9QJXe zi4vM$X=Re)EbEUAUDiLH8()SDu)+8Jx=3=f+-m1GzKxFeELOxnjjEPVji%ts z8Za1E6(ln8f>FWRx;LSVbR8iQvw`W!j9cDr3axOIE=6_MnRbbf1o=}l%hxAO;!)A^NP<=N{7hifiz zCH<*3TvYK4rWRXQ zZ;&!K%py}%wx|t8ex>ce))Ur1A09Nj3@+ZA)E!uM$CkQrq6Tjd4_aIzpLl(=l2j#_ zAa%aIiY+Y*RRXcKl)AR1O}ZSVb%;C{qb6eLoO#1r20UaW(oDi7Js~BQ^Q+~#Op&LP zuD_pJa&Q}p@O!jYKBxY4r zO>5iP=R4?$#OB8`3euhU5$xMVhgqgo$f8Ok3ebcM{_*P|w+;sNFUq$jNYjby^jIsF z#--?#(D#kcZ?nJ0qUm1hnh-Q3!cebhsC4Jir2pvD^KJI#x zMz)t+@gE!RxncorWRj7`yrX696W1FL=W&++Ty*UwnojJjj;by(=8aXww4)^PQ$s2} zM3vrfJHNLCBqaZt1VSP(gO>^U$26RGu3T&T@(PL+v8G#EF0eK?-4IivmF@YDbF(=N zV0cRB0VnvT>36r?b+dKwZa4?4NpFz@+Z>tbW{Ih6F{wsw2X>9c73$P34z)NNaCj~^ z+WT86-=)UsU9c3!IvwKdjuR|y-?|A*n3mMJo!t->3re|kY?|pC{t9W&d^a5KU3fQU z5n{-@+Jp&&(=_9B-rtjFe(Yoi+v~3p$W^Of!tXYxO={x>boV?lL{~m?Os)T^ zV7uXb9Xlyy?(>5B{I4MLt7c1%1;(8Q(Tv8EnfUwG-(0}y)W~tsXj;-^r>CL^8}M2Z zBQyYA_M-0G;#B}pMAYkZPs+U1G9y}P9MI5z|-v8 z88x3@IDP^8K&CZa0A)hpAHj94*K(i8epU@yuQ~F9Z?4RG9oliB{>{%4OY=vUzC?2m znl9N|-LK5HBp_y0O8j%%bIe~OxvFT607VqQul)ckSpsh^MhJ@2Xs)H~5(633EaZ~g z1J~7Y4~8G=fdUNp#RoMv#j`Bt!Z!GY*lgWnH$zln--)O>4RG#nAZh)WUjq$#v9;k{ zWWK*;g!7K8Jsf_h5Sh~fU1)dj9cUlB4@iW!UMM)eUx`D~e#AXPsI4ix>e7B?@6%B@ z&Oz*#y7{G(LC%))bVi2k_+a|9!NH~&V~2x#Mtf5asD%D1Nb}j4AGp{|h1CColPn zAJ*~6d0*m%3ij1J;@?Hys~G%gql1=M-U}y}(m?ELO>hk1MAdTr+3hg{2xQsu$o?g# zZ7E{~kF}2u4HTANZ*|$fRQ_eaPIJyo7Pr^rmM@OXFT@QC8m65>O3%74ss{pkBsTto z3?Ss_9k`FVn*N`76u@U+YPLh`(yN&M8Ac`L5i3xx^UCcXXxs*<<+>Sy=idJ88CQXT z**Xhy$E-T4?q7g+P`cSzyIdD4#>&naer;Mf)e}n?zeLE%f=EEg$a=cfTTT%Wr=8Jj zuIQBOoIa#Z@A?x4Siv`S5lXiC7ikJV|85vH^7op9OjO*%;LohQ`Ev6VjLMHxCiRCXqKCCT?vKU54~etiEZjKO8HW12g;-@>HcqBjR<8QDLte%%o|OV- zisd{h<2XZtu15=@JQ2y5^8t)Z311Mwm4!93_ll$Dr8aW5kl9Xjc)+pdghq^Zw7b21Pxppf`HkgHL%}U}miaaydnu$sm zn`=8^Gx5ahv6!%!SBq})@tex;T2^e8;tY{E&*#*#kvSEl;OXT)OQzd=*zf{%gh*Vy z{EQ{wOwnlz9vMa#tGeCwCTiXAiUE3IMRj|6i%wGpNi$CI(%k=2N71!`dZw+a^jWc< zbyx%;5G2QD;U~AfVngRcV%{lQF{~H*B3a}`;_({%T}Hk0?X>)8aKW%)gP$w=j!7U5#3DJ*jw$e+9lN9LDKW{>}nP7V3zQRM%Q8dwfc6bKtQbOi(zUJ}Y`vPuswXeDV?KCER zpE0t^znj06Z+DMFh0^0eXIcA*fj3tP!RwzxILb**Nr4?9(m0jl<`I4@F~t%;#+KsN zPyOlf|G60k7D|0P`Q+5^-LlY~*|pJN++vCP<5uL&1BRgqx+h)Z{!Y=7HAl zruIA>R`1G5y|VvE(R1cr->1;TIIHr@+Vk+D$2YtQ%d9sgHMJnp)D-z)CyvyN+dx>OS7hXaIq0GIN=wt06yvS~JQaRjNIU%BdwFzX5(+sxzw zVs>)h6b%)st5Ju^P+3Bx#VK6U&TTCGVYIz4IW&%YoQ2Nt=2(RHXS`p!nU^;7|8vpu zekY72yp2wy@gD<3s!3Y0cz{1UvsSbnC(g{)6*r6&d^nt}IQj_zNe+9;G~{DZsiin{ z>v4YSQ7Jj*wIM3B;30S35i`o!9?IrQHa4Dze1y6S2s}^bn)Cg;I$ii%voS<@UtF zgYmQSGOOx2xsWZ>7y*BLopckq?ixlZHZuhaW&Ad;&E&@|hW1a>LUB~_a>GnC3I9yQ zqAQRI3C-_cUh4T9w-&0$0y1Z<1tIEbf$pZL@V@i-Rd%Oo?GvnL2dgN2+99!6;&`uY z3(d^dN>vNGlYV$6zU`7AOK(D)yEdJFSc61YfG9p_OJMeTtf5&g%v+*iTZnYiAf0w) zAUKmj>`cFcSkL&vx0qhPy5=?1z2>hJzb|9}Zw=j)l-J{r`g*=3=8y>_5TSH-*m#$z zLpM%H;8%seli)O>+nuaMhwpA8L_jfE%6{t zz(XCDVCS3Y4VSNhmVt8dIMzd^>4=xhxeXaQ6+s48v`%dpO$QP$aojy=;&z9HNlkZS zRR_^1!%0ZpJ^wz4sH(gp%Ep|gOB05~G2vP9T;P|O#7I%+V=r|L&j zk~?j})XHmS@-8)gjxQ$Jps3d<1~TvSF3_c66G)56L2bT@5L87u@93O4@k6Dx;#C^A# zi86`es40kjI>wtOZPfTVl^2|RCe0g#k$yp)nLMfA1oG;HfJK#<5!;D zr*@|cy75rh>+f|tdt+E}!to|8dMzq+o1D;pn`IR6>N3p&Ee3)de~r*N(0?>Z?H9Db zA|S=ujXV#W>I@A0?YH71iz%@AfP5*{Jy4Btm`2cp8y$6L7q|rBFLy_w&jb1-o_EZg z1bkoOXV3ZavZwkeO2{d|p~F=EZ@QWAC=)!GBJ^fm?<49cQ&lhptLrCz%AJHcY5Wf_ zx)fG1z21clT&Nk+PnWv<#{n%I>Fvq=#wLAD^~45A_T0bS*_hUp+*fff&%8>M#Vp_9 z{oyML{N>WkUkQkYc%Y7=#MME`#26a=cTkj2rreS#R@{@J2=%ZzWjyu2p#|N4GnPs{ zpz3J$rPdcR+)Dut(7;vGkgxRl7vJb-vC;_FFv#YsqRI!S(2EGlMqZ=G&^>pvv zEr?!P$(6sI1(c+o%$2VApv=z>M^x+hhvslBO6-3aN1qd6MT3tP`ax)D)B>4a{kaN0 z*nWfCT=-$UzQ%$F+bg_kIUAvb{gHERcUia7Wwh({?XG! zvh{J-X5Qb>Ztt3fiTb@ybTtQRe^SfVn+A7?Vmm>^`BF|po6^RxF7?f&8>1@U(BMj0 zgQ~d$GXF&vHoE&=>diS{D4M5x*7|+_QATvPL3JQm)W-hU83m-9aR@xwmSQJ8!v9Lx zRh$!2T;WBiLDx3+zOmpc&yc#2ws*eWH!$s$I`j8SML6?9r6YC5V@;x*YF6nvh1zGx z>PLB_x3x=aX)J}^o?f^dkz#%vj7#s|dMrw81Hy*4;g}GR2Q{7I&L95(cC9T5o9?&X z9T;66GRVUrZ+dd+A2QxGKc06q!)GI2N>|%KEOBs(^2MZBQ?UAUhtXmR5axO@IzXQ6t%^|x@5Zm-biQba_uRult=Bm}poyJVW#s&m; zlfcMY{Q_lacvXn}RQ}si4&olzr_d(<{;-Am&lDxM^yL`ZAx5u<-R#@4Y7i-#;*=bh;3G8hn~bs*g}aw3Fm|oO(kAu7n)M6 zVynB+JT!Vk7`fr+SkCfjhMW!`vN7Kwp|IN9%v3Wlw>VmuRP2o*cTw4qx zkoME^!N5z0G2=TPx>_dlPRi(;1>z3#JKWANsE^xYFMC6GbrIF^xsQG?`tkUdQ@R$ZY!FSAKamIyQJ0rj*x|% zb@#tmMw!(9p04DR{}98*kJV6|4@R9VQzzd=!&70N3hNa$O#UgIB6kL8+GmrcwQ-=c z#E=N}i*nPQz+)RMlSADY5HR;8IWr+(j4$2)O$7DA!o3w2ra3Q>V^)A5h1k}g3kixc z&=_~r>E!t_^rnTTEh#vQQ0K=+4xms74B3r@TqE!w;Ij?XV@D0 zU7U-E!6BXcHnz9by;`=}B9W{VI-Bksridzp_AxS{%OeE0v|*!%H7~!r8wKYFD6Ol* zr+y!EZAZd?z~_?ma)E&bVV&hnddLY$mfMp3{k`)FOYSI$Z#DuV0Vd)o2L^2npxc5= zl$EJggrpRQT1IC-fQk(^#?A;^kJ588rldu%L6MRpmg@q;W0VgqZ(Vs7X5={dhZ=r<> zEyzt5A$GQYpgsx%jlpzdQG3u32Z4fG*}g=9ux|BJ|Aq~gH>u$L&|eiLqhTi7o|}>i z7m=PZadKB+%Lsxij_d8hT(@(ymsGF|ovmPMPNDPgS^^4xZ(%^ayHcpPMI)Ja^g>h_ zw2R5fi`SIySX!+8G0MxrS4FC8U7wH{8dZiO2{uYZrqbnPp&)V)|OVrR<;fneEcXV@h{?Eq~ZOqb8%Q#z=tbq3io@~{?W*Z zT?|mjto!MDl}p)L^Qp>F`kkRRYL9>zifbDD`wLD8CSWM*?gy5Cpfo^d9P{CfF-r&yHFv((9dcUSOT0Qp(+C$T zog?!Yp}UfAIOCG^To zbIon|Asew+-Yigkh{c7mG=i`&&RJdNWWp|h)ZoTS_pMY{X%mexWt16riF}xT87rV- z&&B)v^vV3B=6!sG4o?M^EcW_WY}yS!<|{yXkaCZ!w*tFHd?>{iJ^4nE=$e%a?cOeg z%BUQKU?>l5i=N=dsp!1h{GNru-+2=cX43BQ>JE=MD^SbLb`~rrKoANhgojOHde47I zcK7$`8o9`C3`u|WK}^$O<3ZZQ!FQlaEhpExTGM9!u7SqcX52kNk~8iL51&TvZ|7?I zI<56Wv4(?w3?V~{IE;cUDT1@}jM<+M;1bts{S8BXhfR9iiS&V)#Y7RBaHm%40T$!j z-^HAUR}K>i-R#VTgIU&8--om~ANSoqX?;6Q;Iyp@c0!w<=x5pJlhL~^#RZC;+5fuH z6rht~J-N0!_h(LVQEW6R5;k;HAMIr6uD}HfU#t{f6SoC~!1Nmc3g~owe>a&RFd4_D z!2cAxl*$#bMG!skfHk0rUpmf|RL36dNK z3n3}uxupV(Z86dLev;3C1LD*=58AM0SyabJ6qGV~%7o%wCEvFM(S5Tf%Ah z^qzHHvhZvXv^?Z*iuz6-X*Ww=cLRKqWs3dlQ825aBe%s=jfMuwR=!x=OchdOyKk>Hmt_A@ zJ3+bD&o8Av?_7zrUcO_NglirvP3^aV@j9fz!Uo0OjnWsaNL`}m`zWJkjW#hIP zDH+l3gketI^wV}ctfZuhhrd(;fHgoys#1fr%)!W;(jn;%AyC`(4CYvyU;0ed4Ru$B z|1^5(7wRnf#n~{U{(D&JQkW0Azx>Ac-7KTXr?bj?zQe;eAg;%Q4a!nxDz!V+oy2Eb zk$XP600sX!p9%<0Nm{~(q#Fe&J0_kn|J}RIdpD((Fy|rb&+BU!L{(tp#gh}FRzXhn zgff$~>FX3(GphB%%%spb3MJJvgG^@fcA3fb^G@^cGz8FnKhm8r;}+@fV^OTVUK0L7 z7Z+EjJ|}!XR(y>64_D12lBF(*?RE-T5Sr-6V};?PX$_DM%{`;fB~~6xfQca~XZLd= zIlc;~4f7aUlUIHXVs;EY{4JorjLXj!{xzeuT$?zVCk==zatss$ zj2(CHD?wU>@n)gRIPM{FnK4fcwSles3-7bP{hP!_Vgyltgx>*?%8D8+-1`JcB94N_}!KE_B!)%5Eo5jIU`Yc_F=By$Dvxwlm`@^g@oX$tv1*^Q#ldj?^~yTy3S)cOp{zYJ)e0VexV= zwd5+UiH<m3@$35J0=Y9HM z*jGqEGLw&_dQLIZp`XMU9*19#%A=w1#7(#y#!(^V;<-i6q}+>;I8AbVK@UZvp^Mj_ zR@6eYzv-&B9&UVMJ-xPoa%A*XG}!R}^C|67;0V zUeR^K-y95xH-280F6NBPJ0Ys@vMW0Z3;F>mez%(BO9Ds}%{yWEKolkR@Z?vWcr#9Y zdYZ5(<5`5k!;9EBr~A6Q}tivODmml*r7X ztSBz7GHKqgzYTvOI2F_e2|HD1=vmO14PKC|L2vwF{up;|Y7CFYyPoM{8CzxYS!bSi zaYvB?6r7BvbJ}0QR~Dfc`I;IRE{%{jA3M;r-0V~of}oJy-zGVkINIpwNf_|AurS^* zH(a85+L{1poKM?jVJS}dv_}b=YuwQmJ&hF*c`+N1if7kxs^3eO;H_|H2 z1dl$&8^Rjx$mQdoa$^c;bMFN@YyoJ;Bh@4oz)oVywItV=1 ziSR6ZJpBu@sCSxQe!qQ0So<^UdcyHJ0e@VhjDXu;BA#kTdcm-LsZ|r> zgcAE(;OTM>aD7EYWX7YFrVrmki*kdF48o<3j?7!xfBgdAb4fA2czn*mvs4|a$YZom_MNa2}VG{(}zCpk6_Zv3d zQ~{ky?M+ti6D|K#4_HDZ6~yzb#2E*I+AeN8QHie464<-y$`5n^xz%kKa6c!-+1IKD zj^1e(@KOj7>{}ec1)KuJJRW^$1e&blknxo)vlk1_H+Ii-s^sNLFY~@ zwINq%!8~c=j;|hoKxoN3Fx}Y%b;xzT^cP7I))0~g;DyiVj(OKK~_j){Aew z?y_SiI3UK4A2BULL6tXnfOfR%(|gnxNvro^lsKL1fT>XxhX1cT5cpqt&{d81Sc(e~ zD}DAuEjqnhny>z@AgjqRe%-6Yq@~K#tN8jarbMoG_44~DVxsx>#D~1pW)3#49!v5@>%*?UQTs$B-(`V+98?vCO79C~qvV&0yyhO~pZA)*wLd1rv?zM{jz#XU z>10DRtd;_~a!UC$yBBz(QZK#!P4y3bhr0MZQ9jM<^{eH_x#wq^WR}!dC}oLQ5cS|$ z`R^CvlrVLQ&%8cTHL5Z=f#>FnylR@EKLtuwN}fvrj&)bBh|%JyTOkDk5-Bs3QHaa5 z4}r?9BDZk=N8ha7-0!?)9>w@_#U6b!Jd=S3UX9zi4|B2CO*l<}Cb@`Tlao%XRvG64 zzblV4@Os_F1!UCTlqo7f5-Ad5Abc1M?_S8tjEsJ}@d)snY;P+JXCN87IUVkvu|6HR zc%Y!@F{0c+>}vPxNEQ9fS|^es1R3cC@*p)q07mL26ed*KJ&!C#GKVe7cB(3)ub#t@ zW4Hf@r>~5PBUsuFkRU-rAUGQW!6mpat_e<%;E>=1cNqv8Z1D{eG`PE4fGqCr?kvs% zi+tSg-t+#LGd*3^J>6$|s;jEIpDK#GmA&SSE8oC~8>(t~_@OPksrDC}wtIScizr3w zWKr)t7sWU2%%5NjkPa$=73u$5rkP~^!;!a`H})_(EY~YkWBo0RO34J1O50Gn0cJ+3 z7nt;$ys;rSPn{!5^Ak1OVthbiNbmQ5W!a^fx8D|A61&=XALJ8(N4n!W54o)z~9bf$W<4siMCH1HO>-B|U2arhenlv7+(QBinz_i4Y zuxpewljL_E*5>&5V9Td3i0b>;D}a zlQ)=%r$Hwf(Ql>e!y+$oaW^1~{to?=(zv8+!l@vE zyHR}BXGWn!F@Rc|`|TJBs9A%ELS9>ciEq`D_t)|EtR0lkiennzIP{Ms_1|<9YGnbq zoJMPHhD)fR8`EnOPZJ*nm_vWy_A?^&@xRjHkN4SKWT{7lX2!8*8xqFisH7?Ol1Yv? z&rEyECO^ECeiJGy2!B&Q*fhVQbzH736b~r+V%BIz)O(~mA10( z%f<3ov?a8a`G@~Qo+l{8KMzv&l3oif3|)i3g2|1=vLs7j6phYrRs09Roj_h-{wNBi zoc*k`z$x%nzUg|SpdWW2au?-6wCm2!xH&i@dn3LlG;%xGGWtS_ZgH3_O!)5Y3T9Io zj}oTXoGxkEJLO61ySUGiXQ==t_t`;D{uMD)Hqj+^K&N2! zw$ISYiY)>)DnpqR$-FKRmwU9#b{6-592w)vKb6AEG$c@nlQ{|xs-bKHiYHQ*Rl2`* z3j*8k%~&O9*ifu6nMzHF6UK3R_Uju{B7aQS4DzDiQU|XPTE(nnR4N5Zh^ijqO8}>{DiI{E*H;HFF*T@7Sd_UwS-*# z#r9BV&$ShO<$W{F?w0HoZ4)V?CtlU0-d_SR_TBK39zkZ1Mx7wbE~}`qcA{O#IB79U z?jVE7g~HUe1Rg{G#n2UV`g7|B62~8moG-DI*u?RPY`ZOkyY<8`(|i;MS$-32a+MwC zRw#)#y?{+qbz&y}RTaBqwT4S+B)+FLI6;A0ZKeyYYFSd?X&_I;V$=T!Vyhic6Kx?iSpo4Yv zw*A1e4K&4JrArP^12NZ5U>L>Ajyy|PqQbkT0U|DSuDDokK3jH<N)J;_O)$J%Bx1X^6`hbPkCp}&R8T)E{t&cZKO&PE`RwdVY0&0^4sQMaoU#2p z-P^Dcs!>6X?=gnQVwM$s{zl{_TMO>on^p1Qf@n8^{`<@1qJRB-en6&jO%!Jmx|2ZNoJTQTnVF>G;}3T*oVQlj#5& znws#;ASdPc#@H7&ClRTW;rDSxY!WzFa<7X76|$ma?75!Sw?7xCeish)87CrSo2~Yu zI?kCdG;Z(p^G^QJq=1$C;={6Nkvo=hSeuyP_7VECI7`)!mG+6CNOE_;DtIsJ*YVxy z&li=y;F4^(-Q_j%ZBlm)lQftTtll!{-)<^mX<7T=&}2nwYDEd0z?bK zstBWX0rV#us0^T;{6OPZJ}56+L70@Y zRN0YC!u|m>#BKt_9}G${$0{XMN^^>WxRTtAkwU8*oteAj!7vl1a$$NY?FsfT`l%c- zqx_ZVT+8^m)4Tq$Fvg92Rzh5Z%MyuN%{ax+f-HXRHeB~=7cw|Ez&kOwHV&Vb9cETe zncDaV!TGoku7o+3;iT|dzn14>!>OK5Q<)UqEc|-RB5P{h4HyWt$=26M|09grQ&d9S z#Di-)P^c|V%OrlZIYQReh#Mt4Huk!kiCdt*MD{lh^G>h*ek9IL3^GK0>wX{fUXL4Z{IED@vy3PCus@2*P+GD|;qQ*MTU7P_g5zB9E6@AH zR<=}$9i6tr2@yGg+IdJ=oRe4)7Jc9|Rv=MsbNin&b`Pu6JD?V9*=8HSWYY0NgzQB# z-D%hf?&Rh*48@GDv!*}zv!q3zY|uc-&3jpH%5_UOb!Z7QgS2Xlz5e^*@>AM>T%Xhp z2ahZ;1qZ>SA5mW@gyy2ZljS6}@76xA&QU2a;g!>c)h>6izkY`uoYYC7t&@$=z8%9? z_mpbzN&*qntO6`GmNe=8C5tP&7#-W^*lgXOlM}oL{1i~lFgf5q{wBgtu;6Bi^&K+xo>(?navn4aW4{Yd{6bii-4#1 zQR9Xf()0L?3lWs?e_B2Ff3^As;{R<|blVWX37p{m&vwOTr3L5(F^U)9H+kORzSbZm z<>8~GqH?b{b=qL`*9`4Ot82qAW612dGFoW8VX1x6d}GA+{H-g+d4q!4>|XNi=3={= z1tkVGzZH(4nAIwz+Db#<p zgewwkhF=0XRSjA1Sp>ef94XC!)+)&f`UnoR+mb3gdL@X@F!c`-6uG+R?d0Y^lx>Y^ zrZAPJZ-(+N;3;)Tydd7-B#Ba&aq1MZh0(8FM~T#M#o-nx&uW~V2>2l0{;yG1}mB^27pS=EyD-n_9zv=rIFwbjNV&?nC)#{0o?IRH@ zdkMM3+X)e$5WxDvZoAb}pf&hza(`Ko6vm%A)&86Qh|M%#hYBABbHz^UnOj;-eb{g7 z0P*YZ)!7w0nXRYv^!?A)m*lipR%+#b;gJy61fMMB<(iZ!dz(>xdV?Bt%*TOe^KG8O zW;J9nLrL=mf%l8Wj7nyks4^gH{7R?8V^)(}ca+TFK@niu(fL|`j(WQ0;Z5Cm%e^u{P-@2W<>U9MRO}Y+0qd9yAYZo*`JxI5i8@( zsU*@dQgPV8QnvRH>)YdhwAR_5aAE?N)8r-tzp|O&fnpHboy41Br8JHHExh<;=@tly zdKcl@vuB(3Huj)T(7sN_q#H%!xt+dtC((i^g%~0J zsc+^Vn#|e=wX`5YDDu00N)N~J0fCh`=eaReTB90u1mCQy23m}XQjOL>qI^60W$`Q) z$Tx5Pge~iQgBs@xCBgDUCGfPa>-(ec63YBw#>$=K>)dN4?nlSYyy~zTwE4SYY4?nh5k5e7kIlOk# zXQj@Dh6=t|;C_v7QK2V2bCV{6SbfmJF2hLAx;z61c8}^<6x6ygPf5OnKvF3I)`6Ui zG>xr?{;iS>dFPl~Uyox)6tiLv0U>8nilH2V-VGYGS2q5;)*cOCa(tuAQJ6WmZD%Zy zrn@Ienw?#9VIlFZ$W+y)>U#KK4Z`80tHSOxkx`Bwig@iH^|AB7lPvxZHT9owrFhGW0s*9Sct3s93)Am4a40;= zDH{AH-a93hX)!gEVHCW>hQg%?u5;!2{a{G_UOZ$j)J-eO{ET#=Y;*ZD5HT#Y{N^^J z!Zm$^;cV66&oeAPOUN7`)WomoFdM$TRz`P0bKbk~t%nK_wbhLYZ6<)w9+!4iZ0vNE z8+8RP=|&Zua!NZdSHH@1c_z=m58;m9wkzKmx%O0Q^cc0683Fr`TZz}) zzicQnNlc$ff?(`yTI8OilT{3R21Skxo?zV_2m&{I__+D4Zo+e)0v;ZB)4db2iL zXSh$GO+{gmtRqe+H2bHf!=5vkanFUazC5Ra1J$6{&_|7$k$^B1xY~B%&SgN!ygmP< zyHA0I&I&D(;!&L6)5Ex!c96eyF8t6@OIZ1XbG?1zc8W5P=o|rmcE%45I1zqM%P;9{~FIU(aH4u2SYT^KDV z=cdj&_*yd5Za7Ova#)-(gZO`*kwPpv!q1$&#HeA?9`W1Z9m#+1duas=hNMVQ7B#-x zJ9cJSEs=8)7*|Q8Md5GFU)u>7ACjM;I@U-4#%L;S~zJP`T{b)OB=x2pME8qnI>gzsMEB; zTd8Ko%Z5-}yv4_uE@g0mKs5u z%kodyr?&(^G$+K-#WLa(dJ*N#`1tF;E=k4+~vy{KXTAk8w~Ot_SNKgJXpl$ZQgRCvI$8CAru!O32cFQSe_ zA)q9YmW{?G!qHYWuvW0#*gckL*+0|~pZQ1NW~{R)Q1Em#DLTU*%UC?l;hFSx8lguf z_aDq~1&p}RuIGOlF3m+&Grzv&q@OM+_BqZ)=|bYvp7F2+!}{2 ze8V-ng%024h)8DqH6T9dMBnlb-(`!)kt{v?Fxz!-%+7%?8j`_pXkQ+u6(9Sd!! z7WI$xE3co$slz`q?JuKfxY5L{(R|6M)Pb03xW5y;tq-n&b!nq4D*5Wg}s(V>nPxdPaChi z&47!0&!B*>=LE|I=&6N$yXuXSpEgZeuFAYQ`Zv`LhRiOaC?~yi8MXJVsRQjxvWBrW z8dZIMG>Sw+W5kR$VUf^(PQS~x9Y?oMnfQ43oJ7ioHfR_iMMj@Pn%IXn6=Oa7_)DCE z{+DKQC*X(RR0a^ENfONm{#Z_l=ll7V8%oG2YviP1V7n|0I zC9)nQK2w{eU-*fdEEUJRNg#n`>fhSt>DuiZ$m?GF?J-gOv(w(@`d}UQ=*=&+YN{gO z6p#|iS@Y9&Xo(LZUX(ZG85bcDXpLX&Fhw9pQR1+zdY-5klja>~K!ZJXd120SLnZA!D1V97h~ zs#C)vY$KsOV@+xI^B+3WZeO|rWm8){RDaUUiP*k{WkiMAQu_&3J!u@_)uPpKaS<1Jau)<98cF9*n`-F=+DV2*i38v7w|$%yzkbj}%)=h~?X%mF1tI zh90j3<3!NBD5z!EK3^<&b_8GcoD+3cg7IrAtZdU4KYS;}-zPbI4-3#jPcz8>N^Pc4 z%iv-f^|3Z4i<0`5M}3dXS7(Du^bccjD0|^q0(*($PkJZKZUBu@Bp<^@KRtpj@kD%| z-re|-&!&E=G225VpaY~>c}TfZmkl0&(P*CTZ~WP!A%uu0j-#9BRQ@IFmt!)`LHS&s znGXatTFDw(G_Yu?@GLf1e&v8*DScn@pi9e`w3<;n=XVcsmqiK&N8&8uG z9~F9!C+b9zObaZv;67*5Fdd=IkF`=CTG8`FE{GVbiL{7M&l%ahg^=@J@ewe@xDLDX z$H)aUdsFmY+YT_Rn%kq1p;m5}S0fPqEt|{VN}bz(^E{M*Z2jMSUG~M%-S#BfLw*L& zKV$1|L1t3hGo+$@MXHJ{`s<~5bHoI>v2O-Mv&5ONU;%VFzXv=rH~RnFAW#&ncHU9% zHW;hS78u^ThJEl<7REYFRnE<3!nLGg%DIqJ#f&NY-gM8J_1>9Wl{^lEEaRTyq)lI& ze+7se{h@%H=K6@hcQ8GQd?3JgNmI!nn-@RK>G~#em%O2s`$Lc_&1HQ|-?>h=Se$(w zMf#ZF3n!2p9G`Nup}Bs;z3JeKix0MPAl2c@35^Fk-cdkT{m`c0i&Qv>O4`u#II53q z=msGZzjpO}*>XLG?oN+6vWq&nh1?8Mc&ox) zNIx1z#(A!{@yn3M_nh?ix8DJ?0_kRLkqfV0^Hur_Iue(tNpq*9b3%r_@OLUOqmR`b z{x!V*$imt~K$*##$cug~JB89)@Y^1`{2qlLAPTb)rC!sVf87n08nbBFR!U2mbQ1ZS zwRrrFV9uhUNQ5_k$|H!oaRv9SjO$h*Qt`^Ky2P55RkYLKE|3GzU))xPi_&Rs7o zt2tE;oq)w^HD$G9BQ@+b>=X5R!yA~Q$V01sUm%rjjM*#hp$|e&cL$kqdS`8DuU*#MUhoIx&Zxog%I*)5nCF* z)JW_v^*pYVmarcaW=p-D_t=Z9*bs`{Q*nJoNf<*!U8xsF0O@~iXnO|aoAtf!#e%^K znQ}DxU&6X521r9s^wO|BGvfg?!NX<%KEhAlgm^WiMaDvh&rX682(La%!tw$R9o}4S z(tt%k4FvQI@I~<(fEe{>Ct#9Jg1LWn}hnELPw37fZ%}- zqB;nXs$j;OZ(Cz67A=j|CO$_uj%)pIpH(X7lhpbl#^4p-N0r_eOEFE zaMuti2a+eka4;>JwlLRTq$-o%guYG`(mvfq{kdLIzIbuleKBvh12AAIS$`{Amq4LG zqnNJT?>fg90r~w|^B22!-zudO*1^ZMh6Hzi9yasfdh2yZ=FV<*VMdy;vLa9pQyo3S zd~!2H8e+rDYr7jKLrw9H0Anj6^;*p6Kh+{%Ffzs&nkXXq{3FRqw&W!-Y5i$;SVw3E z_EtU6knWeidePbtI9D6o65%IBky3X7qK$C`*(c-vOOosYH;1O%v7ATDWp67|b(lmw zZB>~!X$-}fs2ZKb?V0m18w|Lf!l9kM_Y03Mn;b>2=Ts26aUgnqwi6;)52HCVis$q%>4edM$KVyMZ>3g4&k zzEYp?18pxUr5laTdbHS-TJyVf^CGKAOo3RvwWmYntNXZ#3i0f#yY)OeB)vwLa9;kJ zfA?T;f_Ga+H0{xmdwl3lrzYMHXPZHtuEik)Q%+m%A_+(~>i5_^3s*`W$oEry%Khpm z|9vHo5S|!EvSN7^NQ8{7}h=jp6+~*+KT~? zmR4xTpI5}F3T4okKd-n|CfocQTq_^Y_C_%n|Ia7-ge&BO;)CMxUtFQZpH5tYgwI#u zzfO?tXF&j-RQ*0XlOPwZn+2|V;(iVWMTPqcnJV7}N}B+*lO06>;4ojP10IuSj1BkP zN8E;5&?lJNeJvr_M<#QYkp8O}T{ikDUxe*~kI#HY71^H6q}HC9q__TmI2^M?*^_)J z$c|JvkD4#6fbgz1xg)ltd{H#~Vij*nOM9*Sd$a8YIck5OoPSar*yaB%7Ld&NsJD1Y z`%phGwhySV4juTB&TpubF3r2gP&olv4DSMNDh{<8<+|urVLqp7biZ4pBa~Rcg11E6oja-$m8Y zn^%I;i@DL72wAp%IWyxY^qTiIJ|m5)NOuDm{sAVu43II*1FQO;DUMV_L}kAj&tI?k zT#U53hBOgb+LC+&ueQ;B+f>c}78z@VpMP^J^(6Z5fV-an&VrFaL4T~4-vYW=GJQf!7($x=*7y7#-$%_{h*ULe&>V}#&E z00}H-tV6EZs<z=6o5y z5~a~`%yw zkokNc_pBaAH;w4Q&xDV9=vmIBkS6gx7d7qmI)wB1dZT`6R#%>F6&Gg8EEYpEF}fB5 z6T%lVH=V-@=dNGJ=U$%R`DWZb{Jt`|eZ3=batg?m0k_B1kcok-ZN+&p61Is)q3D6< zd+mc@cCk7{*`NE?Onw!X7roB4qSEaX4|CHE3uFkXyCz-J@`j@kl4^wGNk7oqD&yYp z`)cn8-fc#PuSa`Tz*YJW>RY*%PP-bFH!folSJNM7GDVJf+bS)gB1ca!WYSF-E7e)| zwV4xb0DTdUt{K2)SkyiazDk+Q&{(>;V!MRS4XA(i&e2Es*E1oUZZ5C7EV2x5_pU{! zP_Cwf=fwd=0q1{;$#rN;FXyi;$_I!h4pT!9nQ<#uc=D-{p4WPM-y-kVLjQJ`&#pXp zR=uGfwL1T-7)&lYc(ml0yL*GnwD+$52*SMybj~yD&fK3Ye$j|!`N}E{1^ig#%Qc_b zuo54B&@5@H=^3;&!5i^kK8f=lfxEgFTOJ;r`=tig`ApK6<)lj^$YX?(+)D z)t>b>_~v>iJ?ER<6}jj|lM2+??mQ|pUbjX|)2qg}%sAuzX4pTN>^HT2M&a(lgg7xf za4G=Rm#vwhp#Q@fE?sB}Gr3^lPM0Sx-C7}aWTbd!SiG!3Atuei`!jJ)bf8NaFVv$n zB#-O!`R8NSjadRWC&umwSC>S3qlX}8@Q;djhhHh^`fD$U(V@@YjTjeV5SToo&fMQ@ zS#;ROcqcE`Q|=`ck}7p=rQD|He~%q$1Hd|_M!sT=eQh_UV%l$nw~Npd_0iuViCT}1 z-e(zasSUS<+LGW++gSR<*|!|NKw4L4#wo-U%^8a&`q>(NCvh9ca^lUOg|Q9pBTz!A zx;}R)1J8YrzfK>aL48LaJ9{$MQdX4VWxFe8tDhQo`R9w5UcdY~Q;R$eA@`Gf3D_Au zu%+fC8JvW%__F0H?JphK5#Q(cwJ)k<`vtK-V#j7mF3g-LB_WTR8}=IJGLL;obbqsH zlwUrRWrdy|y+#cVu z_Fn5T?kr3(8NB&tQ=R{YK8gJDm}6&7xXn@MP|m%<Tr>nIX^Th{n$es1CXHT1@B%QEBx#P}(W z6t8aG`){sZ({>sjCjp-~b>x#rr9jVbF}<-6ZtYM*d((x`k$V*2YWlUv5yQW1yUdY= z0Yqz6YtEW$UznC}A#vu4{bOQ{woQ9Us~ElAWzi$L!FFZ9}I!K9hJi-#w@;q?4v>C#lWAO4AxEPvD)~<5* zmE99)_3j;1jq(JnkcVs42XA&L4)sE<2M^|jZyEMohP9)Pzrw5cc;6|BU{oA5n7=+y zQ9c+eArGK0qn&jviMGC(!=h9c%d<#rFDoxrw}3$SCA3vG9rl?-7ZzQA8#ucjUKJAx zr#tkv&MYtSX~X90*gMf)hPv3D6DQ4x@@l4-%h}Mnats1nmHyR=byJ!7ju)GjpU*c= z(}zdHAa&)_Rl-4quWR*`_vYgcc;LFFTYEI5`J1p@z2V*e|x*6%0FD*CI&RKa*Hd=cu zUBRjPlm~L~wW+5c&b z{QuP$;r}~27g3fYgd;2#a@Daq*voXyN;*L}6`n65)h=t(toW+s zPwP$=ceehvM*1PTTR9s#T!E>NA{5qhkUr?}tyuZd^4EWCqc+@_uE%T@G62%Kd(Jy`B z0B^$o<7@>v9LwcSK~W_U*wH{S5(E{yP8aW0 zd1~nDGJXRB4Sr9$lYS?Zo`C|t@A$Rx)ZDd$<))@t97m({#A~a&MLq2|pn6VNQw7$E zlfA(V&aakg?0p3RgYsGqTU2zh4J-tf5;pz*+5=?RJ7=2z`HTY~0rS-WFIw!jkhmEX zUadX+n7!Y)TwzW?7b|KREx3f9=%KI!tS-Ylw%L7W7zsSMzt4YtL%g`TA|8_3sf{l; zZ`jG%0-J&06c>#gI%U1}WpY$qo6U<*FOS9@77P1fCxNapLqX2Kl-q1%vCr0F6z8xZ zyp6Adq+NY@`OU$_3;0S#ar5N5+nCbwoAY+PLgc@!uL^C}@VeRKiXg>A<5z&yISc&7+0YV{KWws}^!wIBMIEw{B*>C2r|9t?{5_3r zx-bpZJB4woPz2|8^NYoW0(YJB3Ki+y}<+`rwWKM&hJ-akJ(!aweT3s1qI_P`ew*A<(GiZ_7T`t-?d>rmR? zVl|1B+56M}a5{Tut}W5H$@2H7uNsf39imwX|JaRat(?-ID6-uVbju_y%EWxXjAbC9 zd%-2;((s6W$BD=#QLgd^&-qp^Jf3$glv{KL>k?rLXaJP88)87&~!D^@m5tZz(J7TSa)MFx#3;uWB67E zabf4I2^zoWPV)ZZQs>#gP&2t^3a;_adm>spzdskebjY}mBah4X6CI=N_y5eEL1KBx zot~@=n!48oAH94Tkp(xZy|5$;&)ncfn{2CbSTQqW{h=00mU;D_mT}4#5;;Z(|Hq{En(Lqf%bcc#RfieSS$_4+PwPr~QOy!D*QITB{-P8#17K5f3q2L1yu`duga|WIFmaAY?Yj`Vm zG65T6*>x~1&ij}vPa5XS-5;i&C$+yUd@TIzNsRqRIQ@T#mNU21d2dV@=pYuhLFokb zwtY!Mx5oNZe@}<#;Zyx`IEzx?SJ+P(PZH*XBmNDY?P3@B1q-5L<=?RAX8i{j{2NaX zU;-+Mh%wp}%|b_ff9~|yFyt-$ubrP6iZS80jZQt~zDL@qVn{mW0YvX{r^B}O5p&;o zjur}mX~kZoMc%M&S>TfQAI+Fn98W?7aD~?19KGQ;`zt38TnSQXKQ!pQg1dUR!Tq!& zV&GFPpa7(s2Fs5|;Gc8(v3^<&O&@^Wk<+j;&Gytt4jlvTucbd8Un9(WfrIXG(E-4O zN>M@Y%n7vbzQhx!IyfJ5BnNuFZPs8>9t5p4>*fLJ8`&i(6 zv{7JKcp`ES=QcW<`TKF6@W$AFt8M-0mYBuw!zBkI-)V74tjv=V`-nXjRtb=ci3jgWsbKir5ko8NKyM9NQ>0Q@{$RhZsr3^1-@{!Crl@8iuvhR zflY?6ruF-P7}yHA?fTOE9ZB4IfEd(8HLa#O-7)N=hn`B-k+=5pi!nMB*3)jqOW1w+w<6( zrH|9r@buArbhwO7E}M*oiVI+cj;NJ&LL9lRPhza^q!+c-fJ*t({`p=qYWyhlR{z+* z;kz{X`|fe8h-Rvl@jSNMKq1K3ca=U%Ak^M2)TR|S?I|WSK?}*E5x<3a5V1pDlxK5T5;RcTFD%*GI z-hX-Qqu>X%M2G{SMxXhc@L1$+%!<&HW6NFdWKDn77{QCQk$O1X2d$?Y88FDnP54?# z?jWc{CbnaNM`56gV@UL5~j)WT|Wkbi-lmmop6 z-R_!@D(f=RqD&E*bKB$-g52hP+3;APQtfl(7!l<;z1H?m=KgGXBZ<6z>GeSfGVNBI zDR&xoz(Iw+ylp#u`qCL6E5jeTE*zjZ^d6Qx2e@|nf>-umfi?V?couigd>^Rxh)9h4 zIYOqLRfKl7Whgq47SzhYQ;TB1ZU>4vQ%90v_jT1u;WiCBpLVphvNzKUz%@uBUPNu; zZiCVB`orl>xsPcx$5gT5lCKIod&`o&ST@4#vE&o;;l~~a6<*NveI3d&Tr5NHV~^7c zkQ{-1AmO*()~LydXl-mbvGAN}Z?K5H_fRfmeY9oTKUM+G@%DJ{n^{Ew?yRPJm zgAVN1)BTK1j?$}BTZ6sN)@rJdRkudYKDJ6s0a&Nw&9BN0qnN2M$K~ z=Wa0pc+dV`-*f-f2fd-fhVy*45;t~$pU*dVH+?mjpg6f-rEup02|rtVkY8vuyflaJ zZK0cFXcX`>Cs6c?wr(>LEKT^Sr4o(xiZ-r)Xt9V*-O+Ne@3axHYR>OtkO@NKrXV@4 z;1rzGwAIZFxD0giubA?mx!jCp(3ezN_cO@Q{YD#IDo>lO4BJcp27EyvGo=7)(LvuW zs+=2%jJj!^KU9ypZN?vkMrmGXInJ_Z6y6#imu6>K8f$I&>l3k?cH zJ`X`&;5v*8t$|I%x^0`a1!4n`K{4>$eGAvef(F2{(BcjrXo(HDeBJIST!C&f7h34E zJPIOm6@p8@m3u9%l(z;VH>*q*e2oN(p70>rRaUhvxN28L&%2h<-F_~d?2TNK`LKD6 zG@T;bb=Ua{sKnHFeg2*MU4e22Swyt`#BRD)l?A2RsA(6a{L*RQG-46@0}^)Mcw>yR zyI$7nb@`$YBkV|T&KUXg23{_@XRWs_l`-_&J*fa84H&x6Aqx~TRF88g%mRf0Yjqj2 z1&Z_?7OlUqK%peyzWbk{HI~H8gd^kHxc>-v=GoVO5l6*(E|6;>HkhJ?sZf{jO?L_5 z#~{Aw#vo1z%?d){1WaQg3u0wN9#b8Gv>#j;K>lglnOJ!3V9n!kB{>rom<%w&w zx&~j-yQFT?(wFgvyYtTMrVA}jt(cN)~?#gakf+T{ERzmxK4th^PD znUXlK(%2@#ft$99(uThcSsy~iLY>f!OLs+jKF}#l%s0w5=3@>SUT@Tixu$YeM}hsy zfzNNOcm$G7NlmTAVSn0_%NjVr-3p=Cmht^lCYL`It8t}1;qLCvS2ffz{sv!s(`pAA zSgt-ZJcr|c3+FnN8sVD`&BA@{BOjYD+Zc`ih)2eu1cclC9w&L<0UOO{4#m%i@o)OO zL7pw*`$^ZL75`|XTY$!KLE_z2=yI?X7?0OpWk&xVH+Jz8`#-sFS%ToR79|*$_c$`_ zEQ`BOZjvIy)w09sjpTmO>n+-kBJ|b%j9HYQX=wJ8&nj0Fzh;%o+<5LDJT`})Z4qqJ zMtEgnk^%Xw@Vm`~%YVL`62RBDfhm}Hk~x=zY$ zctNy#Ng{N&ku`04b^0IEV$Q^+8EKvPoPBZVC_$&HsTFANp(r3Inq0_mq7M#-=z`p6 zZcXv^^|Ka4nNK5RADytwr-{V!3IZNxJpN!h1jt37eI?(U@R4Tc=Y1zv6=eLyo;ttpPfoFUM9#_8XMP zH0mqwsrX>HRF?(myx=}b!t-buKYm}0SE3XLdYK1=0v9VlZR9s`Fe#>;tU9!m&d`|VBGSlr*#9!-lZr+{5pE$RqO|(SvVHxX0b#n5jgB6gb zSjA{zUujAUIiFogR3FW!usMetPQubBW3^J_S2EWHchs#Z**Zg02`yN{UxTj;fctm7 z?$@NR;y(R6b$rwl*RM($aH4$;926Qzp4AA@_QLQznG^3^K+vUkNrYATxnz~#Kec~w zSiohBn-(KW3-5_WUUL8NWvu@c?#XshxhkYR5qjZrqf>+b5jum^k!nS+>@L1-_!qqR z<<*y{5%YYp;geV}GlTi1BUugeB=BzMra(`fP-^^@7qN_IgNGLsA~i5rV)oYv8UbNS zQfG0gg+OB!zZciR!rf`I608dkd>4!J|FZbrC5rHR>3+P$Y{I`Eq+KIt(BWVESeM;! zvEvI4zxWfHboCw2+O@|&19Yf#hX;DiXXuB?_|fKmz|+Qu@>`V*%IVTr1@IH|#`Iou z_Wsxt6C@XFo&4Yd5co;8H3?rK8#0#1VLtl7DN!H?AI%YgU9&*QdaA!HyzI@zaCDv; zVG?9v14vjD77nlLBqt8I8FfCkWn4!oPa+6`Xn)^XdbLKo>cEdC`uhkBPln8HeC|e$ zsEhl2wP+bRlnstlS~(2>Ui83d>io(fY{s_)9JjX-@oZ93AY&9WL7-7la{#iAa#Q@(( zteaGZAS$`@*k$o?il>hDf&Dtp)!K6EeIr?SEvMgsUP)dZLN0*Pa*n1P-D00eAmSm7 z{yEi-d`^Z|jC;fr2EG<@x7|Gb$|f5B{iPpmyPT|C_4Ey+Tdyh%-Ka8Z*XdyiTPUS= zT#orqu}Ln3l!h0y=ajLt!I!x~uo|wkowZ z8i|%P1e2!m2Ltf($AnhGY%lMex5orG#3#w%l3L!TjiV?lsyT&ve3;QsEZgRA%@9`v zzfmcC`A?K0lvz9S)Z~#{G1hm6p#Le7GMn_6Nt&o+<4JGIKP|hn*tUmA1E%$%OPaK4 z-y(=6>=)#{WR2wfdB&rSEpZF}UbURJ)8vwt891H$5%~5MZ6)+%&SwnXK-{dMuj%tP z`RY9LDc}`2A#b_5Q>G;(I#VgGi~}i8&E_M}adPUXW$CD;BUs2}9y1>5Wv;$%OB@5q zA=Pr*V5chC?NXTAm3=kd@B}RVtH7}g|0aC^a!KR6Que|-VT=K*kFa9Rc1ju4=Uhdw zBvtIttq=XcWp&e_bj&sAe4TRZL5mO;*ww#i{`&F!26{N zt)td97F_FV0z%%@_R)=zSAf+jMCek#HI^Qg;;h8 zpLIG1VS;AFCPOu&rYn8HU-UL_oGs(8Zb#GEC{`m4jHYScF3@>~SyDay@!2&>R&kT7 z=9BUu#iv-SWC17=0LNRONn6{~u_WTOrHCQ$_V@e7{gj0%r|| zK%_bu={^h{?KFSe_i-v09lm-L5-bAJGz)lZNeh@{@Io@IGjB7a>PV8%db8@n9- z2_-|4qMBmxFUM}vnVk~jA#z9C81eXOy$&fWP}CnNEWm)zW;^XW_mj)(oUH(`&=Uko zlg}n-W8@D%>R4!eHAFp(Yqmvnx9j72j%#=d?$ul-KDK8ltuK#TYJ~kIjgbtPcdChh zHzy*y&lTjgvPT<~4P^)Ie4mheo`P?p3Fc}hT%42up`-h39_2xvohc_pO?VmB=-p9y z-JZnq0_v7&i%wZf7q7&}6)GLwKvOw$nK8#_S(igocDIH6uGW7XKdq z*f*{Fc*XXM!B5nN#4}dNzgcX~jUU(SMntrurN{In>hf{9DEtehso+>pd-pnq7y1gk z+OgSU)ltS-f>M&iP4$Kb6aY>V;c76mSgm=o!VFQpm6+|*~3O3=Re7Pu)oJXYShFegwB9>Q} z>ZB^igYX+b`eD0~n$E%ch^MAV)s_NdTadM%mYOAWLETkx&27_q1~&tWnm`u zHt&vOk?s@aIOj{$@{=uWPo76Xx?63D{YYs_Yy4$$Wv3le!TM<5#r){KG?TDwPPb|%440ZjwIPJ)&#OezHh`~`eN9Y=M3YS6iw@n>Y+35+t(mI z8NL7mKencZf7EhD&dA(1*&ET*Ct%^5Ir&#@zJ>thdws4hiZU0F>D3j%elCw}^UC9T zbB4Dn`vIr7tn)iMrSM2u>G_rY{-1DOJvZ0{CAD63B);c?cy|-;+Vu{Z+i4F~^jW8l z4L^t$K5H*lM8UK!;|1JI*H-%Zo4|VJN0=Gn%H!AkyvuBD+q$Bc)7zG&p*3nHpM{7X zIR@{VVnza6Yj9YWKS>^#j)90G&RUp;Ci(rfHem`TR4Rl{^f>qktHVqk&FwpB-eJcp zs>^p1->iQIy<)2PaTz3)qbBK=NSdb%baS4A!2S16xZKV7R5PRVeHx^~C)*p3L%<#G z^RA{pn^O7;gFmIDg{;_I7IklJDz?=oatHI_c)5}TJY05O^$qyv%-qa*{K|dSAaz&y zYP*Hb#bL2O>nvv^D;`pab2ZrgT2Ew1(x7N<)UX3a;%G_3;uqR|_ye6)3QiE$A*rJt z27l$K`6IE5`NzqQMk{P#qB;f&R{KsE%RA8Gipf_lPJdJ~|8H<^Kd1D<;_)3|K=uWo z3Z+5LUqYkxt=k&up{y7R!-g@T5pe(qFN*DKY43L3JAi2d4#1S+`!vsY-Kb@iwG04^ z1kjUHW_M|&h2nuv6ui$eAwvl8(pzDggfj(yP;0f!C2(wfI5{f~OzDtpXvJjIaVxu< zdFet^lN@A94)~Ua4AM$KW5o_!Z}#F2#p2ii0|P$3Spf>~asVBEd0zrneZ+2fiw6<= zehzve-Rn8{SQZCFd*{M0x-Xz460S92lNP5e$RBBTbh8sMIy!GGU@$W*)^OVZ9^5_C zrq+OVBn;{>txQs`iP!Yuq&o}dg>f#XKRF5r<*r7JZn{=}2d}s9B{(Cg=udhEZZyH4 z#RQkD@>ZcLK)-ud;BT6=;OkDb2?rGtz}ijg-6@Hh0}^j8(!-Zqs;^|2B_F#ikNScb zP==kKr>(|ujt2d_dkZ$fBtpQO*vqjq7;QYx)}k;ATf86`cDp(-N#F{CA}ZTxCscNA z7zr9~ZxQ=jl9d7*;Y{!FJCKA54@VYb2K&7f+UVCaO#Skp>j)Hx7+%4jKN1qZY{}CF zb8Vuk4XqbOeeT58^Ue$NGT{{1dJ;kFrJdfafS~tSoXr@LQpVl1*}`p!UIwhcfzb&b zUJjB|lZSSq^-MnL^SWrJ2gsgkC(Kl~q;LR$-5#fMe-{-4UO293gAZH=?{>aTVV#V` z)Gz*hHDALC1dsd>M%13LRrh_-%V;{;iI`-QM(>u4?FjH#J2n<0kb zFT>H`WDj5C4(^5(cx9!daIpAzIuuLo?VIz9vT$~Hv$v~0)uTz-zI9332_;dso}=6b z!_20U#O8ouUlKfQi%V+Pvkr*}(+$~F@L9_6pr%Ai#4#K04N=LWm_ zP-FI`z@8IvVK-S@TR`YUF02ZGS7dc_1o&6WCAAIA0I~e;m`P*&dD#udO zz}I*1T9KwcG1$kvGlQ97kN7nt7e?UG+{$I}hcp-$G}wOM!W9~AhY2M^rO)OUSqtxx zfFFZ^8o2&J<3q;{hRk@-=vO>T0ayutlf}_qsBmFs+{&Af9+3m5FuqdutT`%~O^EmZ zF^uR`p_TwnG8dVF1M<|o&=G42A>fGZb8mQ001W4EtooYWqnHFc&@wRv`~d-5PVAns zk8*CtOiYx$xS`d07C%j&z<@EKPH(GvHuWnyb73I*7XS)%>J_``U&Jl~PncxXl);Lj zvNopGNFAuz<-~4V)vML0*?(BbAJ`(MqH(fn+@Fbe0?FEFn?gQ7vt2U#zYMn0&cO#l zW!Xn{PaNV*VU?>I_E+2OQYRj_F2I`G_sCVSb_>mL~t)a!=_Ij z)!$(U+*kYh=~!YQj>|;ei70=`2YA#}2$&{b>U3(L#ov}J1niDh&xNoH-=j1|3Y}gz z4J1WjN#ZW-4ru)qLA2~I*`n}H3jxsu9kWU&-_)uJ1L6EM^R9NqJ1aV*-oQmJyMK<~ z-4=zZ4kw8M&;&%YE42YbH-kM{1(f_MFG_STK1sbn=)3oPPw7VDU;Bfb;jT~Kjdu@g z`-&)BKd|=31Y4|;Gtg+LgMiG*3C`yQA$CMdyy1&TD`4y}2SWd6X%1=A{k?cF1(hq< z&PQxVND+-rbR;Q6b|Y-*iiho2%{po=@cd9DM>gxY3(Zjk6>$`xyc1XYGe`_$BdK|BlR_QtSG0w$Ea zg)4_FUyaK#Vwp82JmV_O z&r@kSj`C$gBgSckjBWk6JZH|m6w&-`$~mSqiN2z&FfTYaK}N|kP)1^zBjlZ|ETYJA zkc-Uc7uAk5SxVJylJe_=`A1wu%iN-DIDZ-w6ZM)lPQ_blLP9`u zAO&f!q+(r5l_o`~#1<=$ZbM|HaYAaaYb<>p)?`}KC>Lu`Lc0K{CZj2J={rfdOCOUW z?uWbc>`QUJ;zC#I!OKIxL4CP3o^w(6Z-0iUumeRrRQYY(=7uE6M^`^(RZhCMFe+ex zg;d?64>Rp%;767Ax*-)ZmQ}?(121nwQ9kYd&l!@PN_ExniqpBXW4-}PE}%KBcHWLB zpW=>cP`}FuO$nSIY3EELz0R)^Uyl$8q))%~oIovqxCo`XkWh4wP1~q5yXl-;q?^j? zz*S90`K2&aGL?IeFa5AJN|7(Ab{4TNaqDbL+6nh7_((U@i97-WOKNH4wmR4Aela=9 z4#{T=;SfECf>H=$j}h?z%Qj$JddYHkC%F6$%vDMZvEa!R3j+NJHVHzbx5O)QThz%F zU#V_&z;u*@%4jJq!Idj)Zfhu;0I z0NkhBMj&^!b?DLyI zi>LZ1Y)aPGzGxZvjPU~c_Zcs!L+Q}qqZH7)fsx?TP^@ft&3p@7Yc&d6iht#hn_&Y% zpZ^v(OYxOCf)flD3rz_P;;P0*&KP8=&&!lv=c8jCF=%$Tm;Np^)}P7msDDZqTe%KS z0SmEY!N5zU5a9X;s&@^4KJWGQ?1VgQEawh0IF}I}IWO0!RajFoI8-``d(mb_igcO$W%D*+FckXVKbz_U zUO-)BiBg)lii!b~I>HAA7^Nm9b{SA$)!aKm&xB%>{z0yV7LmWTTN~7ua5PaC)c!-R z1yP}iALbjQyHA*BC-0=|87<)ZqyEp&+}bZEwV{;ZO6{2XFV&YP@=-Qx0i91P1h8r9J( zc+cz>E9CjTL#c45uoPy{8#f0W$6QY4#Ag=t@_tC+^NU2!TeZ1jIkEJ%jO6u;l*;12 z+Lg2v`F`*~O^{JOJque1(9)>Cn}japZQ&1JDM4E>5si;oeelb1z69Q@qsWlYy;cnl z#ZHTr4>`Doq+A3niK*D#`~akujV-xJqb-N)^;lS<_UNG=SiE(pYTP`a=S5LXBC{|)J`{lF}+4SYVR7r(U}imLhL`638;DlGaHk?n9Ei8Xks2V3#Tr7Jo$SBu<;B*F&*&?-l z_LU@G3aIlNNMC97GhFH$E-6K^sp11UAKEMP;2V+>LD)iikepXpa{%|d71f)HftHVq zCvvHvk{+ZgA8Y;$RnD8Ke8+UHfo2EJ_|x3IX%66m4BV|OJ!0llcP69Nvsw?<8a~{4 zg`~5+rJ_+`iIqEcP_iKdgw;kYpKKa82HUaau2}1wmP;~8>+&>^z8w2@O+oM-1<_-m zLf*mR97-)vAc!21DuNVVE4iD zWUtQ3&BtPSje+*1gZ_dq<8f?3c?GxE9AYI4Aq{nnm${!eZhzWn>syR7*XeDUj|Ojt z%<;LYRYz)i($s;QNc$3&+vQlNS<*`$=}u3f@TQ-D$le^8s5Bbqg6R2o3%p=_R?ny9 z9GB+37$y_uN9QWjkGz-oE%TskXQFgT39X6qq7d!Y!`>%vumOom*-+>^XX&BkgqP&? zUM+8&Cex(P$SGfC)aGeV2hgOr-WlPYND`S`kkp?l(ZGU>ey<-Z2c-T6p54736A5g9veAu8OMX*@l)1ir@_`=YA+sxl>kAEIv9_y77Y9sKj+i$&qX^tRsJZzs2oJ zV-*9e9}jh+&1|kZF34Yk)hcWBCBKFO$^D>8IQ})&``xYWN_K||E1c|jl!!|klu_S( zXu?H9ozJy8&wE5WqY(u{CrUt%0;*lMLCG-CzUkpk1yq+}scHX&me?#TI?YppViuVf zCbr8;92%rMJFW{hQAl4}!&iGeAwmTIgemoy@rij5;@BY*K81GMdcK{6uT%s0_nD!%$*VC(UmhQG8#ya? z+FLqm zA?p`m9XtDiRcw2o732u59zHS+nWg|xX*EYzC0v1d{g~SXzkC$*GOU>q-;tXeY!GZrg-O+IG-rqu3xA+t} zPf-TO#8gYe;{LHa=e0(lF@;vQn6cT)8Ji%J!GN#;Lkh>e7e-ntEV9cea9{%u)MXsc z{?HS}7uyJ_FAS%ZTdgYb6K$Dv0J>kXOSUU-j0Sr>Mn)1&e{YkK_FRKUm@_*{3p)IR z)>kX^=)66E8*o=`o+hM~5s>k^$FNCx1cf)5sOQH%)*L4P@1I9?jZT~juMg?7z@$a@ zKWNcDG%g1SwK6Pjwx0^r%9NyGi7k&vZEZ;Ct?zeoWiWFJiMBM!v`mz z*zfIETdEYj8_oM$)P{m#&Dr`%%=cLiR1GB{_ zESs%15#SYH!uL8)R=@%CQ{6x^<1bGpz=dzbo1^y~N&fQV=RBIdept^cTA#~iua(LB zw?}{T0S0?%NUtKRT+kfJA8z&rx-ud2Fo);3(}DJjyO@yz$e3C+=Z;=0@eQia$-Yip zCfvwd6`20)8TU4{Wf)U)=N{fnt@>fgb5z#?m)({C5uB~mEmROW-~>f>>)?gp-t59R z;rXkSeSUR#f<~5cKwd=-jMQ{5ASeHR^A3T&S`5SfHg&SBmeElAI4aLiuFs8`mo12 z0jIz8kM80r=iLVDAj~tV5YG)|Fs5HHKX_ql;Z{mZq{EA`p_D@Jt9u^(RNEN;x*2OQ z6QR97qdmfX)ARzaTT)DHr?wE#^2}mecxgkolX$P}(^8~m$7N{Y)nQdrOj`wyAcl-Q z11rhu_OWz7W3~rl@I_U`BQuEtd3}o|o6-=0tYWrr`Joh?JCQN22jHK=bgmC9u-ZBE zuM;2cn%`5POs7rkr40$YQ2P%26&{FaywH=BuGL!@`hM)y=Z@Rrcov@vX`u_#QMr~dv!JS#V3Ws&);l3Lq}o1-za3RV< z!UiR;Gg206p+JHc?~}T(q~~{TOWYs!z=3c|@)+4GUmiypa=*0WsVFr#MIfHon;}T7 zg*_KW)~WIE{617Qh;!f*8izDPNOC8W=fW|isc6^wsZr{{)+zxPBvumA*T7UYd0guwrfGu)mh$Ci+em9#Ov5v7$)tkk#u4i{npv`;PZbx+As>h)7M zS53h+>p1okkI3#9R5F5#Kaq!VNtEvrvuFKCdQV4vrR&9EoAB?)qp_vy`J8pUDP|75 z_a&yTAMAWwsaNvaTu!C<&2!`^x33t$l=MOT@#b~j>eTIi_9Yr4%3T9?2Z=UYTAc4;2_{U;i{01`g? z5&yfs#BdGjbuu*eJFV(W+^v3*axHurr5&0#KM{X+Lbs-idmRF{Y`)f*%kJ|16SvzP zRPv%w26pmd&6$u24x;}hi{AXTlxTxmF+?R!R=ZabHbZG}VSgv~Gy2-{yMNBWP`g%` zsO2K1WG!-cj6-)+>x~UlNGS-DtX_;bHDi&5i~xCBqWPn{8?E_8$3KHXaKnkOFmR(;R{C~OI+&*8 zY;{^AB`CLbjdX18K;_=gdEJj;g{aa9xPz3cp-bsz@u|I-*vepfDKy1qe8zDRp(6Y$ z5!|zE;C`%UM3z`U@QFy`8&HglpfK=@i05viR;vtr&-WR`Z-Ten)ICY~7TXAX778J0tr@j;2r;;m!} z@j>lylH5;)9&(PUtp?6$^x}13%{c7&ZpXVfynD@g#L7prMM~bqh0c z5UtrBvhtzMtCDd;(=T0Kqkg~p54a2qfp0RlghiYE+r(IyVMaKw@U`W7O6gl_+PN}8Xq?vrMsfHoPMV>z2I=PgR z6_0`}wN!(}5|{yH+PWX9tTq?E>8ZH2m-#-+$@ol`03!bF`-C8#++L9Fr<%vo4acJ2 zU8@=c(gJ|SfU5qA5^Aj}avyN<)X!`4n*$A*%_zT^i-ud~F|pSm*RUkY# z=Dec*eQ!s4B#>jy$}T(CoGBi)i45_gEoYy8M!Hbrm+ld&HU0+1&yD=Qqv^b*(j7<) z-mPEVp5x(fh?B(3vVPRVw*_%v9qFIamf?WcbjrFX@3GhE5JSV(+gcadkydo4rJlCQ z>rxe~wE(8`_=9kw=#{yL`+Op;Kn3D;_{1My~J&K_YF26*_HzRrjgQ)zA8_!02*08^8R4NTa0t}av(%22@H23T)N=V zvd5YMIjkS~63L_$3)`5nv+I!%ng7Y|{Vm8C)W*<7>l}MaBb3Jzmv|E7o+QbG1hqI1s;L2 zUtR;85Qm_R*3<57KI2`mG8Y{1OU~q|CKM)sK-8R-Djk35C`g#Bf3X1^*Ap^CG6(3x zSYxote(FS6;?zjH*vAG5%>!0@uoxe~!NY8KpTen2m7MXq#PUEWJ>`V8nkt!n*3M#<1?te2Fgqh$< z#d?~DDsVRUpC;w_^u+L8nhpF6h8kJ=W$@!`K7g!#IMkZmNx}_IXw;SLoYW%q_|sdh zqKRN#V0AZQ?xGQJnmOoL^+xr#e{Z`g9~k$d@$J-TSU4Y%ky#;&eqQ|PXN}m+sOkH5 z4N22o9`1HB$Difhg8@!IhQQj3Ej z%y}EX^N;%R5N)8UR$Hnpo}Zl(1gLrdo@yI1WeclwUXG7cAfk&;S0Ez%?;CC*#w~oH z6iNCBI3`O@t!b@5J;Ud&#rvQ5jotG3T3r7_p<@nsUY67Vr~SYtF%+Jt67ywcwvj&>A%yMLo117C#TE`8i|agDmY@Ns@g<}P2ME>dC9Qxk1o8xAk7SDf}qTf33#aK_9RjtRguOH z%ZUwWThc7UkFw-QD%}4zay1c^H}GdW^Cmy&8!&t8emjM}HS;Ml? z+H8prxIXW9o27pYKKI(4OA}wTj&XalU9A|rVw3*XYaiuIpayF@EgG+UK@mEatN8loG)ZxDEO}+HS)KZs5d;qnF-jge?FDu^ zpw4dn5CsKx!+R{)9l>u=My;0Kg{kfZ3p@#(UyzddeE3MEewLq${^jEe)l%ecf7KyN}3(V`{IeExsRnk(Nn1xTZ_*B4v}hS<C0^PZupnKCFsE#;G|rfB{ojtPKpu~ z@DU)pXiGgdgCj2Jz+ahht6%-Ds{q+9n3nbt{3|MyMruwpvQgv5AqT~xL&P?ttM&Jw zKYiI=Osa`^(*+$uL}>U^5S+emJj?JNg_vXm#wAX`MrC`*sVZuoz`=2-0oF@|ABNLU z+5yJ(R(Q4Y=s?h^(Vq23wOP8NaUN%b^jyQy=o6#j@_GSZn==QSTy?Ngetlf$Pt4Kg z3#v8Ff|6r*%CKbu6?};tt7M`NuVt6>d~OA7GIgfuWxLenG;;dVr1xyPUuyf*_d1`h@Xx&t>61AP4R%!0wF29u7xOEA`;3;InYaQyn>M#p{}sgodB zboB(g2dBj=^r6nW!pNLIm zZJPRg;FoG~y}@Ajr#>P`fX&e#W&H;2k%*iGX)YMLI%LuS8hBJYojmg;9+}a4(|{$+CaUtP^`QhuuO1V0rVZ9?x!rM zXmfP9U6Zz|S+qby(|S9N6!{LJjBDLV`z%BadEIHs5MQ;Agvvibra`t_KFpGK*8oJN zRHip`EMa%c%}2TlFQ=-%3f$)Pa($7>FE{Z#$G zwqWtcB4y${VrybRq*ujg=S}C&mM1x6?#^;{r)isIl@L(J$40xw7j~7nXzCZUIF+4i zUseazLl54+5;((un0fG$Gxd)S3bJzW1<{pr{qlRx1p>3VxT8{o>|7#n=_HWZ zfseDUw{B;_=r3>&iQ2Q8MyoeZPG6$Gh&UkXMk|*)+``8~C!b-9!`f)r*g{%~)p!VE zLArbthuY)2h|HsbBRz%Ux!w-K-EhGa+bI}Bc9fvcOBl*q9g`-RCzhb1?ceFHErJE#^aN>_r@bBJA2{Iu2i7^i~UIZ3jVl^rpt44c7JViBf zuA}|_9vypQ7CaHY;b;Vg)QLZhPD$M!CTPto$VPw#*4hB29s4t-Yp5FWXiA zJ;p%Z+#h^(2$Lg4_nO*Ub1dIKLRlXpGi1a-6f^#4L;)V`*u=(HXRtQXv!GTn#S%sy~QU7Owd_1l3qWsW#=ddtdGYzK`c!-i4J(fd2%^NELU3^m z1PF+CXqCN5@#|@E$cOna2CqQT4{83sKblA?qZU`r*+y}K;{!P@@ELufRL{i&x9^Rp zijUY=GLqMZY!cBh)_#u;Nkc%hv zQgJuYPNKV+_mjI|lZ$_J(A$Rc-UhxfLw~!LbCLC2TOoNG;mZMe3t9foR2@O^Uu+mm zZwE?P1-FUD4z_FLFLQ$G5vU{ zb$oOw@a46kv-0B30{G(()&%F2VwJ5e&eYvb{1;MU?dy`f1fNAYCsne-_c62C$L=~g zL`yEtcD76$8k2(EgHjpQVOwE=dL+P--N3aBxZFlNXVYid)$72Ei%qNH~Z_UE+ z{fFNz32%J8?Zb8|B3h0D6)*1D79}J&c>ksNM7#^ReUpHn4*ya3H>)=0b#C-SSuT81 zj_a)Q{Ux}qtNoX%&4*WjA-oA2Az&u1&RCM8!yU^+k&thLAOrBMb*&OY?l-GsnVJE{*gXJ*Z$L9`N4fi$h|AGuX&q{T zU`g6CFIqr}4R{O7RY#2rC~+r5ESQ07V~hG9m9k4%zN5010!CCAYN`bhMM;FZDmcMfQS8lV)XPx6 zCl6K!AUTRSnXI4}^)u!~T?K1>+rKBj`!_*+{xuvK-hD+(lNpqEJJwQ|I?+a^j4+!hQ(^S?;C)AMkGy=9Pe zY{%wv(UE*2522QS7x#2VBkUR!|)u&-lxp^--m;V|5nQQpRBKE=g%k&|XziIFq_m zkrtkQZTYl0dFOi8T9jfZZG1voXt&7?)Y7N->_>lN7&#bSGMi2FO>@=3Hei-XCn&UA z)*RSoT#iYMfFla8{MLK|BP^TcMP2V_O1Vc{z-54VlV_50!G9$Bnf@@#TSv`LL$RygqZ9#IZ^pTCKU z#v(3)3IuGbp8kbyM4vtsxOM@VH{I8`3{}3cHEyXPd3xwK{W7JC(^xj|aIBR?w4a-= z0iM!!uS6FC0kP@#9PxE>pL9bc_XY=aOGG$&tg2wUGFMG;EpIb(S5 zu1%=k3w($uQHmeee;f$05LkjApY*xZRrMc!Bu*jF_in0(U8Ikyd?E&4oDA>U{&LWB z2jhq`S9Nj+KAh`pXf7+qKZ1U%jI|#!90x@xHYwV|#Jq@LX+rT2S6ME-?r=D%UfX_8 zNmku;!O$L!*2=bn$oPJ7Nxx`rF9zbfBhn*gI<1r5*0E@FpJ_=&-y9B+a2}N|_z9~0 zyImiFJyST=+%&+>whj}H~JpqpQifY6Y3#QUSST5`mCtCsPVlQr|7npws$N)qbsA50v3 z3!awTA0o6b8zv2oWZ}dM$KIeZJJ#;@{VpMbqbnX_Sn;fWn`pX)t~Hd#M&$uXFGfm^ z3^Dh$AY7`;CZZf(ysgbXbwPFX2nd=sF`QvfRcvzF<@y!c_XWt;MPHLJA$=%Ngl$=! ziuLGKQ_}xpxq#gvL``smaO+%YC zSIeYGEx+pr9)W<%vKi^ST#5KP{nI@)VvQyPzanCwb6~&d6$Yqz=tkfBEQqz&o@%@d zMsd`W-T)?^*#8>u#j1~6cU_H_yD4-_=fe3#(5GLf!Yd$KaW2q(WYY@-owoBX`gu*k z10=i5>=)KkfPc}}7ad-_uO@V_-w}S57hE9Po&&+CmpdEB7*>hL*jl*Kub`idVC(OEB(B%iS1@f-G@#UPM%?vZ)nsRz1@5x|GCJGy7xoM{sj?K*RMB3Pe!NoCi)2Uvkm*EGW+2-{rgOs8;9}%faVa{{J>g zqdvAE8(V)*Pr=R41(p^HZs?Q-JfDf*uBRhR((B7~`OvVVY46&q`M=$W6%~YUKHri4 zILIpAJbmsPTt42NSoir7T3B-EWH`tclrFp2$(wq7Y708gR5Xltf_t%ht2;MLJUik& zLHj~Mis09WpA={5k1j&?>6Os6o>?F23|!e_LivdG`_6QRd3V%`t3pE^i`u7E`?c#= z!W_ypb@!(Cy=uN4K#6a_@cM%OX1mSTRnwzU`=Ow|uaBY@Vnj!S(GGk(d__EvR_AZa zho8lsjf1aMhs^O0`zUGqfgt!VWW}m^&RbZqQ8jVB8Ex8znn{7955YoTjw1m8GTS#O zx;&@BXH>T~HF^m8+A?3ugAg6>q;v&!(ueWL>W#n@JYBk5-N+%Ub!_vprPdI2*x ziS#)Wddx9wJ%wr2n}W`Hy=pDY__2jwgj$1cWuZKp%&YRCwpqOU6rM-lch7tJ+c}`l z<@h=MN^D2%8>jnE((};NoL$d4=^bC^i5vm1L)YwK%?hW*+H93IwKR$Ss2U2#-i%yF zd5GS=uWr?Q<$*}}=D5C3Q}bNs@?yMxq|$b|71xY37;DG(N`bhZF6J-S2)$>wce&zi z{lVIPhN4;I1VO~uaNB*M&HLnqo-dw;9}MYNomE3YGVx7p?og{8UrA!}`jrukAdo;6 zsNh<#Njb3=@}1IUckR^czG@=9@G|x(a+#Xi6B&PfkpH$ zixb!M-{@hcvl29f`Hvn6WUjk>chXtw))CEHSJ`4Feh^Y%&h1}%8@XZXzaknJrFL&; zMOz~O%oG?(0=91vh=1g^&cGh}0P3zRHWKXJ97)B~_t*P3wkZAbzzTHgNwnho=y)cg z;eGj7AF%+JxAj08HgsX6Xi4f1SWH_I^X$!}&NA!C)&TS!{!edEh@V)!C+pkP^|C9A z#fcl+#`V9JV}eZL=RU|nwBW~!>@FW-d7Z+G1sA{l+n}Xs@GqHb)a3czG8QBwY}h=^ z7Z2l`_~6o-fsN~=1Gm*_`T1vGpR_0r3A%)T9a2__H*i$ngF76zfS6G4pT}~PVA;h- z5quQ@vIG&*bI^#U0asK3&F=9k-EIE#UQ%8=*^RV4{f>yL%U{*K}M?_ z4VV9aU&18G^B)CH5;VEs4Ybt{fT4&NDP~u#oEAwwj)o0_6=67CM|cynwo-D=<{l*P z*WFVHYbwsX--C^|%f$*1vl)<@ZZc!7x@A;~sG)nz%T7d&T}F+2CU9A=?tVIAq#z{u4pcW@hc()XoBDnXjdTG!*q0+qF2O z%4t^x>pO5Y^cfvyQ$r<+Qt?zu3D94I(!i~jraHohkv6?CSHjKQma=XsY)$!#e_o%% z28+*WG^`mlk#r4S>PSe}!3_0s%h3B4b^99`SIAhH-s}>~9$Uxp!J5oG*4%2;8;Ixo z&;z%RB2K@YXe!_Y);tZF`fj=WbHDnyg)6xX5E?}Mv$+1t_7=w$)AuSu(-AX=OUBy> zx2bg7Y5d1l2#}wDMtSD=Ut73WGy}^w{svA+I!q$wQw{cNe(&pVFCjM+hkl1H8P)w* ziK(-b-7rkPhAoZ;>_eFg)$#el`^`k_gRz;Cnj!Au*=KLP)!%gc?k}8TC9_rAybYI) zfU2{C8OMqTk?IG~r$A@t=Nw-H&-_3dq8pkvac3Zv2g?F!kqhR(|gJWz!19 zm~V9f!e9TJ4h|jEpC;*h7*tpfTSItZ<3j_=J;`2B?giYzd#Z+;JBpj#p+BP8|Fc%$ zwR1-c(cTcyfRoq~ZZ5*w!P;DQ)3tGt5zHsdRbqPZV%Z`kRWVIu>Bw^I;2bt8!M9+y zq;dvcvhxT`rA6peG)#bs?(`wO{5(}NIrJ_4xCWbvsiMco+HqVZ@wpHEbf0>{kIdX$ zf@_|&bQ($-GM326lVzyv*uzK8owkl}0 zssk4A^jUZ z)ymJlKpe?Z7gwAy65YZm%DhHFjSS(H!UXJQ@haNoXo+j(D(>tHcEopk0Jwok*dkWv z1>`)!fSvwZD+ISFZwyhIMN0myW;0*-a3v`-mB$`p8@8zdkqR=``WDYRz0jP07|a7G zR~#}}&T9y!(sEScn}`_tIKRoC+emRCPf|(nBrfD zQi#<~7Bjd&l#Oe|R$4e!;ooH+OSH$7S?^>ao$y;<3VlZ{^4@{sQQWPT82yx~gWUO7 zBE{xzVVE8tgHpHjsLuuZBZh>#K;d=MOcx@T0bR;RcnmCqQ?`sY%VVa71J$$H$ZzAlKvwf$f z#I{UmE*ms;bkCs!A2&7BvzOh-HGwsFX3u^J44o3_A1?=B`GPz_m)Sy=7!w{>V-cl+2eX3gVYpRv(XyNznFujh5<1+SvVi6aJM$yti(qZ-YX(pCgM{8vtW5}u( ziJs4F)uG!e7xBDc%3%b=h3iI-a{=ViGUfe@a41_8Trq~gDrY-)gWr-zEgx7N_S6py z9eh1Z*yDZ{H=mZ?dC1D)G%efE98%l!!WzQnDWWu$bRuBh<+$&7s zUEO!EhDhU$hXc*;@xKhJ3#8OK6V)xS`crMNyf6>kYAXCDFB`F>XESWfwTy!-2aX0I z4tVA2@ahMH29;|Dz6$HIP(nW`bK*D|zxz1>sqobEG~x38>d$lX?pLLLsBbUsSpn5> zTFWE5cnI|E{n(J}91>bnT~J$MbeJ+rfkp^H0@v~(C!kkx{0nxgrbM7{Ox*d_h<}kh zC1zJ*o&vmdMcvLAL)EzyM;v-&{Bwt@<^7eske{NmGBJx+v&RR0j?>obqmbpvPSdFa z%LYI;mv9A|B7vWIgBdAw)%lV%P7FSd>n6}K^r=++LXgXR4%y8hnyYw>A#i(Q_z!e= zf(6mbP@F$xX*diX7y;!uN*=TwX952o*4{cOj-Y!RMMDA!OM(R(ERf*ANmwid76=5_ z;1Jw(7Xk~xA+SgY1ef6M?(XjHF3aM2dEf7M>)yX^eRc1x+N#-lx_hc;=Ja&;nRA|p z0RGp-zr7QAwAA7df6&Ugc+8Dc-1 z2yZqvw;4HX^VBtP!Poi>dZaCEtZ!w%rQAt8_*Xs5-rl$0O2Qy`O-?jdqkFW!(Xtt4_i>y-MO-wBTLC=*Eu$cWdv!Hg|WipnHMOR}`5K71T?bja>3suwuSRFfAvpsM^Jqt)o!W)*U z7hMx`&uRwPr(r|^R56DeE_Q|VqkD`Nh|`s!s%cn;j{QK{LAA^YZnHKVy>Ne(mtkS- zNmoQ!fjI>K6}NZDQ9nE6aq!+&Oq+AbZ4kR87bU#i$5y530t3&Zj-PFW|O{4YPNH`?&|JCP$?{YmjMsV(^TOc%5#XtojvNofA*CqB?rT z9}23f(X9@b5>&u!iRtM9)Q=Ix#jWHrm*FCNu0T%(u{ilQ9454@?viw1(x{WfQhskz zClK>EqaS=Q5!~;t&tG`luhi`eaMrcBKuH$ET4gvnDvbuY;KVLloPsm>ThQM+i>Xfi zKh-Txbv6wQ7v)NQco!FKj(Ks-Ax}Ft76}Q#GwhSy(+rvtf?WMJ@RvFRgO>ZZpC6xR z#eQl1sAm`Pht9Bfefv^^rRk8l5i0pIR9I;A{=cw{#oGO9FOfu7xL{5g%YLg}SzbA& zUu@#cUn=V=I0sUNYHfd)mbB!iu0PHyW{jw9KeiOBZkoPIB5@&!$ON!))z-}D@$C(m zws-Fo736Qj2Rq7A5xc;gX6&tqT|E1^vFlKIZQJ#xB*jlQrMPrWrbs>t+JxP`ovDr> zuRGQI`&ar}kN1VkBeP!pNSKD)3l(npvcAd2-a@8a_`VD($Ym>P{Huo^Qs?=-x>3MF z{__6GjE-)pQz07n{?t3@qYxrWsjNPbdfMaCRq@OBw8wE)Gs=sb4;93(GcM|uSy1)9c7&6IH~jF78;)c=9o<{`u2DCFYgLQY(`?gn<8J7St6d) z)mEqFQ2WhPbgdR`$N2wuE%vw^`+xc!vMo!aKY)6Ik)ZFA`s4qzoq5z_M?+IVXGJ%v za!En?g&;ODegalo!Tx#o%LnW5_MVPWKY-zq3!3|2C$_WqJ(% z&dfAt+sQrVQBamkW3tTHcS&WEOV8YarL%i~S+is+k%%iC*vssEW3C<* zr*_UobAHED9(u$pjB^%OopZyQn0YsIXoNpz*I4E;r&^S{LzFqYC~V!qL$D_)7ixRq z`AEn!o4O+{w-!X1Au#5Y@8xW$d~|5OJ7j8`w4_6m0D0_6w7y(JP%Jq?SOiZ7lUxB4 zPXSs@@IU2i)Q%p%wyV@wtVNUg$4p$Yu?!pL0ZtmT+Hnz_nw*^L8R_=Z#5nVP5~UI| zw`XI}6OZ9?kt&{wRm+bA`R2l%>IWKQE^t8)xRmme;2ihg%D$eF#)W0&l$_syazR&J zeCEe@%6*VRk{y?SJADr@GhN0Loay2IM{=axc4#!4CGNUYg1KmCu51Bu!8c|bc}qR( zVBG-w4_H&SGuCTifnUm+Hl`r%zd)Cw`-mv26kka=0uSY%8iF>EG?1q>j&dWX?+IpF#qwT61M;0Er>&zX6 zvHWj4WTynmEvkDdX_ZyxBPTO*^el#kaqM{t*9jUT;sV#a589bK6eLMw1V=_w6tBud^(CM#r_I zGS4>BJft&|WDRQ1O0X=DAK)$vdmL^*V4FXR${B$#0Ww;q!>uB#&W;EpHgPbKCq+tM&x zzNqfR!BcQSywFFP$(G6_><)K%^&zsiF^xFvnH=&F;OT$|{I@kr{Iz;;+}Zipu@7=h z(LN0i*THXgeYqFHO5Cz?DqC4IcUw+wC2sInxygKRM|tJ~U&Vd3-L>$`9E>*2s-8<5tlT;bHBx( zUKe&Y2ImrKYIjM`G4=H98OcQYR#F~jefRWyCTCt-WnNDmr#mt(XscotEN>ma6Z+r2 z{@31X4E4;IRsS(9mRDiOWdwVq=BOZ_J(J4-jw~!(iH1fp<9OtXjDx!sGbgu%d4#HV zo=(+K-|z^mF0?HinQd2q&*J!q%s|Oxf-`` zhx+7raxjs{(czeHOBFZj#H?HsStKdm#8WVCwtc~vi5%>!F#A|#ZYkpUx3g(XY)tFS zGS>5+F91HZD7;JcWnyl0oI_6jyVjhDoOv++*}Y+4q8D$l-*(GJoNAMR9m11J%<3MHPIXKG6|Dx;^ zlbnh18tw=gJEdBzOkOGVxgDGVCd@xJ{omgSAUR}BdQN`+P~g^7`rDB+`U#H;^N(3O zj`7Y5TViB2p2d7}$O?nZ{)hkbJ@O>hFp2FPKIl^*rFN;g~1wsdxXf8%D5r*>YdJZWm?+^ny>>|q*5Y3X+GXu}?Iq{~tMx0fUL z*+1REwWT{Q8xTy$$HFm=TJXRFt!GQL>PG^c9{6 zs{fhi9yRvR&{!YmIp?a2EDTN@xYM_2fJKW~%|WB*Tb{ofG|47M?zx}R8exdSK zaTaiSD|b_Lp0fJz&{!i~ftf0(;8@lcd;i4_*0X}+UpClP8UOhow2%wGy}D1*0GSaF zF_C@)C0VOdqw~n+&E==q#GRYq{il_4TSIn6UAeNB`NBrxsLZYnN#3G)#cWevrM987 z>1;t7Zh0DU0xm&8+IapXEnb1y_dts??z9R1@>b=t;DN~x<=1f14sk6HdW{WJGu4vW z05+<86NKlB!!{BvHfa&W3p4iwHBB?WE&b?(R8{gK;<%7XducPj05zzYUzgF@AQ@4UR-jf{}=5FD#`;p*A`oPh%Dc(He;NGpw@F2Owd-g!r1?w&XF z3DLJneWdXn6OHDU6|VCUx5dh0inp8(S^sX)08^OeOx9E!j%q3N*I%Pwv*mtrK0D67 z*E|;RFkXv3624!&RuA36@fjg;S=h;R7HuSzcop%uytR&wl;H6``?^SfDl1Zphy3mu z<~WNmdW$mrO5D@1%9iBDF`;q4ua02FZ_dSv3GzJ3Vv~}gahU!YuQ~)@Bbu31a7&Xl zAOqg5k#BRW{n~gq&YnsB0S?v$O$3_tcpQr0mfq>ah$8#HJD8j=5hPQmgMhK^UH~n< zH60N38u{KhpAGm+bygNWa{e9oO4CrN^Mxj{(Dl3f8_xbS#M%`yvdp%96zJ zO-~Pja}YJ?yL?4?(W~`1=PYb3y}%9T(tlqWqmLeFKpAVL40;&HDyg6OlZHt_jcIB% zI0+&opl^qj;J}2^S6?_-#FC_6Wg*#8xNzMBFgIiY1qiD>eVQRI6C1!1tv6P6fiM846o)E_Btl$YJ4v?p z#IVrhZVSHOjC_iFWdyDkj)j(Ercr0jZn|TEP)O$AY!qB4;W`6K_mrSidnHR9N3a$e zNBKD2ua=5Z8}PrupoWYs8eu*-rx)qsH0ys*UGTCAKUW=jGoGy#$&>9DdAo-^L+QF4 z=$~Kk)sZjY<(1pQznMlCl44z^o-zGpBlD7OG;q=;-{MsKWXdq+PKZ z;a6TMde(}|(E7T9hRA71au(`%;>9XQ#B3fmg*KPu^L8gNI_if1^#){zi$QR8pB>!ONZfeq2}xRv)qf8tHi5?Ze3h@uW0{3BXgI<=MQ| zeWnoShDFG&*F;%LaO2 zC-H&?=wHFra=|}7?*DA`4XU6cD7@8QItB*0HMA>>{au;QOde|B`+y+#jS0x|TASW8 zX#?5dznPzKdF5V9t`TI;?ES!sy zhZ|(k@UPy56-IfY5rR>m{On<=Exn$j$c??|ZDqFIQ^f8{wtB%k)_x-vfSyusd88Sh z)Vr45I1mm2KaG;y!)+4BUN32=y0|{(Sx3&OdI}8Z)-zk_gshxk72AJ2PLu?!z3iaiXIV`Rb7~J=s~g zFkpm-dMCq+q7f>TYl;kzUAF{dA#6|HhnJx)|HXzwG812e^TNKdMZMGH+2Ee8I;j)-YeqZCr+DqI1F*tMB3XLq< z;Nqw+18AM-iS*FpftFABxl;r6sQ$|UQaU_2%<#M4ukhI2MO<$R5d&5aPa{v zeN*Y5^ZgN)Ck+yC+}1uc9(KTjSCx|CDTjDWH;Q0#Zj2C-ZOaE(uz0h7IkVs*^3Z&q z7Egw-3RY?%Mvwf^%=O_1cL{qGyHu(e5Z5yXxHQy_s2^Ea^&h;VlkEAVDW$FK*V45B ziWE1qk_{x1P*GS>ysOMGv=ye)=Kvwvq2kxGJ>1LH%u!8ph8qLrR#f>~YsCSYC}zr{WSQ2(i>?jvy* zS9k^~f?KGb2YJs?FlUht{cXX^R+*p%6bG$rXey(;TBX=p@}#n~D0()|Wxs)Ub2^1f zYlOy3HpDVU68{}Gb59|0Wzz+b1DyRtLtEjyxA5Q3UjvHGjX_V&T`O2XmZ3)Wr)&1A zY3{!^3|Jjl!|uUO2u|?4`de}PTPk1?zIu-ZYUn-(e^O-y;J+b|_=tc8SO`QNNK&0g z10h}cy@ki$UCi116W~61KT|`qyVdfr$mlbM2`wfhM+N4L!x0?o&JSTf*Uh2l@ETR- ztS=cRfbg3FXm?H15N7+xp8!lLJRts@;N6*ukc^01p2`amt~dz7lI6qx%v*Rb+tSHf zm{WCSWO`=P@IO0NzHN04*R8R~gfG>+PW3FxnZER{S@ur)y(gS!E8zK|^zv%8M5+FD zRyq-VL-7fM%NQ-*#*Y=`HRdDLl7AKYSMzlr`Jl6p-|3Bgt8n;1Iwdzuj^4n1}%fcHH+EVtnr0cp3UQ3YRhKc#OtHus(!_L~h`}3#V{n=1dT}GBR?whH0#`m2^cyRG$^*(BdtJc< zjlGo{DI(GxqZ{@}GwG&k2+G*sE&wVNAU42$KjZ|ie>Aco&;|`eZ~u!}6-&Ngl6T_? zXl^>qe!;T_LjC6<3R%!MKwlxM8a_G;MqUup%Wl{=qI^B*5U7)X0F_}P)Hey@yq20@ zvs8HMu_)+Il=^^_Nh)~aNr%wcZ0UIID2&+897EC^97g;(uA8b$W<6;G9@U0n^U9Gq zaL420hvpk!aG-(#5DnRZ*k-Juf#=UffeyUEvTg+^D^UA%aYZ=njc#<4OS!ar5|G!+ zxexnox6mT5YW)Oo!`gpbeB;1X+4_jsdg;S!Bkh`sez1bu?TslK&eXDrA7me+-n(v& z@(#A*hi>R+?sHyl(jw^R4hwQhwO8OtJy}kd**`+Ngc^SFnoYD>RJF>!pL?QCW)-gp zjNl!Vf^BKW z2YoU}`sxj~eB;}p}$$7aUM#6uA42FH=j0{i^kHx7Vk^E4~7mIU}ueYvP zcsc_!dhWZ?y_?6OJG!+@igDYb5U?cnFi0$o2EC=>(SH{DYT zvGZ(@-4iQ?Ap!dqO8vQQ4K;NX3gzjvcGiz1d>!8sU-`UiS1MtnI+WqSUcIY0ArM9{ zdhpnCjJIz!BtG7eovKrTesQNjzSlnTpUV7T5PGdg#wHLlQ1Dg;?uK2V2In%*)H$Xa z^dSxX`*5#4&LYJtpAyN~nt!pyXyiO2;j^hL{~H@6bHE+=FX;WATUw8Xrprk7oe5wD z(lGk|LB(g&6JY3$cA7OMFefzFM!kzEDFv5`If@kVu02I{^Uozs)&7e9K4#7Ja6x8O zupk8fH@bclQ$8&OZ)|OQ@Ss+=)QK`%_&vKP7oU8%!BZnazj-H|pgQDvM~EMd`{iy> zdhtl!r}p~fQeBHYD{v+(K>r1_9!zm2J~j~#(Sp2G4qQ|~2&ohn6WI>fj!z^)90HjQ znc2+$bpg!k8rfBuRlB=GYtgh1$UiqacPN2K4Ftfdl9mtu9czoI692>N1u0l@vsB$1 zHUdR6SuJ8oj7tHRoR@iEN;e7%@*Yg#r|?9GOKVx?bE(~0-N+EBf1iosQU0)h*WY62 zkHiGH*k1ND{%TYpL#Q<mmoscI zGZ_rG2dnH#0YC5mfZcK>_Huf~ z%kOW?_z_cicQ|8G4JYbQ+(xi(&jnryRLV#BG5uL5DU)~3p;6N79k@ANg6%aE^5kU< z<0)?G*LO)B{-fv$4PUlU7M^#5Ha+w25T94o>furWzN2gw=<@9x{cDf84VY>24e&78 z4cd$kdfCZUv9sfZNW5cc#{<*iH@w<=F&6N1Ff+qh=JbVubyA>Sc$Yj<81-b3)&#&A z#LR09K8f%i@Q2phoEiZ4XORvzWY256xzsM*4#$!q^cCu_@IXgyhP-9L8)!d|!!xQ@ z;oi5wcnK*%Cg*C2}? zdEs098z)h|_N;Zcj>}wBrJ{yqS?BG`)b1Uga zD&yyzzKJ)F%j}TG07amgNl0Tf@!7T=oDTOaL?yP+C4ALKb*T;RgX4~m&LaEA!VFoG ztA{yni&dPb`bv|ro{^TSagF|w)hI~h(IeESb_ZO30n^a@f=tqWO`N65+2uj}@c1rm z7SqE^wtGxWeI{fph0B*aj;gw@PtY7FE{S>xOz!E#%NFvLxA6g0ilWfy4Stg=4iS!`F0tNxR7<-BFp#>pa{k^N^9C>BR}1kMy&dDE<^T5+<>6AooP`TB}% zp;vQQ^U3o4Yj2zBvD26)rsgg>=ntzZ)xzu?hv3m@u}|mA zc2gR_JMXNya=cxeHT=|5?&_zFHXAWz`+X88eg)vKcPXU4e%Fu5HneLF9~6}hW>R~z zaXuCVVSpi*c_u>J>GBM8zgBFSp1X^_@X0xzJdB$>gkq!Z4AE1V^|pCl<#rwQi(_M; zhTH1v-%S~dA~1W7)ehqrbdF}_3Llo9wU0m5on3HIy1WHLPc8w18iZi4I9@v0n!0>>0I5vKyG@4k^%5iS`0KRi zatF>Uet%-E33-Ad#puE4!0n4li=XMVPuTSN&4=$;Nfxs--7!Fnf_&7ZmhYF7QrW_s znsmUsDQ0T)FMzHGY|19@F7+^V0Jx3V{ULmf1tj0ap7B&Mg4*HcC&8O?0`}nGF8jj) z|JfJn|9&wRnN9vfK^=ipw;)c*Xd%Lx)vB#EVmeE&%+IUeRn^jt@9^tmencT(`%xvQ zezw{loK~VOXSD35*W1_xUm}3TFO5CWU#)}pL$z?89#rKyxbg<9`8?L}UnTT)`tQ>7 zkN^=$!;k<@Tt+xvuvmxrfKNBA8SYf#+%_s;_{p0m#M!GawYT}CEz6Ujn~F_T7feW$ zJUy^}62jSOjSYfO6A|*lh){nU+tRI{2SdKlm1b&;M6&^$I@1msZtudQbCx#QzNqu! z^i@IFKlA=cb*W_o5r*L)x9L&@LBg$DM}0*1^2^AiG5B^-Zs-Q>ut0at&@ysS=E1}G z%dCv3>0|b*@{aO})IGj&C8Lo{E$^zBh}27&4!g^uB3YgHPgW)(AzV6N{wR(4G8JAR zWS&v`iJS_D;CPsfbYy>0l8ZG=3^)$2#6%2UP|r(!@XZ;CeiKKN^%I8{6Dox_ZkjD> zBlgC31@!?l7`_+HQ#6d>2GOQ#aN4J4H=b8U)=&{1yy5W-sB-)e<+My5(~!)>1#ND6*EuqO&17j`j1yr@ll4ob55#1H<@+R_@#O zj25BLZdCQBOH5uGct&W57|CUo6D1s@mFF+9H>$cx_7BAIWLSviE#C*GFLz^X>aDt9 z-*xk;@m7%u$}^dEM`(7_E|q#wx63x~$>qLivh8uE!3Md6j_7xb=YzW(Dilo(c_C}6 zEZ93RXY8V-x^Ij14JI|Y7+)rh?9@b}CcdFF;aFiIgz9>@;l#Z?KV_mY-hKFj?Z!bg zk?jYg!R;PhUQ}o)p7ljjP^~cQr*ZyeQbQTy;L&q;w~2}|FQ)YURIT6o@?bM(#JQTh zJ^hdBWr=91NLS?DtaD0vWmS^~|5#+eYB5qFy5XKqii&AvC7VMjNsaLLtbqAzkct+u z^cBk)Ro|G!Pq+g@h&2+;iTyya21QHZpDsBQmxi|G2g2mf2A&C zqofLtj6j_nZPB=Q3fQC6w41vzVUKyAD*liNXJ(-Ll`(yg*6XYEaI5gy^D^bA#iEk@ z&Dw-cqymRc+_S)eM(iMPe{NF;=5KBxkmjF69CBFr2A7)!h0+c}$EgdkJkIBjQ}MKD zdUa$3ySXVMX*Py<9774~csm-q%5oed91QRHAJLu}moc}bQW++&m<3-0{?;{gBPJ`EH=%ejn`C-Egk=QYq@f5N^5RwOA4(nM99=2acZtoK9+VotGgYZeHS4PIn7!iFz zuX&VUPN#qSFvI692IpZIh*G$e#kj$~FfbXoec{Z*Y@+s(oRE5$&y@mXxqiClBHfTk zI`%&0`+sUk?FNi}sA(V_<4XN+i^~Uf8R6YOQFHE`Y5`{t+q|w6LuTviJ~kg}Y;N~u zwY1l~&iK)u*~4{U<2wUx9v6Fn_Xpj+r-Yr!eQlN;<`75ojxIQEjdBg|?pZ`yVQ0&6 zF|`Nwi+ssF=w*Tl=8d$89t(|7I(Rvth!5EET_$6rphaagFmw~lNnU#fb}_wmCe-eB zx14ei2fmTh)ev&xLHf$;ZK$A7^Ei_$C>=qJB$RTok0N5IO>X@21Et)zh=6At*vUpwB7VI)8_bR<$V?R`rD`^JzpFleLg3T5l zv^xIf4|Cwy+JUvc;sE?+A!N48`Uf`1_Cq6^Q)HG2lD-nxjJO8m@5&U z0Z$&x=x?7mkOG?kk@`8i@f>>?30<~b{h29@HIq!~qprb)K?aZJ`#GIvpZW*eMTzKl z_X*+$_h1E(aCj>o%ooo51;?(`JXsO-83=XNc(!?VkyJmMh;wO77VX4@UBL4p{G4Lw7gBgC*Aq#6jBIHyPGp5uO(_GohO` zJk5eL5@%}$#&H6|ZQ_aI*Y{^Enab?CYzY1*;f5WL{*n7hbW@+_1!*)&Oh3RNqwl{% z_Z3uxg9BXrg56rkUQ^)0+FT#GbCPJ93jP@nO1ibfw2yCPl9e;efsEvg;+HlP8epG* z2C82;rsxPX#06;>B;+qUI5uX7y8Y2psw}%w&5s~|YU+iD-<^4R4qnG=okBfDgYkjT z9>HIH072N$@w+x$ZloGUxr<74HgRjZsWq0jJ*SY4=hkO*w(UHzu4HsW~zH+*S)k}ZU z!=d&F#EMfr%@ScM?!fO5C#2%Z##lLhi`^|=hwwlH5kHo&MZ)&)G{~Tf>n+JtuCQBZ z&QOWK9n5>5&ua}X3?`yUxNl!3qJM(v`FJbM-;;o(tC=-4+6thzo(=q@i6niO4APv1Ol4B1mCz>h+En6ByLpS|W2aq5Z-Fe3@g9^L?-#OveARyJ(q+)oIW>KQy_ zfk);#DEw*6E2PEfqg`9euZAzyF?jr7L5x?4I05CL*AU;XJc|JJC}A_88LK96<>fIt zDuv%|m^9nO1KM@1L{}Ekx;QBbs z^lHY^sfivXFk$x1XKP!yehucCkWT_|MBr4yzp031Fe;t1GiYsHMTBLc-j_cz{8@Z* z?h6D9+y!_7VGhh$$x)6!sN~3zVensFc`pKxn#6x`?n$Ua(pMgP72x?(VK+p$y&-zj z#}O|l%|fILQ`WdW#`?)d%WqI8<|JEH5L(M=RkqA^XLa2(3_FpLmz@OzAm7E^=j)S=dl1_74K-nj_}IcgISUK zLY8UoS|V_te!R>Ct8h#w_?IXt`mIsGx?PGts3l|Dp!n^!N-DIz&>ZR$;=|dgd4Fxb zXf~p?N`%(q7c@pfMo}HD1RHxevUOE0xJh|#)1=m zSpDMUc&`Vo{f2S%5x`6DjN^w*U&sEi@)zO==_;iG$6>3;DJgNBjbRx{uPA~M zvv@-(Y0PG%DYowpq`|rZ2>2xnD3$W`MaGEfq8WJbg#l2D-`~-?5daO}F*;VTJKcPl z?KN7sSu!5OHh=9r5tv|W;#7W&<}4oi3@BnaaWv=;IT`kTbNsZX+6$smGn*?gRrzNg zwID)sLPfT*wcuCs9(GHtD*6kDq-$8Q>jIhWMoI47sQW6i;}S0F47cOO2VDmx@qHEY z@6{PV^LWvm8$R|_;=R{Enre&Jo;>VNJpvB zj{3|fRma;|Sk{jCb96|Eud+2jPM~6*#8QN@_aj!6S#-`K#Md!V0V;X{e+FLO^3&LA z!%}I{2kUaZTB+gXf)hEM2>`N(^7l0wwGH*ZF?I*aHdIAJ5rk6MX5TdGB3X!z9`bGO z0ASv^sUWXZiEbviRs$P@`LorFRwDyH>Zm&{+|LtRM~r7cUsT{6xereHSgDEpxn-63 zOUeK`?7+MT4Gx`Q6w-)u6Nf}|d{r)(Z?2%1Z1o!Bjh3njyhRnU)s0`Hm6xS044eMc z$6R>s4vP(Kxw<~AWcK8p?yZc^$z!Y#;9dx~Aoj+Fj4|oI}!(;f3 zWmK`>Bu5Kn?dV7mM85xc151R}hmwNBZRWQhxlu$emqkm8y}L*#5Et-)aiE#DJ<0q^ z08z{TCxgF#%^sSF+8x3qnTf&q^8|k!vy29$;R5WfqBbN^bWufmFs{xuBu6j~K^_x- z9O;Z-fagxM#@0G|l?k-Id~V@u@>Yu{`{5t3?(Bg=7VxHbumih;W3`2&f+DQJ(YfPp z1+2ST5MWzV6BY2z7e15bw1#xIuz7{=hjUXSVAnbE7#|s_uJ$PW=TKx%h?s86R&D9E zU2iFLJwbCzza#Vl`{OXi*b`4n3WCzf3g`D-z5!e4R*&%yrL-B^N8_E3p*tA4!GB+S zcRd{{V&6>Fjs1kxkT(ncmq=6hTN2oeYHPxPj! ze3A1NjGqg~0Atwpp=lo~;mE)mk^C;3&{e>{0O=_oGu{ZV~i zkI_jW(|7SCntA9ZdgGoSEJo5TcTPuglAPU2iFtAU;o=b`bHVocuYTVvoGW^P?L zFHD7ya)K_L2T14xz^$Ugv)~Mol3vq5rl-n76#MX2%-FeONn8ytmI`XI>_gGWtw9vE za}ZB3Q|Ae7&{0uT*O9mmKIm3USM}lsv z((t?4N8c$0kyK+K4A5vd>ZFqdZ>qD!lho#Yc~02G{Pw**$^ghF^}7=#u%u4 zBbi))is5O@C!9}xuC0z+`*OoxOrPowuCiB?DNQMh|BO|!f}H!2e7DBJJg4Vs@|~1X za-b|y-8ORpYUX=qZs1zMinN$o^gpRvDHkQD{!qJ%Z^NIw-ng)TtOtSeLKy_w(^s5S zXVInCHK5SRJ&?AS&dAkmGs#b5A^!j!_yBmN;089@>?dlz)Ix9fGhq|^bo?%*eCSx? zRtD+@Ac%x6lSaUNtJYD*pUJyLpUZ_h_I`kb*M1 zXA(Q}but}z%Pjva=w2Qv1!zEWtp8wiJ}}Kfd9)c8Zv338I6m#hWq6&yaj)PEwIfAR z(!+$K3t)AN*?g~>#UiI@FILH>{f6>m=#sXcJhnTB@mThP4Px3`fjh z`>lirWodTMiVm)xyr?TDO>sc;6S*z)XP>6vOTu1VtwY4rH~QFQq`@kB7u8KClaRp| zPrvdNx-{T{4CT^A5j%ZrbLJvNfIcadqsdb7Z5VoXL2o;vA5um?WA6xDl*c+ z{^+wz{7v`X1twsomfho4idu1I^cu;4y7Zmz5vQa_UIxyu=z%K9pI=|g03(9y zzev{yW9LxQ_?phEWmARspBnEyDBLd}*WFSagb6OwQ-n|fRHf1P(xvy?`6KH4hr1?V zU*jf&{?}xx7f0(OuM+Ggr-Y!sQ|$%hxH1CPRwvmM6|d>jt>D0q+Pr#DaNi)DlulQZ zH~2ZOum+?MTY!;L1H509T(;?v`yHhx8u34zpP2KglMqYAT=z?Gd-Qz2NdZ z2^=tgfSqrEnvDjQSG474_b4`bv?X27Xsq}Y zuGA;x=D|xa{Jn>_z_08qVFb?PMXSKOL~tR#{GAqh&yFChn-lh&xbV7XEu9ngi}(#_ zeyHfIM;uS_Z;|K8HWB&^aoE)leh!S%jUi>zP}J_tG`T-yd$e_ZgsB)OgljS$ncame zQ{3p`1L1@@{dz;$q!20Tc7|?gRBtUN&G@Oaq)=KM-f*qES=>0XeCCxp5(|zz(@$NC z1v{Mmws$Kow0W`mIu@cwgD%vRwx~A*n)p_p1VrH!>~1w}l&#l$`ZH3=LJ_(ZOrT8u`Cr>_`bvGr?`)OPv5 z%uh0cE0KiutW`l~aN=$*iooRWKw@-SQ#ax4H;RPW)UkZh`yX#07SO;@*|B}yn{wgCLVmG^JpJGB5yJmB>imDNg1ZBf z>92l&k4f)LzisZOXY6eA{!xYKF}nf&nBIU7`d_RhA*JyG&!6bW);|bV2|d%_yYB1m z{7_-yQb}R;<=*fq!RSIIvE4pPvxXX!l?D8V80f=AeD~`rZ8g$dDak+ne+9#dfu{c4 zJrwz|#*u%S2+Qc%3W;$xhg+eE=8B@~^)+dq44&i}DT}>bwwG($cfWrRKptpV`pk_1 z-^OMimfepic=M6IVBIM%B|jEpJI5s|KXP&3IIo;30F|wxXFMUW)#-^b!LRw3Dze}W zbLMw^tGA(QL`mZ19(Ae*=?3t>m~+zU#C}@@)=R%3+A_-DHk^)cU`q0uE2ij3%?GP= zvR?1v&$Gy&#*@RKmO%4?Q175TC70u{GZrbv1BI`8_jA$trKb7dAQD;lcrrnbOJ%Cn z-oR#+mbrV1aRlz0lI|*FqtQL7nn)_$ugX>aYr`8Fq6@eiCQTo62eU&n z?xD}0i5u%+t_20=f_pWz{M1ync+dKeyMHHlt!|j(&&x+=Nr;(Pt5juKMFuOs*F=2l z=VVD|GxUpb)(%b3Ir^q!o#$4T9~P&RtyA?Ar#MR8c3Ljag1Wz)`D^`v-J_BWFN-m@ zp}8FWL<+WGfi_D$W6~V_S%gHrthQR@IJergYqq@R!PX8go4%&B+DX9~zi$XJ)02W} zbJTBQV(6Aq!QrEJH?snvRzx5J#;9C@^hj?4pR?G6)hx4k+CZ)lg;wO4WR(Tmi)Z*o z8Vxp+QQtGDiQ~Tb{Or|GiP9j03~!F6#E$j$(gC7f8dMV_w?)@*@#9%2y?T3Z11)O4 zmhMWAjoNaewp6?fdWHoD zGl5vny;=pP6mKuH{I>k+rCJU5p`1ExYL^KQR>m%vKJ^nJCDw%pXXIE`RvM^DFAcXp8O|?vEwh;? zYIfBX%62H|=J!mS_z?QX0ugt|NR?e$@FUkZxf^>>g0O(E(j8JTD6z_UXIVF3IPv>8 zHO`IZgkHhIc%6J{n`2uldF74}z> ze6b2cSWgiiM2mNQ);q*2CHh`?GK$jl`@I0wP{!b8Saf4*Tt=85>5~4$<%cxtNn5QF zqbd^yk#jHj~W6a+!KQr)`qFKSRjvT8oNZvG2Exq5=)qBrMLaT*dW2 z;uGbQU9CDRvE03AqTrhNtTxOYA@RiMl`FlW1jTtJoEaYk4bBDE^O)^ZsIBbHpsP{E zObF#|hel3Upj?KSJv7bLzp@Txnw^y~NAYQNsDUX1C+ZS^^y9w4Am7lyM&R3}sLdYu zi_$fPR^tsCF$mk_m;Wwa=4omTHpI@SV_`YhUZTp=FH)E<$G{5_nySh_{%BJ1v*cRK zTqQ^iz8_n%gRXKF7=50;_c_m!FkbO_o(yr>&$nFtGKUO91v3^GSbvBqI1I6e=naXP z<0h!fBdMncN^+~OH7bPn9u9vj+7VWcV3J&+EBHjaI9kkg3pM4tbLHHmSgKmd6e|_u z=dJeeLV>kGi4EP3;f^Yjfao9VxDzs!dg)G8{|94l9TZ3Ob&Eo99YTV`K(GYY00V<3 zKnM_$;1Vpj4nEjGu;A{41r6>RTm~Ho?hb zowfHm=d1;W~W&0fC&mflSO4{{k&2U~? zH<(7STAW`Ar5#~u1+X?z{0&0bbJaZiF=VyVTIXR)Gh_eDwqOXq5}8Km>k|oOGLGBtVn3y!7lrqSRSR&VgvS z_WCPNwf|N2oxeg2MGKXw)~!vNl!)`|ww;5_z*jC=(aC^CPV6&Q^@PcW@wMPX}^&z#rQX~td!4viXUtJoGr2qOslpOlx4ap9;` z{dj2(dqqLFvo9YnqMKV3UYvvuD9}HZGAELX6%ji987y47xVouf_Fij;)ora5hoP^` zKPFW5BhBbXs@4Gc*47utY-mc~T_Oj93Dv`pHFkb?qQQUb62vBJqExA>Vay1c4llQ|d#y9XZ<*2{#m*Z&hRujj zyUrovEho0+7gn|Lt7yLJ1tu;%%VAtd|clcD-1&R(V*g$t6HylEl(VuUozXc z8ZWtC|C~NB;qouZPD&iv*Zh=}vRt{}E`(sH(L=XLc@_GR?$g&2!#J{xeHY z+t0CW_g+hI`tt$dwL*`ShFcZ0HOq2~E=Qx7)u5E7cB#5(!hU;_I4*aRyHTBz&+-+4 z+hRr7;q0l+hpH!8(wO;$H48&t;q$MJ&2^{sABWD0828fSBFf4{y7jJ$31Dq}+Aa(^ z-?vXqe~7CahtZ!mskNx5(M4xcJU!OrQC_0`&q5r>_Lp;Xa?&?fwr?m*y?2funB+SN zl|D8uN%2|R^Kf_&)c($yKMSTGka=$gODvBx8%Mg!u|a=4x9R&S7b9MzZ*Njse$+0i zK5B<^7+9Pn+_7Dl2IOg%8{gd{a{_sq2&(STeW$c zXRWKr^9VxkVXMkKKLV7iC)n5D4D2iCna5~g2pJMkCuOM6HD+iEQ1Kud?0R34J ziNeI3){AoCQZX$ditE-(p)hS2|7~0LqW=ol1l>#k1%}3}kK1}Cd1<2q`m}k<^`Gp)sm%>PJ}V~S62!; zI0zi&>~79?5%hSbfy`R`T6m>1mG5FXfA|LUAlyc`v^O;N5;^#aNBV+c9VWlHonC+Q zzC5mD)>ugrY4U!s;JRMl(`g=)RdduFqdl%m00a?~g@@4Zz2h>`J#Ul)P8?ajy(pC7 zQ+pjc{bla!QJ}t|T(5GDbNk>}m7L!zO#Lv`r6x1CM1gJ_#qvZZ5?S5}PCK^plCT-g z5{j_mq$a%RDso2Vi3Kk$7;4z8Z2wZhT53W0kCjf}6ZmM_ww`8S8FKLL%0%tw+N8Nx zb!8Q{79w@jx>_hpLOs;)y}99kA(UKZg>tVnmdh`+xN>D=h6ICZxis#|a}sbx$}~)L zilUVDHL=P~rRx)HBK2N>v__Q3YE7hN&c5Yz4N6kyv~oMRpPt^)gyE?BOa*jIS@f0o zED$!qa%hXS7NRmY8M(i5m1)Oo2G^q>p!HMc68Fo%8|!TdJgiFoS43+?dF;$d?dYi1 zuKDSlm4Wu$8fK}sH4f|pNCdf&V_2Fn9nsgTv1?KsN)c+RrPJV0{myY0OY6t;zV4cB zMNMp*x3rczgEuQ3Jd-;1$w_yO4#|$7^by`S`Q%lmpGU$+8*02MKFie3C+TR#RdU_* zO4KWu>%ADOs)qTwvlUL4{+fd_k7%AZOX|l)N!Oc{dzmCsk}jZql8bV$ z`$HSf)?rw-g!AO(mQeY{{xRCMEQs+>@IM2tqF(^X=u>VH^{a>n{v6!)#bxWifp{P^nHhcx;&dnQO$p|PJb*9P`X^`Fna7i>L!Kgg0C zugINZ5C~9%)u2=ToShN`(Q{U;WO!^bI%jJFDAHk7hXWR9(<^9id=erNY+$}A5a(QT zp&SMs$Bz$9c5+Ha{8r)`15BO0ntnU^AW40s%)q9(6y*1CFn5CSn!yc3Q> z0$=$n-1Dxg4%5+hK7Y(W@T$Z~?6$zkW}JohgILZlPcgStfIL{|_0h}t@mivepv&9a z6j)BM#|CBvfQo6s3bEq%Mn-%#s-91Zx}qAKuln_DzmVtQ-skI^CZ8`5(iRH9d~lav ze^IO=BZL;PgBe;DTEWjWYrt%g)lOmN*(uu>HotpQ-f;_if=>ffdP8b|_RlbhxsP-m z6Os5btLYiz!a&iI(bYn!;OylJj(sx&0LBZJbV8Vs#S(T!f>!pb!50rVX$Y*JJ~r0^ z-$I$%!~}ZtY_3pDmZ7%s!=Ch?;X{EEfV=ZsrQ8X@K!y<8*G&@PO5ts6F<(N+9yI_q zalyN^-hi(4i#t_FFN7lI8tyW+km?;en0#_S+Ad}V{9$95JxeHYn4&X`MR_;^qwDuE z1EP<{nr{&_uiR}WVm(;FF&4bxi2QAV-XDdGjoZIJKBo_a>Kujc*Y}Yk0$>054#fj* z?=6u5y==A5)(QpyY)Mz+HDubq4|-R>X+8hbD<7vD`~337wrpP#^q}r5cT5(+TT@=y zo91SgXw`I6YL=3UCZ83VgwzNC>?9|9VEw%r2EgUY1X|bQ;c4gb>|Bf+{AYW3jHiDi z_N2J@mcWov;_Afdl~LE`wFe*BNF>YRHUyJ#~1jfdh)qb5TaU^8+l?ise~M{$3EeDHa-P61-~==DGX1JtlM_2_uxP zNILpAnDwoe{cj4dHQ6$d!uNL@j8e3n^7>U(LXz5a01#=2qHg^-d;D4&xbV89J2cd@ zTLgU%=B|jfC7hV&2d?JA95-Ls>45eZ`K|vpo>ZlFvuMgc`dJ}Xv+*)WC2`&;%*J%Y zhYDv#hBBv3nL94U9>nknnXjZEXf?y+2js8ptxx_{gJ;x|UV4*ArwgW7*S-W?qPgb( ztzW)xkO+@tlmsYDU~JfZ3T*rR^34B-WOS&L4?WOaB^9wM#uLT~Gdr`w!9l4E<|*Tl zB;fY#2+OVs$Kz2_kkDs_y80LcH?SbOH35p2%nzFF-w|0Ep=aZnvQ-Ihe`?Ge4d=yR zA?GC+G1$&$YoDdyiC6GyCyo*3CH;|K5jH;T-F_kMs0+ofA=wmo3dWF#gDPEa#<%=d zrv%a(RYMaCbm&-N$}h?3sj7r-@1_Dh|I%`lyu-rS6Vk*mMp1%;44=)Oh`tN)w-(_K zO3uPFXs>#k+-@8KpH%&PT3EJ%(Ho5g*lJOw&|YSEOH+YM+z#xQ*T=Pyv!-Z7GXX;c z)#>yan=-e4rxRGnsEJ^^gFP`s(_JBBOlNO^x0xj7OO7Y70Wg`z6A3BsoF&FW)3EN1 z3_XK~m5;X37qGa+%qj)s?Pbrjxj&8#-HYnH9a+nUnYeqK@1mE6=iY=zsUXuPds3G$|) zDX`yX{H=9Zo$-fl%oTX3gPJxtkue6B0SA@)1JkoN0_5VG6Vjk6e~8$;c}8NlZ)D{% zChq5RsTs?HC(#2Pe-^=clR!9*!n*?RjV9=1_@S?yXY4UD z(!tjgXT?Z~@hs9Uh-56?*+~nuB3)Q-_Ov*i>>CU*ts-|KMnBffRqV`sIy|zeEGXbf z-|COvH2`ord|(Bra<$~qd)gVjVdot!dA+cJ2 z+`?kLhycpuKqvmcpR)Snz!hu1jZfWyooWhHoKUMI@Qy9ggRUh=kt%dK4B5i*jSkSI zFTW-;*pqXPVF%di%8ONWdvZ{S-)@08WkMK>sbQbt0y6^!1LN=>7crg7Gh|3dOzz^( zVnO*OO4{NTjb_gV?xsHuvOwQFi3jsz!g3A%vI3dOi~=H9pu0Qa$K-inWQ+G1Kd?2X zl!dTQzKQ2IVUK)ms~q%}L7_e&S``SJDdn3DYJNR$L zdfiPOzZB66XHr1l8T<3l&>!h%inwMnDmUay9rqu{&%yiI;XK*lE8ds$AzYdiuw5a8 zF|+jNt3!2ache+CRUs!<8%Kf$R)MZ6PhPFoN#O|t~RoInnEQJzw6>?agsn*1$< zk&OAw_i=68du1{n(jxcss8^LX?+r&cjg0~WQ37$3$h8-05CK5iLyPfOYxNL=ly_|> z4ukSXuuV*e)uvcXsBo7X`1#B%?4uTaduuuBB=)G16l`%X9!p}5k|lrT*YPx_h1e?G z4KlI`BYRR%sWl#w$f7sKGlnIEi zW&kqKr?*X?j^YUdsc|b_>B)NzaR0GzhCI5IvsLS}!-IWWanEAUUl7Jfk%cRg7g1HQa`-gMg{ka>qu|7a_0%8ySgFp(LleE zJakX6DfG|G_mI$aWf2%YpdoBQJ#)YpD9seUOz|g`OHcdZM<aZcF5=tSuGRAxnw_piLnErGj$I&lhCOEcv>yEW?9aZO=POz-BB1$ue){W8ytu@* zE^VH&`=X3f|7mGU1=sgLg96?FC&JM&uUn`!qx<8e#gx(OaCg{B6k>x~mr3&()3d+Cv-63kh6MleBFo@D-}-u(*@~uV z0R)`$S%ix^OWOH0G2s0#ao)v?oukr6%04*;?6c&^L4lS#(~(Dur6Ur$Rr4OsyOsxU z(mxCEamLVW{)QPcB6g1NmFF+dq>Osujo4+;IL$?H`ZYaPCvs*)02^k)DFFSa$ zvuHYk=b>eydZH1QsnVf{pZci)Kp6e#OMnDG@p!Ojpy&7H4DA5Qjb9EMm}Wg8Y(+GP|%ae^iaDvTt`$7k)Xf zHQ0R)+;VAHW?Y$G2h%n;M{PsExD~N|Og%YEpCQqEvza7R4X@E(dk%IOsfKizw%x>< zIDRGL!F=x=w2rM#y@1jmm#O6f+n+H*HU8KsZs-Yp$T$%OvSC~pZX4$Dy31rD&7=;j zO$N<~A}zfE0Lt%dBAIVar|#c^#h41`zNxIKC`y#cot<(AN?x(U0OG03mYI{)qpYoPw;f8 z+ko2{lP1*;26j5zrQTiu*nJ|YP~y;y<8U2Z=QyPd%=^l5bbB{#u;g}5Fgx=a%q!W<*#=GE4SC1b9c@{$C zk`z25qqdp5{|QUc7&tSzvI}--=twUwYO987yop_2=>yvpwTW&*0?$pb;=#BB7}%+) z2tak6Ogw^#Bfux;daA=-KV#L7{9xiS>i?PJg( zM$4_G?tK&qFJU%jK^^M794ax zaF=A~i|-RqD3kUCfXd~{^cRT6+a=Jn0uHIh=`hUQc9e!bbet=a!g}Mt17S`+<4-FF z&v?#dp+1&GCL^+*L57THhpnOv+1*QQ3(JhpK;1mxxKLA3zBK_G-&9u-fFxOYs5b|+ zcS0SAO?v+HjrF<%?OM8&a{PSX1dK+p++HDJ`oX9G z@Q`P0_i<%Bo`4cPOa%HW32bUj4@f02=7;{l3+w4V2rP&Pe}C*cDF2ho^ZStyJHRwn zjJuICUQyl*I^uGW=|31avvwW_4jOs{r_53LTa7JqFm79i47O=xl4;3gjk`2=qS`*90n~3f4Y>FGXt@YGd zS#Y8Q&YVLq0r5mBH@x6FBGy^O4;u}H`hz%Pp@_>eFV6e#2>D6Ps|(FX2Cd}L(aXb< zX~>T@=ELx_=90yDKis#cKMAFQ&Nyq;Urd#zM~mPWmecAx$p)fmVPJX4fIzAzlU4%4 z8q8EW2;1ZarcR5VST*!@=IPe}5p+-1=lVrUhZ}}JaZM&24?J0 z#vJ+)I|hFfzEmBwzBzxEsNlUuG# z*AwfOyeHD>c((Lqb|n|v*(_wTJu8UK%MjKXkQVLl;BUS0AIAB4VxV`2?%?*%H>0v% zv(%!RMsF65ObeR8*CuT9-@j*e|Kk!=%g#&x`5js3=}Lb{*KN*JJJd4kNinMMhW;lZ z-Y6{ZH_g?xm`Kp5?AIi>%2UqtsPAH*IvirD02c_+fWp(Joq+U}O6cqN?qM=gzLY8d)goMr8l zWERSBsDcgbAaeCk%U-@Z@&Wrj`jx-}24F{#DB0fRuX!xVV1u+j$^9w}(q5UTo4;E= zD4XN-p9JU4H+(PpQ}YkK{KYc=rc?|({?+r%%j#KF8}bAk?dJMLL1ME%Z;6ZlZ0lnN zPhJZ6{(dIA^*E9akkhBHWlTIy=`Ux=^}6`j!(8^Og#^}#*cOYC4D)kcwyT9lS5}yi z&sG69;`aoQZzgA5 zfrko9ovs4V=jz0)LxpRUg)Z(y^9W&RJtgk=lbjD9JKx+W-NqU@G3WB4r1)2at*hDT z!#$`Lt#zQ(Y+EnN>7D&+hj}!DpVpH*VX5o63(rD+8;aCn}yRIn`ynA{^SR zKiCw1dk+CPYWz15mZB2~ct=#jhpS35EA25Rm)IEl4$GJV){p;R#M)A5bg4KQt}#pg zuLqXOU(XwV_6NnoT#wl?7b82=RX}Nl*)dLTPek#lJDG5ajmfZZ`M+agQTO_H@es>J zg5Iuut7slE;rbZ`x9+qM5dEmux*{|3?RexxAbC)^oe_5Vne?cQI)~FM7p*~ySiWyW zQ`ebn!prOwE#D(+75?n_$LPmV~VlW9i@V(R_zI!(x#;Uw(b4j;kAg zJ`z+lVh{oD%vniw!(uOSy)3H~ta3`^s_bF1kT1hCuQvB>3X}bqWxH&mUigMh%pUtv zV1Sb>N`x$2Hi=qJuos~9he8KS_4?1Qyf2DzO%{(U zDH{9bU7Ty{oFeQ^l(FrehRVi`J+zACf$I^}`ItGsjaM3Qu6{-8UbZ{L7UjL##nnwN z?OJG<%~>d3#bHO7G0QOY-u8n2K(2eI|Wq0}U>s&^-RCDE%*lp@G zV(J@-z^vMHOU(1S3~2IM)7U^HIzfum{N%HA{MbB!Zu+T>JWNrP#Z}bmX7n)u_K~dk zTYKKb;cXa>vDCZ*WL}1&WyC|iVo)A?(K$Zp6Wl`%{EVC~rn&uAl6@RK68E46f`|ax zKeWcAK>w`lZ3AI>bCIVha|pUbLWb$S`-I?6u%Wk4IV*W2hm2{+qXY)h_ev^=$oi6N zvwvVDY5Uk~1#L`h1(GEDzWwMw#MLg+makQ!E5@rMF0jz4hcs3<^s#yVU02e#sZtiQ z$%NZz*|cO_(qhT&K4Q$iQIFf(%r5V=UHzM)4OdfIkuLGj^?c;1Lm=}zFU6`=D^ucB z23V;0Mt&jbM`xNKpVtHX3_?mNTaS*S8|}YriN6`gdW@Pn36s*Q_ytaN;O1gOn=v&X zt=U6#Hmttc5)aUJSQ}eY;#RIQrY=x~6aVR}&cW$5+k6$c$BylbD;_Z1nStItaU@#w zGPc#`#0s1wk$WY9_&a6E-(#$Xd#-848321YT1GHANlK0~=^$-I1KWvsY~UtqbCk)? z^sk}$W#i3U-5j_VW_goq^g+YKa&t#-o!dU+wyVNroO+o&iDyuh0J>sXOXjDpbhp{3 zKXJW?MXhF@SKoX+suUV0Xd#hvJMz)TiqC~3QyOUbQ$8) zSRa}RbV+^tHD^2rJvR=Ny?LV#x5y#R4Ud0g#*crM7ujJ;hW{;FXx!%aCO-`BY4_Ja zJ4gQ}TK2UFczi;YB)QsI=$|2H0~T!E?&!KA^99k8lfD&jaO2t@5bQ4@kt2S=5V&bL zLz2(en7J!Lw&0bB`FX*ZNz`2%i|5b*YhMGN0GjpxLTb-cK}SVLKmS^g=m*(FOd#>p z!KXTG`6}$!%?UE?V^ijx(c*2mh#uB8T72+Wr)T4g?YM}s(zYPhqB;9~jucEworGGj zd8IQptIPlWIS%euURQ?>bD44m6ix4Ch(gPc9{(&(KSM_$WA<#jPGK;!9YW!v>fs62 z;w#9;1&sKKrqNiiqftde)VB!PGxwJwjI7TdJeypqM#gB&#>*^~>r1fokHgxhwc$z_ zD>A!lPJuRcxtg0^6O0$PIsq`Xz(Sn%>I|A#GD%$4!hp3WSmHl7ap}8Uh+VNO_};uO zl2xw^54!sx6<1kg$+=a7EFu(`o;yk>NRDU5bj!z=du>!$CcF4@+TV7RE~Ijb!MvlX z?8(zUpL$xMp6nB+Z`ZB9{#~a=_iG8RG*gz)Wn4V1ppQjVtAb<;E+{a})6)30RRm51 z=4we_W`r%V(vx`^>lBCI{g5zOkOzz-yqF}Sc5;0%7EPn5Fn0NxM0jB65H}>THXydB z=#y2mi1kr+xU<*hxobVyv&~Q?HLQluUYpxr+sGJ_A(cX3F-=y@g>uvyzT>>Zz2Wvc z$;QzwhEwmaKGbb@es-mX@e`4gOtnkMOR~^PNb%F*-}D~eu}3zr=Qr<7n;O&TFZIbt zgbiM|QP$Av$lc<$Uq0Gn(0-TwqL2a$;D7GHGJ-p#Nn-CSHR-=HpU@GhjSW56PQ#5M z_ zIFYsh$o^1PeY+g5Q<&c%m2H22;g|8Loew6IBlr|Yuwjx|&N}wmRS2sA{&g)3yts|7 zxrex)|NRTK=GbQ5D-xUTRGOq6ko=b{do_OFjH{u3x78S2cbEUcji5x6+6vd}Cj^(J zA=sR#xFBE8JiUm9+N@XV^lKmBGjkt4wTaS+)=_bU}q8<$18u(LlMT?>5#QP_V_ z^nd;L|1-!&kT}`j4MXDmjY^di6M`;?IMi#t&|lbEx$Q zQ$99!`j=Lg6BiwG*=;V!cr|Z7S;z<<3_reLb9Gkpy4`jRPP4(B_#^sG z`E`qZJz_`yU@{k8(M~{&-7NQ1-qWMsK`un{v(luIC!3x(y~#El_5 z=7Wc{rCOS!|EvUH@eUQ`5~#|T?!r)zz#7Vcb6`(vS+jUBiO{w8*9+_Q2}L*0ThduJ z7;hJl2+cIQxUbI9fJAps;lTv2(VbIOUQYvmcO=7H9z~N;_*n)TXSXDi31U>)8@=&r zLb3@R_x7G5mV&y#$)a5tza{zDM&yU7{q){%yc1=qT>(4`)g?Y~!`}He{sOa=x!0;@ z&G9b~&D)bs%f6X(!o887=|ImyxKX&{v(60?73*zmyEFrTx3+IDAHbH&5zQo z@XmwKZ>3S`oy{hF2liTTX9t@E7sqG}(+}YVKThFXJ{KB}1**9t5K1doC(4L@H11^E zc)vxcCGvS32oxdAyE!7l>rV>Eoyiotgnhv?d@P5;X+aMGLyh<>YZb@?CPrVlZ@o&_ zz*)W04I76E_QIqGL*kFn+RAu=rO>f4-CNfOLd(m=cwD50)dQ%p!Sy+-wP;UoPS5Y0AWv#dDL{6(=R9y$T@BHdPv#C_ENOc~hJiRMfzmj-X9M@fJ zDBvZm2SU6210%^GES4uYUQcUNgs?}2>Uuqq|DrM;uX$?Z44s`hVY?-#>$y(JxN<{U zNb}z+{ht@V)?JSxNxE0|OAY8K6|E0x{1ijD=%Ro*QCFLr%jH~#h%zHcJfJoOeUJ=i zaF5J(m$3Y>%(!t&xbuhOCIOzrt!e=g**akK$aK+zPv4RutsygKJz|ay$Y{D&MHi73 z_8^y;2L|$D7!?w>GP(7u^7F*=G={(=eP`$Pd6%J`Z6DV~s8Nc+T0Ea5Y}RxT$hf$} z(uOL@sixIIt!uwqYl*EZ`*t==))M;SD&Y4EKxp_ix8?T$%~R(Yfdr%msV_Y9%u|KP zGBRM=qzQ_iN0u0(#d@^c#iqw}**l%(f3CG@T>#&E+77@jaU>4U#?l9DXky+op|05# zM*876r3OY&glWs;SH*;iGJIk0xk>_(*cXBLnKPPzBx8j{9hLIn@ZgOv4i!EpnE^Fs zVo$CRh)uJB0T7*7NUcuYRCRs^=$L^lg790qkj3fz%&4yG);c#;8x^V~5Esd5=Vh?t zGGmd}0;?>9%H#KUn5~SLdOl7I)*6HSYv(@*TQ=>C4}iAk7Y?y{bRXvxN;7IogZzrl&XjC~%A{Ko?ej6(Zfe&u} z$~u@?UCt16Lk6q&_+}P>i&jVHZSvx3S>8OrC`O%-TUbvA=bw?IVnyB}Uypbq&6i?b z=C1Occcf=A&xdv3x!L~L=5Jg?46zSd3ZXqdad*YVaHw?hlM3n{-471UqzlIu_o2HT zrt^ck4CFo!;FES_(W>vmA0jsuRuovmnPHE5-D`t>ER77kd+EeG83-yOuC>Nw3#o-+ zXMRHOin=s7FWw15+!-$Mk<7Aq+i~!DzE+=!J2=U8{*(ri`3Mivu$%BnWA(<5|C`Vh zU~438aguK>Qpu-*WHa(SPpl)+r&E{S|Ew86+rqa-lr8Erz8EJ@D}6vxq8GbHJbVq+uDFogm)_GYR$g&}1TS zFWbeiWl$rlF+KM$$CI!fDg!!4BSTb|Z|Dpv|%^ zYdO(PAE`qcGwvN10>$@}u35;ddNI+yWwBZ=TGsaox{tw&KyNHjd$f}BB4Gm8?W7%o zPprd7PT|f}<5I|;?9XaQnBf@5yvwDkOskmVqSg4~RnA0rvtGnIm2o@u7&;rGHI;yd zW_ebQK8_b&egbf`fD$6KFh+<18-8c}cHEvk6P_Cl_=_c`I6#2SimV`vKRok2zgH^- zex@{E^s^N$tL^;cBjjKSnrFVG?UW@Vt%&$f z-T|pR$f-J~Matq=fV1hAkz4fm>)p`2(ZgO;mlENac(&o#a_)gr8>_F5YE=mSk%Zh#RUclApScRVwdwtf~cWjl1W*a5tNF1k-Q1`2-{hOrq8`t(B| z)@tFG4Ah{sl%E4BE|6X^@ghqOJ&`xkH&tTN(dZ_(Cs{7LjfBjZd!9e|GJYPuMjXRQMNoW6o8uipde(w;bNw%?cPFyYNy-HSe<1^<>S}WwW7_*)bjJkDgkLEb8mi(1?xc@f4RPu+tu--YyVm>MH%Q7e1 z+u;8BtkTu9foi^_!GCiroDw+!-FUS;qFX>*b_Or?nYP5T=$#KrU;k6G+&8b;*Om5k zcbnL+a$UT@9&V&w8(3S^bAryrK@%)UAP3VhB?E*ugx!1`ZwW2$J(yj(*I`S)On%9F z38Gf6pTZwL;oZP|#8Ka&c@eeeKkCFhM(GM4#a)Z2aj87kmef&NaOq{za+m;Wq? z`Tuy4bWeBB(#}K!EaLJ6>gF|9TipAi7zfh)x_;UEJVTWURV{16AUk9 z>dv8Ow0R`q?%;>$Mj4?>TO|v$qZ<^5dVVvI_wdsB$gpzX???my#{4IiVErdlEM>DC zD+9!J4nrB>Nq}xF=Pov<#2kaBLpMVqD+8$eZ^smWjd9PHiRgLYi!%WW0-?V`4?Ay} zklUHMJ!=j~$uT%!<5#_uF-ErJr2ph&7q z8{&v9={f@7M20_yFpw(xefA8%QLHX_6b1`y1?YqTB~UJ_Y~J>B#Q=Mo$5#zg+y z?IU9m%Q?B|G)5kiqwD)#MMv&$>rkrtLgX0x>q;08p2? zB19^ib{j#3$3ZuBnie35Wh|sSE(83WSvUI52b+X7q!z7CRo+}kUm;b^NxIN(O8j}fRP*Xa6Y8rZihH{o2O1Na!yv@Eklm2ta~j;~ra)o2HFP6;>6 z`}C~lY4(72zizqXZ?8tm_0sXzdcAq@9>1(w?aS0@-yTZKY=;&Kl<+rn>ihZ_mnR=o z3#pwMRN~;D7b#Yl4x|M>bD;z-=^*eiRN_B+>cw;XsPi;_=5YUG9oq}m&ps@2lus?Tb&*N&9)_x~ zxS-hbIdoF1o%5~VhKpj>Mlye^Wvm6qf}gakquG!rL0Wg{g9jBNcVzhFLeW%mNb`lw zzz4+kd`}t-pab;SC`P7C!4BcC^Atv^D%KLV%Z$-Z{r3zc-}jbCp6`^=x;YnvA`H8Z zA*nYvCt_jj2CX$U z{k`fnM&63fDL82ra&^7TmU3HBTDbg2Ep1mG>U1=kl2D2{dXFUr^Cm3aYeQLrQ9jsB zoS$j@R;WkPt~C-I2SDbjbRhJ;1ybBYX!Z( z&j4i`Jri&dftq)B&fgg4?Rh{#NQ9lFaNjOFz7j}vAxYRQyX_C?QF)lp$8$->xrML0 zRh`N9r_ynrUroY#r5#gwg#Xb)qyQ-H6}*|NkMM$0{E3YQC57YT zzf8!mkaSY9jBFQ@S=r;e+VwYs!3N7AQXZGi7iEi{v)0>R$1#U;x|q`fK~Fc)YjoND1Fd$3AioUj@3D#4?!lH?-T;{OsR5IC}CcB>4=$ z%ma6E^OEj~sy4(Kg~wdQ!i>oJNVJrmiM8H3j@%Jw4-clD6CX3`U3XKI!M%4#UZT$K zw+#GtkiO4Qf1e{G+u__-PjR0UJq8^g84ZlJh=vilM;BrRFQ7PM0;qaSRf(=ojsq>g$?wqNnL?OvCW-n4yNrh44 z>Vb8vSvKeRqiquv1VZSW=f#N;0xX@MvSL+zVKtFB^k>u#){{TDpTB4&u?#!(un*RE z^XHS=Kkd$@M&0r`BY%)2Oj$_o-JWVOhFsllujM>p5sPtZb%~ylG~JrNl_o{j5Jil8 zB2PPj(x$s*f5kyuyxeluYxI|oLl05S+ubet4dS0MJ7AUjb3fa;F%S>Z6dR%zQA^DM z3vsz7N6I^jasyP-hm4Wd!l>nIrmH*Gqt;cW)o$n*8R;-U6K`HOH?n86$njn`W{M~6vrv!v5|?+qq+?*Zpx zU!i_MyJ^(r;H3&RzPsjy6YRq^4l3J`VqvI&bunxRuhE0>`HRRRXt-4H)k-JKOsk{u zBhBCAn2ld4n;1WRI|H1z@X~_q2u4>!w@?5lpHtC3BR*8Ll-@>}RH#d;v?!`cN>6U> z&sWL$)onPML7X!S-7dM1&8Gm_;WH_e8j8S|4XzLrv;tDLKbNdd_ z=E?fXU6TL z!FLod{}O+vn;RM%YNm6dyof+OeZ`bP0UEyxYs8!tEg^h@aQ0kQyn|Jdh!G9<>|#x> zz!)uQhx}&$B?oJ+low#ucdXpstQ4h26>nw|L`$jMdzap~qEli#)Rd)(^^Pf5`8o`Pq($7h>E zZ=cEC?B%7LBw$ezj2+INL6hx~M=5|rELzwX0^1+2?f!MK21WS!t<4)rudFq(p1;9N z7jrZkK7!gTy$jiqLtU-Xt)1juTBEULG`&|F%aL_~^>vMWoEP6XsI=Q=bs2dBF0lp- zew{}R^x3`X_rp#pw|4DfmspQ-GG(v?4`GK6RZw7n39Io@hOqri$BtRYfZs3Al z4Ek`SjQKP_PuX+1O#;KD*%4{d{pQn&UyerD=GzV8A}+ibc~3e!)Pi|jnwXaqoagI@ zXG<2HO$;ApOKh(vSKU5ly+hi#@-S%GPYi1jj!cUJ21OV0|`2@ZN!b zJan{RnpKxP%!E1kC#Cf?Xy`V%quFMKl@nMZmzIqzO|D@zGJX+G(P8OrCs zq!T4x(wGnu&S(}hcz;Y?=FodqZ@?+~-sb$&z}Sn9>MOSJw2GB^8E~ZMO4T41u=_zE zH>uj|RgB-N(Rx$b-i5&&_+?6Z-d0WJM$c%lU&acQ|1#lnL$H9)pCHiJ|B=v}5{`WD z29&hrWJx8mt$Q5jZy!t-e=4QwE8h4x zC44A&*H*u#gRs} zd``{}V_HsVjcKLz0y8%*Y4bOtL%D)4GydJRls!!;($L;5tW-8|-_**QRY}(_`51R{)Z14z z;&h7RILmDvkIaw7f;<)6yrT>GWtf-$QT&-aY46(sJ9P)Fn)16u`G;!!{UDx7A6A znbE2^IHRn=tr?oa7A;HUJ;%Sl6H%X1x5&}Y(!6VAx*3Qa1FSwQq@SZPIx!0{K&KBzbwq_nMlu^;y)bEgB5j`k^j<(cy3xtdBRl} zmtK#U7~eKc99fLDzJuVj+>tD-3-e~f68&AT$!4XQe{Z^I@nWJk4DeqL>NNNRSzxiI zEH2kGwd$*n|BP%1zSx~+_ZN=+19oj(700Ff+6pdp{zP2|2XsgbX&BoEkb$a0yH!xT zP(*P~!$d1zQFP(@HnZ9JWiu~T%;waM6YpeZL0bsX0D6~%H)nqNMG^gI4@?Rc7;Cql zW7$YabtFM&#*!?aN_6IT*)VZM){-{JdX~%bx&Qgq&0SUywY3E$+TInxE(FNMDyupwqygniIbr=%&@lgfze|P!(3m9`3A5Qk@%o+p~xW2Y) zZD}kC`%gpuZtF}D({LHqskoTU&| z)DPXSz5>MVRMWNjQ?Q*a6XTI&*L1*BPN}^X?LumGCF9+drb*$eY2=e%XX9LpF6bGX zR%)tEW9niZVx}z%muBMRvUC77;Q<44aI?mrohjAiKj{EU*lW0I7M=Yht>MEt6TUTI z!>rufMRv-s;GFPyabzgSOuElW)wQ)^MAi8fxQ&mI}{uB5@It&lh|(qDPE_tB+)Ry^$$=ZzHc>Jf7Sh3o5uWUHlcu zN8o3gwp-oks(sExGlvd(`#B`HByQAWqUnfXOPT2xR>pF5e9i*y46rDq(2LZFe9@~B zbTGUgHR|H(c~8&VI%RI0&tiDh3m)$jJ9L$D9aAi~vT3AMH%{A(y291e@S0Oc{ zLZ!wDcVo{i&yoZF@$C00{)2^2Yvv=FO{33`X8maQ>$lcjl@tokRrQvelV-yBIiV z9I+8?9L_^ObY{8Iz&`k(0VCK;cKmBI%D<^59TQQtu+zM7rr|HnE!m)N_M-9f)$heu z3b4JWsh216tbgyoK}ko4a-mJvzfCARC~)E*z&cmWd@jKY4Qk^@wlsUOoj-5s_+dEM zbc`hYJZsvDyaV?t04`4uce_RE(SR@_ zw-J9J%9t_b^Ot^2!FTeTogg_=-q|MyXNiNB5-I)T5tUaN=ucn2yualfWEh>fZ=2iy ziu~#Q!eXb@cZWt}lvM9;LcL+5eW2x(CL4?BNNj8vg?`}pDEEfJ6;*KOjuP|Sc*6co4?PLx{mW)c-X3|2PRih za%DY$HTif1K$!ez1VBVM^0?u+n`)DQMkmXT0A9efQTkx(aOA3h7C3(^fI=+Di5(Py z6aj;h-YJe0)~H@bfk6+@Mo3yV(aSa}V4;lh#hH2zZ^E4)xB|;{Ap)|F(Rlks_;*<| z7FEpOJzQzN8TY7Y&9Iw;e3+lcPZ z!44qX8&R9G)B4=uJ4>-}ZUHYS=3R?aAdX|t!(XyUb&dh#IL+W6TulO7{jE5P+0m1Y!|eK4UOw^HUC+i>hNZ3?N|RiXFR z<0EkKRYP!P-`?mvKUxo{byvv(Frrjs znrhOUv+q)LRY7eKf3TQD1dqaccBCnoAJmdQ$qOeLgtVBRh-)Rv;K{5$k|bgKHOKr> zUgtzc-$?zt<;{~ML*Qs}+&W@|IAixubD!+UzIt%^Y-*q zAWOhw4=YfTvTiWj=F0QVpdw-XOgAx4|f;!HSc~%y`))uO~=XO$OAv_TsMCXjUpaj>&!njpHM%!sgn5)Gk zbq?5Y`P+{lCR|uK=U(k5^OIV%l)sv(BBv|DUX!mK9>AcS0@QuR4ifKb$jb23+G9PD z@eWxynI+Dnrhnw3ON0!cG)1oW0T)eo^V?U)SOQ*n;>FUDEXPa--vpPQd?jWLYeX!Y zNgcV;wY7IOzKnOFfB~aTJVPzXb{Ll5Kg$@(^}T-5gZd2ie+PvK?Pje=nHRT!->RuOQNiFt$O3}-n~KaLt>-HD?7H+s4Hju`00UT%Xg=6)f&Q@$Qh z*>N;k7ZmU6Lx5N&NFq|Ms_8d*fw`YBZNdJA8%r#KgSSBtHokQp0ZtJxx**}4XLUUd zo4Y9mcXloeWJrlZ0I$z30|MS3O6s(}8S>q#_Z8WEg$f7>Mw*BX5$`Gy*O7yF9mab` zIl%nztwqx?7L~d2b;&Y8JH}!kQcHo(a%?&q6o0hen+A1UtXJVF1hB^| z59WAR`uEC-!jGr2B~#X)e!6f>KDIia!cp8EDQc#HjkK^-@eTi{)!=@qDt{qDjn4P$ z;m`Do@%h$+C#^#xRr^kN7j4u;N5ad~%M*vOV*x{7Wd(%0>PQ4-DG@WOj91_$3%C7n z6*+XN39}%*%;`APU-ymqqSOcHnBNrfk`=%xE8Sg{dDD%<>O#>4KY#cpUR#>yU`Bfi z3di0BCVci74f8ZVE;UySSAy?LK=F7+`d6&j_k#4HR@ zkZWNe@1kD+vw|o{lf4Zjju?8Zof4QXa3dI?>~eT6%hG?`XKxiA+KlSOq=x&cc7I6! z{`H$dcp}G(-anB_uKG{7Mnf8#8enJ2$k*V@fBruK?9nwCAFO6r4Zpuwb$-4|ewJQL z(Vw`I{K+cyomNeyqY%RXVs~rfIaFAt#4)o&KB{~@do=XzW~>)IA!<}8QdmH1aIEe% zyQOwN2GHc?m_TQjwg9v|Jp%CR!)1%uUtpGSG(30Doi3;@=H{54NNs&g#2Gf7YtJMl zY|dyv$+pwdy?Z?l;inA7&9(4aA5)3o`3z#w$47-es(%{Bk+RZnRvt7{UKiFtvQ~9E z7!hmqq`Sf$E|T#>Yb=cDlR~!4<#Q3KR9=u{AYCp6-{_jGr&%SDMS>KeMbjdcUk@(kebgdu>*J*Tx5S_)2ZnpFkYk z7;aKy!{qlZs;wQl(iP!PYPowL8uPmhv@NXP!(IVn3Lm>xuNJ{Tu;kz`RYMAq8Tc$6 zRRK&M8&au4nTAZ{1t>U@#Pz_!e^pCkfwHz)@DM=$c~eD zB|U;~Rh@?|@uM*yFqG~OlD>3kf=1quP~u0y;~A+3DxnjRg%stDV5g*K%Intsx>FV^ zJ;KlGxjQ^f(%2WwqC6gT%dXy?{=2(cO=6uHiO_5ZNT$F9fc*y1o zBSl2rhF>6i3s~+YS^Y+b@GCO-XZZ;&>PJx(HEn-tTdkWK!EtO4)K zqL2Tcq108+f_A-I?xcphPd=$P(1!O1aGz=vU5mz6ind$9`(lGYz|op0so3?jwXXm z&!#QNuo1M&^JqC(JAu}rQVf*MDMTTh*>1@_Jwb@j5Ig=?c)&U3q0f4+fUcdc0@d7~ z%qb(J1>~EX?ou3gWy<-rj~8#fS9RMv>7F=0rj6yD=4t|*%!A*I`Tgm{CT0+*_*kp{ zr%qR2Jpp(9uir$cScn|)fhPrUw-yF?AkQnRX*qFWmkzsyj+r}DC;TDZ zssmQmW14-u{jHhnE2o+VPbSc)OJk{+ryLj=@2Rx(9aiaokpZ>&y5--Rar46LE!l{= z+yR=!8(rA(CR~x1{kjfx*CgN=6ZNlA{6ozA@?7>-Sfpn%Y1r#3->^EM$D`vD9L=&^ zUHq@Q{{Ez3RD4Ai8iaRKam5A6!{Dfn+8VPGhz>KPp@WIJPXOu&YMNiJNnyMKwVwt% zF9+29sxhiwG!df&Dt3eVHgsX-&A&4*{F@33y!jP1U=QK^>g;0o^D#_0=sxlOxX;a0 zh~TY;Pq~`^PSjr| zb}y?}hfR5dwAXqOaA!uFd1ukuxzmaIH@x%C@p?Gy;53}n`tpQ0&c~A87`Oo(YJLlocB5= zb5}*Jd4Ksu3OZ_#0D5N7fJ(x|fTOHmZB4p_!TzoXcNp*M6GX2$B6ilC`z_~AM#@c0 zZ5KY6YS#RIC=TLIfF8iswI<6?W?o+XZK6heeDn**_F5aOqmi_AY1%%|CN#taTW`r4 z3NryKzM2nBfZgdVN4=C$WExY}o96AVga~DEpoyaeh?4Fm_fNtCWqIaEkk4Nm^peo` zNaerDT@t)&l`P5{+_y&1OJ=<#oy%3GP4%aOR8pA0rUr(Ml`7b)L}k-7f}Sx-q4Mx+ zP#rnlAQ7fo+2$B#hl@Uz`Km?^*UA75c>c_2?$1rw#BzaCj36gfH9zlGtbfqqa3;f{ z?4J*b#XowyR#*PiO(Z3RQ^_Yh`ufPKF{lXT*$y{=;#*-Z0=9utP33R5#wZfIb74}S zB4ruyY6SW^W2a#ZYX8of7Y%QBq>S-AyG2w$tC)r<16|s$uIVaMIKqk3KHbRhfWPA{ z`tYb3cBtj&PFoe9w2FDyfHtG|k`$QrKS}@_%H~j6OAOU@bFCumGcouq?g!G$2se#6 z%0|k``v0$FAhX%Sld$BOSzZ|`R~7ij`?BqYSaNS-Uif!Z+;qsOTgT9 zBwOUdd~n&)f60S2$u3w%{{oISxxv3W|4}{9S^P<6tEkGbyA;y7v-KU^Ii-lBGKTbC zWUG~_D7pRiwZ3s1Ss-4p3_O(qXSZhw{(Cla*;>OgCIl6>kfvH_ykg>`;$F1*pa7 zFg%#{krO@-hza!Y;Dp+)iU*fax$uHuWi)?n#Z8g9g1BoPrOEyBPj93^&-=Uf6XNkw zH{lQpQAM(X%QG?%8{<^{3)pw$XVw#%Jm_jT4GdrOG#Mhp;In2gCDysy)}1R&V`WTm z|1sdsq$UU%q%Yv49Qd;mtH`JcNi~(?sh5EA0)fHzZMJ)Qk#n(TcKqRfi>5f1uT}}8 zj2AFD_)k$DU{ZN%%SExY2fwjZ^XMGM0K9!m%9y3~_cOBBSaT`3!4h76etW1jOUh9I z%yXF)L~U13$23*MKYdQ5f#U=C=&}R|9+KKX_Nf zpv@N34rTz76|8@k#kADkg&TaYm8by%A7wGQg1nn!I|S&$^ca7qUJVy>Kqx%$kjgG8 z{$fi?x!>NjSo-xsgh`ZfCX5cTgwkPnmiOn|hwqEJ6z)Q^nLv)R8T(ewo^YDaR!cLr zO+5b8x?1rOClXB``v50`oq(3ImBXcE94^Hxo~Yw2d$}jT<;wS1wF%-QCtyXcfde~I z1nj}=1uaP$^8DJ%plKzFQs~2*g?B>FHoi;_ui>mdwK;xN<6^v7-n5Yv_~HtyT!_R| z>b89=YWmmO{^&`dJdD_)!xi(fN{dWMMldu5m-gW>yaDS>IaV^Ze=VvzMPD@j7g*1NwLxk2Uva)RCuEyI#=Tk5a}f}XiSXq!{OIV-Ng9=FZ+ReBwq1*21p&!e*&?_*lP)(D{Amz zoW3ZWIb<&LN!fIXwf&emHt2NtLlWEt+Wh-$KWUXByu%|#j1H^-D<8qI@N26mlnV^h zCzNN$tCwA_U>2D58K4}u9)}(W80@wm(+nxY7K<$^&$m{y6N*{Fk1=@8Vj)0J;ip@u z*l8YHKg+*UhPIHtrox}g*JozRLc9V>i_5Y%L}Ks&ID4QWVVS1kCCmK^d!3)+AjOXp z1JJ&Lcl=}428AM37 z*AJ5CRv$Mh(CEY**OH4R5=!NA?YR+T-qqO0>ls3n_Jb*S$%&|ddagCW$ENOd*%UK4 z#l>moeyyZ9y;HWsSUJn1p=c@ei_&g#PkCdh<+L{d+G@i@>ST2ElIxFP)$Fz(uixF0 z==$b+{NHtCyX-HHEqz=Br{l-N>Pu;w{a3C8KB2RN&k!C)(V4Q}|mV~{^apGZNq z_uVJF{B_shZM*GcoOM7XrdM*@IzSckb@JjmfC>|ye7+7~#cHWarr!YYQ~&PULgnJE z=JkmjDq5@@BdI~Za-^RPHYEpa06rvFYyjwpgGEt##^etGpb4Qx{n7?t+ye7weU%D! zBqodwC7m&`DjV7Z=!>6xq^*P2f9P9Ffe;-pTk3}p^G&#>Qc9*!60t+DiR5Zzau-E3 z6WG30z8bO}aMe})86QZfrA%?sPQ12JyewhiQ;wZa`qGy8Kyux#dDn?o z_l_VtI-N|0nz9datqnhvR|y*^kXlf75Z-d0*7PwoK1(mN{bd&&gJVUeKG#MEJG{!MSIW|tjx5GHs>+0AVZjZ`R8Xv|IOP+k^L5&25N={eh6)5 z7Q<9GAmv5)kP*6iVZY4c7+hI>k0s-WSG;+hmO||@AomXH5};Td_QQO`jFV_(LU_?Q4)?Nb_+?6^C(-LcAOIEk$m$^^b8^?j6nd%g7=Jfp>8 zc)g05TnkZPZjd5BZ>qSIfG|cCoaXK+rcWj7i*g{eNy5&WogV&;@PO{en>O6i)_#y{ zUfY6BT*2FWd55dnWi;NTz$VuV)V9_Pb!KEHGB-g5 zY7|IrN#->FmPdctC4Di6%+92=Z#y;?Y5i$G+@`+{g1*Y;-hRY(cpJ|ECZ7e2E@Or*bjQgWYf_-UtU)wulooiG<+Rs z0Z_5`Eb*jZlO7?fDxhljn`<>tSJhWK*l%TAno)R*!*4riqWR$16j3H7+jQz zsW^Lh^p+8{=o8t!k~Y>IfhS?ai)v4Q8T&?EuX+(+SIBsTH-sPrEiT&9zZ}74YAGwT|AcTGAfzxc8x$3_;*2Cy`F1}r2U)Ia_-utd-0YNl4P zYRe|HW(N8R8y%MpP~MtxyNt~ogfLCswckiIsu>m?#p77dI+2zPreTKgzK`q>JTN^; zsEPiz42gKL!#veJz^5tKSnid0rAh4kTIDOONBt^?3hF$|a^GhYXO|-LVv@L}SUZy` z^T>O-{M*|u8Mnb(+j!0bhDhQ`BvO~Ti&=XtmBF4D_5+TG|3M~i*9p&x2$!Cu04?$a zBiar+K|Nv3o`Hz!wn5`>o_y-Fmf&I(>&s-c%$%LH!GF2OVFoS~`gE!_aZTKzosMD$ z;*mE;`pYUYI3UA61#t5NQ$jx~6+&`>Wv+@O@nJ~(FDFnAuPh-h5RCxVb$5- zlwDc6i{lEXxulaq2|7^C&pnxVxJ!HZ!ge%6`OtwJ?#i=wwK$Y~pqr_MmlM@hW<66% z?9l}$+tQp~>cC4*Y%X@Q9y}EOTE$@n#qm4aZSeUajWD1hU>4@CMP2rZI%4 zixDfzOuT!0GRwFliGc601;HojTespJgrzs=gt*EB}KxzAKUQdB`QQW0=lOxekm91p#}qVfryEmHn-M+%@j z!>XdxFxa;%jTadb28*M>T=`UUCHh8+q@ZtTIdxLTw{{?gNYIbZr&$Iv^sm|4n8T{q zOqYEUSHV)3K3|@PB%ywEWNwP3ic7pof%|D;dv$(J8)biAp{4R7YUd-wlQ@&%U8Z?1 zS&vh&_Kw)64o;90+DFNQBJsfvWQK5x#1@L%W zD?hWv1H`gyufXj+ufse@DyFbXMU16djJFoLQA0~E{ceelVz|A;)ymtsKb`JJ1l+)K zq!#VtBJs(76*J;6c(6TRftG{~vBy(VlV>l77H8)?82G-^aSIYZDqIx@w6m=6ADQfq zB*Kojr|i5K+)0jk%V^B8o)xWJVt{DifjJ!xsjddJe~(pOQ|LrlY56=ILQe?b0ISby z92ngv!yB1)#fu~;X}^%5N>!$kC(cQ36ie+>ilXo3%glRG&+cAp*5wz#*ZQ*z6D7OD~Gu8@psRY=&ykrd(YL2 zZj?G*C4d!bRczKd`Lx|*u$J6yTE$JPU-x1#bDM#5S#AYxDQTn5H- zeVo5@zy|tY#S`%Z$|wWo+9@Gg?#1d?>XY~sDkA+=EPs{BJux8$(%?T+cgA^P*Ba7= zDEnLNP+9f?D+=zXcQYlMJ8{w^{MD4+b>@3FiUO1_trQWZRYc*U4JxPGd*z>RvBp=L zT4q6%7i{SL^TNuUP7So(Ny4KK{t8nvj{o&!@hbb*gCl5x>I%(#LtRw;;>RE}%#+3L zvWc?A#cq8I{>xBG8r&>eFuEvfE|KXi{_!pde6B85&r4 z*%OfVhDVv3?{|Uzg=+A70F;gwObcr3F;|i~SQwJmp4=dU;LD7Njer+>0yNaRx}Yx$ zI9?xzCiGc0`*fRpRW42WrVLYf7RS&jU-xjsTBBc5?_Vro9LUE48qk@e2X}8-e|v5P zCUl~&DKZNT07qIZmETfW*BAWAsx4J%{?<`MO}34YC)v!V4y;XF$#x*WIuC=xeGBIM zy9)b?Jkci=b#WfuvSmyaoV{z$gh9Hpx{XGoZ?dzeb?-`CL1pBm3$W*qlnwo!b3f9> z4a<}EjQhEsWl8N5e)|eY!$oO)$*e~`#dN5=oKfR}EJMmhz`SX_{lVS-V!cLHU(yy6 zpQxXy2ke_=M3H(T9WV=*<4dz5!aq0pFLq^9E9ENfN-{%tR|%6=leg2YeM7b1gXWK? zv0oOK0yFyMnO2{jY{1;3W!jjpk{Eir$}smd*%u`s5DGBu@G*wHi&qWg(Og|bOd>TC zY4`nUh3{bQt`Aiird^dpm6k&}Ao>21T0~m-y}R^u@`G1+?JN!DSO`hJQ~&Ku8JxQT zbF@1ZKZcqN_zck7rO^36*WhRF^%eAR2S09iVS#oZvc&=lVFCpkx6zI;u`syGx~~xz zq;EAOU9hG(E4@ZId<#yTrx#OT{=uy6s#}|&1;a?uC zjoX)`%Y`iO`6}U5Ro_PV*~Q8yRL<(Z!pw{HG4bY6UHaoSO+g@vxWo%#@xeo&rkRGe zwUeN4XYlu6U^6mp&~gzXcc6W*rRw9xqd~GBflVgE_b(<(rX`XH?lp6a@0rL#9M=N% zU1;GAVYB61d|f6?KQ4!|E7!u|h2v0_W0?>tpt6byX62@`EDNN)vyEm%Y7*uDcI{lX z$$`SlB)=jiD;!V%Up83{$3a9h09w(CFYK+qCc>qzwM)aXG9>Y2rM$aglre1Lpvi!KZTa^X>Q6e{boT~b)H1`X* zpHHkQhpA0NX1Md(5z_6Rd9^MZ#W zeEUiVCv5dcjEB}E=)H@)^&T?NE!O=G1e2xfxM4-S)}RMSTmQDugHa^5)$y#2J^5GP zwAVh{a3ba*Vp`y%@&zq`uwOl?dJf%3G~~{a;2{!D+VsAmW?Vp8lGO{J zK+qSKP+_$UVF?Y97hsEFjtLTTV1)+6go5|blUy10Mx&1~^(VACw&(UWQ82H-$ z41CT8%ZIN*re`NO&@LWdGEM`hFhDnr{*mSh?^+R^TLI}iiyc9(0xDO=m<+6<(wty@ z)9u@F+Vp0+0!C+-Y(@Prb0L5RC^CJ0)xie4QfBdB@LP&LK`%J{O-*4x#F zq3px_TG~B309?kf`@N1+!$r)Kaks_5C9i1#M)+C1;o@M@`Lrriz$xQS2dueimaBlh2}1pT=CiCF zb8kD3T>B{FUB8_~<{)U6;xV^o6!soml2iRi1F7i$%$8To#SM~Xg+L)VFIUZf#Cl9H zz;jqKJH=c;$wf-Xf1;RH8@M~VI{TT~@!v!(GqFfgAZWLu=P$+s#ms2G9NR8&q|%S8 zPS@XxS+x0L%1ZddlitG)KFbtpd3)K)+NBd^X{;t=J@q;>DW?JO@7jXJX8InO89+G{-&hi#VHjbog``M zR6ziaOnSU*LQt|cy9j&5oesUmdUmlmq$S56&K%T*)Y^-6ZG+|RfIAOO*S>>WqG+f6 zX+U?#4B*BJrknT&q9X%KdGPARRAui-ViojKuwhTVhS137x~bU6#)bIu?(y^Lov()j zuif2!*(Q%RhFr9{#Xuk)vExm5&3I0K9%-cMnu5lwn%c+y>uIq&l(i&t_EdGB{;;nE zsJ6}lUX1bW!=4}VXZDWTi--gDD`^Up^X#nn4kNODoVYq1YM#=9wy8d!tIV0uF#-$N zX%)dORb~pbHmK#2;i}bsaH>ef^kS1GE-KXb`^e6m4Cs%XYpIZ(S{fcj%z@kF-xL3m zCim)(vN@aoymT@Ky10spv%%-Qh!{Hsx)IByIp)6|u!_4Xmfp1maDZ}J=;$3qxU)Am zTCT`icPt-0M}kOjTr>ORx%LBU3=$P~UK(HyUDNschi0%ot1MQ>eWwL89)6t{rk-ni zr$a&#gKRrp0(+td0M{uz8`T{b7h_+Q$01J+r4>0l@{7j5=}NLC|&*KRlp}Bp6Iq=W~b*Ie!z6K zOR8#=EwkerUB<*)u8a}pb8Vw47Ot4L_s=x9T*GTv4Fa@Jyq3Yy0tBRGtlA>ZCrhEn zeb*^;4@oPAorz!Aq!nm@7dfrzr!0QkPgE7KCf0@u3{ z0V1MCbDK*n=8sj>9)%mx$7Q3U%6yMFze|W{Gi0b|ZI&+{*$VN0k6bIvEZWmVg_Z}o z_iZUX@PNt-*JJ6V1`2vC+aa1ovd}DjFeQR~P4XA+Mu5d5c2FtuB9Ar!FTBT+7YD>e ziRe#`*#HQ@a;n!q_oSm>%_Z6zj`q$DPIhjl{I4-E{^K$9hw;Brj1h5bb)*VEXHOnc zjK3x7SfAKpkUXgoG05iZS7AYIGw<@)%sDs5I4)@{*Nr%VrmKD+Yxg%@d77cdga3~Z z_J3{dM}RnZI3GqaRC8H3+MQK>b@E<%gb&1^3Jad_{jB?~R;t?cjyK{&sB`kN4TNyi zlBqfyI1F{k-U)u`^X#&)rc|Vo_eieMIL$4f8cLN|cQ#f2+$Gz%^YCEYcwlF2U=CJ; z$4mVE=$j)8#m+ASn&3{--lsjX`I0W?4L)|y(7fEH!{Xt1VyK%QutKlB0GUA9>u$`E zxo$rJH;oAqr=?AEZPC7o0YQvuISyHlzY zFlf#L2bZM1p<}lwcTkuw|2!bo0e}sfhdI8bP8^9bV^*r2u^P75S?vJ^40v?kw@HFJ z@MAosO}PIK7527r!g+j-X<6PV=*- zj?BeZ@l*IvM)=anzhn%H_B}V9C?c#s7AFunO5RVUovj}LoP#b3V&%wyqG4AwaiEyw zl6Lq3*qH-UmM$5|665f|)KBP>(uz)+(8Q_2)x~(@$uRNQWMg)ez7%YQu19PAqaPui zLthH8Ond9sU@^?NI=s!)6{5taCKX}8KAHG_pvPzw0NfW7{;A1lKpP4#a-{!Cr^(!MzsJ{yt+fW8Ge^Q^c6~aZv(D<{c^DpKpqkp#>6=p1N_iBj?>&fSOW1Rx2 zcO}?lO8eEL-MoXd_9LJ#ozE~aGJaLfJ4#`V)7e?lrc0Z^gqRvvw}lD}W3Ojk*DR2W z|B4vrkmR@F)JwQY`=mH-xfRSQFV=hX%jh{4m0`3Dh>f-QJ?JJHRwTz-^{QxxIL2%G zPEt-HWvWCD(&bSYN)bBt_pb+J+57a+n;ockQ}$4ILv4 zt~bVW>(fa~t1IgQyaxJ~KM(@-Z}3Su_P52x;rkOj3^0n&S4W-a2NQ`gh$o)zX%)v= zFZG0B&U#w`;m_A#0);m+7?V|A2lgrtHUXa=ea4SGSGpupx*KB2oT`ndYn|F+@n*@Z zKll=cYRn<#Yeu+qvzqpnxNi0Hg0IPdTOHxjCr3-@ug`2jA;*L>pzDCZpMMQs;^<&`wXyPch<LEDK~PXK^L1CVD@*IS(dC*@z=v4FVEvBeGow7U-prw&)kGuAhj*K+bF z)Tf{e*IgQ|B7G=xcy4zl!*dGmsU16M8nPu;c0M1*1>rpH+Ef0}w-3gsJf_eYk*d%f z`gq%v#`c=AXcZk^sn8Xchb?{Y5#E`+35u_iKW)ugNMH1}z&_%thH~Kqg;HM&Cc;Z$nBLCC!QG|NEqfiAC zMV}7Faw_He+(_1E0m{x|1M1Ogy;fG}BBvnt9v3xpPc~pQ-9SA&46G@OVY+X$##uo9 z;rkdcWigr!Y$NQ|oq6sOQ%tLC!>>Iv$<>E!B}`IBCpf zX~_}lUav+SCFUW10~60NN>Y}PqLsj0|GNYOVu7|HQuy6;l}AksPY2ixzl>*IOcyWT#O2wuU{c#`Y*;A1f(6HHzIEs?VSN`0$)VR0qGT8 zGI2JRB};|97dfMVwBPt%-b{+M$;A%*YCoEEPq7UB8I)g$BXp zwb1USx#(1D5WZCg*FWunF1O||+!(#vALf^>@>`Z&GIEfn#sp=sd@3y=w8pgwP`ZC`tdHG2aAC~54iktir{zNaL$F{?H`{zH-!mONcM<`j7huU!O)t%%J;4S0mB#RrACi>eEW2 zjgTxbXg4YIdqQsJoaDa0ZsuTHqOx|?BD#HPLhwtcWR7F-i&b5;9Y|x`8|E_-!HEw~ z`%Lq%+ZF$%^Ypr_Qj{vBecS1+#+1`e7S`)-gVFxp?L&%0Kvf|8eWIQ%cK6Oo`2}QR zrM-UGV!G)}@7P5m^2AJp`QmLXY^mO0SQ#2)Csew~FU^^5wZFNw64(KEZw7C@HtmnB*cwnZea4MPqdwZ4A(>{h4KxRNsSGYwVf)#@^Qs%L8<#n7XiR4}<|vv_nGgh)rXM2GqovmaL=dG#3%w z(_8q5XkZ|FzD7a1VJfO1IHNhUu-Hv!oK>oG^ud>-RHZCT%)S9358DbuC~jqzn?yhg z>&=@KH6@I57S+Ots2=JRY#-75n$gP62OI`}Bf13yq_uTl$o~UvAJj@E?3~xrO%Pn~ z;5xnFjb@xq>b#V`$$8Qhn74QQqPo`|;tk{JG z$#k(i(t-7?JK4xqL!t42ffhkr=58ya8VgvI-N;GPU8v_ANF19`gJ-D zcpyk7an85aP7Wk;p}ODR>tS@^3&Ue!SD^dp`g7KhE)Gua8rB2mJbZ~8AiEbIvMf8X z;_l(C4}JkF=$XP1h77gw(JD=ygPjT)-pM(MdtoCkHNscPF@L4X`GVt-^JsSInpgw$ zYiM^@Lvw1xzjnyaw3S%VhxZ=MGY@B=M`bw`e7$SJ2dTJ0t&-$lN8|21-w3TUAAzN0 zMwHLgPE;`89M3dwGj5^lRmgx9;W$;_l%1Td`Ym9~71j?$SJ|ouQi(cxOe8$BmXPOl zL8#5j^4Eb1V%>sH3v!HI;7?r)Lu(3VC>I|>x`vPIxA#Akf?)&Ce!^1WolKTe`XCV*3y>_$?*hU{)Qh}E zQa%hhN92Ajv*$y{`8fi4TdUOF6~~6dGT1fykLU^$fp(u>{MOFN03Xf`vCxYbIGW8> z|F>J60(UjlJ80@$!cqpw)6pTQ$eU9mKgPg)2|Cd+Pvra6iF4p1v?vv~ zQns6!qb%VY4jNufRPu)B;jO46GT>ixwMcT zSK#~OJo~mT`%xlH1rN{J>9m@2oxIH?WrKWDq_Ybrt~VRHUIpQ6wT9n6%x4WfY)+iW z^pJZO69eywxrXKG)hBP?-AnfZ=vqCdhCJZUy&0BcvE(iif2I>TMjU6X$+7_;Er&*m zZw5vD7|O3jz@Q!XEWRbmsnvS}U2Y1kDkT?u-+x+kLF zbYFtCoRyEKC1SCH63f2)sy<@@YCa7NY`)HSi7~1W6}?{rcazfxCshMpZvV{+6Y*`a zXh}UgcU9niQf?0XV0TT-nu75M~S# z7s7wlqq9GU1?ppGT_D_-3-(bXP>WLH9L4Dmnl&8Z>@27vu!HrddNbD_XwBdMl=-_N*N_;v=3aRG^rO0hkx$B9J= zB??!kL*&UD0&q)AAQw{&rF-Bcja7lwPfn#*?YYmsQ+u68z0D#@B%l!kxut(F016Ih z3=U8b^Nh;xs6{S>-d2H2{&DIZF?v+aH*~%vwlfI(>Zl4snN8xIzn$O=DE&K%oH3~7 z8n&w5ugN=dgYRpB>!yX6ar-Pc=Fv=l9b^eaFI23pIfsdqn>&Qj36pt`3?$uBM$~toL}|G8SDC8j!TK>?a-a z&iB7f$Px3Wwl4e5pvTn#=z76Q;P-;TlNEoNq6n(jLCDX)Cc&2viDk6ZD=Dih04SbWJ$=`>;I4~zGs)w` zB>{HatjNy>Z9v9+D)L=gta>slDjH7;7rYSG)Fg!~Z*H99iTiyDPhER-vRaMxwjXrw zP1+!DQ(q{VlI&D_3B?XzgXH=1`(_)YdecPbbzoJxWmFYm z*Y`zA@&F=&!qD9*F_a(&MWv+`q>(Pqp$t@jDvhwJ;8FaAn*B#J%`$nR3{R>EOuQ%uo_Oso~+vGARGSX@7Lq|K9RbnH}ecV z#MCR~A$KE#%yX^Jy1%)`dN8)WFVBG@xcp|YL8gke-E>7qIUDz1tJELq_Vruc>j{7^ ziS${lzP0cn^Inv2F`25Yl@oE{uw�*&MHEIeQDjmyeioeiHwM`8+b;YA|XNF3-{s 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®K6j-wC z9*8(CP~)tl#BeFIot#>}^Xny0yMiX5#}O!ts&44i3nM}IOu)x}LsJ-b$uH;o(HcSHNjPZdn8920hXjvgp{j;XE#^Us&u(|5b+z~-7S z(-z*$O4q7wdxh$9le)gr{`+~6b`bo4J;c9DHGI75$ zsi@ek$5u=t;JD4&s(f9Ajn!nJw|EuMgRFO!e!}<(2I_M36@2|aQA19k zvk>oeyisfP{~rkQ|AkKe01lSj;VkfZTm3I6R7w&D=Pj-(Zqm!Z{4{}j$5^VPKlX$mrVkk#<2&ZErmf0GCoLK|*J-|rS zE2h@=1|HpNrDr*wWO!1jf7$8ZBbB}w+CqMv1KFxvdNsGL?x$$@y$Is_ZX|{ zzSTuQy=~D7?z^nHd8`cLd~_Ub4sT!il>G^NJ!tHFiKzGsAUD8EP#Ss_hX`a(-sZYf>oV zsL8+FKuO}{>EuVNInV;=P;B!-2fMs0{}DpF5cQMh7emQ9?3DkP?Yg5`{PAFz`9oO$ zL(zUq+IO+tCzOp|pN@+k%q17jJ0cjr zg?D(gNga4K%)e7sXo5=KDu7GlfeJ1_->f2~Z1Hm1ld(=bQ|Uqcg7xNExma{1zP|GN zXR}BFa6#uUSSl}ZHGNqyJ!VcYqel3`7M1@8&oGlgYV)d@bIxj{D8M2b*cI?Yw+N7k zEiF}%yJ~#RxCDnPi}5$!5LuIPZ48S`acYzdQqXUF$nvqC*76q)VHetpO?!M%{nf&vv#zl}%7+%pUO< zWGg_e$QT^jK?E(Alt6({X>#!=ieK6ip$M7o?5=AC#SFjwCyIAbhu|-B_jDPf9`AlA zF{4;c2ou`c`~MQgEg_Z-B{9h_tWwD{^`Jl@fMr8_fF~K|tGH`dvzNGISfRpu z87bKLe9|KQOsWh8F7KTlD(f(>YYxCvqJ3vU(D$;HZSU2>07WyKo>DG$$Z5A=q7$<8 zXe>kJ(`wC^pC3hHWpJ~2dUe@?D4T)&BO=iJv3Hn7dR?(9Q1Gjp=p;tquY&(#|wgnNl5MaE29r z*6@pJUhhFb7cZ`-vfpi<$QX1xkE#i z?bZtLqqF|`2Z<5gLIPS)Q4<#l=VywkccxK=O#W4&*}n?C(4qW^<$d1D5`w%O#q5^L z20q>c?yO@{!|6Vy~A=NxZHH}^j<<@y+Tn5 zUTDx`+`lIJ0h&*Z42pu{ue+oAWN57Q1&nU15jB6}SVm?>B6fI$))#b)^#Y-y!8=p1 z@i?g0rc3OpLKGa@5+$TKucq{#RQdwm)zLC`y! zGO24Dpnq+P>M?V{sX(e%sDgrn+0?}T*mRbAt-qc+7N9zwxOyi|b zZs>KnwDaSQDVa?h&u9h6rh~Ir{emrcHx=5({1Qt9RJC`0>zs`pHI>a-CqU4PIwkAZ z)dxMp-@E{v1y?-bWgRPI zd1vtIpUw&pN0xr`-O?w!ILCaB4%-?GwNuV#IzOnO)ETjEtcaD0ghvsN^LaAYH@gp^ zGA=|=8JAsNVVIZrFpe`u(sArw?qGP(vd)<&L9_XL%0DH!WJJL5x3B^6RR(FrhQXpJ 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ʴz4?l+t#^wkv3fro@$@m-lO-;4 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�j}xE(z+`K;=!yLUVDbJ~STbOTY756R>bgJ2rBr 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 Ep;9`5heRszqpXF7v>Aq$ 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

  • 2-2 Jobs (Alternate 2nd Jobs)
  • Super Novice (Alternate 1st Job)
  • WoE (War of Emperium)
  • -
  • Remote administration of accounts (ladmin)
  • Weddings
  • Pet equipped mobs
  • Management of day/night
  • diff --git a/readme/setup.html b/readme/setup.html index 72b06c40e6..c4463ef894 100644 --- a/readme/setup.html +++ b/readme/setup.html @@ -92,7 +92,7 @@ It's extremely easy to set up eAthena, just follow these simple steps.
    1. Edit motd.txt, grf-files.txt and the .conf files in your /conf/ folder as you see fit
    2. -
    3. If you want to add a user, run adduser.exe in the main eAthena directory before starting the server.
    4. +
    5. If you want to add a user, edit save/account.txt in the main eAthena directory before starting the server.
    6. Run runserver.bat or runserver-sql.bat (depending on which storage system you're using, or you could run login-server.exe, char-server.exe, and map-server.exe manually)
    7. Give people your IP address (can be found at http://www.whatismyip.com) to people to add in their sclientinfo.xml
    8. You're done!
    9. diff --git a/save-tmpl/account.txt b/save-tmpl/account.txt index c69de9a544..eadbc4c4fb 100644 --- a/save-tmpl/account.txt +++ b/save-tmpl/account.txt @@ -1,16 +1,16 @@ -20080409 +20110114 // Accounts file: here are saved all information about the accounts. -// Structure: account ID, username, password, sex, email, level, state, unban time, expiration time, # of logins, last login time, last (accepted) login ip, repeated(register key, register value) +// Structure: account ID, username, password, sex, email, level, state, unban time, expiration time, # of logins, last login time, last (accepted) login ip, birth date, repeated(register key, register value) // where: // sex : M or F for normal accounts, S for server accounts // level : this account's gm level // state : 0: account is ok, 1 to 256: error code of packet 0x006a + 1 // unban time : 0: no ban, : banned until the date (unix timestamp) // expiration time : 0: unlimited account, : account expires on the date (unix timestamp) -1 s1 p1 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - -2 s2 p2 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - -3 s3 p3 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - -4 s4 p4 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - -5 s5 p5 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - -2000001 Test Test M a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - +1 s1 p1 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - 0000-00-00 +2 s2 p2 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - 0000-00-00 +3 s3 p3 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - 0000-00-00 +4 s4 p4 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - 0000-00-00 +5 s5 p5 S a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - 0000-00-00 +2000001 Test Test M a@a.com 0 0 0 0 0 0000-00-00 00:00:00 - 0000-00-00 2000002 %newid% diff --git a/sql-files/main.sql b/sql-files/main.sql index 9e55daf338..55cc8b4bc8 100644 --- a/sql-files/main.sql +++ b/sql-files/main.sql @@ -406,6 +406,7 @@ CREATE TABLE IF NOT EXISTS `login` ( `logincount` mediumint(9) unsigned NOT NULL default '0', `lastlogin` datetime NOT NULL default '0000-00-00 00:00:00', `last_ip` varchar(100) NOT NULL default '', + `birthdate` DATE NOT NULL DEFAULT '0000-00-00', PRIMARY KEY (`account_id`), KEY `name` (`userid`) ) ENGINE=MyISAM AUTO_INCREMENT=2000000; diff --git a/sql-files/upgrade_svn14672.sql b/sql-files/upgrade_svn14672.sql new file mode 100644 index 0000000000..f0658f40cc --- /dev/null +++ b/sql-files/upgrade_svn14672.sql @@ -0,0 +1 @@ +ALTER TABLE `login` ADD `birthdate` DATE NOT NULL DEFAULT '0000-00-00'; diff --git a/src/char/char.c b/src/char/char.c index 6dd131976c..6523decf79 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -184,7 +184,7 @@ static void* create_online_char_data(DBKey key, va_list args) character->char_id = -1; character->server = -1; character->fd = -1; - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; return character; } @@ -201,9 +201,9 @@ void set_char_charselect(int account_id) character->char_id = -1; character->server = -1; - if(character->waiting_disconnect != -1) { + if(character->waiting_disconnect != INVALID_TIMER) { delete_timer(character->waiting_disconnect, chardb_waiting_disconnect); - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; } if (login_fd > 0 && !session[login_fd]->flag.eof) @@ -237,9 +237,9 @@ void set_char_online(int map_id, int char_id, int account_id) server[character->server].users++; //Get rid of disconnect timer - if(character->waiting_disconnect != -1) { + if(character->waiting_disconnect != INVALID_TIMER) { delete_timer(character->waiting_disconnect, chardb_waiting_disconnect); - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; } //Notify login server @@ -262,9 +262,9 @@ void set_char_offline(int char_id, int account_id) if( server[character->server].users > 0 ) // Prevent this value from going negative. server[character->server].users--; - if(character->waiting_disconnect != -1){ + if(character->waiting_disconnect != INVALID_TIMER){ delete_timer(character->waiting_disconnect, chardb_waiting_disconnect); - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; } if(character->char_id == char_id) @@ -293,9 +293,9 @@ static int char_db_setoffline(DBKey key, void* data, va_list ap) if (server == -1) { character->char_id = -1; character->server = -1; - if(character->waiting_disconnect != -1){ + if(character->waiting_disconnect != INVALID_TIMER){ delete_timer(character->waiting_disconnect, chardb_waiting_disconnect); - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; } } else if (character->server == server) character->server = -2; //In some map server that we aren't connected to. @@ -313,7 +313,7 @@ static int char_db_kickoffline(DBKey key, void* data, va_list ap) //Kick out any connected characters, and set them offline as appropiate. if (character->server > -1) mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 1); - else if (character->waiting_disconnect == -1) + else if (character->waiting_disconnect == INVALID_TIMER) set_char_offline(character->char_id, character->account_id); else return 0; // fail @@ -1937,7 +1937,7 @@ static void char_auth_ok(int fd, struct char_session_data *sd) if (character->server > -1) { //Character already online. KICK KICK KICK mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2); - if (character->waiting_disconnect == -1) + if (character->waiting_disconnect == INVALID_TIMER) character->waiting_disconnect = add_timer(gettick()+20000, chardb_waiting_disconnect, character->account_id, 0); WFIFOW(fd,0) = 0x81; WFIFOB(fd,2) = 8; @@ -2016,7 +2016,7 @@ int parse_fromlogin(int fd) ShowStatus("Connected to login-server (connection #%d).\n", fd); //Send online accounts to login server. - send_accounts_tologin(-1, gettick(), 0, 0); + send_accounts_tologin(INVALID_TIMER, gettick(), 0, 0); // if no map-server already connected, display a message... ARR_FIND( 0, MAX_MAP_SERVERS, i, server[i].fd > 0 && server[i].map[0] ); @@ -2176,72 +2176,6 @@ int parse_fromlogin(int fd) } break; - case 0x2726: // Request to send a broadcast message (no answer) - if (RFIFOREST(fd) < 8 || RFIFOREST(fd) < (8 + RFIFOL(fd,4))) - return 0; - if (RFIFOL(fd,4) < 1) - char_log("Receiving a message for broadcast, but message is void.\n"); - else - { - // at least 1 map-server - ARR_FIND( 0, MAX_MAP_SERVERS, i, server[i].fd >= 0 ); - if (i == MAX_MAP_SERVERS) - char_log("'ladmin': Receiving a message for broadcast, but no map-server is online.\n"); - else { - unsigned char buf[128]; - char message[4096]; // +1 to add a null terminated if not exist in the packet - int lp; - char *p; - memset(message, '\0', sizeof(message)); - memcpy(message, RFIFOP(fd,8), RFIFOL(fd,4)); - message[sizeof(message)-1] = '\0'; - remove_control_chars(message); - // remove all first spaces - p = message; - while(p[0] == ' ') - p++; - // if message is only composed of spaces - if (p[0] == '\0') - char_log("Receiving a message for broadcast, but message is only a lot of spaces.\n"); - // else send message to all map-servers - else { - if (RFIFOW(fd,2) == 0) { - char_log("'ladmin': Receiving a message for broadcast (message (in yellow): %s)\n", - message); - lp = 4; - } else { - char_log("'ladmin': Receiving a message for broadcast (message (in blue): %s)\n", - message); - lp = 8; - } - // split message to max 80 char - while(p[0] != '\0') { // if not finish - if (p[0] == ' ') // jump if first char is a space - p++; - else { - char split[80]; - char* last_space; - sscanf(p, "%79[^\t]", split); // max 79 char, any char (\t is control char and control char was removed before) - split[sizeof(split)-1] = '\0'; // last char always \0 - if ((last_space = strrchr(split, ' ')) != NULL) { // searching space from end of the string - last_space[0] = '\0'; // replace it by NULL to have correct length of split - p++; // to jump the new NULL - } - p += strlen(split); - // send broadcast to all map-servers - WBUFW(buf,0) = 0x3800; - WBUFW(buf,2) = lp + strlen(split) + 1; - WBUFL(buf,4) = 0x65756c62; // only write if in blue (lp = 8) - memcpy(WBUFP(buf,lp), split, strlen(split) + 1); - mapif_sendall(buf, WBUFW(buf,2)); - } - } - } - } - } - RFIFOSKIP(fd,8 + RFIFOL(fd,4)); - break; - // reply to an account_reg2 registry request case 0x2729: if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) @@ -2256,54 +2190,6 @@ int parse_fromlogin(int fd) } break; - // Account deletion notification (from login-server) - case 0x2730: - if (RFIFOREST(fd) < 6) - return 0; - // Deletion of all characters of the account - for(i = 0; i < char_num; i++) { - if (char_dat[i].status.account_id == RFIFOL(fd,2)) { - char_delete(&char_dat[i].status); - if (i < char_num - 1) { - memcpy(&char_dat[i], &char_dat[char_num-1], sizeof(struct character_data)); - // if moved character owns to deleted account, check again it's character - if (char_dat[i].status.account_id == RFIFOL(fd,2)) { - i--; - // Correct moved character reference in the character's owner by [Yor] - } else { - int j, k; - struct char_session_data *sd2; - for (j = 0; j < fd_max; j++) { - if (session[j] && (sd2 = (struct char_session_data*)session[j]->session_data) && - sd2->account_id == char_dat[char_num-1].status.account_id) { - for (k = 0; k < MAX_CHARS; k++) { - if (sd2->found_char[k] == char_num-1) { - sd2->found_char[k] = i; - break; - } - } - break; - } - } - } - } - char_num--; - } - } - // Deletion of the storage - inter_storage_delete(RFIFOL(fd,2)); - // send to all map-servers to disconnect the player - { - unsigned char buf[6]; - WBUFW(buf,0) = 0x2b13; - WBUFL(buf,2) = RFIFOL(fd,2); - mapif_sendall(buf, 6); - } - // disconnect player if online on char-server - disconnect_player(RFIFOL(fd,2)); - RFIFOSKIP(fd,6); - break; - // State change of account/ban notification (from login-server) case 0x2731: if (RFIFOREST(fd) < 11) @@ -2336,7 +2222,7 @@ int parse_fromlogin(int fd) if( character->server > -1 ) { //Kick it from the map server it is on. mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2); - if (character->waiting_disconnect == -1) + if (character->waiting_disconnect == INVALID_TIMER) character->waiting_disconnect = add_timer(gettick()+AUTH_TIMEOUT, chardb_waiting_disconnect, character->account_id, 0); } else @@ -3550,7 +3436,7 @@ int parse_char(int fd) ShowInfo(CL_RED"Request Char Deletion: "CL_GREEN"%d (%d)"CL_RESET"\n", sd->account_id, cid); memcpy(email, RFIFOP(fd,6), 40); - RFIFOSKIP(fd,RFIFOREST(fd)); // hack to make the other deletion packet work + RFIFOSKIP(fd,( cmd == 0x68 ) ? 46 : 56); if (e_mail_check(email) == 0) safestrncpy(email, "a@a.com", sizeof(email)); // default e-mail @@ -3750,22 +3636,6 @@ int parse_char(int fd) } return 0; // avoid processing of followup packets here - // Athena info get - case 0x7530: - WFIFOHEAD(fd,10); - WFIFOW(fd,0) = 0x7531; - WFIFOB(fd,2) = ATHENA_MAJOR_VERSION; - WFIFOB(fd,3) = ATHENA_MINOR_VERSION; - WFIFOB(fd,4) = ATHENA_REVISION; - WFIFOB(fd,5) = ATHENA_RELEASE_FLAG; - WFIFOB(fd,6) = ATHENA_OFFICIAL_FLAG; - WFIFOB(fd,7) = ATHENA_SERVER_INTER | ATHENA_SERVER_CHAR; - WFIFOW(fd,8) = ATHENA_MOD_VERSION; - WFIFOSET(fd,10); - - RFIFOSKIP(fd,2); - break; - // unknown packet received default: ShowError("parse_char: Received unknown packet "CL_WHITE"0x%x"CL_RESET" from ip '"CL_WHITE"%s"CL_RESET"'! Disconnecting!\n", RFIFOW(fd,0), ip2str(ipl, NULL)); @@ -3779,29 +3649,19 @@ int parse_char(int fd) } // Console Command Parser [Wizputer] -int parse_console(char* buf) +int parse_console(const char* command) { - char command[256]; + ShowNotice("Console command: %s\n", command); - memset(command, 0, sizeof(command)); - - sscanf(buf, "%[^\n]", command); - - //login_log("Console command :%s\n", command); - - if( strcmpi("shutdown", command) == 0 || - strcmpi("exit", command) == 0 || - strcmpi("quit", command) == 0 || - strcmpi("end", command) == 0 ) + if( strcmpi("shutdown", command) == 0 || strcmpi("exit", command) == 0 || strcmpi("quit", command) == 0 || strcmpi("end", command) == 0 ) runflag = 0; - else if( strcmpi("alive", command) == 0 || - strcmpi("status", command) == 0 ) + else if( strcmpi("alive", command) == 0 || strcmpi("status", command) == 0 ) ShowInfo(CL_CYAN"Console: "CL_BOLD"I'm Alive."CL_RESET"\n"); - else if( strcmpi("help", command) == 0 ){ - ShowInfo(CL_BOLD"Help of commands:"CL_RESET"\n"); - ShowInfo(" To shutdown the server:\n"); - ShowInfo(" 'shutdown|exit|qui|end'\n"); - ShowInfo(" To know if server is alive:\n"); + else if( strcmpi("help", command) == 0 ) + { + ShowInfo("To shutdown the server:\n"); + ShowInfo(" 'shutdown|exit|quit|end'\n"); + ShowInfo("To know if server is alive:\n"); ShowInfo(" 'alive|status'\n"); } @@ -3978,7 +3838,7 @@ static int chardb_waiting_disconnect(int tid, unsigned int tick, int id, intptr struct online_char_data* character; if ((character = (struct online_char_data*)idb_get(online_char_db, id)) != NULL && character->waiting_disconnect == tid) { //Mark it offline due to timeout. - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; set_char_offline(character->char_id, character->account_id); } return 0; diff --git a/src/char_sql/char.c b/src/char_sql/char.c index 46b645ce68..262f585d2a 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -202,7 +202,7 @@ static void* create_online_char_data(DBKey key, va_list args) character->char_id = -1; character->server = -1; character->fd = -1; - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; return character; } @@ -219,9 +219,9 @@ void set_char_charselect(int account_id) character->char_id = -1; character->server = -1; - if(character->waiting_disconnect != -1) { + if(character->waiting_disconnect != INVALID_TIMER) { delete_timer(character->waiting_disconnect, chardb_waiting_disconnect); - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; } if (login_fd > 0 && !session[login_fd]->flag.eof) @@ -260,9 +260,9 @@ void set_char_online(int map_id, int char_id, int account_id) server[character->server].users++; //Get rid of disconnect timer - if(character->waiting_disconnect != -1) { + if(character->waiting_disconnect != INVALID_TIMER) { delete_timer(character->waiting_disconnect, chardb_waiting_disconnect); - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; } //Set char online in guild cache. If char is in memory, use the guild id on it, otherwise seek it. @@ -305,9 +305,9 @@ void set_char_offline(int char_id, int account_id) if( server[character->server].users > 0 ) // Prevent this value from going negative. server[character->server].users--; - if(character->waiting_disconnect != -1){ + if(character->waiting_disconnect != INVALID_TIMER){ delete_timer(character->waiting_disconnect, chardb_waiting_disconnect); - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; } if(character->char_id == char_id) @@ -336,9 +336,9 @@ static int char_db_setoffline(DBKey key, void* data, va_list ap) if (server == -1) { character->char_id = -1; character->server = -1; - if(character->waiting_disconnect != -1){ + if(character->waiting_disconnect != INVALID_TIMER){ delete_timer(character->waiting_disconnect, chardb_waiting_disconnect); - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; } } else if (character->server == server) character->server = -2; //In some map server that we aren't connected to. @@ -356,7 +356,7 @@ static int char_db_kickoffline(DBKey key, void* data, va_list ap) //Kick out any connected characters, and set them offline as appropiate. if (character->server > -1) mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 1); - else if (character->waiting_disconnect == -1) + else if (character->waiting_disconnect == INVALID_TIMER) set_char_offline(character->char_id, character->account_id); else return 0; // fail @@ -1722,7 +1722,7 @@ static void char_auth_ok(int fd, struct char_session_data *sd) if (character->server > -1) { //Character already online. KICK KICK KICK mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2); - if (character->waiting_disconnect == -1) + if (character->waiting_disconnect == INVALID_TIMER) character->waiting_disconnect = add_timer(gettick()+20000, chardb_waiting_disconnect, character->account_id, 0); WFIFOW(fd,0) = 0x81; WFIFOB(fd,2) = 8; @@ -1801,7 +1801,7 @@ int parse_fromlogin(int fd) ShowStatus("Connected to login-server (connection #%d).\n", fd); //Send online accounts to login server. - send_accounts_tologin(-1, gettick(), 0, 0); + send_accounts_tologin(INVALID_TIMER, gettick(), 0, 0); // if no map-server already connected, display a message... ARR_FIND( 0, MAX_MAP_SERVERS, i, server[i].fd > 0 && server[i].map[0] ); @@ -2008,7 +2008,7 @@ int parse_fromlogin(int fd) if( character->server > -1 ) { //Kick it from the map server it is on. mapif_disconnectplayer(server[character->server].fd, character->account_id, character->char_id, 2); - if (character->waiting_disconnect == -1) + if (character->waiting_disconnect == INVALID_TIMER) character->waiting_disconnect = add_timer(gettick()+AUTH_TIMEOUT, chardb_waiting_disconnect, character->account_id, 0); } else @@ -3256,7 +3256,7 @@ int parse_char(int fd) ShowInfo(CL_RED"Request Char Deletion: "CL_GREEN"%d (%d)"CL_RESET"\n", sd->account_id, cid); memcpy(email, RFIFOP(fd,6), 40); - RFIFOSKIP(fd,RFIFOREST(fd)); // hack to make the other deletion packet work + RFIFOSKIP(fd,( cmd == 0x68) ? 46 : 56); // Check if e-mail is correct if(strcmpi(email, sd->email) && //email does not matches and @@ -3429,22 +3429,6 @@ int parse_char(int fd) } return 0; // avoid processing of followup packets here - // Athena info get - case 0x7530: - WFIFOHEAD(fd,10); - WFIFOW(fd,0) = 0x7531; - WFIFOB(fd,2) = ATHENA_MAJOR_VERSION; - WFIFOB(fd,3) = ATHENA_MINOR_VERSION; - WFIFOB(fd,4) = ATHENA_REVISION; - WFIFOB(fd,5) = ATHENA_RELEASE_FLAG; - WFIFOB(fd,6) = ATHENA_OFFICIAL_FLAG; - WFIFOB(fd,7) = ATHENA_SERVER_INTER | ATHENA_SERVER_CHAR; - WFIFOW(fd,8) = ATHENA_MOD_VERSION; - WFIFOSET(fd,10); - - RFIFOSKIP(fd,2); - break; - // unknown packet received default: ShowError("parse_char: Received unknown packet "CL_WHITE"0x%x"CL_RESET" from ip '"CL_WHITE"%s"CL_RESET"'! Disconnecting!\n", RFIFOW(fd,0), ip2str(ipl, NULL)); @@ -3458,29 +3442,19 @@ int parse_char(int fd) } // Console Command Parser [Wizputer] -int parse_console(char* buf) +int parse_console(const char* command) { - char command[256]; + ShowNotice("Console command: %s\n", command); - memset(command, 0, sizeof(command)); - - sscanf(buf, "%[^\n]", command); - - //login_log("Console command :%s\n", command); - - if( strcmpi("shutdown", command) == 0 || - strcmpi("exit", command) == 0 || - strcmpi("quit", command) == 0 || - strcmpi("end", command) == 0 ) + if( strcmpi("shutdown", command) == 0 || strcmpi("exit", command) == 0 || strcmpi("quit", command) == 0 || strcmpi("end", command) == 0 ) runflag = 0; - else if( strcmpi("alive", command) == 0 || - strcmpi("status", command) == 0 ) + else if( strcmpi("alive", command) == 0 || strcmpi("status", command) == 0 ) ShowInfo(CL_CYAN"Console: "CL_BOLD"I'm Alive."CL_RESET"\n"); - else if( strcmpi("help", command) == 0 ){ - ShowInfo(CL_BOLD"Help of commands:"CL_RESET"\n"); - ShowInfo(" To shutdown the server:\n"); - ShowInfo(" 'shutdown|exit|qui|end'\n"); - ShowInfo(" To know if server is alive:\n"); + else if( strcmpi("help", command) == 0 ) + { + ShowInfo("To shutdown the server:\n"); + ShowInfo(" 'shutdown|exit|quit|end'\n"); + ShowInfo("To know if server is alive:\n"); ShowInfo(" 'alive|status'\n"); } @@ -3654,7 +3628,7 @@ static int chardb_waiting_disconnect(int tid, unsigned int tick, int id, intptr struct online_char_data* character; if ((character = (struct online_char_data*)idb_get(online_char_db, id)) != NULL && character->waiting_disconnect == tid) { //Mark it offline due to timeout. - character->waiting_disconnect = -1; + character->waiting_disconnect = INVALID_TIMER; set_char_offline(character->char_id, character->account_id); } return 0; diff --git a/src/char_sql/int_auction.c b/src/char_sql/int_auction.c index a51361789e..bba6932562 100644 --- a/src/char_sql/int_auction.c +++ b/src/char_sql/int_auction.c @@ -166,7 +166,7 @@ void auction_delete(struct auction_data *auction) if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `auction_id` = '%d'", auction_db, auction_id) ) Sql_ShowDebug(sql_handle); - if( auction->auction_end_timer != -1 ) + if( auction->auction_end_timer != INVALID_TIMER ) delete_timer(auction->auction_end_timer, auction_end_timer); idb_remove(auction_db_, auction_id); diff --git a/src/common/core.h b/src/common/core.h index 68325505a3..fc4af3e3ed 100644 --- a/src/common/core.h +++ b/src/common/core.h @@ -11,7 +11,7 @@ extern int runflag; extern char *SERVER_NAME; extern char SERVER_TYPE; -extern int parse_console(char* buf); +extern int parse_console(const char* buf); extern const char *get_svn_revision(void); extern int do_init(int,char**); extern void set_server_type(void); diff --git a/src/common/db.c b/src/common/db.c index 4dcf1d0b02..595ed241d4 100644 --- a/src/common/db.c +++ b/src/common/db.c @@ -697,7 +697,7 @@ static void db_free_add(DBMap_impl* db, DBNode node, DBNode *root) db->alloc_file, db->alloc_line); exit(EXIT_FAILURE); } - if (!(db->options&DB_OPT_DUP_KEY)) { // Make shure we have a key until the node is freed + if (!(db->options&DB_OPT_DUP_KEY)) { // Make sure we have a key until the node is freed old_key = node->key; node->key = db_dup_key(db, node->key); db->release(old_key, node->data, DB_RELEASE_KEY); @@ -1976,13 +1976,13 @@ static int db_obj_vclear(DBMap* self, DBApply func, va_list args) node->deleted = 1; } DB_COUNTSTAT(db_node_free); - ers_free(db->nodes, node); if (parent) { if (parent->left == node) parent->left = NULL; else parent->right = NULL; } + ers_free(db->nodes, node); node = parent; } db->ht[i] = NULL; diff --git a/src/common/grfio.c b/src/common/grfio.c index fe94e0803c..3c0960f303 100644 --- a/src/common/grfio.c +++ b/src/common/grfio.c @@ -12,6 +12,8 @@ #include "../common/cbasetypes.h" #include "../common/showmsg.h" #include "../common/malloc.h" +#include "../common/strlib.h" +#include "../common/utils.h" //---------------------------- @@ -381,6 +383,35 @@ static void filelist_adjust(void) } } + +/// Combines are resource path with the data folder location to +/// create local resource path. +static void grfio_localpath_create(char* buffer, size_t size, const char* filename) +{ + unsigned int i; + size_t len; + + len = strlen(data_dir); + + if( data_dir[0] == 0 || data_dir[len-1] == '/' || data_dir[len-1] == '\\' ) + { + safesnprintf(buffer, size, "%s%s", data_dir, filename); + } + else + { + safesnprintf(buffer, size, "%s/%s", data_dir, filename); + } + + for( i = 0; buffer[i]; i++ ) + {// normalize path + if( buffer[i] == '\\' ) + { + buffer[i] = '/'; + } + } +} + + /*********************************************************** *** Grfio Sobroutines *** ***********************************************************/ @@ -398,13 +429,10 @@ int grfio_size(char* fname) FILELIST lentry; struct stat st; - sprintf(lfname, "%s%s", data_dir, fname); - - for (p = &lfname[0]; *p != 0; p++) - if (*p=='\\') *p = '/'; + grfio_localpath_create(lfname, sizeof(lfname), fname); if (stat(lfname, &st) == 0) { - strncpy(lentry.fn, fname, sizeof(lentry.fn) - 1); + safestrncpy(lentry.fn, fname, sizeof(lentry.fn)); lentry.fnd = NULL; lentry.declen = st.st_size; lentry.gentry = 0; // 0:LocalFile @@ -428,35 +456,28 @@ void* grfio_reads(char* fname, int* size) entry = filelist_find(fname); if (entry == NULL || entry->gentry <= 0) { // LocalFileCheck - char lfname[256], *p; - FILELIST lentry; + char lfname[256]; + int declen; - sprintf(lfname, "%s%s", data_dir, fname); - - for (p = &lfname[0]; *p != 0; p++) - if (*p == '\\') *p = '/'; + grfio_localpath_create(lfname, sizeof(lfname), ( entry && entry->fnd ) ? entry->fnd : fname); in = fopen(lfname, "rb"); if (in != NULL) { - if (entry != NULL && entry->gentry == 0) { - lentry.declen = entry->declen; - } else { - fseek(in,0,SEEK_END); - lentry.declen = ftell(in); - } + fseek(in,0,SEEK_END); + declen = ftell(in); fseek(in,0,SEEK_SET); - buf2 = (unsigned char *)aMallocA(lentry.declen + 1024); - fread(buf2, 1, lentry.declen, in); + buf2 = (unsigned char *)aMallocA(declen+1); // +1 for resnametable zero-termination + fread(buf2, 1, declen, in); fclose(in); - strncpy(lentry.fn, fname, sizeof(lentry.fn) - 1); - lentry.fnd = NULL; - lentry.gentry = 0; // 0:LocalFile - entry = filelist_modify(&lentry); + if( size ) + { + size[0] = declen; + } } else { if (entry != NULL && entry->gentry < 0) { entry->gentry = -entry->gentry; // local file checked } else { - ShowError("%s not found (grfio_reads - local file %s)\n", fname, lfname); + ShowError("grfio_reads: %s not found (local file: %s)\n", fname, lfname); return NULL; } } @@ -465,11 +486,11 @@ void* grfio_reads(char* fname, int* size) char* grfname = gentry_table[entry->gentry - 1]; in = fopen(grfname, "rb"); if(in != NULL) { - unsigned char *buf = (unsigned char *)aMallocA(entry->srclen_aligned + 1024); + unsigned char *buf = (unsigned char *)aMallocA(entry->srclen_aligned); fseek(in, entry->srcpos, 0); fread(buf, 1, entry->srclen_aligned, in); fclose(in); - buf2 = (unsigned char *)aMallocA(entry->declen + 1024); + buf2 = (unsigned char *)aMallocA(entry->declen+1); // +1 for resnametable zero-termination if (entry->type == 1 || entry->type == 3 || entry->type == 5) { uLongf len; if (entry->cycle >= 0) @@ -485,14 +506,16 @@ void* grfio_reads(char* fname, int* size) } else { memcpy(buf2, buf, entry->declen); } + if( size ) + { + size[0] = entry->declen; + } aFree(buf); } else { - ShowError("%s not found (grfio_reads - GRF file %s)\n", fname, grfname); + ShowError("grfio_reads: %s not found (GRF file: %s)\n", fname, grfname); return NULL; } } - if (size != NULL && entry != NULL) - *size = entry->declen; return buf2; } @@ -590,7 +613,7 @@ static int grfio_entryread(char* grfname, int gentry) aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; aentry.cycle = srccount; aentry.type = type; - strncpy(aentry.fn, fname,sizeof(aentry.fn)-1); + safestrncpy(aentry.fn, fname, sizeof(aentry.fn)); aentry.fnd = NULL; #ifdef GRFIO_LOCAL aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck @@ -657,7 +680,7 @@ static int grfio_entryread(char* grfname, int gentry) aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; aentry.cycle = srccount; aentry.type = type; - strncpy(aentry.fn,fname,sizeof(aentry.fn)-1); + safestrncpy(aentry.fn, fname, sizeof(aentry.fn)); aentry.fnd = NULL; #ifdef GRFIO_LOCAL aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck @@ -686,17 +709,16 @@ static int grfio_entryread(char* grfname, int gentry) *------------------------------------------*/ static void grfio_resourcecheck(void) { - char w1[256], w2[256], src[256], dst[256], restable[256], line[256]; + char w1[256], w2[256], src[256], dst[256], restable[256], line[256], local[256]; char *ptr, *buf; FILELIST* entry; + FILELIST fentry; int size; FILE* fp; int i = 0; // read resnametable from data directory and return if successful - sprintf(restable, "%sdata\\resnametable.txt", data_dir); - for (ptr = &restable[0]; *ptr != 0; ptr++) - if (*ptr == '\\') *ptr = '/'; + grfio_localpath_create(restable, sizeof(restable), "data\\resnametable.txt"); fp = fopen(restable, "rb"); if (fp) { @@ -710,14 +732,28 @@ static void grfio_resourcecheck(void) sprintf(dst, "data\\%s", w2); entry = filelist_find(dst); // create new entries reusing the original's info - if (entry != NULL) { - FILELIST fentry; + if (entry != NULL) + {// alias for GRF resource memcpy(&fentry, entry, sizeof(FILELIST)); - strncpy(fentry.fn, src, sizeof(fentry.fn) - 1); + safestrncpy(fentry.fn, src, sizeof(fentry.fn)); fentry.fnd = aStrdup(dst); filelist_modify(&fentry); i++; } + else + { + grfio_localpath_create(local, sizeof(local), dst); + + if( exists(local) ) + {// alias for local resource + memset(&fentry, 0, sizeof(fentry)); + //fentry.gentry = 0; + safestrncpy(fentry.fn, src, sizeof(fentry.fn)); + fentry.fnd = aStrdup(dst); + filelist_modify(&fentry); + i++; + } + } } } fclose(fp); @@ -738,14 +774,28 @@ static void grfio_resourcecheck(void) sprintf(src, "data\\%s", w1); sprintf(dst, "data\\%s", w2); entry = filelist_find(dst); - if (entry != NULL) { - FILELIST fentry; + if (entry != NULL) + {// alias for GRF resource memcpy(&fentry, entry, sizeof(FILELIST)); - strncpy(fentry.fn, src, sizeof(fentry.fn) - 1); + safestrncpy(fentry.fn, src, sizeof(fentry.fn)); fentry.fnd = aStrdup(dst); filelist_modify(&fentry); i++; } + else + { + grfio_localpath_create(local, sizeof(local), dst); + + if( exists(local) ) + {// alias for local resource + memset(&fentry, 0, sizeof(fentry)); + //fentry.gentry = 0; + safestrncpy(fentry.fn, src, sizeof(fentry.fn)); + fentry.fnd = aStrdup(dst); + filelist_modify(&fentry); + i++; + } + } } ptr = strchr(ptr, '\n'); // Next line if (!ptr) break; @@ -824,7 +874,7 @@ void grfio_init(char* fname) if(strcmp(w1, "grf") == 0) // GRF file grf_num += (grfio_add(w2) == 0); else if(strcmp(w1,"data_dir") == 0) { // Data directory - strcpy(data_dir, w2); + safestrncpy(data_dir, w2, sizeof(data_dir)); } } fclose(data_conf); diff --git a/src/common/plugins.c b/src/common/plugins.c index 2d81548a17..2d50fc9e88 100644 --- a/src/common/plugins.c +++ b/src/common/plugins.c @@ -251,6 +251,8 @@ Plugin* plugin_open(const char* filename) func = (Plugin_Event_Func*)DLL_SYM(plugin->dll, events[i].func_name); if (func) register_plugin_event(func, events[i].event_name); + else + ShowError("Failed to locate function '%s' in '%s'.\n", events[i].func_name, filename); } i++; } diff --git a/src/common/socket.c b/src/common/socket.c index 89c605c9df..ff667cf2e1 100644 --- a/src/common/socket.c +++ b/src/common/socket.c @@ -996,10 +996,10 @@ int access_ipmask(const char* str, AccessControl* acc) (n == 5 && m[0] > 32) ){ // invalid bit mask return 0; } - ip = (uint32)(a[0] | (a[1] << 8) | (a[2] << 16) | (a[3] << 24)); + ip = MAKEIP(a[0],a[1],a[2],a[3]); if( n == 8 ) {// standard mask - mask = (uint32)(a[0] | (a[1] << 8) | (a[2] << 16) | (a[3] << 24)); + mask = MAKEIP(m[0],m[1],m[2],m[3]); } else if( n == 5 ) {// bit mask mask = 0; @@ -1007,7 +1007,6 @@ int access_ipmask(const char* str, AccessControl* acc) mask = (mask >> 1) | 0x80000000; --m[0]; } - mask = ntohl(mask); } else {// just this ip mask = 0xFFFFFFFF; diff --git a/src/common/socket.h b/src/common/socket.h index f7309f6d3d..0a740a63f9 100644 --- a/src/common/socket.h +++ b/src/common/socket.h @@ -135,6 +135,7 @@ uint32 host2ip(const char* hostname); const char* ip2str(uint32 ip, char ip_str[16]); uint32 str2ip(const char* ip_str); #define CONVIP(ip) ((ip)>>24)&0xFF,((ip)>>16)&0xFF,((ip)>>8)&0xFF,((ip)>>0)&0xFF +#define MAKEIP(a,b,c,d) (uint32)( ( ( (a)&0xFF ) << 24 ) | ( ( (b)&0xFF ) << 16 ) | ( ( (c)&0xFF ) << 8 ) | ( ( (d)&0xFF ) << 0 ) ) uint16 ntows(uint16 netshort); int socket_getips(uint32* ips, int max); @@ -152,12 +153,6 @@ void set_eof(int fd); #define SEND_SHORTLIST #ifdef SEND_SHORTLIST -struct send_shortlist_node { - struct send_shortlist_node *next; // Next node in the linked list - struct send_shortlist_node *prev; // Previous node in the linked list - int fd; // FD that needs sending. -}; - // Add a fd to the shortlist so that it'll be recognized as a fd that needs // sending done on it. void send_shortlist_add_fd(int fd); diff --git a/src/common/strlib.c b/src/common/strlib.c index 019e2d629a..a0cba906c7 100644 --- a/src/common/strlib.c +++ b/src/common/strlib.c @@ -925,6 +925,7 @@ bool sv_readdb(const char* directory, const char* filename, char delim, int minc char** fields; // buffer for fields ([0] is reserved) int columns, fields_length; char path[1024], line[1024]; + char* match; snprintf(path, sizeof(path), "%s/%s", directory, filename); @@ -944,9 +945,12 @@ bool sv_readdb(const char* directory, const char* filename, char delim, int minc while( fgets(line, sizeof(line), fp) ) { lines++; - if( line[0] == '/' && line[1] == '/' ) - continue; - //TODO: strip trailing // comment + + if( ( match = strstr(line, "//") ) != NULL ) + {// strip comments + match[0] = 0; + } + //TODO: strip trailing whitespace if( line[0] == '\0' || line[0] == '\n' || line[0] == '\r') continue; diff --git a/src/ladmin/Makefile.in b/src/ladmin/Makefile.in deleted file mode 100644 index 4703dded17..0000000000 --- a/src/ladmin/Makefile.in +++ /dev/null @@ -1,45 +0,0 @@ - -COMMON_OBJ = ../common/obj_all/minicore.o ../common/obj_all/minisocket.o ../common/obj_all/timer.o \ - ../common/obj_all/malloc.o ../common/obj_all/showmsg.o ../common/obj_all/strlib.o \ - ../common/obj_all/utils.o ../common/obj_all/md5calc.o -COMMON_H = ../common/core.h ../common/socket.h ../common/timer.h ../common/mmo.h \ - ../common/version.h ../common/malloc.h ../common/showmsg.h ../common/strlib.h \ - ../common/utils.h ../common/md5calc.h ../common/cbasetypes.h - -LADMIN_OBJ = obj_all/ladmin.o -LADMIN_H = ladmin.h - -@SET_MAKE@ - -##################################################################### -.PHONY : all ladmin clean help - -all: ladmin - -ladmin: obj_all $(LADMIN_OBJ) $(COMMON_OBJ) - @CC@ @LDFLAGS@ -o ../../ladmin@EXEEXT@ $(LADMIN_OBJ) $(COMMON_OBJ) @LIBS@ - -clean: - rm -rf *.o obj_all ../../ladmin@EXEEXT@ - -help: - @echo "possible targets are 'ladmin' 'all' 'clean' 'help'" - @echo "'ladmin' - remote administration tool" - @echo "'all' - builds all above targets" - @echo "'clean' - cleans builds and objects" - @echo "'help' - outputs this message" - -##################################################################### - -obj_all: - -mkdir obj_all - -obj_all/%.o: %.c $(LADMIN_H) $(COMMON_H) - @CC@ @CFLAGS@ @LDFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< - -# missing common object files -../common/obj_all/%.o: - @$(MAKE) -C ../common txt - -../common/obj_all/mini%.o: - @$(MAKE) -C ../common txt diff --git a/src/ladmin/ladmin.c b/src/ladmin/ladmin.c deleted file mode 100644 index d7a78c1195..0000000000 --- a/src/ladmin/ladmin.c +++ /dev/null @@ -1,3074 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -/////////////////////////////////////////////////////////////////////////// -// EAthena login-server remote administration tool -/////////////////////////////////////////////////////////////////////////// - -#include "../common/cbasetypes.h" -#include "../common/core.h" -#include "../common/strlib.h" -#include "../common/socket.h" -#include "../common/timer.h" -#include "../common/version.h" -#include "../common/mmo.h" -#include "../common/md5calc.h" -#include "../common/showmsg.h" -#include "ladmin.h" - -#include -#include -#include -#include -#include -#include -#include // str* -#include // valist - - -//-------------------------------INSTRUCTIONS------------------------------ -// Set the variables below: -// IP of the login server. -// Port where the login-server listens incoming packets. -// Password of administration (same of config_athena.conf). -// IMPORTANT: -// Be sure that you authorize remote administration in login-server -// (see login_athena.conf, 'admin_state' parameter) -//------------------------------------------------------------------------- -char loginserverip[16] = "127.0.0.1"; // IP of login-server -int loginserverport = 6900; // Port of login-server -char loginserveradminpassword[24] = "admin"; // Administration password -int passenc = 0; // Encoding type of the password -char ladmin_log_filename[1024] = "log/ladmin.log"; -char date_format[32] = "%Y-%m-%d %H:%M:%S"; - -//------------------------------------------------------------------------- -// LIST of COMMANDs that you can type at the prompt: -// To use these commands you can only type only the first letters. -// You must type a minimum of letters (you can not type 'a', -// because ladmin doesn't know if it's for 'aide' or for 'add') -// q <= quit, li <= list, pass <= passwd, etc. -// -// Note: every time you must give a account_name, you can use "" or '' (spaces can be included) -// -// aide/help/? -// Display the description of the commands -// aide/help/? [command] -// Display the description of the specified command -// -// add -// Create an account with the default email (a@a.com). -// Concerning the sex, only the first letter is used (F or M). -// The e-mail is set to a@a.com (default e-mail). It's like to have no e-mail. -// When the password is omitted, the input is done without displaying of the pressed keys. -// add testname Male testpass -// -// ban/banish yyyy/mm/dd hh:mm:ss -// Changes the final date of a banishment of an account. -// Like banset, but is at end. -// -// banadd -// Adds or substracts time from the final date of a banishment of an account. -// Modifier is done as follows: -// Adjustment value (-1, 1, +1, etc...) -// Modified element: -// a or y: year -// m: month -// j or d: day -// h: hour -// mn: minute -// s: second -// banadd testname +1m-2mn1s-6y -// this example adds 1 month and 1 second, and substracts 2 minutes and 6 years at the same time. -// NOTE: If you modify the final date of a non-banished account, -// you fix the final date to (actual time +- adjustments) -// -// banset yyyy/mm/dd [hh:mm:ss] -// Changes the final date of a banishment of an account. -// Default time [hh:mm:ss]: 23:59:59. -// banset 0 -// Set a non-banished account (0 = unbanished). -// -// block -// Set state 5 (You have been blocked by the GM Team) to an account. -// Like state 5. -// -// check -// Check the validity of a password for an account -// NOTE: Server will never send back a password. -// It's the only method you have to know if a password is correct. -// The other method is to have a ('physical') access to the accounts file. -// -// create -// Like the 'add' command, but with e-mail moreover. -// create testname Male my@mail.com testpass -// -// del -// Remove an account. -// This order requires confirmation. After confirmation, the account is deleted. -// -// email -// Modify the e-mail of an account. -// -// getcount -// Give the number of players online on all char-servers. -// -// gm [GM_level] -// Modify the GM level of an account. -// Default value remove GM level (GM level = 0). -// gm testname 80 -// -// id -// Give the id of an account. -// -// info -// Display complete information of an account. -// -// kami -// Sends a broadcast message on all map-server (in yellow). -// kamib -// Sends a broadcast message on all map-server (in blue). -// -// list/ls [start_id [end_id]] -// Display a list of accounts. -// 'start_id', 'end_id': indicate end and start identifiers. -// Research by name is not possible with this command. -// list 10 9999999 -// -// listBan/lsBan [start_id [end_id]] -// Like list/ls, but only for accounts with state or banished -// -// listGM/lsGM [start_id [end_id]] -// Like list/ls, but only for GM accounts -// -// listOK/lsOK [start_id [end_id]] -// Like list/ls, but only for accounts without state and not banished -// -// memo -// Modify the memo of an account. -// 'memo': it can have until 253 characters (with spaces or not). -// -// name -// Give the name of an account. -// -// passwd -// Change the password of an account. -// When new password is omitted, the input is done without displaying of the pressed keys. -// -// quit/end/exit -// End of the program of administration -// -// reloadGM -// Reload GM configuration file -// -// search -// Seek accounts. -// Displays the accounts whose names correspond. -// search -r/-e/--expr/--regex -// Seek accounts by regular expression. -// Displays the accounts whose names correspond. -// -// sex -// Modify the sex of an account. -// sex testname Male -// -// state -// Change the state of an account. -// 'new_state': state is the state of the packet 0x006a + 1. The possibilities are: -// 0 = Account ok 6 = Your Game's EXE file is not the latest version -// 1 = Unregistered ID 7 = You are Prohibited to log in until %s -// 2 = Incorrect Password 8 = Server is jammed due to over populated -// 3 = This ID is expired 9 = No MSG -// 4 = Rejected from Server 100 = This ID has been totally erased -// 5 = You have been blocked by the GM Team -// all other values are 'No MSG', then use state 9 please. -// 'error_message_#7': message of the code error 6 = Your are Prohibited to log in until %s (packet 0x006a) -// -// timeadd -// Adds or substracts time from the validity limit of an account. -// Modifier is done as follows: -// Adjustment value (-1, 1, +1, etc...) -// Modified element: -// a or y: year -// m: month -// j or d: day -// h: hour -// mn: minute -// s: second -// timeadd testname +1m-2mn1s-6y -// this example adds 1 month and 1 second, and substracts 2 minutes and 6 years at the same time. -// NOTE: You can not modify a unlimited validity limit. -// If you want modify it, you want probably create a limited validity limit. -// So, at first, you must set the validity limit to a date/time. -// -// timeset yyyy/mm/dd [hh:mm:ss] -// Changes the validity limit of an account. -// Default time [hh:mm:ss]: 23:59:59. -// timeset 0 -// Gives an unlimited validity limit (0 = unlimited). -// -// unban/unbanish -// Unban an account. -// Like banset 0. -// -// unblock -// Set state 0 (Account ok) to an account. -// Like state 0. -// -// version -// Display the version of the login-server. -// -// who -// Displays complete information of an account. -// -//------------------------------------------------------------------------- - -int login_fd; -int login_ip; -int bytes_to_read = 0; // flag to know if we waiting bytes from login-server -char command[1024]; -char parameters[1024]; -int list_first, list_last, list_type, list_count; // parameter to display a list of accounts -int already_exit_function = 0; // sometimes, the exit function is called twice... so, don't log twice the message - -//------------------------------ -// Writing function of logs file -//------------------------------ -int ladmin_log(char *fmt, ...) -{ - FILE *logfp; - va_list ap; - time_t t; - char tmpstr[2048]; - - va_start(ap, fmt); - - logfp = fopen(ladmin_log_filename, "a"); - if (logfp) { - if (fmt[0] == '\0') // jump a line if no message - fprintf(logfp, "\n"); - else { - t = time(NULL); - strftime(tmpstr, 24, date_format, localtime(&t)); - sprintf(tmpstr + strlen(tmpstr), ": %s", fmt); - vfprintf(logfp, tmpstr, ap); - } - fclose(logfp); - } - - va_end(ap); - return 0; -} - -//--------------------------------------------- -// Function to return ordinal text of a number. -//--------------------------------------------- -char* makeordinal(int number) -{ - if ((number % 10) < 4 && (number % 10) != 0 && (number < 10 || number > 20)) { - if ((number % 10) == 1) - return "st"; - else if ((number % 10) == 2) - return "nd"; - else - return "rd"; - } else { - return "th"; - } -} - -//----------------------------------------------------------------------------------------- -// Function to test of the validity of an account name (return 0 if incorrect, and 1 if ok) -//----------------------------------------------------------------------------------------- -int verify_accountname(char* account_name) -{ - int i; - - for(i = 0; account_name[i]; i++) { - if (account_name[i] < 32) { - ShowMessage("Illegal character found in the account name (%d%s character).\n", i+1, makeordinal(i+1)); - ladmin_log("Illegal character found in the account name (%d%s character).\n", i+1, makeordinal(i+1)); - return 0; - } - } - - if (strlen(account_name) < 4) { - ShowMessage("Account name is too short. Please input an account name of 4-23 bytes.\n"); - ladmin_log("Account name is too short. Please input an account name of 4-23 bytes.\n"); - return 0; - } - - if (strlen(account_name) > 23) { - ShowMessage("Account name is too long. Please input an account name of 4-23 bytes.\n"); - ladmin_log("Account name is too long. Please input an account name of 4-23 bytes.\n"); - return 0; - } - - return 1; -} - -//---------------------------------- -// Sub-function: Input of a password -//---------------------------------- -int typepasswd(char * password) -{ - char password1[1023], password2[1023]; - int letter; - int i; - - ladmin_log("No password was given. Request to obtain a password.\n"); - - memset(password1, '\0', sizeof(password1)); - memset(password2, '\0', sizeof(password2)); - - ShowMessage("\033[1;36m Type the password > \033[0;32;42m"); - - i = 0; - while ((letter = getchar()) != '\n') - password1[i++] = letter; - - ShowMessage("\033[0m\033[1;36m Verify the password > \033[0;32;42m"); - - i = 0; - while ((letter = getchar()) != '\n') - password2[i++] = letter; - - ShowMessage("\033[0m"); - fflush(stdout); - fflush(stdin); - - if (strcmp(password1, password2) != 0) { - ShowMessage("Password verification failed. Please input same password.\n"); - ladmin_log("Password verification failed. Please input same password.\n"); - ladmin_log(" First password: %s, second password: %s.\n", password1, password2); - return 0; - } - ladmin_log("Typed password: %s.\n", password1); - strcpy(password, password1); - return 1; -} - -//------------------------------------------------------------------------------------ -// Sub-function: Test of the validity of password (return 0 if incorrect, and 1 if ok) -//------------------------------------------------------------------------------------ -int verify_password(char * password) -{ - int i; - - for(i = 0; password[i]; i++) { - if (password[i] < 32) { - ShowMessage("Illegal character found in the password (%d%s character).\n", i+1, makeordinal(i+1)); - ladmin_log("Illegal character found in the password (%d%s character).\n", i+1, makeordinal(i+1)); - return 0; - } - } - - if (strlen(password) < 4) { - ShowMessage("Account name is too short. Please input an account name of 4-23 bytes.\n"); - ladmin_log("Account name is too short. Please input an account name of 4-23 bytes.\n"); - return 0; - } - - if (strlen(password) > 23) { - ShowMessage("Password is too long. Please input a password of 4-23 bytes.\n"); - ladmin_log("Password is too long. Please input a password of 4-23 bytes.\n"); - return 0; - } - - return 1; -} - -//------------------------------------------------------------------ -// Sub-function: Check the name of a command (return complete name) -//----------------------------------------------------------------- -int check_command(char * command) -{ -// help - if (strncmp(command, "help", 1) == 0 && strncmp(command, "help", strlen(command)) == 0) - strcpy(command, "help"); -// general commands - else if (strncmp(command, "add", 2) == 0 && strncmp(command, "add", strlen(command)) == 0) // not 1 letter command: 'aide' or 'add'? - strcpy(command, "add"); - else if ((strncmp(command, "ban", 3) == 0 && strncmp(command, "ban", strlen(command)) == 0) || - (strncmp(command, "banish", 4) == 0 && strncmp(command, "banish", strlen(command)) == 0)) - strcpy(command, "ban"); - else if ((strncmp(command, "banadd", 4) == 0 && strncmp(command, "banadd", strlen(command)) == 0) || // not 1 letter command: 'ba' or 'bs'? 'banadd' or 'banset' ? - strcmp(command, "ba") == 0) - strcpy(command, "banadd"); - else if ((strncmp(command, "banset", 4) == 0 && strncmp(command, "banset", strlen(command)) == 0) || // not 1 letter command: 'ba' or 'bs'? 'banadd' or 'banset' ? - strcmp(command, "bs") == 0) - strcpy(command, "banset"); - else if (strncmp(command, "block", 2) == 0 && strncmp(command, "block", strlen(command)) == 0) - strcpy(command, "block"); - else if (strncmp(command, "check", 2) == 0 && strncmp(command, "check", strlen(command)) == 0) // not 1 letter command: 'check' or 'create'? - strcpy(command, "check"); - else if (strncmp(command, "create", 2) == 0 && strncmp(command, "create", strlen(command)) == 0) // not 1 letter command: 'check' or 'create'? - strcpy(command, "create"); - else if (strncmp(command, "delete", 1) == 0 && strncmp(command, "delete", strlen(command)) == 0) - strcpy(command, "delete"); - else if ((strncmp(command, "email", 2) == 0 && strncmp(command, "email", strlen(command)) == 0) || // not 1 letter command: 'email', 'end' or 'exit'? - (strncmp(command, "e-mail", 2) == 0 && strncmp(command, "e-mail", strlen(command)) == 0)) - strcpy(command, "email"); - else if (strncmp(command, "getcount", 2) == 0 && strncmp(command, "getcount", strlen(command)) == 0) // not 1 letter command: 'getcount' or 'gm'? - strcpy(command, "getcount"); -// else if (strncmp(command, "gm", 2) == 0 && strncmp(command, "gm", strlen(command)) == 0) // not 1 letter command: 'getcount' or 'gm'? -// strcpy(command, "gm"); -// else if (strncmp(command, "id", 2) == 0 && strncmp(command, "id", strlen(command)) == 0) // not 1 letter command: 'id' or 'info'? -// strcpy(command, "id"); - else if (strncmp(command, "info", 2) == 0 && strncmp(command, "info", strlen(command)) == 0) // not 1 letter command: 'id' or 'info'? - strcpy(command, "info"); -// else if (strncmp(command, "kami", 4) == 0 && strncmp(command, "kami", strlen(command)) == 0) // only all letters command: 'kami' or 'kamib'? -// strcpy(command, "kami"); -// else if (strncmp(command, "kamib", 5) == 0 && strncmp(command, "kamib", strlen(command)) == 0) // only all letters command: 'kami' or 'kamib'? -// strcpy(command, "kamib"); - else if ((strncmp(command, "list", 2) == 0 && strncmp(command, "list", strlen(command)) == 0) || // 'list' is default list command // not 1 letter command: 'list'? - strcmp(command, "ls") == 0) - strcpy(command, "list"); - else if ((strncmp(command, "listban", 5) == 0 && strncmp(command, "listban", strlen(command)) == 0) || - (strncmp(command, "lsban", 3) == 0 && strncmp(command, "lsban", strlen(command)) == 0) || - strcmp(command, "lb") == 0) - strcpy(command, "listban"); - else if ((strncmp(command, "listgm", 5) == 0 && strncmp(command, "listgm", strlen(command)) == 0) || - (strncmp(command, "lsgm", 3) == 0 && strncmp(command, "lsgm", strlen(command)) == 0) || - strcmp(command, "lg") == 0) - strcpy(command, "listgm"); - else if ((strncmp(command, "listok", 5) == 0 && strncmp(command, "listok", strlen(command)) == 0) || - (strncmp(command, "lsok", 3) == 0 && strncmp(command, "lsok", strlen(command)) == 0) || - strcmp(command, "lo") == 0) - strcpy(command, "listok"); - else if (strncmp(command, "memo", 1) == 0 && strncmp(command, "memo", strlen(command)) == 0) - strcpy(command, "memo"); - else if (strncmp(command, "name", 1) == 0 && strncmp(command, "name", strlen(command)) == 0) - strcpy(command, "name"); - else if ((strncmp(command, "password", 1) == 0 && strncmp(command, "password", strlen(command)) == 0) || - strcmp(command, "passwd") == 0) - strcpy(command, "password"); - else if (strncmp(command, "reloadgm", 1) == 0 && strncmp(command, "reloadgm", strlen(command)) == 0) - strcpy(command, "reloadgm"); - else if (strncmp(command, "search", 3) == 0 && strncmp(command, "search", strlen(command)) == 0) // not 1 letter command: 'search', 'state' or 'sex'? - strcpy(command, "search"); // not 2 letters command: 'search' or 'sex'? -// else if (strncmp(command, "sex", 3) == 0 && strncmp(command, "sex", strlen(command)) == 0) // not 1 letter command: 'search', 'state' or 'sex'? -// strcpy(command, "sex"); // not 2 letters command: 'search' or 'sex'? - else if (strncmp(command, "state", 2) == 0 && strncmp(command, "state", strlen(command)) == 0) // not 1 letter command: 'search', 'state' or 'sex'? - strcpy(command, "state"); - else if ((strncmp(command, "timeadd", 5) == 0 && strncmp(command, "timeadd", strlen(command)) == 0) || // not 1 letter command: 'ta' or 'ts'? 'timeadd' or 'timeset'? - strcmp(command, "ta") == 0) - strcpy(command, "timeadd"); - else if ((strncmp(command, "timeset", 5) == 0 && strncmp(command, "timeset", strlen(command)) == 0) || // not 1 letter command: 'ta' or 'ts'? 'timeadd' or 'timeset'? - strcmp(command, "ts") == 0) - strcpy(command, "timeset"); - else if ((strncmp(command, "unban", 5) == 0 && strncmp(command, "unban", strlen(command)) == 0) || - (strncmp(command, "unbanish", 4) == 0 && strncmp(command, "unbanish", strlen(command)) == 0)) - strcpy(command, "unban"); - else if (strncmp(command, "unblock", 4) == 0 && strncmp(command, "unblock", strlen(command)) == 0) - strcpy(command, "unblock"); - else if (strncmp(command, "version", 1) == 0 && strncmp(command, "version", strlen(command)) == 0) - strcpy(command, "version"); - else if (strncmp(command, "who", 1) == 0 && strncmp(command, "who", strlen(command)) == 0) - strcpy(command, "who"); -// quit - else if (strncmp(command, "quit", 1) == 0 && strncmp(command, "quit", strlen(command)) == 0) - strcpy(command, "quit"); - else if (strncmp(command, "exit", 2) == 0 && strncmp(command, "exit", strlen(command)) == 0) // not 1 letter command: 'email', 'end' or 'exit'? - strcpy(command, "exit"); - else if (strncmp(command, "end", 2) == 0 && strncmp(command, "end", strlen(command)) == 0) // not 1 letter command: 'email', 'end' or 'exit'? - strcpy(command, "end"); - - return 0; -} - -//----------------------------------------- -// Sub-function: Display commands of ladmin -//----------------------------------------- -void display_help(char* param) -{ - char command[1023]; - int i; - - memset(command, '\0', sizeof(command)); - - if (sscanf(param, "%s ", command) < 1 || strlen(command) == 0) - strcpy(command, ""); // any value that is not a command - - if (command[0] == '?') - strcpy(command, "help"); - - // lowercase for command - for (i = 0; command[i]; i++) - command[i] = TOLOWER(command[i]); - - // Analyse of the command - check_command(command); // give complete name to the command - - ladmin_log("Displaying of the commands or a command.\n"); - - if (strcmp(command, "help") == 0 ) { - ShowMessage("aide/help/?\n"); - ShowMessage(" Display the description of the commands\n"); - ShowMessage("aide/help/? [command]\n"); - ShowMessage(" Display the description of the specified command\n"); -// general commands - } else if (strcmp(command, "add") == 0) { - ShowMessage("add \n"); - ShowMessage(" Create an account with the default email (a@a.com).\n"); - ShowMessage(" Concerning the sex, only the first letter is used (F or M).\n"); - ShowMessage(" The e-mail is set to a@a.com (default e-mail). It's like to have no e-mail.\n"); - ShowMessage(" When the password is omitted,\n"); - ShowMessage(" the input is done without displaying of the pressed keys.\n"); - ShowMessage(" add testname Male testpass\n"); - } else if (strcmp(command, "ban") == 0) { - ShowMessage("ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" Changes the final date of a banishment of an account.\n"); - ShowMessage(" Like banset, but is at end.\n"); - } else if (strcmp(command, "banadd") == 0) { - ShowMessage("banadd \n"); - ShowMessage(" Adds or substracts time from the final date of a banishment of an account.\n"); - ShowMessage(" Modifier is done as follows:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" banadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ShowMessage("NOTE: If you modify the final date of a non-banished account,\n"); - ShowMessage(" you fix the final date to (actual time +- adjustments)\n"); - } else if (strcmp(command, "banset") == 0) { - ShowMessage("banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" Changes the final date of a banishment of an account.\n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ShowMessage("banset 0\n"); - ShowMessage(" Set a non-banished account (0 = unbanished).\n"); - } else if (strcmp(command, "block") == 0) { - ShowMessage("block \n"); - ShowMessage(" Set state 5 (You have been blocked by the GM Team) to an account.\n"); - ShowMessage(" This command works like state 5.\n"); - } else if (strcmp(command, "check") == 0) { - ShowMessage("check \n"); - ShowMessage(" Check the validity of a password for an account.\n"); - ShowMessage(" NOTE: Server will never send back a password.\n"); - ShowMessage(" It's the only method you have to know if a password is correct.\n"); - ShowMessage(" The other method is to have a ('physical') access to the accounts file.\n"); - } else if (strcmp(command, "create") == 0) { - ShowMessage("create \n"); - ShowMessage(" Like the 'add' command, but with e-mail moreover.\n"); - ShowMessage(" create testname Male my@mail.com testpass\n"); - } else if (strcmp(command, "delete") == 0) { - ShowMessage("del \n"); - ShowMessage(" Remove an account.\n"); - ShowMessage(" This order requires confirmation. After confirmation, the account is deleted.\n"); - } else if (strcmp(command, "email") == 0) { - ShowMessage("email \n"); - ShowMessage(" Modify the e-mail of an account.\n"); - } else if (strcmp(command, "getcount") == 0) { - ShowMessage("getcount\n"); - ShowMessage(" Give the number of players online on all char-servers.\n"); - } else if (strcmp(command, "gm") == 0) { - ShowMessage("gm [GM_level]\n"); - ShowMessage(" Modify the GM level of an account.\n"); - ShowMessage(" Default value remove GM level (GM level = 0).\n"); - ShowMessage(" gm testname 80\n"); - } else if (strcmp(command, "id") == 0) { - ShowMessage("id \n"); - ShowMessage(" Give the id of an account.\n"); - } else if (strcmp(command, "info") == 0) { - ShowMessage("info \n"); - ShowMessage(" Display complete information of an account.\n"); - } else if (strcmp(command, "kami") == 0) { - ShowMessage("kami \n"); - ShowMessage(" Sends a broadcast message on all map-server (in yellow).\n"); - } else if (strcmp(command, "kamib") == 0) { - ShowMessage("kamib \n"); - ShowMessage(" Sends a broadcast message on all map-server (in blue).\n"); - } else if (strcmp(command, "list") == 0) { - ShowMessage("list/ls [start_id [end_id]]\n"); - ShowMessage(" Display a list of accounts.\n"); - ShowMessage(" 'start_id', 'end_id': indicate end and start identifiers.\n"); - ShowMessage(" Research by name is not possible with this command.\n"); - ShowMessage(" list 10 9999999\n"); - } else if (strcmp(command, "listban") == 0) { - ShowMessage("listBan/lsBan [start_id [end_id]]\n"); - ShowMessage(" Like list/ls, but only for accounts with state or banished.\n"); - } else if (strcmp(command, "listgm") == 0) { - ShowMessage("listGM/lsGM [start_id [end_id]]\n"); - ShowMessage(" Like list/ls, but only for GM accounts.\n"); - } else if (strcmp(command, "listok") == 0) { - ShowMessage("listOK/lsOK [start_id [end_id]]\n"); - ShowMessage(" Like list/ls, but only for accounts without state and not banished.\n"); - } else if (strcmp(command, "memo") == 0) { - ShowMessage("memo \n"); - ShowMessage(" Modify the memo of an account.\n"); - ShowMessage(" 'memo': it can have until 253 characters (with spaces or not).\n"); - } else if (strcmp(command, "name") == 0) { - ShowMessage("name \n"); - ShowMessage(" Give the name of an account.\n"); - } else if (strcmp(command, "password") == 0) { - ShowMessage("passwd \n"); - ShowMessage(" Change the password of an account.\n"); - ShowMessage(" When new password is omitted,\n"); - ShowMessage(" the input is done without displaying of the pressed keys.\n"); - } else if (strcmp(command, "reloadgm") == 0) { - ShowMessage("reloadGM\n"); - ShowMessage(" Reload GM configuration file\n"); - } else if (strcmp(command, "search") == 0) { - ShowMessage("search \n"); - ShowMessage(" Seek accounts.\n"); - ShowMessage(" Displays the accounts whose names correspond.\n"); -// ShowMessage("search -r/-e/--expr/--regex \n"); -// ShowMessage(" Seek accounts by regular expression.\n"); -// ShowMessage(" Displays the accounts whose names correspond.\n"); - } else if (strcmp(command, "sex") == 0) { - ShowMessage("sex \n"); - ShowMessage(" Modify the sex of an account.\n"); - ShowMessage(" sex testname Male\n"); - } else if (strcmp(command, "state") == 0) { - ShowMessage("state \n"); - ShowMessage(" Change the state of an account.\n"); - ShowMessage(" 'new_state': state is the state of the packet 0x006a + 1.\n"); - ShowMessage(" The possibilities are:\n"); - ShowMessage(" 0 = Account ok\n"); - ShowMessage(" 1 = Unregistered ID\n"); - ShowMessage(" 2 = Incorrect Password\n"); - ShowMessage(" 3 = This ID is expired\n"); - ShowMessage(" 4 = Rejected from Server\n"); - ShowMessage(" 5 = You have been blocked by the GM Team\n"); - ShowMessage(" 6 = Your Game's EXE file is not the latest version\n"); - ShowMessage(" 7 = You are Prohibited to log in until...\n"); - ShowMessage(" 8 = Server is jammed due to over populated\n"); - ShowMessage(" 9 = No MSG\n"); - ShowMessage(" 100 = This ID has been totally erased\n"); - ShowMessage(" all other values are 'No MSG', then use state 9 please.\n"); - ShowMessage(" 'error_message_#7': message of the code error 6\n"); - ShowMessage(" = Your are Prohibited to log in until... (packet 0x006a)\n"); - } else if (strcmp(command, "timeadd") == 0) { - ShowMessage("timeadd \n"); - ShowMessage(" Adds or substracts time from the validity limit of an account.\n"); - ShowMessage(" Modifier is done as follows:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" timeadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ShowMessage("NOTE: You can not modify a unlimited validity limit.\n"); - ShowMessage(" If you want modify it, you want probably create a limited validity limit.\n"); - ShowMessage(" So, at first, you must set the validity limit to a date/time.\n"); - } else if (strcmp(command, "timeadd") == 0) { - ShowMessage("timeset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" Changes the validity limit of an account.\n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ShowMessage("timeset 0\n"); - ShowMessage(" Gives an unlimited validity limit (0 = unlimited).\n"); - } else if (strcmp(command, "unban") == 0) { - ShowMessage("unban/unbanish \n"); - ShowMessage(" Remove the banishment of an account.\n"); - ShowMessage(" This command works like banset 0.\n"); - } else if (strcmp(command, "unblock") == 0) { - ShowMessage("unblock \n"); - ShowMessage(" Set state 0 (Account ok) to an account.\n"); - ShowMessage(" This command works like state 0.\n"); - } else if (strcmp(command, "version") == 0) { - ShowMessage("version\n"); - ShowMessage(" Display the version of the login-server.\n"); - } else if (strcmp(command, "who") == 0) { - ShowMessage("who \n"); - ShowMessage(" Displays complete information of an account.\n"); -// quit - } else if (strcmp(command, "quit") == 0 || - strcmp(command, "exit") == 0 || - strcmp(command, "end") == 0) { - ShowMessage("quit/end/exit\n"); - ShowMessage(" End of the program of administration.\n"); -// unknown command - } else { - if (strlen(command) > 0) - ShowMessage("Unknown command [%s] for help. Displaying of all commands.\n", command); - ShowMessage(" aide/help/? -- Display this help\n"); - ShowMessage(" aide/help/? [command] -- Display the help of the command\n"); - ShowMessage(" add -- Create an account with default email\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss -- Change final date of a ban\n"); - ShowMessage(" banadd/ba -- Add or substract time from the final\n"); - ShowMessage(" example: ba apple +1m-2mn1s-2y date of a banishment of an account\n"); - ShowMessage(" banset/bs yyyy/mm/dd [hh:mm:ss] -- Change final date of a ban\n"); - ShowMessage(" banset/bs 0 -- Un-banish an account\n"); - ShowMessage(" block -- Set state 5 (blocked by the GM Team) to an account\n"); - ShowMessage(" check -- Check the validity of a password\n"); - ShowMessage(" create -- Create an account with email\n"); - ShowMessage(" del -- Remove an account\n"); - ShowMessage(" email -- Modify an email of an account\n"); - ShowMessage(" getcount -- Give the number of players online\n"); - ShowMessage(" gm [GM_level] -- Modify the GM level of an account\n"); - ShowMessage(" id -- Give the id of an account\n"); - ShowMessage(" info -- Display all information of an account\n"); - ShowMessage(" kami -- Sends a broadcast message (in yellow)\n"); - ShowMessage(" kamib -- Sends a broadcast message (in blue)\n"); - ShowMessage(" list/ls [First_id [Last_id]] -- Display a list of accounts\n"); - ShowMessage(" listBan/lsBan [First_id [Last_id] ] -- Display a list of accounts\n"); - ShowMessage(" with state or banished\n"); - ShowMessage(" listGM/lsGM [First_id [Last_id]] -- Display a list of GM accounts\n"); - ShowMessage(" listOK/lsOK [First_id [Last_id] ] -- Display a list of accounts\n"); - ShowMessage(" without state and not banished\n"); - ShowMessage(" memo -- Modify the memo of an account\n"); - ShowMessage(" name -- Give the name of an account\n"); - ShowMessage(" passwd -- Change the password of an account\n"); - ShowMessage(" quit/end/exit -- End of the program of administation\n"); - ShowMessage(" reloadGM -- Reload GM configuration file\n"); - ShowMessage(" search -- Seek accounts\n"); -// ShowMessage(" search -e/-r/--expr/--regex -- Seek accounts by regular-expression\n"); - ShowMessage(" sex -- Modify the sex of an account\n"); - ShowMessage(" state -- Change the state\n"); - ShowMessage(" timeadd/ta -- Add or substract time from the\n"); - ShowMessage(" example: ta apple +1m-2mn1s-2y validity limit of an account\n"); - ShowMessage(" timeset/ts yyyy/mm/dd [hh:mm:ss] -- Change the validify limit\n"); - ShowMessage(" timeset/ts 0 -- Give a unlimited validity limit\n"); - ShowMessage(" unban/unbanish -- Remove the banishment of an account\n"); - ShowMessage(" unblock -- Set state 0 (Account ok) to an account\n"); - ShowMessage(" version -- Gives the version of the login-server\n"); - ShowMessage(" who -- Display all information of an account\n"); - ShowMessage(" who -- Display all information of an account\n"); - ShowMessage(" Note: To use spaces in an account name, type \"\" (or ').\n"); - } -} - -//----------------------------- -// Sub-function: add an account -//----------------------------- -int addaccount(char* param, int emailflag) -{ - char name[1023], sex[1023], email[1023], password[1023]; -// int i; - WFIFOHEAD(login_fd,91); - - memset(name, '\0', sizeof(name)); - memset(sex, '\0', sizeof(sex)); - memset(email, '\0', sizeof(email)); - memset(password, '\0', sizeof(password)); - - if (emailflag == 0) { // add command - if (sscanf(param, "\"%[^\"]\" %s %[^\r\n]", name, sex, password) < 2 && // password can be void - sscanf(param, "'%[^']' %s %[^\r\n]", name, sex, password) < 2 && // password can be void - sscanf(param, "%s %s %[^\r\n]", name, sex, password) < 2) { // password can be void - ShowMessage("Please input an account name, a sex and a password.\n"); - ShowMessage(" add testname Male testpass\n"); - ladmin_log("Incomplete parameters to create an account ('add' command).\n"); - return 136; - } - strcpy(email, "a@a.com"); // default email - } else { // 1: create command - if (sscanf(param, "\"%[^\"]\" %s %s %[^\r\n]", name, sex, email, password) < 3 && // password can be void - sscanf(param, "'%[^']' %s %s %[^\r\n]", name, sex, email, password) < 3 && // password can be void - sscanf(param, "%s %s %s %[^\r\n]", name, sex, email, password) < 3) { // password can be void - ShowMessage("Please input an account name, a sex and a password.\n"); - ShowMessage(" create testname Male my@mail.com testpass\n"); - ladmin_log("Incomplete parameters to create an account ('create' command).\n"); - return 136; - } - } - if (verify_accountname(name) == 0) { - return 102; - } - - sex[0] = TOUPPER(sex[0]); - if (strchr("MF", sex[0]) == NULL) { - ShowMessage("Illegal gender [%s]. Please input M or F.\n", sex); - ladmin_log("Illegal gender [%s]. Please input M or F.\n", sex); - return 103; - } - - if (strlen(email) < 3) { - ShowMessage("Email is too short [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Email is too short [%s]. Please input a valid e-mail.\n", email); - return 109; - } - if (strlen(email) > 39) { - ShowMessage("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - ladmin_log("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - return 109; - } - if (e_mail_check(email) == 0) { - ShowMessage("Invalid email [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Invalid email [%s]. Please input a valid e-mail.\n", email); - return 109; - } - - if (strlen(password) == 0) { - if (typepasswd(password) == 0) - return 108; - } - if (verify_password(password) == 0) - return 104; - - ladmin_log("Request to login-server to create an account.\n"); - - WFIFOW(login_fd,0) = 0x7930; - memcpy(WFIFOP(login_fd,2), name, 24); - memcpy(WFIFOP(login_fd,26), password, 24); - WFIFOB(login_fd,50) = sex[0]; - memcpy(WFIFOP(login_fd,51), email, 40); - WFIFOSET(login_fd,91); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------------------------------------------------- -// Sub-function: Add/substract time to the final date of a banishment of an account -//--------------------------------------------------------------------------------- -int banaddaccount(char* param) -{ - char name[1023], modif[1023]; - int year, month, day, hour, minute, second; - char * p_modif; - int value, i; - WFIFOHEAD(login_fd,38); - - memset(name, '\0', sizeof(name)); - memset(modif, '\0', sizeof(modif)); - year = month = day = hour = minute = second = 0; - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, modif) < 2 && - sscanf(param, "'%[^']' %[^\r\n]", name, modif) < 2 && - sscanf(param, "%s %[^\r\n]", name, modif) < 2) { - ShowMessage("Please input an account name and a modifier.\n"); - ShowMessage(" : banadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("Incomplete parameters to modify the ban date/time of an account ('banadd' command).\n"); - return 136; - } - if (verify_accountname(name) == 0) { - return 102; - } - - // lowercase for modif - for (i = 0; modif[i]; i++) - modif[i] = TOLOWER(modif[i]); - p_modif = modif; - while (strlen(p_modif) > 0) { - value = atoi(p_modif); - if (value == 0) { - p_modif++; - } else { - if (p_modif[0] == '-' || p_modif[0] == '+') - p_modif++; - while (strlen(p_modif) > 0 && p_modif[0] >= '0' && p_modif[0] <= '9') { - p_modif++; - } - if (p_modif[0] == 's') { - second = value; - p_modif++; - } else if (p_modif[0] == 'm' && p_modif[1] == 'n') { - minute = value; - p_modif += 2; - } else if (p_modif[0] == 'h') { - hour = value; - p_modif++; - } else if (p_modif[0] == 'd' || p_modif[0] == 'j') { - day = value; - p_modif += 2; - } else if (p_modif[0] == 'm') { - month = value; - p_modif++; - } else if (p_modif[0] == 'y' || p_modif[0] == 'a') { - year = value; - p_modif++; - } else { - p_modif++; - } - } - } - - ShowMessage(" year: %d\n", year); - ShowMessage(" month: %d\n", month); - ShowMessage(" day: %d\n", day); - ShowMessage(" hour: %d\n", hour); - ShowMessage(" minute: %d\n", minute); - ShowMessage(" second: %d\n", second); - - if (year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0 && second == 0) { - ShowMessage("Please give an adjustment with this command:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" banadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("No adjustment isn't an adjustment ('banadd' command).\n"); - return 137; - } - if (year > 127 || year < -127) { - ShowMessage("Please give a correct adjustment for the years (from -127 to 127).\n"); - ladmin_log("Abnormal adjustment for the year ('banadd' command).\n"); - return 137; - } - if (month > 255 || month < -255) { - ShowMessage("Please give a correct adjustment for the months (from -255 to 255).\n"); - ladmin_log("Abnormal adjustment for the month ('banadd' command).\n"); - return 137; - } - if (day > 32767 || day < -32767) { - ShowMessage("Please give a correct adjustment for the days (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the days ('banadd' command).\n"); - return 137; - } - if (hour > 32767 || hour < -32767) { - ShowMessage("Please give a correct adjustment for the hours (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the hours ('banadd' command).\n"); - return 137; - } - if (minute > 32767 || minute < -32767) { - ShowMessage("Please give a correct adjustment for the minutes (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the minutes ('banadd' command).\n"); - return 137; - } - if (second > 32767 || second < -32767) { - ShowMessage("Please give a correct adjustment for the seconds (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the seconds ('banadd' command).\n"); - return 137; - } - - ladmin_log("Request to login-server to modify a ban date/time.\n"); - - WFIFOW(login_fd,0) = 0x794c; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOW(login_fd,26) = (short)year; - WFIFOW(login_fd,28) = (short)month; - WFIFOW(login_fd,30) = (short)day; - WFIFOW(login_fd,32) = (short)hour; - WFIFOW(login_fd,34) = (short)minute; - WFIFOW(login_fd,36) = (short)second; - WFIFOSET(login_fd,38); - bytes_to_read = 1; - - return 0; -} - -//----------------------------------------------------------------------- -// Sub-function of sub-function banaccount, unbanaccount or bansetaccount -// Set the final date of a banishment of an account -//----------------------------------------------------------------------- -int bansetaccountsub(char* name, char* date, char* time) -{ - int year, month, day, hour, minute, second; - time_t unban_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban) - struct tm *tmtime; - WFIFOHEAD(login_fd,30); - - year = month = day = hour = minute = second = 0; - unban_time = 0; - tmtime = localtime(&unban_time); // initialize - - if (verify_accountname(name) == 0) { - return 102; - } - - if (atoi(date) != 0 && - ((sscanf(date, "%d/%d/%d", &year, &month, &day) < 3 && - sscanf(date, "%d-%d-%d", &year, &month, &day) < 3 && - sscanf(date, "%d.%d.%d", &year, &month, &day) < 3) || - sscanf(time, "%d:%d:%d", &hour, &minute, &second) < 3)) - { - ShowMessage("Please input a date and a time (format: yyyy/mm/dd hh:mm:ss).\n"); - ShowMessage("You can imput 0 instead of if you use 'banset' command.\n"); - ladmin_log("Invalid format for the date/time ('banset' or 'ban' command).\n"); - return 102; - } - - if (atoi(date) == 0) { - unban_time = 0; - } else { - if (year < 70) { - year = year + 100; - } - if (year >= 1900) { - year = year - 1900; - } - if (month < 1 || month > 12) { - ShowMessage("Please give a correct value for the month (from 1 to 12).\n"); - ladmin_log("Invalid month for the date ('banset' or 'ban' command).\n"); - return 102; - } - month = month - 1; - if (day < 1 || day > 31) { - ShowMessage("Please give a correct value for the day (from 1 to 31).\n"); - ladmin_log("Invalid day for the date ('banset' or 'ban' command).\n"); - return 102; - } - if (((month == 3 || month == 5 || month == 8 || month == 10) && day > 30) || - (month == 1 && day > 29)) { - ShowMessage("Please give a correct value for a day of this month (%d).\n", month); - ladmin_log("Invalid day for this month ('banset' or 'ban' command).\n"); - return 102; - } - if (hour < 0 || hour > 23) { - ShowMessage("Please give a correct value for the hour (from 0 to 23).\n"); - ladmin_log("Invalid hour for the time ('banset' or 'ban' command).\n"); - return 102; - } - if (minute < 0 || minute > 59) { - ShowMessage("Please give a correct value for the minutes (from 0 to 59).\n"); - ladmin_log("Invalid minute for the time ('banset' or 'ban' command).\n"); - return 102; - } - if (second < 0 || second > 59) { - ShowMessage("Please give a correct value for the seconds (from 0 to 59).\n"); - ladmin_log("Invalid second for the time ('banset' or 'ban' command).\n"); - return 102; - } - tmtime->tm_year = year; - tmtime->tm_mon = month; - tmtime->tm_mday = day; - tmtime->tm_hour = hour; - tmtime->tm_min = minute; - tmtime->tm_sec = second; - tmtime->tm_isdst = -1; // -1: no winter/summer time modification - unban_time = mktime(tmtime); - if (unban_time == -1) { - ShowMessage("Invalid date.\n"); - ShowMessage("Please input a date and a time (format: yyyy/mm/dd hh:mm:ss).\n"); - ShowMessage("You can imput 0 instead of if you use 'banset' command.\n"); - ladmin_log("Invalid date. ('banset' or 'ban' command).\n"); - return 102; - } - } - - ladmin_log("Request to login-server to set a ban.\n"); - - WFIFOW(login_fd,0) = 0x794a; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOL(login_fd,26) = (int)unban_time; - WFIFOSET(login_fd,30); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------------------------------------- -// Sub-function: Set the final date of a banishment of an account (ban) -//--------------------------------------------------------------------- -int banaccount(char* param) -{ - char name[1023], date[1023], time[1023]; - - memset(name, '\0', sizeof(name)); - memset(date, '\0', sizeof(date)); - memset(time, '\0', sizeof(time)); - - if (sscanf(param, "%s %s \"%[^\"]\"", date, time, name) < 3 && - sscanf(param, "%s %s '%[^']'", date, time, name) < 3 && - sscanf(param, "%s %s %[^\r\n]", date, time, name) < 3) { - ShowMessage("Please input an account name, a date and a hour.\n"); - ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = un-banished)\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a ban ('banset' or 'ban' command).\n"); - return 136; - } - - return bansetaccountsub(name, date, time); -} - -//------------------------------------------------------------------------ -// Sub-function: Set the final date of a banishment of an account (banset) -//------------------------------------------------------------------------ -int bansetaccount(char* param) -{ - char name[1023], date[1023], time[1023]; - - memset(name, '\0', sizeof(name)); - memset(date, '\0', sizeof(date)); - memset(time, '\0', sizeof(time)); - - if (sscanf(param, "\"%[^\"]\" %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void - sscanf(param, "'%[^']' %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void - sscanf(param, "%s %s %[^\r\n]", name, date, time) < 2) { // if date = 0, time can be void - ShowMessage("Please input an account name, a date and a hour.\n"); - ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = un-banished)\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a ban ('banset' or 'ban' command).\n"); - return 136; - } - - if (time[0] == '\0') - strcpy(time, "23:59:59"); - - return bansetaccountsub(name, date, time); -} - -//------------------------------------------------- -// Sub-function: unbanishment of an account (unban) -//------------------------------------------------- -int unbanaccount(char* param) -{ - char name[1023]; - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(": banset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" banset 0 (0 = un-banished)\n"); - ShowMessage(" ban/banish yyyy/mm/dd hh:mm:ss \n"); - ShowMessage(" unban/unbanish \n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a ban ('unban' command).\n"); - return 136; - } - - return bansetaccountsub(name, "0", ""); -} - -//--------------------------------------------------------- -// Sub-function: Asking to check the validity of a password -// (Note: never send back a password with login-server!! security of passwords) -//--------------------------------------------------------- -int checkaccount(char* param) -{ - char name[1023], password[1023]; - WFIFOHEAD(login_fd,50); - - memset(name, '\0', sizeof(name)); - memset(password, '\0', sizeof(password)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, password) < 1 && // password can be void - sscanf(param, "'%[^']' %[^\r\n]", name, password) < 1 && // password can be void - sscanf(param, "%s %[^\r\n]", name, password) < 1) { // password can be void - ShowMessage("Please input an account name.\n"); - ShowMessage(" check testname password\n"); - ladmin_log("Incomplete parameters to check the password of an account ('check' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (strlen(password) == 0) { - if (typepasswd(password) == 0) - return 134; - } - if (verify_password(password) == 0) - return 131; - - ladmin_log("Request to login-server to check a password.\n"); - - WFIFOW(login_fd,0) = 0x793a; - memcpy(WFIFOP(login_fd,2), name, 24); - memcpy(WFIFOP(login_fd,26), password, 24); - WFIFOSET(login_fd,50); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------ -// Sub-function: Asking for deletion of an account -//------------------------------------------------ -int delaccount(char* param) -{ - char name[1023]; - char letter; - char confirm[1023]; - int i; - WFIFOHEAD(login_fd,26); - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" del testnametodelete\n"); - ladmin_log("No name given to delete an account ('delete' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - memset(confirm, '\0', sizeof(confirm)); - while (confirm[0] != 'n' && confirm[0] != 'y') - { - ShowMessage("\033[1;36m ** Are you really sure to DELETE account [$userid]? (y/n) > \033[0m"); - fflush(stdout); - memset(confirm, '\0', sizeof(confirm)); - i = 0; - while ((letter = getchar()) != '\n') - confirm[i++] = letter; - } - - if (confirm[0] == 'n') { - ShowMessage("Deletion canceled.\n"); - ladmin_log("Deletion canceled by user ('delete' command).\n"); - return 121; - } - - ladmin_log("Request to login-server to delete an acount.\n"); - - WFIFOW(login_fd,0) = 0x7932; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOSET(login_fd,26); - bytes_to_read = 1; - - return 0; -} - -//---------------------------------------------------------- -// Sub-function: Asking to modification of an account e-mail -//---------------------------------------------------------- -int changeemail(char* param) -{ - char name[1023], email[1023]; - WFIFOHEAD(login_fd,66); - - memset(name, '\0', sizeof(name)); - memset(email, '\0', sizeof(email)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, email) < 2 && - sscanf(param, "'%[^']' %[^\r\n]", name, email) < 2 && - sscanf(param, "%s %[^\r\n]", name, email) < 2) { - ShowMessage("Please input an account name and an email.\n"); - ShowMessage(" email testname newemail\n"); - ladmin_log("Incomplete parameters to change the email of an account ('email' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (strlen(email) < 3) { - ShowMessage("Email is too short [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Email is too short [%s]. Please input a valid e-mail.\n", email); - return 109; - } - if (strlen(email) > 39) { - ShowMessage("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - ladmin_log("Email is too long [%s]. Please input an e-mail with 39 bytes at the most.\n", email); - return 109; - } - if (e_mail_check(email) == 0) { - ShowMessage("Invalid email [%s]. Please input a valid e-mail.\n", email); - ladmin_log("Invalid email [%s]. Please input a valid e-mail.\n", email); - return 109; - } - - ladmin_log("Request to login-server to change an email.\n"); - - WFIFOW(login_fd,0) = 0x7940; - memcpy(WFIFOP(login_fd,2), name, 24); - memcpy(WFIFOP(login_fd,26), email, 40); - WFIFOSET(login_fd,66); - bytes_to_read = 1; - - return 0; -} - -//----------------------------------------------------- -// Sub-function: Asking of the number of online players -//----------------------------------------------------- -int getlogincount(void) -{ - WFIFOHEAD(login_fd,2); - ladmin_log("Request to login-server to obtain the # of online players.\n"); - - WFIFOW(login_fd,0) = 0x7938; - WFIFOSET(login_fd,2); - bytes_to_read = 1; - - return 0; -} - -//---------------------------------------------------------- -// Sub-function: Asking to modify the GM level of an account -//---------------------------------------------------------- -int changegmlevel(char* param) -{ - char name[1023]; - int GM_level; - WFIFOHEAD(login_fd,27); - - memset(name, '\0', sizeof(name)); - GM_level = 0; - - if (sscanf(param, "\"%[^\"]\" %d", name, &GM_level) < 1 && - sscanf(param, "'%[^']' %d", name, &GM_level) < 1 && - sscanf(param, "%s %d", name, &GM_level) < 1) { - ShowMessage("Please input an account name and a GM level.\n"); - ShowMessage(" gm testname 80\n"); - ladmin_log("Incomplete parameters to change the GM level of an account ('gm' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (GM_level < 0 || GM_level > 99) { - ShowMessage("Illegal GM level [%d]. Please input a value from 0 to 99.\n", GM_level); - ladmin_log("Illegal GM level [%d]. The value can be from 0 to 99.\n", GM_level); - return 103; - } - - ladmin_log("Request to login-server to change a GM level.\n"); - - WFIFOW(login_fd,0) = 0x793e; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOB(login_fd,26) = GM_level; - WFIFOSET(login_fd,27); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------------- -// Sub-function: Asking to obtain an account id -//--------------------------------------------- -int idaccount(char* param) -{ - char name[1023]; - WFIFOHEAD(login_fd,26); - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" id testname\n"); - ladmin_log("No name given to search an account id ('id' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - ladmin_log("Request to login-server to know an account id.\n"); - - WFIFOW(login_fd,0) = 0x7944; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOSET(login_fd,26); - bytes_to_read = 1; - - return 0; -} - -//---------------------------------------------------------------------------- -// Sub-function: Asking to displaying information about an account (by its id) -//---------------------------------------------------------------------------- -int infoaccount(int account_id) -{ - WFIFOHEAD(login_fd,6); - if (account_id < 0) { - ShowMessage("Please input a positive value for the id.\n"); - ladmin_log("Negative value was given to found the account.\n"); - return 136; - } - - ladmin_log("Request to login-server to obtain information about an account (by its id).\n"); - - WFIFOW(login_fd,0) = 0x7954; - WFIFOL(login_fd,2) = account_id; - WFIFOSET(login_fd,6); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------- -// Sub-function: Send a broadcast message -//--------------------------------------- -int sendbroadcast(short type, char* message) -{ - int len = strlen(message); - WFIFOHEAD(login_fd,9+len); - if (len == 0) { - ShowMessage("Please input a message.\n"); - if (type == 0) { - ShowMessage(" kami a message\n"); - } else { - ShowMessage(" kamib a message\n"); - } - ladmin_log("The message is void ('kami(b)' command).\n"); - return 136; - } - len++; //+'\0' - WFIFOW(login_fd,0) = 0x794e; - WFIFOW(login_fd,2) = type; - WFIFOL(login_fd,4) = len; - memcpy(WFIFOP(login_fd,8), message, len); - WFIFOSET(login_fd,8+len); - bytes_to_read = 1; - - return 0; -} - -//-------------------------------------------------------- -// Sub-function: Asking to Displaying of the accounts list -//-------------------------------------------------------- -int listaccount(char* param, int type) -{ -//int list_first, list_last, list_type; // parameter to display a list of accounts - int i; - WFIFOHEAD(login_fd,10); - - list_type = type; - - // set default values - list_first = 0; - list_last = 0; - - if (list_type == 1) { // if listgm - // get all accounts = use default - } else if (list_type == 2) { // if search - for (i = 0; param[i]; i++) - param[i] = TOLOWER(param[i]); - // get all accounts = use default - } else if (list_type == 3) { // if listban - // get all accounts = use default - } else if (list_type == 4) { // if listok - // get all accounts = use default - } else { // if list (list_type == 0) - switch(sscanf(param, "%d %d", &list_first, &list_last)) { - case 0: - // get all accounts = use default - break; - case 1: - list_last = 0; - // use tests of the following value - default: - if (list_first < 0) - list_first = 0; - if (list_last < list_first || list_last < 0) - list_last = 0; - break; - } - } - - ladmin_log("Request to login-server to obtain the list of accounts from %d to %d.\n", list_first, list_last); - - WFIFOW(login_fd,0) = 0x7920; - WFIFOL(login_fd,2) = list_first; - WFIFOL(login_fd,6) = list_last; - WFIFOSET(login_fd,10); - bytes_to_read = 1; - - // 0123456789 01 01234567890123456789012301234 012345 0123456789012345678901234567 - ShowMessage("account_id GM user_name sex count state\n"); - ShowMessage("-------------------------------------------------------------------------------\n"); - list_count = 0; - - return 0; -} - -//-------------------------------------------- -// Sub-function: Asking to modify a memo field -//-------------------------------------------- -int changememo(char* param) -{ - char name[1023], memo[1023]; - WFIFOHEAD(login_fd,28+255); - - memset(name, '\0', sizeof(name)); - memset(memo, '\0', sizeof(memo)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, memo) < 1 && // memo can be void - sscanf(param, "'%[^']' %[^\r\n]", name, memo) < 1 && // memo can be void - sscanf(param, "%s %[^\r\n]", name, memo) < 1) { // memo can be void - ShowMessage("Please input an account name and a memo.\n"); - ShowMessage(" memo testname new memo\n"); - ladmin_log("Incomplete parameters to change the memo of an account ('email' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (strlen(memo) > 254) { - ShowMessage("Memo is too long (%lu characters).\n", (unsigned long)strlen(memo)); - ShowMessage("Please input a memo of 254 bytes at the maximum.\n"); - ladmin_log("Email is too long (%d characters). Please input a memo of 254 bytes at the maximum.\n", strlen(memo)); - return 102; - } - - ladmin_log("Request to login-server to change a memo.\n"); - - WFIFOW(login_fd,0) = 0x7942; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOW(login_fd,26) = strlen(memo); - if (strlen(memo) > 0) - memcpy(WFIFOP(login_fd,28), memo, strlen(memo)); - WFIFOSET(login_fd,28+strlen(memo)); - bytes_to_read = 1; - - return 0; -} - -//----------------------------------------------- -// Sub-function: Asking to obtain an account name -//----------------------------------------------- -int nameaccount(int id) -{ - WFIFOHEAD(login_fd,6); - if (id < 0) { - ShowMessage("Please input a positive value for the id.\n"); - ladmin_log("Negativ id given to search an account name ('name' command).\n"); - return 136; - } - - ladmin_log("Request to login-server to know an account name.\n"); - - WFIFOW(login_fd,0) = 0x7946; - WFIFOL(login_fd,2) = id; - WFIFOSET(login_fd,6); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------ -// Sub-function: Asking to modify a password -// (Note: never send back a password with login-server!! security of passwords) -//------------------------------------------ -int changepasswd(char* param) -{ - char name[1023], password[1023]; - WFIFOHEAD(login_fd,50); - - memset(name, '\0', sizeof(name)); - memset(password, '\0', sizeof(password)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, password) < 1 && - sscanf(param, "'%[^']' %[^\r\n]", name, password) < 1 && - sscanf(param, "%s %[^\r\n]", name, password) < 1) { - ShowMessage("Please input an account name.\n"); - ShowMessage(" passwd testname newpassword\n"); - ladmin_log("Incomplete parameters to change the password of an account ('password' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (strlen(password) == 0) { - if (typepasswd(password) == 0) - return 134; - } - if (verify_password(password) == 0) - return 131; - - ladmin_log("Request to login-server to change a password.\n"); - - WFIFOW(login_fd,0) = 0x7934; - memcpy(WFIFOP(login_fd,2), name, 24); - memcpy(WFIFOP(login_fd,26), password, 24); - WFIFOSET(login_fd,50); - bytes_to_read = 1; - - return 0; -} - -//---------------------------------------------------------------------- -// Sub-function: Request to login-server to reload GM configuration file -// this function have no answer -//---------------------------------------------------------------------- -int reloadGM(void) -{ - WFIFOHEAD(login_fd,2); - WFIFOW(login_fd,0) = 0x7955; - WFIFOSET(login_fd,2); - bytes_to_read = 0; - - ladmin_log("Request to reload the GM configuration file sended.\n"); - ShowMessage("Request to reload the GM configuration file sended.\n"); - ShowMessage("Check the actual GM accounts (after reloading):\n"); - listaccount(parameters, 1); // 1: to list only GM - - return 180; -} - -//----------------------------------------------------- -// Sub-function: Asking to modify the sex of an account -//----------------------------------------------------- -int changesex(char* param) -{ - char name[1023], sex[1023]; - WFIFOHEAD(login_fd,27); - - memset(name, '\0', sizeof(name)); - memset(sex, '\0', sizeof(sex)); - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, sex) < 2 && - sscanf(param, "'%[^']' %[^\r\n]", name, sex) < 2 && - sscanf(param, "%s %[^\r\n]", name, sex) < 2) { - ShowMessage("Please input an account name and a sex.\n"); - ShowMessage(" sex testname Male\n"); - ladmin_log("Incomplete parameters to change the sex of an account ('sex' command).\n"); - return 136; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - sex[0] = TOUPPER(sex[0]); - if (strchr("MF", sex[0]) == NULL) { - ShowMessage("Illegal gender [%s]. Please input M or F.\n", sex); - ladmin_log("Illegal gender [%s]. Please input M or F.\n", sex); - return 103; - } - - ladmin_log("Request to login-server to change a sex.\n"); - - WFIFOW(login_fd,0) = 0x793c; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOB(login_fd,26) = sex[0]; - WFIFOSET(login_fd,27); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------------------------------- -// Sub-function of sub-function changestate, blockaccount or unblockaccount -// Asking to modify the state of an account -//------------------------------------------------------------------------- -int changestatesub(char* name, int state, char* error_message7) -{ - char error_message[1023]; // need to use, because we can modify error_message7 - WFIFOHEAD(login_fd,50); - - memset(error_message, '\0', sizeof(error_message)); - strncpy(error_message, error_message7, sizeof(error_message)-1); - - if ((state < 0 || state > 9) && state != 100) { // Valid values: 0: ok, or value of the 0x006a packet + 1 - ShowMessage("Please input one of these states:\n"); - ShowMessage(" 0 = Account ok 6 = Your Game's EXE file is not the latest version\n"); - ShowMessage(" 1 = Unregistered ID 7 = You are Prohibited to log in until + message\n"); - ShowMessage(" 2 = Incorrect Password 8 = Server is jammed due to over populated\n"); - ShowMessage(" 3 = This ID is expired 9 = No MSG\n"); - ShowMessage(" 4 = Rejected from Server 100 = This ID has been totally erased\n"); - ShowMessage(" 5 = You have been blocked by the GM Team\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Invalid value for the state of an account ('state', 'block' or 'unblock' command).\n"); - return 151; - } - - if (verify_accountname(name) == 0) { - return 102; - } - - if (state != 7) { - strcpy(error_message, "-"); - } else { - if (strlen(error_message) < 1) { - ShowMessage("Error message is too short. Please input a message of 1-19 bytes.\n"); - ladmin_log("Error message is too short. Please input a message of 1-19 bytes.\n"); - return 102; - } - if (strlen(error_message) > 19) { - ShowMessage("Error message is too long. Please input a message of 1-19 bytes.\n"); - ladmin_log("Error message is too long. Please input a message of 1-19 bytes.\n"); - return 102; - } - } - - ladmin_log("Request to login-server to change a state.\n"); - - WFIFOW(login_fd,0) = 0x7936; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOL(login_fd,26) = state; - memcpy(WFIFOP(login_fd,30), error_message, 20); - WFIFOSET(login_fd,50); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------------- -// Sub-function: Asking to modify the state of an account -//------------------------------------------------------- -int changestate(char* param) -{ - char name[1023], error_message[1023]; - int state; - - memset(name, '\0', sizeof(name)); - memset(error_message, '\0', sizeof(error_message)); - - if (sscanf(param, "\"%[^\"]\" %d %[^\r\n]", name, &state, error_message) < 2 && - sscanf(param, "'%[^']' %d %[^\r\n]", name, &state, error_message) < 2 && - sscanf(param, "%s %d %[^\r\n]", name, &state, error_message) < 2) { - ShowMessage("Please input an account name and a state.\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Incomplete parameters to change the state of an account ('state' command).\n"); - return 136; - } - - return changestatesub(name, state, error_message); -} - -//------------------------------------------- -// Sub-function: Asking to unblock an account -//------------------------------------------- -int unblockaccount(char* param) -{ - char name[1023]; - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Incomplete parameters to change the state of an account ('unblock' command).\n"); - return 136; - } - - return changestatesub(name, 0, "-"); // state 0, no error message -} - -//------------------------------------------- -// Sub-function: Asking to unblock an account -//------------------------------------------- -int blockaccount(char* param) -{ - char name[1023]; - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" state testname 5\n"); - ShowMessage(" state testname 7 end of your ban\n"); - ShowMessage(" block \n"); - ShowMessage(" unblock \n"); - ladmin_log("Incomplete parameters to change the state of an account ('block' command).\n"); - return 136; - } - - return changestatesub(name, 5, "-"); // state 5, no error message -} - -//--------------------------------------------------------------------- -// Sub-function: Add/substract time to the validity limit of an account -//--------------------------------------------------------------------- -int timeaddaccount(char* param) -{ - char name[1023], modif[1023]; - int year, month, day, hour, minute, second; - char * p_modif; - int value, i; - WFIFOHEAD(login_fd,38); - - memset(name, '\0', sizeof(name)); - memset(modif, '\0', sizeof(modif)); - year = month = day = hour = minute = second = 0; - - if (sscanf(param, "\"%[^\"]\" %[^\r\n]", name, modif) < 2 && - sscanf(param, "'%[^']' %[^\r\n]", name, modif) < 2 && - sscanf(param, "%s %[^\r\n]", name, modif) < 2) - { - ShowMessage("Please input an account name and a modifier.\n"); - ShowMessage(" : timeadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("Incomplete parameters to modify a limit time ('timeadd' command).\n"); - return 136; - } - if (verify_accountname(name) == 0) { - return 102; - } - - // lowercase for modif - for (i = 0; modif[i]; i++) - modif[i] = TOLOWER(modif[i]); - p_modif = modif; - while (strlen(p_modif) > 0) { - value = atoi(p_modif); - if (value == 0) { - p_modif++; - } else { - if (p_modif[0] == '-' || p_modif[0] == '+') - p_modif++; - while (strlen(p_modif) > 0 && p_modif[0] >= '0' && p_modif[0] <= '9') { - p_modif++; - } - if (p_modif[0] == 's') { - second = value; - p_modif++; - } else if (p_modif[0] == 'm' && p_modif[1] == 'n') { - minute = value; - p_modif += 2; - } else if (p_modif[0] == 'h') { - hour = value; - p_modif++; - } else if (p_modif[0] == 'd' || p_modif[0] == 'j') { - day = value; - p_modif += 2; - } else if (p_modif[0] == 'm') { - month = value; - p_modif++; - } else if (p_modif[0] == 'y' || p_modif[0] == 'a') { - year = value; - p_modif++; - } else { - p_modif++; - } - } - } - - ShowMessage(" year: %d\n", year); - ShowMessage(" month: %d\n", month); - ShowMessage(" day: %d\n", day); - ShowMessage(" hour: %d\n", hour); - ShowMessage(" minute: %d\n", minute); - ShowMessage(" second: %d\n", second); - - if (year == 0 && month == 0 && day == 0 && hour == 0 && minute == 0 && second == 0) { - ShowMessage("Please give an adjustment with this command:\n"); - ShowMessage(" Adjustment value (-1, 1, +1, etc...)\n"); - ShowMessage(" Modified element:\n"); - ShowMessage(" a or y: year\n"); - ShowMessage(" m: month\n"); - ShowMessage(" j or d: day\n"); - ShowMessage(" h: hour\n"); - ShowMessage(" mn: minute\n"); - ShowMessage(" s: second\n"); - ShowMessage(" timeadd testname +1m-2mn1s-6y\n"); - ShowMessage(" this example adds 1 month and 1 second, and substracts 2 minutes\n"); - ShowMessage(" and 6 years at the same time.\n"); - ladmin_log("No adjustment isn't an adjustment ('timeadd' command).\n"); - return 137; - } - if (year > 127 || year < -127) { - ShowMessage("Please give a correct adjustment for the years (from -127 to 127).\n"); - ladmin_log("Abnormal adjustment for the year ('timeadd' command).\n"); - return 137; - } - if (month > 255 || month < -255) { - ShowMessage("Please give a correct adjustment for the months (from -255 to 255).\n"); - ladmin_log("Abnormal adjustment for the month ('timeadd' command).\n"); - return 137; - } - if (day > 32767 || day < -32767) { - ShowMessage("Please give a correct adjustment for the days (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the days ('timeadd' command).\n"); - return 137; - } - if (hour > 32767 || hour < -32767) { - ShowMessage("Please give a correct adjustment for the hours (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the hours ('timeadd' command).\n"); - return 137; - } - if (minute > 32767 || minute < -32767) { - ShowMessage("Please give a correct adjustment for the minutes (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the minutes ('timeadd' command).\n"); - return 137; - } - if (second > 32767 || second < -32767) { - ShowMessage("Please give a correct adjustment for the seconds (from -32767 to 32767).\n"); - ladmin_log("Abnormal adjustment for the seconds ('timeadd' command).\n"); - return 137; - } - - ladmin_log("Request to login-server to modify a time limit.\n"); - - WFIFOW(login_fd,0) = 0x7950; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOW(login_fd,26) = (short)year; - WFIFOW(login_fd,28) = (short)month; - WFIFOW(login_fd,30) = (short)day; - WFIFOW(login_fd,32) = (short)hour; - WFIFOW(login_fd,34) = (short)minute; - WFIFOW(login_fd,36) = (short)second; - WFIFOSET(login_fd,38); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------- -// Sub-function: Set a validity limit of an account -//------------------------------------------------- -int timesetaccount(char* param) -{ - char name[1023], date[1023], time[1023]; - int year, month, day, hour, minute, second; - time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) - struct tm *tmtime; - WFIFOHEAD(login_fd,30); - - memset(name, '\0', sizeof(name)); - memset(date, '\0', sizeof(date)); - memset(time, '\0', sizeof(time)); - year = month = day = hour = minute = second = 0; - expiration_time = 0; - tmtime = localtime(&expiration_time); // initialize - - if (sscanf(param, "\"%[^\"]\" %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void - sscanf(param, "'%[^']' %s %[^\r\n]", name, date, time) < 2 && // if date = 0, time can be void - sscanf(param, "%s %s %[^\r\n]", name, date, time) < 2) { // if date = 0, time can be void - ShowMessage("Please input an account name, a date and a hour.\n"); - ShowMessage(": timeset yyyy/mm/dd [hh:mm:ss]\n"); - ShowMessage(" timeset 0 (0 = unlimited)\n"); - ShowMessage(" Default time [hh:mm:ss]: 23:59:59.\n"); - ladmin_log("Incomplete parameters to set a limit time ('timeset' command).\n"); - return 136; - } - if (verify_accountname(name) == 0) { - return 102; - } - - if (time[0] == '\0') - strcpy(time, "23:59:59"); - - if (atoi(date) != 0 && - ((sscanf(date, "%d/%d/%d", &year, &month, &day) < 3 && - sscanf(date, "%d-%d-%d", &year, &month, &day) < 3 && - sscanf(date, "%d.%d.%d", &year, &month, &day) < 3 && - sscanf(date, "%d'%d'%d", &year, &month, &day) < 3) || - sscanf(time, "%d:%d:%d", &hour, &minute, &second) < 3)) - { - ShowMessage("Please input 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"); - ladmin_log("Invalid format for the date/time ('timeset' command).\n"); - return 102; - } - - if (atoi(date) == 0) { - expiration_time = 0; - } else { - if (year < 70) { - year = year + 100; - } - if (year >= 1900) { - year = year - 1900; - } - if (month < 1 || month > 12) { - ShowMessage("Please give a correct value for the month (from 1 to 12).\n"); - ladmin_log("Invalid month for the date ('timeset' command).\n"); - return 102; - } - month = month - 1; - if (day < 1 || day > 31) { - ShowMessage("Please give a correct value for the day (from 1 to 31).\n"); - ladmin_log("Invalid day for the date ('timeset' command).\n"); - return 102; - } - if (((month == 3 || month == 5 || month == 8 || month == 10) && day > 30) || - (month == 1 && day > 29)) { - ShowMessage("Please give a correct value for a day of this month (%d).\n", month); - ladmin_log("Invalid day for this month ('timeset' command).\n"); - return 102; - } - if (hour < 0 || hour > 23) { - ShowMessage("Please give a correct value for the hour (from 0 to 23).\n"); - ladmin_log("Invalid hour for the time ('timeset' command).\n"); - return 102; - } - if (minute < 0 || minute > 59) { - ShowMessage("Please give a correct value for the minutes (from 0 to 59).\n"); - ladmin_log("Invalid minute for the time ('timeset' command).\n"); - return 102; - } - if (second < 0 || second > 59) { - ShowMessage("Please give a correct value for the seconds (from 0 to 59).\n"); - ladmin_log("Invalid second for the time ('timeset' command).\n"); - return 102; - } - tmtime->tm_year = year; - tmtime->tm_mon = month; - tmtime->tm_mday = day; - tmtime->tm_hour = hour; - tmtime->tm_min = minute; - tmtime->tm_sec = second; - tmtime->tm_isdst = -1; // -1: no winter/summer time modification - expiration_time = mktime(tmtime); - if (expiration_time == -1) { - ShowMessage("Invalid date.\n"); - ShowMessage("Please add 0 or a date and a time (format: 0 or yyyy/mm/dd hh:mm:ss).\n"); - ladmin_log("Invalid date. ('timeset' command).\n"); - return 102; - } - } - - ladmin_log("Request to login-server to set a time limit.\n"); - - WFIFOW(login_fd,0) = 0x7948; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOL(login_fd,26) = (int)expiration_time; - WFIFOSET(login_fd,30); - bytes_to_read = 1; - - return 0; -} - -//------------------------------------------------------------------------------ -// Sub-function: Asking to displaying information about an account (by its name) -//------------------------------------------------------------------------------ -int whoaccount(char* param) -{ - char name[1023]; - WFIFOHEAD(login_fd,26); - - memset(name, '\0', sizeof(name)); - - if (strlen(param) == 0 || - (sscanf(param, "\"%[^\"]\"", name) < 1 && - sscanf(param, "'%[^']'", name) < 1 && - sscanf(param, "%[^\r\n]", name) < 1) || - strlen(name) == 0) - { - ShowMessage("Please input an account name.\n"); - ShowMessage(" who testname\n"); - ladmin_log("No name was given to found the account.\n"); - return 136; - } - if (verify_accountname(name) == 0) { - return 102; - } - - ladmin_log("Request to login-server to obtain information about an account (by its name).\n"); - - WFIFOW(login_fd,0) = 0x7952; - memcpy(WFIFOP(login_fd,2), name, 24); - WFIFOSET(login_fd,26); - bytes_to_read = 1; - - return 0; -} - -//-------------------------------------------------------- -// Sub-function: Asking of the version of the login-server -//-------------------------------------------------------- -int checkloginversion(void) -{ - WFIFOHEAD(login_fd,2); - ladmin_log("Request to login-server to obtain its version.\n"); - - WFIFOW(login_fd,0) = 0x7530; - WFIFOSET(login_fd,2); - bytes_to_read = 1; - - return 0; -} - -//--------------------------------------------- -// Prompt function -// this function wait until user type a command -// and analyse the command. -//--------------------------------------------- -int prompt(void) -{ - int i, j; - char buf[1024]; - char *p; - - // while we don't wait new packets - while (bytes_to_read == 0) { - // for help with the console colors look here: - // http://www.edoceo.com/liberum/?doc=printf-with-color - // some code explanation (used here): - // \033[2J : clear screen and go up/left (0, 0 position) - // \033[K : clear line from actual position to end of the line - // \033[0m : reset color parameter - // \033[1m : use bold for font - ShowMessage("\n"); - ShowMessage("\033[32mTo list the commands, type 'enter'.\033[0m\n"); - ShowMessage("\033[0;36mLadmin-> \033[0m"); - ShowMessage("\033[1m"); - fflush(stdout); - - // get command and parameter - memset(buf, '\0', sizeof(buf)); - fflush(stdin); - fgets(buf, sizeof(buf), stdin); - - ShowMessage("\033[0m"); - fflush(stdout); - - // remove final \n - if((p = strrchr(buf, '\n')) != NULL) - p[0] = '\0'; - // remove all control char - for (i = 0; buf[i]; i++) - if (buf[i] < 32) { - // remove cursor control. - if (buf[i] == 27 && buf[i+1] == '[' && - (buf[i+2] == 'H' || // home position (cursor) - buf[i+2] == 'J' || // clear screen - buf[i+2] == 'A' || // up 1 line - buf[i+2] == 'B' || // down 1 line - buf[i+2] == 'C' || // right 1 position - buf[i+2] == 'D' || // left 1 position - buf[i+2] == 'G')) { // center cursor (windows) - for (j = i; buf[j]; j++) - buf[j] = buf[j+3]; - } else if (buf[i] == 27 && buf[i+1] == '[' && buf[i+2] == '2' && buf[i+3] == 'J') { // clear screen - for (j = i; buf[j]; j++) - buf[j] = buf[j+4]; - } else if (buf[i] == 27 && buf[i+1] == '[' && buf[i+3] == '~' && - (buf[i+2] == '1' || // home (windows) - buf[i+2] == '2' || // insert (windows) - buf[i+2] == '3' || // del (windows) - buf[i+2] == '4' || // end (windows) - buf[i+2] == '5' || // pgup (windows) - buf[i+2] == '6')) { // pgdown (windows) - for (j = i; buf[j]; j++) - buf[j] = buf[j+4]; - } else { - // remove other control char. - for (j = i; buf[j]; j++) - buf[j] = buf[j+1]; - } - i--; - } - - // extract command name and parameters - memset(command, '\0', sizeof(command)); - memset(parameters, '\0', sizeof(parameters)); - sscanf(buf, "%1023s %[^\n]", command, parameters); - command[1023] = '\0'; - parameters[1023] = '\0'; - - // lowercase for command line - for (i = 0; command[i]; i++) - command[i] = TOLOWER(command[i]); - - if (command[0] == '?' || strlen(command) == 0) { - strcpy(buf, "help"); - strcpy(command, "help"); - } - - // Analyse of the command - check_command(command); // give complete name to the command - - if (strlen(parameters) == 0) { - ladmin_log("Command: '%s' (without parameters)\n", command, parameters); - } else { - ladmin_log("Command: '%s', parameters: '%s'\n", command, parameters); - } - - // Analyse of the command -// help - if (strcmp(command, "help") == 0 ) { - display_help(parameters); -// general commands - } else if (strcmp(command, "add") == 0) { - addaccount(parameters, 0); // 0: no email - } else if (strcmp(command, "ban") == 0) { - banaccount(parameters); - } else if (strcmp(command, "banadd") == 0) { - banaddaccount(parameters); - } else if (strcmp(command, "banset") == 0) { - bansetaccount(parameters); - } else if (strcmp(command, "block") == 0) { - blockaccount(parameters); - } else if (strcmp(command, "check") == 0) { - checkaccount(parameters); - } else if (strcmp(command, "create") == 0) { - addaccount(parameters, 1); // 1: with email - } else if (strcmp(command, "delete") == 0) { - delaccount(parameters); - } else if (strcmp(command, "email") == 0) { - changeemail(parameters); - } else if (strcmp(command, "getcount") == 0) { - getlogincount(); - } else if (strcmp(command, "gm") == 0) { - changegmlevel(parameters); - } else if (strcmp(command, "id") == 0) { - idaccount(parameters); - } else if (strcmp(command, "info") == 0) { - infoaccount(atoi(parameters)); - } else if (strcmp(command, "kami") == 0) { - sendbroadcast(0, parameters); // flag for normal - } else if (strcmp(command, "kamib") == 0) { - sendbroadcast(0x10, parameters); // flag for blue - } else if (strcmp(command, "list") == 0) { - listaccount(parameters, 0); // 0: to list all - } else if (strcmp(command, "listban") == 0) { - listaccount(parameters, 3); // 3: to list only accounts with state or bannished - } else if (strcmp(command, "listgm") == 0) { - listaccount(parameters, 1); // 1: to list only GM - } else if (strcmp(command, "listok") == 0) { - listaccount(parameters, 4); // 4: to list only accounts without state and not bannished - } else if (strcmp(command, "memo") == 0) { - changememo(parameters); - } else if (strcmp(command, "name") == 0) { - nameaccount(atoi(parameters)); - } else if (strcmp(command, "password") == 0) { - changepasswd(parameters); - } else if (strcmp(command, "reloadgm") == 0) { - reloadGM(); - } else if (strcmp(command, "search") == 0) { // no regex in C version - listaccount(parameters, 2); // 2: to list with pattern - } else if (strcmp(command, "sex") == 0) { - changesex(parameters); - } else if (strcmp(command, "state") == 0) { - changestate(parameters); - } else if (strcmp(command, "timeadd") == 0) { - timeaddaccount(parameters); - } else if (strcmp(command, "timeset") == 0) { - timesetaccount(parameters); - } else if (strcmp(command, "unban") == 0) { - unbanaccount(parameters); - } else if (strcmp(command, "unblock") == 0) { - unblockaccount(parameters); - } else if (strcmp(command, "version") == 0) { - checkloginversion(); - } else if (strcmp(command, "who") == 0) { - whoaccount(parameters); -// quit - } else if (strcmp(command, "quit") == 0 || - strcmp(command, "exit") == 0 || - strcmp(command, "end") == 0) { - ShowMessage("Bye.\n"); - exit(EXIT_SUCCESS); -// unknown command - } else { - ShowMessage("Unknown command [%s].\n", buf); - ladmin_log("Unknown command [%s].\n", buf); - } - } - - return 0; -} - -//------------------------------------------------------------- -// Function: Parse receiving informations from the login-server -//------------------------------------------------------------- -int parse_fromlogin(int fd) -{ - struct char_session_data *sd; - int id; - RFIFOHEAD(fd); - if (session[fd]->flag.eof) { - ShowMessage("Impossible to have a connection with the login-server [%s:%d] !\n", loginserverip, loginserverport); - ladmin_log("Impossible to have a connection with the login-server [%s:%d] !\n", loginserverip, loginserverport); - do_close(fd); - exit(EXIT_FAILURE); - } - -// ShowMessage("parse_fromlogin : %d %d %d\n", fd, RFIFOREST(fd), RFIFOW(fd,0)); - sd = (struct char_session_data*)session[fd]->session_data; - - while(RFIFOREST(fd) >= 2) { - switch(RFIFOW(fd,0)) { - case 0x7919: // answer of a connection request - if (RFIFOREST(fd) < 3) - return 0; - if (RFIFOB(fd,2) != 0) { - ShowMessage("Error at login:\n"); - ShowMessage(" - incorrect password,\n"); - ShowMessage(" - administration system not activated, or\n"); - ShowMessage(" - unauthorised IP.\n"); - ladmin_log("Error at login: incorrect password, administration system not activated, or unauthorised IP.\n"); - set_eof(fd); - //bytes_to_read = 1; // not stop at prompt - return 0; - } else { - ShowMessage("Established connection.\n"); - ladmin_log("Established connection.\n"); - ShowMessage("Reading of the version of the login-server...\n"); - ladmin_log("Reading of the version of the login-server...\n"); - //bytes_to_read = 1; // unchanged - checkloginversion(); - } - RFIFOSKIP(fd,3); - break; - - case 0x01dc: // answer of a coding key request - if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) - return 0; - { - char md5str[64] = "", md5bin[32]; - WFIFOHEAD(login_fd, 20); - if (passenc == 1) { - strncpy(md5str, (const char*)RFIFOP(fd,4), RFIFOW(fd,2) - 4); - strcat(md5str, loginserveradminpassword); - } else if (passenc == 2) { - strncpy(md5str, loginserveradminpassword, sizeof(loginserveradminpassword)); - strcat(md5str, (const char*)RFIFOP(fd,4)); - } - MD5_Binary(md5str, md5bin); - WFIFOW(login_fd,0) = 0x7918; // Request for administation login (encrypted password) - WFIFOW(login_fd,2) = passenc; // Encrypted type - memcpy(WFIFOP(login_fd,4), md5bin, 16); - WFIFOSET(login_fd,20); - ShowMessage("Receiving of the MD5 key.\n"); - ladmin_log("Receiving of the MD5 key.\n"); - ShowMessage("Sending of the encrypted password...\n"); - ladmin_log("Sending of the encrypted password...\n"); - } - bytes_to_read = 1; - RFIFOSKIP(fd,RFIFOW(fd,2)); - break; - - case 0x7531: // Displaying of the version of the login-server - if (RFIFOREST(fd) < 10) - return 0; - ShowMessage(" Login-Server [%s:%d]\n", loginserverip, loginserverport); - if (((int)RFIFOB(login_fd,5)) == 0) { - ShowMessage(" eAthena version stable-%d.%d", (int)RFIFOB(login_fd,2), (int)RFIFOB(login_fd,3)); - } else { - ShowMessage(" eAthena version dev-%d.%d", (int)RFIFOB(login_fd,2), (int)RFIFOB(login_fd,3)); - } - if (((int)RFIFOB(login_fd,4)) == 0) - ShowMessage(" revision %d", (int)RFIFOB(login_fd,4)); - if (((int)RFIFOB(login_fd,6)) == 0) - ShowMessage("%d.\n", RFIFOW(login_fd,8)); - else - ShowMessage("-mod%d.\n", RFIFOW(login_fd,8)); - bytes_to_read = 0; - RFIFOSKIP(fd,10); - break; - - case 0x7921: // Displaying of the list of accounts - if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) - return 0; - if (RFIFOW(fd,2) < 5) { - ladmin_log(" Receiving of a void accounts list.\n"); - if (list_count == 0) - ShowMessage("No account found.\n"); - else if (list_count == 1) - ShowMessage("1 account found.\n"); - else - ShowMessage("%d accounts found.\n", list_count); - bytes_to_read = 0; - } else { - int i; - WFIFOHEAD(login_fd,10); - ladmin_log(" Receiving of a accounts list.\n"); - for(i = 4; i < RFIFOW(fd,2); i += 38) { - int j; - char userid[24]; - char lower_userid[24]; - memcpy(userid, RFIFOP(fd,i + 5), sizeof(userid)); - userid[sizeof(userid)-1] = '\0'; - memset(lower_userid, '\0', sizeof(lower_userid)); - for (j = 0; userid[j]; j++) - lower_userid[j] = TOLOWER(userid[j]); - list_first = RFIFOL(fd,i) + 1; - // here are checks... - if (list_type == 0 || - (list_type == 1 && RFIFOB(fd,i+4) > 0) || - (list_type == 2 && strstr(lower_userid, parameters) != NULL) || - (list_type == 3 && RFIFOL(fd,i+34) != 0) || - (list_type == 4 && RFIFOL(fd,i+34) == 0)) { - ShowMessage("%10d ", (int)RFIFOL(fd,i)); - if (RFIFOB(fd,i+4) == 0) - ShowMessage(" "); - else - ShowMessage("%2d ", (int)RFIFOB(fd,i+4)); - ShowMessage("%-24s", userid); - if (RFIFOB(fd,i+29) == 0) - ShowMessage("%-5s ", "Femal"); - else if (RFIFOB(fd,i+29) == 1) - ShowMessage("%-5s ", "Male"); - else - ShowMessage("%-5s ", "Servr"); - ShowMessage("%6d ", (int)RFIFOL(fd,i+30)); - switch(RFIFOL(fd,i+34)) { - case 0: - ShowMessage("%-27s\n", "Account OK"); - break; - case 1: - ShowMessage("%-27s\n", "Unregistered ID"); - break; - case 2: - ShowMessage("%-27s\n", "Incorrect Password"); - break; - case 3: - ShowMessage("%-27s\n", "This ID is expired"); - break; - case 4: - ShowMessage("%-27s\n", "Rejected from Server"); - break; - case 5: - ShowMessage("%-27s\n", "Blocked by the GM Team"); // You have been blocked by the GM Team - break; - case 6: - ShowMessage("%-27s\n", "Your EXE file is too old"); // Your Game's EXE file is not the latest version - break; - case 7: - ShowMessage("%-27s\n", "Banishement or"); - ShowMessage(" Prohibited to login until...\n"); // You are Prohibited to log in until %s - break; - case 8: - ShowMessage("%-27s\n", "Server is over populated"); - break; - case 9: - ShowMessage("%-27s\n", "No MSG"); - break; - default: // 100 - ShowMessage("%-27s\n", "This ID is totally erased"); // This ID has been totally erased - break; - } - list_count++; - } - } - // asking of the following acounts - ladmin_log("Request to login-server to obtain the list of accounts from %d to %d (complement).\n", list_first, list_last); - WFIFOW(login_fd,0) = 0x7920; - WFIFOL(login_fd,2) = list_first; - WFIFOL(login_fd,6) = list_last; - WFIFOSET(login_fd,10); - bytes_to_read = 1; - } - RFIFOSKIP(fd,RFIFOW(fd,2)); - break; - - case 0x7931: // Answer of login-server about an account creation - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id != -1) { - ShowMessage("Account [%s] creation failed. Return code %d.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s] creation failed. Return code %d.\n", RFIFOP(fd,6), id); - } else { - ShowMessage("Account [%s] is successfully created.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] is successfully created.\n", RFIFOP(fd,6)); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7933: // Answer of login-server about an account deletion - if (RFIFOREST(fd) < 30) - return 0; - if (RFIFOL(fd,2) == -1) { - ShowMessage("Account [%s] deletion failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] deletion failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] is successfully DELETED.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - ladmin_log("Account [%s][id: %d] is successfully DELETED.\n", RFIFOP(fd,6), RFIFOL(fd,2)); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7935: // answer of the change of an account password - if (RFIFOREST(fd) < 30) - return 0; - if (RFIFOL(fd,2) == -1) { - ShowMessage("Account [%s] password changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account password changing failed. The compte [%s] doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] password successfully changed.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - ladmin_log("Account [%s][id: %d] password successfully changed.\n", RFIFOP(fd,6), (int)RFIFOL(fd,2)); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7937: // answer of the change of an account state - if (RFIFOREST(fd) < 34) - return 0; - if (RFIFOL(fd,2) == -1) { - ShowMessage("Account [%s] state changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] state changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - char tmpstr[256]; - sprintf(tmpstr, "Account [%s] state successfully changed in [", RFIFOP(fd,6)); - switch(RFIFOL(fd,30)) { - case 0: - strcat(tmpstr, "0: Account OK"); - case 1: - strcat(tmpstr, "1: Unregistered ID"); - break; - case 2: - strcat(tmpstr, "2: Incorrect Password"); - break; - case 3: - strcat(tmpstr, "3: This ID is expired"); - break; - case 4: - strcat(tmpstr, "4: Rejected from Server"); - break; - case 5: - strcat(tmpstr, "5: You have been blocked by the GM Team"); - break; - case 6: - strcat(tmpstr, "6: [Your Game's EXE file is not the latest version"); - break; - case 7: - strcat(tmpstr, "7: You are Prohibited to log in until..."); - break; - case 8: - strcat(tmpstr, "8: Server is jammed due to over populated"); - break; - case 9: - strcat(tmpstr, "9: No MSG"); - break; - default: // 100 - strcat(tmpstr, "100: This ID is totally erased"); - break; - } - strcat(tmpstr, "]"); - ShowMessage("%s\n", tmpstr); - ladmin_log("%s\n", tmpstr); - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x7939: // answer of the number of online players - if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) - return 0; - { - // Get length of the received packet - int i; - char name[20]; - ladmin_log(" Receiving of the number of online players.\n"); - // Read information of the servers - if (RFIFOW(fd,2) < 5) { - ShowMessage(" No server is connected to the login-server.\n"); - } else { - ShowMessage(" Number of online players (server: number).\n"); - // Displaying of result - for(i = 4; i < RFIFOW(fd,2); i += 32) { - memcpy(name, RFIFOP(fd,i+6), sizeof(name)); - name[sizeof(name) - 1] = '\0'; - ShowMessage(" %-20s : %5d\n", name, RFIFOW(fd,i+26)); - } - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,RFIFOW(fd,2)); - break; - - case 0x793b: // answer of the check of a password - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("The account [%s] doesn't exist or the password is incorrect.\n", RFIFOP(fd,6)); - ladmin_log("The account [%s] doesn't exist or the password is incorrect.\n", RFIFOP(fd,6)); - } else { - ShowMessage("The proposed password is correct for the account [%s][id: %d].\n", RFIFOP(fd,6), id); - ladmin_log("The proposed password is correct for the account [%s][id: %d].\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x793d: // answer of the change of an account sex - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] sex changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist or the sex is already the good sex.\n", RFIFOP(fd,6)); - ladmin_log("Account sex changing failed. The compte [%s] doesn't exist or the sex is already the good sex.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] sex successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] sex successfully changed.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x793f: // answer of the change of an account GM level - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] GM level changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist, the GM level is already the good GM level\n", RFIFOP(fd,6)); - ShowMessage("or it's impossible to modify the GM accounts file.\n"); - ladmin_log("Account GM level changing failed. The compte [%s] doesn't exist, the GM level is already the good sex or it's impossible to modify the GM accounts file.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] GM level successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] GM level successfully changed.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7941: // answer of the change of an account email - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] e-mail changing failed.\n", RFIFOP(fd,6)); - ShowMessage("Account [%s] doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account e-mail changing failed. The compte [%s] doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] e-mail successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] e-mail successfully changed.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7943: // answer of the change of an account memo - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] memo changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] memo changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("Account [%s][id: %d] memo successfully changed.\n", RFIFOP(fd,6), id); - ladmin_log("Account [%s][id: %d] memo successfully changed.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7945: // answer of an account id search - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Unable to find the account [%s] id. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Unable to find the account [%s] id. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - ShowMessage("The account [%s] have the id: %d.\n", RFIFOP(fd,6), id); - ladmin_log("The account [%s] have the id: %d.\n", RFIFOP(fd,6), id); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7947: // answer of an account name search - if (RFIFOREST(fd) < 30) - return 0; - id = RFIFOL(fd,2); - if (strcmp((const char*)RFIFOP(fd,6), "") == 0) { - ShowMessage("Unable to find the account [%d] name. Account doesn't exist.\n", id); - ladmin_log("Unable to find the account [%d] name. Account doesn't exist.\n", id); - } else { - ShowMessage("The account [id: %d] have the name: %s.\n", id, RFIFOP(fd,6)); - ladmin_log("The account [id: %d] have the name: %s.\n", id, RFIFOP(fd,6)); - } - bytes_to_read = 0; - RFIFOSKIP(fd,30); - break; - - case 0x7949: // answer of an account validity limit set - if (RFIFOREST(fd) < 34) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - time_t timestamp = RFIFOL(fd,30); - if (timestamp == 0) { - ShowMessage("Validity Limit of the account [%s][id: %d] successfully changed to [unlimited].\n", RFIFOP(fd,6), id); - ladmin_log("Validity Limit of the account [%s][id: %d] successfully changed to [unlimited].\n", RFIFOP(fd,6), id); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(×tamp)); - ShowMessage("Validity Limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Validity Limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x794b: // answer of an account ban set - if (RFIFOREST(fd) < 34) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - time_t timestamp = RFIFOL(fd,30); - if (timestamp == 0) { - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(×tamp)); - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x794d: // answer of an account ban date/time changing - if (RFIFOREST(fd) < 34) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] final date of banishment changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - time_t timestamp = RFIFOL(fd,30); - if (timestamp == 0) { - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to [unbanished].\n", RFIFOP(fd,6), id); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(×tamp)); - ShowMessage("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Final date of banishment of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x794f: // answer of a broadcast - if (RFIFOREST(fd) < 4) - return 0; - if (RFIFOW(fd,2) == (unsigned short)-1) { - ShowMessage("Message sending failed. No online char-server.\n"); - ladmin_log("Message sending failed. No online char-server.\n"); - } else { - ShowMessage("Message successfully sended to login-server.\n"); - ladmin_log("Message successfully sended to login-server.\n"); - } - bytes_to_read = 0; - RFIFOSKIP(fd,4); - break; - - case 0x7951: // answer of an account validity limit changing - if (RFIFOREST(fd) < 34) - return 0; - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - ladmin_log("Account [%s] validity limit changing failed. Account doesn't exist.\n", RFIFOP(fd,6)); - } else { - time_t timestamp = RFIFOL(fd,30); - if (timestamp == 0) { - ShowMessage("Validity limit of the account [%s][id: %d] unchanged.\n", RFIFOP(fd,6), id); - ShowMessage("The account have an unlimited validity limit or\n"); - ShowMessage("the changing is impossible with the proposed adjustments.\n"); - ladmin_log("Validity limit of the account [%s][id: %d] unchanged. The account have an unlimited validity limit or the changing is impossible with the proposed adjustments.\n", RFIFOP(fd,6), id); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(×tamp)); - ShowMessage("Validity limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - ladmin_log("Validity limit of the account [%s][id: %d] successfully changed to be until %s.\n", RFIFOP(fd,6), id, tmpstr); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,34); - break; - - case 0x7953: // answer of a request about informations of an account (by account name/id) - if (RFIFOREST(fd) < 150 || RFIFOREST(fd) < (size_t)(150 + RFIFOW(fd,148))) - return 0; - { - char userid[24], error_message[20], lastlogin[24], last_ip[16], email[40], memo[255]; - time_t unban_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban) - time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited) - safestrncpy(userid, (char*)RFIFOP(fd,7), sizeof(userid)); - safestrncpy(error_message, (char*)RFIFOP(fd,40), sizeof(error_message)); - safestrncpy(lastlogin, (char*)RFIFOP(fd,60), sizeof(lastlogin)); - safestrncpy(last_ip, (char*)RFIFOP(fd,84), sizeof(last_ip)); - safestrncpy(email, (char*)RFIFOP(fd,100), sizeof(email)); - expiration_time = (time_t)RFIFOL(fd,140); - unban_time = (time_t)RFIFOL(fd,144); - memset(memo, '\0', sizeof(memo)); - safestrncpy(memo, (const char*)RFIFOP(fd,150), RFIFOW(fd,148)); - id = RFIFOL(fd,2); - if (id == -1) { - ShowMessage("Unabled to find the account [%s]. Account doesn't exist.\n", parameters); - ladmin_log("Unabled to find the account [%s]. Account doesn't exist.\n", parameters); - } else if (strlen(userid) == 0) { - ShowMessage("Unabled to find the account [id: %s]. Account doesn't exist.\n", parameters); - ladmin_log("Unabled to find the account [id: %s]. Account doesn't exist.\n", parameters); - } else { - ladmin_log("Receiving information about an account.\n"); - ShowMessage("The account is set with:\n"); - if (RFIFOB(fd,6) == 0) { - ShowMessage(" Id: %d (non-GM)\n", id); - } else { - ShowMessage(" Id: %d (GM level %d)\n", id, (int)RFIFOB(fd,6)); - } - ShowMessage(" Name: '%s'\n", userid); - if (RFIFOB(fd,31) == 0) - ShowMessage(" Sex: Female\n"); - else if (RFIFOB(fd,31) == 1) - ShowMessage(" Sex: Male\n"); - else - ShowMessage(" Sex: Server\n"); - ShowMessage(" E-mail: %s\n", email); - switch(RFIFOL(fd,36)) { - case 0: ShowMessage(" State: 0 [Account OK]\n"); break; - case 1: ShowMessage(" State: 1 [Unregistered ID]\n"); break; - case 2: ShowMessage(" State: 2 [Incorrect Password]\n"); break; - case 3: ShowMessage(" State: 3 [This ID is expired]\n"); break; - case 4: ShowMessage(" State: 4 [Rejected from Server]\n"); break; - case 5: ShowMessage(" State: 5 [You have been blocked by the GM Team]\n"); break; - case 6: ShowMessage(" State: 6 [Your Game's EXE file is not the latest version]\n"); break; - case 7: ShowMessage(" State: 7 [You are Prohibited to log in until %s]\n", error_message); break; - case 8: ShowMessage(" State: 8 [Server is jammed due to over populated]\n"); break; - case 9: ShowMessage(" State: 9 [No MSG]\n"); break; - default: // 100 - ShowMessage(" State: %d [This ID is totally erased]\n", (int)RFIFOL(fd,36)); - break; - } - if (unban_time == 0) { - ShowMessage(" Banishment: not banished.\n"); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(&unban_time)); - ShowMessage(" Banishment: until %s.\n", tmpstr); - } - if (RFIFOL(fd,32) > 1) - ShowMessage(" Count: %d connections.\n", (int)RFIFOL(fd,32)); - else - ShowMessage(" Count: %d connection.\n", (int)RFIFOL(fd,32)); - ShowMessage(" Last connection at: %s (ip: %s)\n", lastlogin, last_ip); - if (expiration_time == 0) { - ShowMessage(" Validity limit: unlimited.\n"); - } else { - char tmpstr[128]; - strftime(tmpstr, 24, date_format, localtime(&expiration_time)); - ShowMessage(" Validity limit: until %s.\n", tmpstr); - } - ShowMessage(" Memo: '%s'\n", memo); - } - } - bytes_to_read = 0; - RFIFOSKIP(fd,150 + RFIFOW(fd,148)); - break; - - default: - ShowMessage("Remote administration has been disconnected (unknown packet).\n"); - ladmin_log("'End of connection, unknown packet.\n"); - set_eof(fd); - return 0; - } - } - - // if we don't wait new packets, do the prompt - prompt(); - - return 0; -} - -//------------------------------------ -// Function to connect to login-server -//------------------------------------ -int Connect_login_server(void) -{ - ShowMessage("Attempt to connect to login-server...\n"); - ladmin_log("Attempt to connect to login-server...\n"); - - login_fd = make_connection(login_ip, loginserverport); - if (login_fd == -1) - { //Might not be the most elegant way to handle this, but I've never used ladmin so I dunno what else you could do. [Skotlex] - ShowMessage("Error: Failed to connect to Login Server\n"); - exit(EXIT_FAILURE); - } - session[login_fd]->flag.server = 1; - if (passenc == 0) { - WFIFOHEAD(login_fd,28); - WFIFOW(login_fd,0) = 0x7918; // Request for administation login - WFIFOW(login_fd,2) = 0; // no encrypted - memcpy(WFIFOP(login_fd,4), loginserveradminpassword, 24); - WFIFOSET(login_fd,28); - bytes_to_read = 1; - ShowMessage("Sending of the password...\n"); - ladmin_log("Sending of the password...\n"); - } else { - WFIFOHEAD(login_fd,2); - WFIFOW(login_fd,0) = 0x791a; // Sending request about the coding key - WFIFOSET(login_fd,2); - bytes_to_read = 1; - ShowMessage("Request about the MD5 key...\n"); - ladmin_log("Request about the MD5 key...\n"); - } - - return 0; -} - -// sends a ping packet to login server (will receive pong 0x2718) -int ping_login_server(int tid, unsigned int tick, int id, intptr data) -{ - if (login_fd > 0 && session[login_fd] != NULL) - { - WFIFOHEAD(login_fd,2); - WFIFOW(login_fd,0) = 0x2719; - WFIFOSET(login_fd,2); - } - return 0; -} - -//----------------------------------- -// Reading general configuration file -//----------------------------------- -int ladmin_config_read(const char *cfgName) -{ - char line[1024], w1[1024], w2[1024]; - FILE *fp; - - fp = fopen(cfgName, "r"); - if (fp == NULL) { - ShowMessage("\033[0mConfiguration file (%s) not found.\n", cfgName); - return 1; - } - - ShowMessage("\033[0m---Start reading of Ladmin configuration file (%s)\n", cfgName); - while(fgets(line, sizeof(line), fp)) - { - if (line[0] == '/' && line[1] == '/') - continue; - - if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) == 2) { - remove_control_chars(w1); - remove_control_chars(w2); - - if(strcmpi(w1,"login_ip")==0) { - uint32 ipl = host2ip(w2); - if (ipl != 0) { - ip2str(ipl, loginserverip); - ShowMessage("Login server IP address: %s -> %s\n", w2, loginserverip); - } else - memcpy(loginserverip, w2, 16); - } else if (strcmpi(w1, "login_port") == 0) { - loginserverport = atoi(w2); - } else if (strcmpi(w1, "admin_pass") == 0) { - strncpy(loginserveradminpassword, w2, sizeof(loginserveradminpassword)); - loginserveradminpassword[sizeof(loginserveradminpassword)-1] = '\0'; - } else if (strcmpi(w1, "passenc") == 0) { - passenc = atoi(w2); - if (passenc < 0 || passenc > 2) - passenc = 0; - } else if (strcmpi(w1, "ladmin_log_filename") == 0) { - strncpy(ladmin_log_filename, w2, sizeof(ladmin_log_filename)); - ladmin_log_filename[sizeof(ladmin_log_filename)-1] = '\0'; - } else if (strcmpi(w1, "date_format") == 0) { - strncpy(date_format, w2, sizeof(date_format)); - } else if(strcmpi(w1,"stdout_with_ansisequence") == 0) { - stdout_with_ansisequence = config_switch(w2); - } else if (strcmpi(w1, "import") == 0) { - ladmin_config_read(w2); - } - } - } - fclose(fp); - - login_ip = str2ip(loginserverip); - - ShowMessage("---End reading of Ladmin configuration file.\n"); - - return 0; -} - -//------------------------------ -// Function called when the server -// has received a crash signal. -//------------------------------ -void do_abort(void) -{ -} - -//-------------------------------------- -// Function called at exit of the server -//-------------------------------------- -void do_final(void) -{ - if (already_exit_function == 0) { - - ShowMessage("\033[0m----End of Ladmin (normal end with closing of all files).\n"); - ladmin_log("----End of Ladmin (normal end with closing of all files).\n"); - - already_exit_function = 1; - do_close(login_fd); - } -} - -//------------------------ -// Main function of ladmin -//------------------------ -int do_init(int argc, char **argv) -{ - int next; - socket_init(); - - // read ladmin configuration - ladmin_config_read((argc > 1) ? argv[1] : LADMIN_CONF_NAME); - - ladmin_log(""); - ladmin_log("Configuration file readed.\n"); - - srand(time(NULL)); - - set_defaultparse(parse_fromlogin); - - ShowMessage("EAthena login-server administration tool.\n"); - ShowMessage("(for eAthena version %d.%d.%d.)\n", ATHENA_MAJOR_VERSION, ATHENA_MINOR_VERSION, ATHENA_REVISION); - - ladmin_log("Ladmin is ready.\n"); - ShowMessage("Ladmin is \033[1;32mready\033[0m.\n\n"); - - Connect_login_server(); - - // keep the char-login connection alive - add_timer_func_list(ping_login_server, "ping_login_server"); - add_timer_interval(gettick() + 1000, ping_login_server, 0, 0, ((int)stall_time-2) * 1000); - - // minimalist core doesn't have sockets parsing, - // so we have to do this ourselves - while (runflag) { - next = do_timer(gettick_nocache()); - do_sockets(next); - } - - return 0; -} diff --git a/src/ladmin/ladmin.h b/src/ladmin/ladmin.h deleted file mode 100644 index 824407af72..0000000000 --- a/src/ladmin/ladmin.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#ifndef _LADMIN_H_ -#define _LADMIN_H_ - -#define LADMIN_CONF_NAME "conf/ladmin_athena.conf" - -#endif /* _LADMIN_H_ */ diff --git a/src/login/Makefile.in b/src/login/Makefile.in index 611ca385bd..c153d95b3d 100644 --- a/src/login/Makefile.in +++ b/src/login/Makefile.in @@ -13,7 +13,7 @@ COMMON_H = ../common/core.h ../common/socket.h ../common/timer.h ../common/mmo.h COMMON_SQL_OBJ = ../common/obj_sql/sql.o COMMON_SQL_H = ../common/sql.h -LOGIN_OBJ = login.o admin.o +LOGIN_OBJ = login.o LOGIN_TXT_OBJ = $(LOGIN_OBJ:%=obj_txt/%) \ obj_txt/account_txt.o obj_txt/ipban_txt.o obj_txt/loginlog_txt.o LOGIN_SQL_OBJ = $(LOGIN_OBJ:%=obj_sql/%) \ diff --git a/src/login/account.h b/src/login/account.h index 4cc9b353bf..650f2c6611 100644 --- a/src/login/account.h +++ b/src/login/account.h @@ -41,7 +41,7 @@ AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_4)(void); struct mmo_account { int account_id; - char userid[24]; + char userid[NAME_LENGTH]; char pass[32+1]; // 23+1 for plaintext, 32+1 for md5-ed passwords char sex; // gender (M/F/S) char email[40]; // e-mail (by default: a@a.com) @@ -52,6 +52,7 @@ struct mmo_account unsigned int logincount;// number of successful auth attempts char lastlogin[24]; // date+time of last successful login char last_ip[16]; // save of last IP of connection + char birthdate[10+1]; // assigned birth date (format: YYYY-MM-DD, default: 0000-00-00) int account_reg2_num; struct global_reg account_reg2[ACCOUNT_REG2_NUM]; // account script variables (stored on login server) }; diff --git a/src/login/account_sql.c b/src/login/account_sql.c index c2f4a9965f..e3e725efaa 100644 --- a/src/login/account_sql.c +++ b/src/login/account_sql.c @@ -522,7 +522,7 @@ static bool mmo_auth_fromsql(AccountDB_SQL* db, struct mmo_account* acc, int acc // retrieve login entry for the specified account if( SQL_ERROR == Sql_Query(sql_handle, - "SELECT `account_id`,`userid`,`user_pass`,`sex`,`email`,`level`,`state`,`unban_time`,`expiration_time`,`logincount`,`lastlogin`,`last_ip` FROM `%s` WHERE `account_id` = %d", + "SELECT `account_id`,`userid`,`user_pass`,`sex`,`email`,`level`,`state`,`unban_time`,`expiration_time`,`logincount`,`lastlogin`,`last_ip`,`birthdate` FROM `%s` WHERE `account_id` = %d", db->account_db, account_id ) ) { Sql_ShowDebug(sql_handle); @@ -547,6 +547,7 @@ static bool mmo_auth_fromsql(AccountDB_SQL* db, struct mmo_account* acc, int acc Sql_GetData(sql_handle, 9, &data, NULL); acc->logincount = strtoul(data, NULL, 10); Sql_GetData(sql_handle, 10, &data, NULL); safestrncpy(acc->lastlogin, data, sizeof(acc->lastlogin)); Sql_GetData(sql_handle, 11, &data, NULL); safestrncpy(acc->last_ip, data, sizeof(acc->last_ip)); + Sql_GetData(sql_handle, 12, &data, NULL); safestrncpy(acc->birthdate, data, sizeof(acc->birthdate)); Sql_FreeResult(sql_handle); @@ -595,7 +596,7 @@ static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, boo if( is_new ) {// insert into account table if( SQL_SUCCESS != SqlStmt_Prepare(stmt, - "INSERT INTO `%s` (`account_id`, `userid`, `user_pass`, `sex`, `email`, `level`, `state`, `unban_time`, `expiration_time`, `logincount`, `lastlogin`, `last_ip`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + "INSERT INTO `%s` (`account_id`, `userid`, `user_pass`, `sex`, `email`, `level`, `state`, `unban_time`, `expiration_time`, `logincount`, `lastlogin`, `last_ip`, `birthdate`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", db->account_db) || SQL_SUCCESS != SqlStmt_BindParam(stmt, 0, SQLDT_INT, (void*)&acc->account_id, sizeof(acc->account_id)) || SQL_SUCCESS != SqlStmt_BindParam(stmt, 1, SQLDT_STRING, (void*)acc->userid, strlen(acc->userid)) @@ -609,6 +610,7 @@ static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, boo || SQL_SUCCESS != SqlStmt_BindParam(stmt, 9, SQLDT_UINT, (void*)&acc->logincount, sizeof(acc->logincount)) || SQL_SUCCESS != SqlStmt_BindParam(stmt, 10, SQLDT_STRING, (void*)&acc->lastlogin, strlen(acc->lastlogin)) || SQL_SUCCESS != SqlStmt_BindParam(stmt, 11, SQLDT_STRING, (void*)&acc->last_ip, strlen(acc->last_ip)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 12, SQLDT_STRING, (void*)&acc->birthdate, strlen(acc->birthdate)) || SQL_SUCCESS != SqlStmt_Execute(stmt) ) { SqlStmt_ShowDebug(stmt); @@ -617,7 +619,7 @@ static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, boo } else {// update account table - if( SQL_SUCCESS != SqlStmt_Prepare(stmt, "UPDATE `%s` SET `userid`=?,`user_pass`=?,`sex`=?,`email`=?,`level`=?,`state`=?,`unban_time`=?,`expiration_time`=?,`logincount`=?,`lastlogin`=?,`last_ip`=? WHERE `account_id` = '%d'", db->account_db, acc->account_id) + if( SQL_SUCCESS != SqlStmt_Prepare(stmt, "UPDATE `%s` SET `userid`=?,`user_pass`=?,`sex`=?,`email`=?,`level`=?,`state`=?,`unban_time`=?,`expiration_time`=?,`logincount`=?,`lastlogin`=?,`last_ip`=?,`birthdate`=? WHERE `account_id` = '%d'", db->account_db, acc->account_id) || SQL_SUCCESS != SqlStmt_BindParam(stmt, 0, SQLDT_STRING, (void*)acc->userid, strlen(acc->userid)) || SQL_SUCCESS != SqlStmt_BindParam(stmt, 1, SQLDT_STRING, (void*)acc->pass, strlen(acc->pass)) || SQL_SUCCESS != SqlStmt_BindParam(stmt, 2, SQLDT_ENUM, (void*)&acc->sex, sizeof(acc->sex)) @@ -629,6 +631,7 @@ static bool mmo_auth_tosql(AccountDB_SQL* db, const struct mmo_account* acc, boo || SQL_SUCCESS != SqlStmt_BindParam(stmt, 8, SQLDT_UINT, (void*)&acc->logincount, sizeof(acc->logincount)) || SQL_SUCCESS != SqlStmt_BindParam(stmt, 9, SQLDT_STRING, (void*)&acc->lastlogin, strlen(acc->lastlogin)) || SQL_SUCCESS != SqlStmt_BindParam(stmt, 10, SQLDT_STRING, (void*)&acc->last_ip, strlen(acc->last_ip)) + || SQL_SUCCESS != SqlStmt_BindParam(stmt, 11, SQLDT_STRING, (void*)&acc->birthdate, strlen(acc->birthdate)) || SQL_SUCCESS != SqlStmt_Execute(stmt) ) { SqlStmt_ShowDebug(stmt); diff --git a/src/login/account_txt.c b/src/login/account_txt.c index ba3388c570..758a2c24ef 100644 --- a/src/login/account_txt.c +++ b/src/login/account_txt.c @@ -14,7 +14,7 @@ #include /// global defines -#define ACCOUNT_TXT_DB_VERSION 20080409 +#define ACCOUNT_TXT_DB_VERSION 20110114 #define AUTHS_BEFORE_SAVE 10 // flush every 10 saves #define AUTH_SAVING_INTERVAL 60000 // flush every 10 minutes @@ -452,10 +452,31 @@ static bool mmo_auth_fromstr(struct mmo_account* a, char* str, unsigned int vers // zero out the destination first memset(a, 0x00, sizeof(struct mmo_account)); + // defaults for older format versions + safestrncpy(a->birthdate, "0000-00-00", sizeof(a->birthdate)); + // extract tab-separated columns from line count = sv_split(str, strlen(str), 0, '\t', fields, ARRAYLENGTH(fields), (e_svopt)(SV_TERMINATE_LF|SV_TERMINATE_CRLF)); - if( version == ACCOUNT_TXT_DB_VERSION && count == 13 ) + if( version == ACCOUNT_TXT_DB_VERSION && count == 14 ) + { + a->account_id = strtol(fields[1], NULL, 10); + safestrncpy(a->userid, fields[2], sizeof(a->userid)); + safestrncpy(a->pass, fields[3], sizeof(a->pass)); + a->sex = fields[4][0]; + safestrncpy(a->email, fields[5], sizeof(a->email)); + a->level = strtoul(fields[6], NULL, 10); + a->state = strtoul(fields[7], NULL, 10); + a->unban_time = strtol(fields[8], NULL, 10); + a->expiration_time = strtol(fields[9], NULL, 10); + a->logincount = strtoul(fields[10], NULL, 10); + safestrncpy(a->lastlogin, fields[11], sizeof(a->lastlogin)); + safestrncpy(a->last_ip, fields[12], sizeof(a->last_ip)); + safestrncpy(a->birthdate, fields[13], sizeof(a->birthdate)); + regs = fields[14]; + } + else + if( version == 20080409 && count == 13 ) { a->account_id = strtol(fields[1], NULL, 10); safestrncpy(a->userid, fields[2], sizeof(a->userid)); @@ -558,10 +579,10 @@ static bool mmo_auth_tostr(const struct mmo_account* a, char* str) int i; char* str_p = str; - str_p += sprintf(str_p, "%d\t%s\t%s\t%c\t%s\t%u\t%u\t%ld\t%ld\t%u\t%s\t%s\t", + str_p += sprintf(str_p, "%d\t%s\t%s\t%c\t%s\t%u\t%u\t%ld\t%ld\t%u\t%s\t%s\t%s\t", a->account_id, a->userid, a->pass, a->sex, a->email, a->level, a->state, (long)a->unban_time, (long)a->expiration_time, - a->logincount, a->lastlogin, a->last_ip); + a->logincount, a->lastlogin, a->last_ip, a->birthdate); for( i = 0; i < a->account_reg2_num; ++i ) if( a->account_reg2[i].str[0] ) @@ -587,7 +608,7 @@ static void mmo_auth_sync(AccountDB_TXT* db) fprintf(fp, "%d\n", ACCOUNT_TXT_DB_VERSION); // savefile version fprintf(fp, "// Accounts file: here are saved all information about the accounts.\n"); - fprintf(fp, "// Structure: account ID, username, password, sex, email, level, state, unban time, expiration time, # of logins, last login time, last (accepted) login ip, repeated(register key, register value)\n"); + fprintf(fp, "// Structure: account ID, username, password, sex, email, level, state, unban time, expiration time, # of logins, last login time, last (accepted) login ip, birth date, repeated(register key, register value)\n"); fprintf(fp, "// where:\n"); fprintf(fp, "// sex : M or F for normal accounts, S for server accounts\n"); fprintf(fp, "// level : this account's gm level\n"); diff --git a/src/login/admin.c b/src/login/admin.c deleted file mode 100644 index d5175dca5c..0000000000 --- a/src/login/admin.c +++ /dev/null @@ -1,857 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#include "../common/cbasetypes.h" -#include "../common/mmo.h" -#include "../common/core.h" -#include "../common/socket.h" -#include "../common/db.h" -#include "../common/timer.h" -#include "../common/malloc.h" -#include "../common/strlib.h" -#include "../common/showmsg.h" -#include "../common/version.h" -#include "../common/md5calc.h" -#include "../common/lock.h" -#include "account.h" -#include "login.h" - -#include -#include -#include -#include // for stat/lstat/fstat - -extern AccountDB* accounts; - -int charif_sendallwos(int sfd, unsigned char *buf, unsigned int len); -bool check_password(const char* md5key, int passwdenc, const char* passwd, const char* refpass); -int mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip); -int parse_admin(int fd); - - -bool ladmin_auth(struct login_session_data* sd, const char* ip) -{ - bool result = false; - - if( str2ip(ip) != host2ip(login_config.admin_allowed_host) ) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - IP isn't authorised (ip: %s).\n", ip); - else - if( !login_config.admin_state ) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - remote administration is disabled (ip: %s)\n", ip); - else - if( !check_password(sd->md5key, sd->passwdenc, sd->passwd, login_config.admin_pass) ) - ShowNotice("'ladmin'-login: Connection in administration mode REFUSED - invalid password (ip: %s)\n", ip); - else - { - ShowNotice("'ladmin'-login: Connection in administration mode accepted (ip: %s)\n", ip); - session[sd->fd]->func_parse = parse_admin; - result = true; - } - - return result; -} - -//--------------------------------------- -// Packet parsing for administation login -// -// List of supported operations: -// 0x7530 - request server version (response: 0x7531) -// 0x7938 - request server list (response: 0x7939) -// 0x7920 - request entire list of accounts (response: 0x7921) -// 0x794e - request message broadcast (response: 0x794f + 0x2726) - -// 0x7930 - request account creation (response: 0x7931) -// 0x7932 - request account deletion (response: 0x7933 + 0x2730) - -// 0x7934 - request account password modification (response: 0x7935) -// 0x7936 - request account state modification (response: 0x7937 + 0x2731) -// 0x793a - request password check (response: 0x793b) -// 0x793c - request account sex modification (response: 0x793d + 0x2723) -// 0x793e - request account gm-level modification (response: 0x793f) -// 0x7940 - request account email modification (response: 0x7941) -// 0x7942 - request account memo modification (response: 0x7943) -// 0x7948 - request account expiration-time modification - absolute (response: 0x7949) -// 0x7950 - request account expiration-time modification - relative (response: 0x7951) -// 0x794a - request account unban-time modification - absolute (response: 0x794b + 0x2731) -// 0x794c - request account unban-time modification - relative (response: 0x794d + 0x2731) - -// 0x7944 - request account id lookup by name (response: 0x7945) -// 0x7946 - request account name lookup by id (response: 0x7947) -// 0x7952 - request account information lookup by name (response: 0x7953) -// 0x7954 - request account information lookup by id (response: 0x7953) -//--------------------------------------- -int parse_admin(int fd) -{ - char* account_name; - - uint32 ipl = session[fd]->client_addr; - char ip[16]; - ip2str(ipl, ip); - - if( session[fd]->flag.eof ) - { - do_close(fd); - ShowInfo("Remote administration has disconnected (session #%d).\n", fd); - return 0; - } - - while( RFIFOREST(fd) >= 2 ) - { - uint16 command = RFIFOW(fd,0); - - switch( command ) - { - - case 0x7530: // Request of the server version - ShowStatus("'ladmin': Sending of the server version (ip: %s)\n", ip); - WFIFOHEAD(fd,10); - WFIFOW(fd,0) = 0x7531; - WFIFOB(fd,2) = ATHENA_MAJOR_VERSION; - WFIFOB(fd,3) = ATHENA_MINOR_VERSION; - WFIFOB(fd,4) = ATHENA_REVISION; - WFIFOB(fd,5) = ATHENA_RELEASE_FLAG; - WFIFOB(fd,6) = ATHENA_OFFICIAL_FLAG; - WFIFOB(fd,7) = ATHENA_SERVER_LOGIN; - WFIFOW(fd,8) = ATHENA_MOD_VERSION; - WFIFOSET(fd,10); - RFIFOSKIP(fd,2); - break; -/* - case 0x7920: // Request of an accounts list - if (RFIFOREST(fd) < 10) - return 0; - { - int st, ed; - uint16 len; - CREATE_BUFFER(id, int, auth_num); - st = RFIFOL(fd,2); - ed = RFIFOL(fd,6); - RFIFOSKIP(fd,10); - WFIFOW(fd,0) = 0x7921; - if (st < 0) - st = 0; - if (ed > END_ACCOUNT_NUM || ed < st || ed <= 0) - ed = END_ACCOUNT_NUM; - ShowStatus("'ladmin': Sending an accounts list (ask: from %d to %d, ip: %s)\n", st, ed, ip); - // Sort before send - for(i = 0; i < auth_num; i++) { - unsigned int k; - id[i] = i; - for(j = 0; j < i; j++) { - if (auth_dat[id[i]].account_id < auth_dat[id[j]].account_id) { - for(k = i; k > j; k--) { - id[k] = id[k-1]; - } - id[j] = i; // id[i] - break; - } - } - } - // Sending accounts information - len = 4; - for(i = 0; i < auth_num && len < 30000; i++) { - int account_id = auth_dat[id[i]].account_id; // use sorted index - if (account_id >= st && account_id <= ed) { - j = id[i]; - WFIFOL(fd,len) = account_id; - WFIFOB(fd,len+4) = (unsigned char)isGM(account_id); - memcpy(WFIFOP(fd,len+5), auth_dat[j].userid, 24); - WFIFOB(fd,len+29) = auth_dat[j].sex; - WFIFOL(fd,len+30) = auth_dat[j].logincount; - if (auth_dat[j].state == 0 && auth_dat[j].unban_time != 0) // if no state and banished - WFIFOL(fd,len+34) = 7; // 6 = Your are Prohibited to log in until %s - else - WFIFOL(fd,len+34) = auth_dat[j].state; - len += 38; - } - } - WFIFOW(fd,2) = len; - WFIFOSET(fd,len); - //if (id) free(id); - DELETE_BUFFER(id); - } - break; -*/ - case 0x7930: // Request for an account creation - if (RFIFOREST(fd) < 91) - return 0; - { - struct mmo_account ma; - safestrncpy(ma.userid, (char*)RFIFOP(fd, 2), sizeof(ma.userid)); - safestrncpy(ma.pass, (char*)RFIFOP(fd,26), sizeof(ma.pass)); - ma.sex = RFIFOB(fd,50); - safestrncpy(ma.email, (char*)RFIFOP(fd,51), sizeof(ma.email)); - safestrncpy(ma.lastlogin, "-", sizeof(ma.lastlogin)); - - ShowNotice("'ladmin': Account creation request (account: %s pass: %s, sex: %c, email: %s, ip: %s)\n", ma.userid, ma.pass, ma.sex, ma.email, ip); - - WFIFOW(fd,0) = 0x7931; - WFIFOL(fd,2) = mmo_auth_new(ma.userid, ma.pass, ma.sex, ip); - safestrncpy((char*)WFIFOP(fd,6), ma.userid, 24); - WFIFOSET(fd,30); - } - RFIFOSKIP(fd,91); - break; -/* - case 0x7932: // Request for an account deletion - if (RFIFOREST(fd) < 26) - return 0; - { - struct mmo_account acc; - - char* account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - - WFIFOW(fd,0) = 0x7933; - - if( accounts->load_str(accounts, &acc, account_name) ) - { - // Char-server is notified of deletion (for characters deletion). - unsigned char buf[65535]; - WBUFW(buf,0) = 0x2730; - WBUFL(buf,2) = acc.account_id; - charif_sendallwos(-1, buf, 6); - - // send answer - memcpy(WFIFOP(fd,6), acc.userid, 24); - WFIFOL(fd,2) = acc.account_id; - - // delete account - memset(acc.userid, '\0', sizeof(acc.userid)); - auth_dat[i].account_id = -1; - mmo_auth_sync(); - } else { - WFIFOL(fd,2) = -1; - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to delete an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - WFIFOSET(fd,30); - } - RFIFOSKIP(fd,26); - break; -*/ - case 0x7934: // Request to change a password - if (RFIFOREST(fd) < 50) - return 0; - { - struct mmo_account acc; - - char* account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - - WFIFOW(fd,0) = 0x7935; - - if( accounts->load_str(accounts, &acc, account_name) ) - { - WFIFOL(fd,2) = acc.account_id; - safestrncpy((char*)WFIFOP(fd,6), acc.userid, 24); - safestrncpy(acc.pass, (char*)RFIFOP(fd,26), 24); - ShowNotice("'ladmin': Modification of a password (account: %s, new password: %s, ip: %s)\n", acc.userid, acc.pass, ip); - - accounts->save(accounts, &acc); - } - else - { - WFIFOL(fd,2) = -1; - safestrncpy((char*)WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to modify the password of an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - - WFIFOSET(fd,30); - } - RFIFOSKIP(fd,50); - break; - - case 0x7936: // Request to modify a state - if (RFIFOREST(fd) < 50) - return 0; - { - struct mmo_account acc; - - char* account_name = (char*)RFIFOP(fd,2); - uint32 state = RFIFOL(fd,26); - account_name[23] = '\0'; - - WFIFOW(fd,0) = 0x7937; - - if( accounts->load_str(accounts, &acc, account_name) ) - { - memcpy(WFIFOP(fd,6), acc.userid, 24); - WFIFOL(fd,2) = acc.account_id; - - if (acc.state == state) - ShowNotice("'ladmin': Modification of a state, but the state of the account already has this value (account: %s, received state: %d, ip: %s)\n", account_name, state, ip); - else - { - ShowNotice("'ladmin': Modification of a state (account: %s, new state: %d, ip: %s)\n", acc.userid, state, ip); - - if (acc.state == 0) { - unsigned char buf[16]; - WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = acc.account_id; - WBUFB(buf,6) = 0; // 0: change of statut, 1: ban - WBUFL(buf,7) = state; // status or final date of a banishment - charif_sendallwos(-1, buf, 11); - } - acc.state = state; - accounts->save(accounts, &acc); - } - } - else - { - ShowNotice("'ladmin': Attempt to modify the state of an unknown account (account: %s, received state: %d, ip: %s)\n", account_name, state, ip); - WFIFOL(fd,2) = -1; - memcpy(WFIFOP(fd,6), account_name, 24); - } - - WFIFOL(fd,30) = state; - WFIFOSET(fd,34); - } - RFIFOSKIP(fd,50); - break; -/* - case 0x7938: // Request for servers list and # of online players - { - uint8 server_num = 0; - ShowStatus("'ladmin': Sending of servers list (ip: %s)\n", ip); - for(i = 0; i < MAX_SERVERS; i++) { - if (server[i].fd >= 0) { - WFIFOL(fd,4+server_num*32) = htonl(server[i].ip); - WFIFOW(fd,4+server_num*32+4) = htons(server[i].port); - memcpy(WFIFOP(fd,4+server_num*32+6), server[i].name, 20); - WFIFOW(fd,4+server_num*32+26) = server[i].users; - WFIFOW(fd,4+server_num*32+28) = server[i].maintenance; - WFIFOW(fd,4+server_num*32+30) = server[i].new_; - server_num++; - } - } - WFIFOW(fd,0) = 0x7939; - WFIFOW(fd,2) = 4 + 32 * server_num; - WFIFOSET(fd,4+32*server_num); - RFIFOSKIP(fd,2); - break; - } - - case 0x793a: // Request to password check - if (RFIFOREST(fd) < 50) - return 0; - WFIFOW(fd,0) = 0x793b; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - if( accounts->load_str(accounts, &acc, account_name) ) - { - char pass[25]; - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - memcpy(pass, RFIFOP(fd,26), 24); - pass[24] = '\0'; - remove_control_chars(pass); - if (strcmp(acc.pass, pass) == 0) { - WFIFOL(fd,2) = acc.account_id; - ShowNotice("'ladmin': Check of password OK (account: %s, password: %s, ip: %s)\n", acc.userid, acc.pass, ip); - } else { - ShowNotice("'ladmin': Failure of password check (account: %s, proposed pass: %s, ip: %s)\n", acc.userid, pass, ip); - } - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to check the password of an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,50); - break; - - case 0x793c: // Request to modify sex - if (RFIFOREST(fd) < 27) - return 0; - WFIFOW(fd,0) = 0x793d; - WFIFOL(fd,2) = 0xFFFFFFFF; // -1 - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - memcpy(WFIFOP(fd,6), account_name, 24); - { - char sex; - sex = RFIFOB(fd,26); - if (sex != 'F' && sex != 'M') { - if (sex > 31) - ShowNotice("'ladmin': Attempt to give an invalid sex (account: %s, received sex: %c, ip: %s)\n", account_name, sex, ip); - else - ShowNotice("'ladmin': Attempt to give an invalid sex (account: %s, received sex: 'control char', ip: %s)\n", account_name, ip); - } else { - if( accounts->load_str(accounts, &acc, account_name) ) - { - memcpy(WFIFOP(fd,6), acc.userid, 24); - if (acc.sex != sex) - { - unsigned char buf[16]; - ShowNotice("'ladmin': Modification of a sex (account: %s, new sex: %c, ip: %s)\n", acc.userid, sex, ip); - - WFIFOL(fd,2) = acc.account_id; - acc.sex = sex; - accounts->save(accounts, &acc); - - // send to all char-server the change - WBUFW(buf,0) = 0x2723; - WBUFL(buf,2) = acc.account_id; - WBUFB(buf,6) = acc.sex; - charif_sendallwos(-1, buf, 7); - } else { - ShowNotice("'ladmin': Modification of a sex, but the sex is already the good sex (account: %s, sex: %c, ip: %s)\n", acc.userid, sex, ip); - } - } else { - ShowNotice("'ladmin': Attempt to modify the sex of an unknown account (account: %s, received sex: %c, ip: %s)\n", account_name, sex, ip); - } - } - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,27); - break; - - case 0x793e: // Request to modify GM level - if (RFIFOREST(fd) < 27) - return 0; - WFIFOW(fd,0) = 0x793f; - WFIFOL(fd,2) = 0xFFFFFFFF; // -1 - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - memcpy(WFIFOP(fd,6), account_name, 24); - { - char new_gm_level; - new_gm_level = RFIFOB(fd,26); - if( new_gm_level < 0 || new_gm_level > 99 ) - ShowNotice("'ladmin': Attempt to give an invalid GM level (account: %s, received GM level: %d, ip: %s)\n", account_name, (int)new_gm_level, ip); - else - if( !accounts->load_str(accounts, &acc, account_name) ) - ShowNotice("'ladmin': Attempt to modify the GM level of an unknown account (account: %s, received GM level: %d, ip: %s)\n", account_name, (int)new_gm_level, ip); - else - { - memcpy(WFIFOP(fd,6), acc.userid, 24); - - if (isGM(acc.account_id) == new_gm_level) - ShowNotice("'ladmin': Attempt to modify of a GM level, but the GM level is already the good GM level (account: %s (%d), GM level: %d, ip: %s)\n", acc.userid, acc.account_id, (int)new_gm_level, ip); - else - { - //TODO: change level - } - } - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,27); - break; - - case 0x7940: // Request to modify e-mail - if (RFIFOREST(fd) < 66) - return 0; - WFIFOW(fd,0) = 0x7941; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - memcpy(WFIFOP(fd,6), account_name, 24); - { - char email[40]; - memcpy(email, RFIFOP(fd,26), 40); - if (e_mail_check(email) == 0) { - ShowNotice("'ladmin': Attempt to give an invalid e-mail (account: %s, ip: %s)\n", account_name, ip); - } else { - remove_control_chars(email); - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - memcpy(auth_dat[i].email, email, 40); - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Modification of an email (account: %s, new e-mail: %s, ip: %s)\n", auth_dat[i].userid, email, ip); - mmo_auth_sync(); - } else { - ShowNotice("'ladmin': Attempt to modify the e-mail of an unknown account (account: %s, received e-mail: %s, ip: %s)\n", account_name, email, ip); - } - } - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,66); - break; - - case 0x7942: // Request to modify memo field - if ((int)RFIFOREST(fd) < 28 || (int)RFIFOREST(fd) < (28 + RFIFOW(fd,26))) - return 0; - WFIFOW(fd,0) = 0x7943; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - int size_of_memo = sizeof(auth_dat[i].memo); - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - memset(auth_dat[i].memo, '\0', size_of_memo); - if (RFIFOW(fd,26) == 0) { - strncpy(auth_dat[i].memo, "-", size_of_memo); - } else if (RFIFOW(fd,26) > size_of_memo - 1) { - memcpy(auth_dat[i].memo, RFIFOP(fd,28), size_of_memo - 1); - } else { - memcpy(auth_dat[i].memo, RFIFOP(fd,28), RFIFOW(fd,26)); - } - auth_dat[i].memo[size_of_memo - 1] = '\0'; - remove_control_chars(auth_dat[i].memo); - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Modification of a memo field (account: %s, new memo: %s, ip: %s)\n", auth_dat[i].userid, auth_dat[i].memo, ip); - mmo_auth_sync(); - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to modify the memo field of an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,28 + RFIFOW(fd,26)); - break; - - case 0x7944: // Request to found an account id - if (RFIFOREST(fd) < 26) - return 0; - WFIFOW(fd,0) = 0x7945; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Request (by the name) of an account id (account: %s, id: %d, ip: %s)\n", auth_dat[i].userid, auth_dat[i].account_id, ip); - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': ID request (by the name) of an unknown account (account: %s, ip: %s)\n", account_name, ip); - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,26); - break; - - case 0x7946: // Request to found an account name - if (RFIFOREST(fd) < 6) - return 0; - WFIFOW(fd,0) = 0x7947; - WFIFOL(fd,2) = RFIFOL(fd,2); - memset(WFIFOP(fd,6), '\0', 24); - for(i = 0; i < auth_num; i++) { - if (auth_dat[i].account_id == (int)RFIFOL(fd,2)) { - strncpy((char*)WFIFOP(fd,6), auth_dat[i].userid, 24); - ShowNotice("'ladmin': Request (by id) of an account name (account: %s, id: %d, ip: %s)\n", auth_dat[i].userid, RFIFOL(fd,2), ip); - break; - } - } - if (i == auth_num) { - ShowNotice("'ladmin': Name request (by id) of an unknown account (id: %d, ip: %s)\n", RFIFOL(fd,2), ip); - strncpy((char*)WFIFOP(fd,6), "", 24); - } - WFIFOSET(fd,30); - RFIFOSKIP(fd,6); - break; - - case 0x7948: // Request to change the validity limit (timestamp) (absolute value) - if (RFIFOREST(fd) < 30) - return 0; - { - time_t timestamp; - char tmpstr[2048]; - WFIFOW(fd,0) = 0x7949; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - timestamp = (time_t)RFIFOL(fd,26); - strftime(tmpstr, 24, login_config.date_format, localtime(×tamp)); - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - ShowNotice("'ladmin': Change of a validity limit (account: %s, new validity: %d (%s), ip: %s)\n", auth_dat[i].userid, timestamp, (timestamp == 0 ? "unlimited" : tmpstr), ip); - auth_dat[i].expiration_time = timestamp; - WFIFOL(fd,2) = auth_dat[i].account_id; - mmo_auth_sync(); - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to change the validity limit of an unknown account (account: %s, received validity: %d (%s), ip: %s)\n", account_name, timestamp, (timestamp == 0 ? "unlimited" : tmpstr), ip); - } - WFIFOL(fd,30) = (unsigned int)timestamp; - } - WFIFOSET(fd,34); - RFIFOSKIP(fd,30); - break; - - case 0x794a: // Request to change the final date of a banishment (timestamp) (absolute value) - if (RFIFOREST(fd) < 30) - return 0; - { - time_t timestamp; - char tmpstr[2048]; - WFIFOW(fd,0) = 0x794b; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - timestamp = (time_t)RFIFOL(fd,26); - if (timestamp <= time(NULL)) - timestamp = 0; - strftime(tmpstr, 24, login_config.date_format, localtime(×tamp)); - i = search_account_index(account_name); - if (i != -1) { - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - WFIFOL(fd,2) = auth_dat[i].account_id; - ShowNotice("'ladmin': Change of the final date of a banishment (account: %s, new final date of banishment: %d (%s), ip: %s)\n", auth_dat[i].userid, timestamp, (timestamp == 0 ? "no banishment" : tmpstr), ip); - if (auth_dat[i].unban_time != timestamp) { - if (timestamp != 0) { - unsigned char buf[16]; - WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = auth_dat[i].account_id; - WBUFB(buf,6) = 1; // 0: change of statut, 1: ban - WBUFL(buf,7) = (unsigned int)timestamp; // status or final date of a banishment - charif_sendallwos(-1, buf, 11); - } - auth_dat[i].unban_time = timestamp; - mmo_auth_sync(); - } - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to change the final date of a banishment of an unknown account (account: %s, received final date of banishment: %d (%s), ip: %s)\n", account_name, timestamp, (timestamp == 0 ? "no banishment" : tmpstr), ip); - } - WFIFOL(fd,30) = (unsigned int)timestamp; - } - WFIFOSET(fd,34); - RFIFOSKIP(fd,30); - break; - - case 0x794c: // Request to change the final date of a banishment (timestamp) (relative change) - if (RFIFOREST(fd) < 38) - return 0; - { - time_t timestamp; - struct tm *tmtime; - char tmpstr[2048]; - WFIFOW(fd,0) = 0x794d; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - WFIFOL(fd,2) = auth_dat[i].account_id; - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - if (auth_dat[i].unban_time == 0 || auth_dat[i].unban_time < time(NULL)) - timestamp = time(NULL); - else - timestamp = auth_dat[i].unban_time; - tmtime = localtime(×tamp); - tmtime->tm_year = tmtime->tm_year + (short)RFIFOW(fd,26); - tmtime->tm_mon = tmtime->tm_mon + (short)RFIFOW(fd,28); - tmtime->tm_mday = tmtime->tm_mday + (short)RFIFOW(fd,30); - tmtime->tm_hour = tmtime->tm_hour + (short)RFIFOW(fd,32); - tmtime->tm_min = tmtime->tm_min + (short)RFIFOW(fd,34); - tmtime->tm_sec = tmtime->tm_sec + (short)RFIFOW(fd,36); - timestamp = mktime(tmtime); - if (timestamp != -1) { - if (timestamp <= time(NULL)) - timestamp = 0; - strftime(tmpstr, 24, login_config.date_format, localtime(×tamp)); - ShowNotice("'ladmin': Adjustment of a final date of a banishment (account: %s, (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %d (%s), ip: %s)\n", auth_dat[i].userid, (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), timestamp, (timestamp == 0 ? "no banishment" : tmpstr), ip); - if (auth_dat[i].unban_time != timestamp) { - if (timestamp != 0) { - unsigned char buf[16]; - WBUFW(buf,0) = 0x2731; - WBUFL(buf,2) = auth_dat[i].account_id; - WBUFB(buf,6) = 1; // 0: change of statut, 1: ban - WBUFL(buf,7) = (unsigned int)timestamp; // status or final date of a banishment - charif_sendallwos(-1, buf, 11); - } - auth_dat[i].unban_time = timestamp; - mmo_auth_sync(); - } - } else { - strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].unban_time)); - ShowNotice("'ladmin': Impossible to adjust the final date of a banishment (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n", auth_dat[i].userid, auth_dat[i].unban_time, (auth_dat[i].unban_time == 0 ? "no banishment" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), ip); - } - WFIFOL(fd,30) = (unsigned long)auth_dat[i].unban_time; - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to adjust the final date of a banishment of an unknown account (account: %s, ip: %s)\n", account_name, ip); - WFIFOL(fd,30) = 0; - } - } - WFIFOSET(fd,34); - RFIFOSKIP(fd,38); - break; - - case 0x794e: // Request to send a broadcast message - if (RFIFOREST(fd) < 8 || RFIFOREST(fd) < (8 + RFIFOL(fd,4))) - return 0; - WFIFOW(fd,0) = 0x794f; - WFIFOW(fd,2) = 0xFFFF; // WTF??? - if (RFIFOL(fd,4) < 1) { - ShowNotice("'ladmin': Receiving a message for broadcast, but message is void (ip: %s)\n", ip); - } else { - // at least 1 char-server - for(i = 0; i < MAX_SERVERS; i++) - if (server[i].fd >= 0) - break; - if (i == MAX_SERVERS) { - ShowNotice("'ladmin': Receiving a message for broadcast, but no char-server is online (ip: %s)\n", ip); - } else { - unsigned char buf[32000]; - char message[32000]; - WFIFOW(fd,2) = 0; - memset(message, '\0', sizeof(message)); - memcpy(message, RFIFOP(fd,8), RFIFOL(fd,4)); - message[sizeof(message)-1] = '\0'; - remove_control_chars(message); - if (RFIFOW(fd,2) == 0) - ShowNotice("'ladmin': Receiving a message for broadcast (message (in yellow): %s, ip: %s)\n", message, ip); - else - ShowNotice("'ladmin': Receiving a message for broadcast (message (in blue): %s, ip: %s)\n", message, ip); - // send same message to all char-servers (no answer) - memcpy(WBUFP(buf,0), RFIFOP(fd,0), 8 + RFIFOL(fd,4)); - WBUFW(buf,0) = 0x2726; - charif_sendallwos(-1, buf, 8 + RFIFOL(fd,4)); - } - } - WFIFOSET(fd,4); - RFIFOSKIP(fd,8 + RFIFOL(fd,4)); - break; - - case 0x7950: // Request to change the validity limite (timestamp) (relative change) - if (RFIFOREST(fd) < 38) - return 0; - { - time_t timestamp; - struct tm *tmtime; - char tmpstr[2048]; - char tmpstr2[2048]; - WFIFOW(fd,0) = 0x7951; - WFIFOL(fd,2) = 0xFFFFFFFF; // WTF??? - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - remove_control_chars(account_name); - i = search_account_index(account_name); - if (i != -1) { - WFIFOL(fd,2) = auth_dat[i].account_id; - memcpy(WFIFOP(fd,6), auth_dat[i].userid, 24); - timestamp = auth_dat[i].expiration_time; - if (timestamp == 0 || timestamp < time(NULL)) - timestamp = time(NULL); - tmtime = localtime(×tamp); - tmtime->tm_year = tmtime->tm_year + (short)RFIFOW(fd,26); - tmtime->tm_mon = tmtime->tm_mon + (short)RFIFOW(fd,28); - tmtime->tm_mday = tmtime->tm_mday + (short)RFIFOW(fd,30); - tmtime->tm_hour = tmtime->tm_hour + (short)RFIFOW(fd,32); - tmtime->tm_min = tmtime->tm_min + (short)RFIFOW(fd,34); - tmtime->tm_sec = tmtime->tm_sec + (short)RFIFOW(fd,36); - timestamp = mktime(tmtime); - if (timestamp != -1) { - strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].expiration_time)); - strftime(tmpstr2, 24, login_config.date_format, localtime(×tamp)); - ShowNotice("'ladmin': Adjustment of a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> new validity: %d (%s), ip: %s)\n", auth_dat[i].userid, auth_dat[i].expiration_time, (auth_dat[i].expiration_time == 0 ? "unlimited" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), timestamp, (timestamp == 0 ? "unlimited" : tmpstr2), ip); - auth_dat[i].expiration_time = timestamp; - mmo_auth_sync(); - WFIFOL(fd,30) = (unsigned long)auth_dat[i].expiration_time; - } else { - strftime(tmpstr, 24, login_config.date_format, localtime(&auth_dat[i].expiration_time)); - ShowNotice("'ladmin': Impossible to adjust a validity limit (account: %s, %d (%s) + (%+d y %+d m %+d d %+d h %+d mn %+d s) -> ???, ip: %s)\n", auth_dat[i].userid, auth_dat[i].expiration_time, (auth_dat[i].expiration_time == 0 ? "unlimited" : tmpstr), (short)RFIFOW(fd,26), (short)RFIFOW(fd,28), (short)RFIFOW(fd,30), (short)RFIFOW(fd,32), (short)RFIFOW(fd,34), (short)RFIFOW(fd,36), ip); - WFIFOL(fd,30) = 0; - } - } else { - memcpy(WFIFOP(fd,6), account_name, 24); - ShowNotice("'ladmin': Attempt to adjust the validity limit of an unknown account (account: %s, ip: %s)\n", account_name, ip); - WFIFOL(fd,30) = 0; - } - - WFIFOSET(fd,34); - } - RFIFOSKIP(fd,38); - break; -*/ - case 0x7952: // Request about informations of an account (by account name) - if (RFIFOREST(fd) < 26) - return 0; - { - struct mmo_account acc; - - WFIFOW(fd,0) = 0x7953; - - account_name = (char*)RFIFOP(fd,2); - account_name[23] = '\0'; - - if( accounts->load_str(accounts, &acc, account_name) ) - { - ShowNotice("'ladmin': Sending information of an account (request by the name; account: %s, id: %d, ip: %s)\n", acc.userid, acc.account_id, ip); - WFIFOL(fd,2) = acc.account_id; - WFIFOB(fd,6) = acc.level; - safestrncpy((char*)WFIFOP(fd,7), acc.userid, 24); - WFIFOB(fd,31) = acc.sex; - WFIFOL(fd,32) = acc.logincount; - WFIFOL(fd,36) = acc.state; - safestrncpy((char*)WFIFOP(fd,40), "-", 20); // error message (removed) - safestrncpy((char*)WFIFOP(fd,60), acc.lastlogin, 24); - safestrncpy((char*)WFIFOP(fd,84), acc.last_ip, 16); - safestrncpy((char*)WFIFOP(fd,100), acc.email, 40); - WFIFOL(fd,140) = (unsigned long)acc.expiration_time; - WFIFOL(fd,144) = (unsigned long)acc.unban_time; - WFIFOW(fd,148) = 0; // previously, this was strlen(memo), and memo went afterwards - } - else - { - ShowNotice("'ladmin': Attempt to obtain information (by the name) of an unknown account (account: %s, ip: %s)\n", account_name, ip); - WFIFOL(fd,2) = -1; - safestrncpy((char*)WFIFOP(fd,7), account_name, 24); // not found - } - - WFIFOSET(fd,150); - } - RFIFOSKIP(fd,26); - break; - - case 0x7954: // Request about information of an account (by account id) - if (RFIFOREST(fd) < 6) - return 0; - { - struct mmo_account acc; - - int account_id = RFIFOL(fd,2); - - WFIFOHEAD(fd,150); - WFIFOW(fd,0) = 0x7953; - WFIFOL(fd,2) = account_id; - - if( accounts->load_num(accounts, &acc, account_id) ) - { - ShowNotice("'ladmin': Sending information of an account (request by the id; account: %s, id: %d, ip: %s)\n", acc.userid, account_id, ip); - WFIFOB(fd,6) = acc.level; - safestrncpy((char*)WFIFOP(fd,7), acc.userid, 24); - WFIFOB(fd,31) = acc.sex; - WFIFOL(fd,32) = acc.logincount; - WFIFOL(fd,36) = acc.state; - safestrncpy((char*)WFIFOP(fd,40), "-", 20); // error message (removed) - safestrncpy((char*)WFIFOP(fd,60), acc.lastlogin, 24); - safestrncpy((char*)WFIFOP(fd,84), acc.last_ip, 16); - safestrncpy((char*)WFIFOP(fd,100), acc.email, 40); - WFIFOL(fd,140) = (unsigned long)acc.expiration_time; - WFIFOL(fd,144) = (unsigned long)acc.unban_time; - WFIFOW(fd,148) = 0; // previously, this was strlen(memo), and memo went afterwards - } - else - { - ShowNotice("'ladmin': Attempt to obtain information (by the id) of an unknown account (id: %d, ip: %s)\n", account_id, ip); - safestrncpy((char*)WFIFOP(fd,7), "", 24); // not found - } - - WFIFOSET(fd,150); - } - RFIFOSKIP(fd,6); - break; - - default: - ShowStatus("'ladmin': End of connection, unknown packet (ip: %s)\n", ip); - set_eof(fd); - return 0; - } - } - RFIFOSKIP(fd,RFIFOREST(fd)); - return 0; -} diff --git a/src/login/login.c b/src/login/login.c index 6b3a1bcaf8..6a85259301 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -19,7 +19,6 @@ #include #include -bool ladmin_auth(struct login_session_data* sd, const char* ip); struct Login_Config login_config; int login_fd; // login server socket @@ -70,6 +69,7 @@ struct s_subnet { int subnet_count = 0; +int mmo_auth_new(const char* userid, const char* pass, const char sex, const char* last_ip); //----------------------------------------------------- // Auth database @@ -109,7 +109,7 @@ static void* create_online_user(DBKey key, va_list args) CREATE(p, struct online_login_data, 1); p->account_id = key.i; p->char_server = -1; - p->waiting_disconnect = -1; + p->waiting_disconnect = INVALID_TIMER; return p; } @@ -118,10 +118,10 @@ struct online_login_data* add_online_user(int char_server, int account_id) struct online_login_data* p; p = (struct online_login_data*)idb_ensure(online_db, account_id, create_online_user); p->char_server = char_server; - if( p->waiting_disconnect != -1 ) + if( p->waiting_disconnect != INVALID_TIMER ) { delete_timer(p->waiting_disconnect, waiting_disconnect_timer); - p->waiting_disconnect = -1; + p->waiting_disconnect = INVALID_TIMER; } return p; } @@ -132,7 +132,7 @@ void remove_online_user(int account_id) p = (struct online_login_data*)idb_get(online_db, account_id); if( p == NULL ) return; - if( p->waiting_disconnect != -1 ) + if( p->waiting_disconnect != INVALID_TIMER ) delete_timer(p->waiting_disconnect, waiting_disconnect_timer); idb_remove(online_db, account_id); @@ -143,7 +143,7 @@ static int waiting_disconnect_timer(int tid, unsigned int tick, int id, intptr d struct online_login_data* p = (struct online_login_data*)idb_get(online_db, id); if( p != NULL && p->waiting_disconnect == tid && p->account_id == id ) { - p->waiting_disconnect = -1; + p->waiting_disconnect = INVALID_TIMER; remove_online_user(id); idb_remove(auth_db, id); } @@ -157,10 +157,10 @@ static int online_db_setoffline(DBKey key, void* data, va_list ap) if( server == -1 ) { p->char_server = -1; - if( p->waiting_disconnect != -1 ) + if( p->waiting_disconnect != INVALID_TIMER ) { delete_timer(p->waiting_disconnect, waiting_disconnect_timer); - p->waiting_disconnect = -1; + p->waiting_disconnect = INVALID_TIMER; } } else if( p->char_server == server ) @@ -323,32 +323,49 @@ int login_lan_config_read(const char *lancfgName) //----------------------- // Console Command Parser [Wizputer] //----------------------- -int parse_console(char* buf) +int parse_console(const char* command) { - char command[256]; + ShowNotice("Console command: %s\n", command); - memset(command, 0, sizeof(command)); - - sscanf(buf, "%[^\n]", command); - - ShowInfo("Console command :%s", command); - - if( strcmpi("shutdown", command) == 0 || - strcmpi("exit", command) == 0 || - strcmpi("quit", command) == 0 || - strcmpi("end", command) == 0 ) + if( strcmpi("shutdown", command) == 0 || strcmpi("exit", command) == 0 || strcmpi("quit", command) == 0 || strcmpi("end", command) == 0 ) runflag = 0; - else - if( strcmpi("alive", command) == 0 || - strcmpi("status", command) == 0 ) + else if( strcmpi("alive", command) == 0 || strcmpi("status", command) == 0 ) ShowInfo(CL_CYAN"Console: "CL_BOLD"I'm Alive."CL_RESET"\n"); - else - if( strcmpi("help", command) == 0 ) { - ShowInfo(CL_BOLD"Help of commands:"CL_RESET"\n"); - ShowInfo(" To shutdown the server:\n"); + else if( strcmpi("help", command) == 0 ) + { + ShowInfo("To shutdown the server:\n"); ShowInfo(" 'shutdown|exit|quit|end'\n"); - ShowInfo(" To know if server is alive:\n"); + ShowInfo("To know if server is alive:\n"); ShowInfo(" 'alive|status'\n"); + ShowInfo("To create a new account:\n"); + ShowInfo(" 'create'\n"); + } + else + {// commands with parameters + char cmd[128], params[256]; + + if( sscanf(command, "%127s %255[^\r\n]", cmd, params) < 2 ) + { + return 0; + } + + if( strcmpi(cmd, "create") == 0 ) + { + char username[NAME_LENGTH], password[NAME_LENGTH], sex; + + if( sscanf(params, "%23s %23s %c", username, password, &sex) < 3 || strnlen(username, sizeof(username)) < 4 || strnlen(password, sizeof(password)) < 1 ) + { + ShowWarning("Console: Invalid parameters for '%s'. Usage: %s \n", cmd, cmd); + return 0; + } + + if( mmo_auth_new(username, password, TOUPPER(sex), "0.0.0.0") != -1 ) + { + ShowError("Console: Account creation failed.\n"); + return 0; + } + ShowStatus("Console: Account '%s' created successfully.\n", username); + } } return 0; @@ -524,8 +541,6 @@ int parse_fromchar(int fd) break; case 0x2719: // ping request from charserver - if( RFIFOREST(fd) < 2 ) - return 0; RFIFOSKIP(fd,2); WFIFOHEAD(fd,2); @@ -733,8 +748,8 @@ int parse_fromchar(int fd) // Sending information towards the other char-servers. RFIFOW(fd,0) = 0x2729;// reusing read buffer charif_sendallwos(fd, RFIFOP(fd,0), RFIFOW(fd,2)); - RFIFOSKIP(fd,RFIFOW(fd,2)); } + RFIFOSKIP(fd,RFIFOW(fd,2)); } break; @@ -788,10 +803,10 @@ int parse_fromchar(int fd) aid = RFIFOL(fd,6+i*4); p = (struct online_login_data*)idb_ensure(online_db, aid, create_online_user); p->char_server = id; - if (p->waiting_disconnect != -1) + if (p->waiting_disconnect != INVALID_TIMER) { delete_timer(p->waiting_disconnect, waiting_disconnect_timer); - p->waiting_disconnect = -1; + p->waiting_disconnect = INVALID_TIMER; } } } @@ -854,7 +869,6 @@ int parse_fromchar(int fd) } // switch } // while - RFIFOSKIP(fd,RFIFOREST(fd)); return 0; } @@ -898,6 +912,7 @@ int mmo_auth_new(const char* userid, const char* pass, const char sex, const cha acc.expiration_time = ( login_config.start_limited_time != -1 ) ? time(NULL) + login_config.start_limited_time : 0; safestrncpy(acc.lastlogin, "0000-00-00 00:00:00", sizeof(acc.lastlogin)); safestrncpy(acc.last_ip, last_ip, sizeof(acc.last_ip)); + safestrncpy(acc.birthdate, "0000-00-00", sizeof(acc.birthdate)); if( !accounts->create(accounts, &acc) ) return 0; @@ -1077,7 +1092,7 @@ void login_auth_ok(struct login_session_data* sd) WBUFW(buf,0) = 0x2734; WBUFL(buf,2) = sd->account_id; charif_sendallwos(-1, buf, 6); - if( data->waiting_disconnect == -1 ) + if( data->waiting_disconnect == INVALID_TIMER ) data->waiting_disconnect = add_timer(gettick()+AUTH_TIMEOUT, waiting_disconnect_timer, sd->account_id, 0); WFIFOHEAD(fd,3); @@ -1209,7 +1224,7 @@ void login_auth_failed(struct login_session_data* sd, int result) //---------------------------------------------------------------------------------------- -// Default packet parsing (normal players or administation/char-server connection requests) +// Default packet parsing (normal players or char-server connection requests) //---------------------------------------------------------------------------------------- int parse_login(int fd) { @@ -1343,7 +1358,6 @@ int parse_login(int fd) break; case 0x01db: // Sending request of the coding key - case 0x791a: // Sending request of the coding key (administration packet) RFIFOSKIP(fd,2); { memset(sd->md5key, '\0', sizeof(sd->md5key)); @@ -1419,45 +1433,6 @@ int parse_login(int fd) } return 0; // processing will continue elsewhere - case 0x7530: // Server version information request - ShowStatus("Sending server version information to ip: %s\n", ip); - RFIFOSKIP(fd,2); - WFIFOHEAD(fd,10); - WFIFOW(fd,0) = 0x7531; - WFIFOB(fd,2) = ATHENA_MAJOR_VERSION; - WFIFOB(fd,3) = ATHENA_MINOR_VERSION; - WFIFOB(fd,4) = ATHENA_REVISION; - WFIFOB(fd,5) = ATHENA_RELEASE_FLAG; - WFIFOB(fd,6) = ATHENA_OFFICIAL_FLAG; - WFIFOB(fd,7) = ATHENA_SERVER_LOGIN; - WFIFOW(fd,8) = ATHENA_MOD_VERSION; - WFIFOSET(fd,10); - break; - - case 0x7918: // Request for administation login - if ((int)RFIFOREST(fd) < 4 || (int)RFIFOREST(fd) < ((RFIFOW(fd,2) == 0) ? 28 : 20)) - return 0; - { - int passwdenc = (int)RFIFOW(fd,2); - const char* passwd = (char*)RFIFOP(fd,4); - - if( passwdenc == 0 ) { // non encrypted password - safestrncpy(sd->passwd, passwd, NAME_LENGTH); - sd->passwdenc = 0; - } else { // encrypted password - memcpy(sd->passwd, passwd, 16); sd->passwd[16] = '\0'; // raw binary data here! - sd->passwdenc = passwdenc; - } - - RFIFOSKIP(fd, (passwdenc == 0) ? 28 : 20); - - WFIFOHEAD(fd,3); - WFIFOW(fd,0) = 0x7919; - WFIFOB(fd,2) = ladmin_auth(sd, ip) ? 0 : 1; - WFIFOSET(fd,3); - } - break; - default: ShowNotice("Abnormal end of connection (ip: %s): Unknown packet 0x%x\n", ip, command); set_eof(fd); @@ -1465,7 +1440,6 @@ int parse_login(int fd) } } - RFIFOSKIP(fd,RFIFOREST(fd)); return 0; } @@ -1564,14 +1538,6 @@ int login_config_read(const char* cfgName) login_config.ipban_cleanup_interval = (unsigned int)atoi(w2); else if(!strcmpi(w1, "ip_sync_interval")) login_config.ip_sync_interval = (unsigned int)1000*60*atoi(w2); //w2 comes in minutes. - - else if(!strcmpi(w1, "admin_state")) - login_config.admin_state = (bool)config_switch(w2); - else if(!strcmpi(w1, "admin_pass")) - safestrncpy(login_config.admin_pass, w2, sizeof(login_config.admin_pass)); - else if(!strcmpi(w1, "admin_allowed_host")) - safestrncpy(login_config.admin_allowed_host, w2, sizeof(login_config.admin_pass)); - else if(!strcmpi(w1, "import")) login_config_read(w2); else diff --git a/src/login/login.h b/src/login/login.h index 807caaed68..f338a09e18 100644 --- a/src/login/login.h +++ b/src/login/login.h @@ -60,10 +60,6 @@ struct Login_Config { bool check_client_version; // check the clientversion set in the clientinfo ? uint32 client_version_to_connect; // the client version needed to connect (if checking is enabled) - bool admin_state; // is ladmin support enabled? - char admin_pass[24]; // security password for ladmin - char admin_allowed_host[32]; // host/ip that is allowed to connect as ladmin - bool ipban; // perform IP blocking (via contents of `ipbanlist`) ? bool dynamic_pass_failure_ban; // automatic IP blocking due to failed login attemps ? unsigned int dynamic_pass_failure_ban_interval; // how far to scan the loginlog for password failures diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 95b3dc33e3..cebd881ce3 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -1937,7 +1937,7 @@ static int atcommand_pvpoff_sub(struct block_list *bl,va_list ap) { TBL_PC* sd = (TBL_PC*)bl; clif_pvpset(sd, 0, 0, 2); - if (sd->pvp_timer != -1) { + if (sd->pvp_timer != INVALID_TIMER) { delete_timer(sd->pvp_timer, pc_calc_pvprank_timer); sd->pvp_timer = INVALID_TIMER; } @@ -1969,7 +1969,7 @@ ACMD_FUNC(pvpoff) static int atcommand_pvpon_sub(struct block_list *bl,va_list ap) { TBL_PC* sd = (TBL_PC*)bl; - if (sd->pvp_timer == -1) { + if (sd->pvp_timer == INVALID_TIMER) { sd->pvp_timer = add_timer(gettick() + 200, pc_calc_pvprank_timer, sd->bl.id, 0); sd->pvp_rank = 0; sd->pvp_lastusers = 0; @@ -6095,7 +6095,7 @@ ACMD_FUNC(autoloot) } /*========================================== - * @autolootitem + * @alootid *------------------------------------------*/ ACMD_FUNC(autolootitem) { @@ -6104,9 +6104,9 @@ ACMD_FUNC(autolootitem) if (!message || !*message) { if (sd->state.autolootid) { sd->state.autolootid = 0; - clif_displaymessage(fd, "Autolootitem have been turned OFF."); + clif_displaymessage(fd, "Autolootitem has been turned OFF."); } else - clif_displaymessage(fd, "Please, enter Item name or its ID (usage: @autolootitem )."); + clif_displaymessage(fd, "Please, enter item name or it's ID (usage: @alootid )."); return -1; } @@ -6122,7 +6122,7 @@ ACMD_FUNC(autolootitem) sd->state.autolootid = item_data->nameid; // Autoloot Activated - sprintf(atcmd_output, "Autolooting Item: '%s'/'%s' {%d}", + sprintf(atcmd_output, "Autolooting item: '%s'/'%s' (%d)", item_data->name, item_data->jname, item_data->nameid); clif_displaymessage(fd, atcmd_output); @@ -6741,7 +6741,7 @@ ACMD_FUNC(unmute) } pl_sd->status.manner = 0; - status_change_end(&pl_sd->bl,SC_NOCHAT,-1); + status_change_end(&pl_sd->bl, SC_NOCHAT, INVALID_TIMER); clif_displaymessage(sd->fd,"Player unmuted"); return 0; @@ -6815,7 +6815,7 @@ ACMD_FUNC(mute) sc_start(&pl_sd->bl,SC_NOCHAT,100,0,0); } else { pl_sd->status.manner = 0; - status_change_end(&pl_sd->bl,SC_NOCHAT,-1); + status_change_end(&pl_sd->bl, SC_NOCHAT, INVALID_TIMER); } clif_GM_silence(sd, pl_sd, (manner > 0 ? 1 : 0)); @@ -6986,7 +6986,7 @@ ACMD_FUNC(mobinfo) strcpy(atcmd_output, " "); j = 0; for (i = 0; i < MAX_MOB_DROP; i++) { - if (mob->dropitem[i].nameid <= 0 || mob->dropitem[i].p < 1 || (item_data = itemdb_search(mob->dropitem[i].nameid)) == NULL) + if (mob->dropitem[i].nameid <= 0 || mob->dropitem[i].p < 1 || (item_data = itemdb_exists(mob->dropitem[i].nameid)) == NULL) continue; if (item_data->slot) sprintf(atcmd_output2, " - %s[%d] %02.02f%%", item_data->jname, item_data->slot, (float)mob->dropitem[i].p / 100); @@ -7009,7 +7009,7 @@ ACMD_FUNC(mobinfo) strcpy(atcmd_output, " MVP Items:"); j = 0; for (i = 0; i < 3; i++) { - if (mob->mvpitem[i].nameid <= 0 || (item_data = itemdb_search(mob->mvpitem[i].nameid)) == NULL) + if (mob->mvpitem[i].nameid <= 0 || (item_data = itemdb_exists(mob->mvpitem[i].nameid)) == NULL) continue; if (mob->mvpitem[i].p > 0) { j++; @@ -7115,19 +7115,18 @@ ACMD_FUNC(homlevel) nullpo_retr(-1, sd); - if (!message || !*message) { - clif_displaymessage(fd, "Please, enter a level adjustment: (usage: @homlevel <+/- # of levels>."); + if ( !message || !*message || ( level = atoi(message) ) < 1 ) { + clif_displaymessage(fd, "Please, enter a level adjustment: (usage: @homlevel <# of levels to level up>."); return -1; } - + if ( !merc_is_hom_active(sd->hd) ) { clif_displaymessage(fd, "You do not have a homunculus."); return -1; } - level = atoi(message); hd = sd->hd; - + for (i = 1; i <= level && hd->exp_next; i++){ hd->homunculus.exp += hd->exp_next; merc_hom_levelup(hd); @@ -7616,8 +7615,8 @@ static int atcommand_mutearea_sub(struct block_list *bl,va_list ap) pl_sd->status.manner -= time; if (pl_sd->status.manner < 0) sc_start(&pl_sd->bl,SC_NOCHAT,100,0,0); - else if (pl_sd->sc.data[SC_NOCHAT]) - status_change_end(&pl_sd->bl, SC_NOCHAT, -1); + else + status_change_end(&pl_sd->bl, SC_NOCHAT, INVALID_TIMER); } return 0; } @@ -7964,6 +7963,13 @@ ACMD_FUNC(accept) return 0; } + if( duel_list[sd->duel_invite].max_players_limit > 0 && duel_list[sd->duel_invite].members_count >= duel_list[sd->duel_invite].max_players_limit ) + { + // "Duel: Limit of players is reached." + clif_displaymessage(fd, msg_txt(351)); + return 0; + } + duel_accept(sd->duel_invite, sd); // "Duel: Invitation has been accepted." clif_displaymessage(fd, msg_txt(361)); @@ -8015,30 +8021,6 @@ ACMD_FUNC(cash) return 0; } -/*=================================== - * Away message (@away, @aw) [LuzZza] - *-----------------------------------*/ -ACMD_FUNC(away) -{ - if(strlen(message) > 0) { - if(strlen(message) > 128) - return -1; - strcpy(sd->away_message, message); - //"Away automessage has been activated." - clif_displaymessage(fd, msg_txt(546)); - } else { - if(strlen(sd->away_message) > 0) { - sd->away_message[0] = 0; - //"Away automessage has been disabled." - clif_displaymessage(fd, msg_txt(547)); - return 0; - } - //"Usage: @away,@aw . Enter empty message for disable it." - clif_displaymessage(fd, msg_txt(548)); - } - return 0; -} - // @clone/@slaveclone/@evilclone [Valaris] ACMD_FUNC(clone) { @@ -8323,7 +8305,7 @@ ACMD_FUNC(itemlist) const struct item* it = &items[i]; struct item_data* itd; - if( it->nameid == 0 || (itd = itemdb_search(it->nameid)) == NULL ) + if( it->nameid == 0 || (itd = itemdb_exists(it->nameid)) == NULL ) continue; counter += it->amount; @@ -8406,7 +8388,7 @@ ACMD_FUNC(itemlist) { struct item_data* card; - if( it->card[j] == 0 || (card = itemdb_search(it->card[j])) == NULL ) + if( it->card[j] == 0 || (card = itemdb_exists(it->card[j])) == NULL ) continue; counter2++; @@ -8872,8 +8854,6 @@ AtCommandInfo atcommand_info[] = { { "leave", 1,1, atcommand_leave }, { "accept", 1,1, atcommand_accept }, { "reject", 1,1, atcommand_reject }, - { "away", 1,1, atcommand_away }, - { "aw", 1,1, atcommand_away }, { "main", 1,1, atcommand_main }, { "clone", 50,50, atcommand_clone }, { "slaveclone", 50,50, atcommand_clone }, @@ -9118,8 +9098,8 @@ int atcommand_config_read(const char* cfgName) } else { p->level2 = atoi(w3); - p->level2 = cap_value(p->level2, 0, 100); } + p->level2 = cap_value(p->level2, 0, 100); } else if( strcmpi(w1, "import") == 0 ) diff --git a/src/map/battle.c b/src/map/battle.c index 32def23f3d..3e58c1209e 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -160,7 +160,7 @@ int battle_delay_damage_sub(int tid, unsigned int tick, int id, intptr data) struct block_list *target = map_id2bl(dat->target); if (target && dat && map_id2bl(id) == dat->src && target->prev != NULL && !status_isdead(target) && target->m == dat->src->m && - (target->type != BL_PC || ((TBL_PC*)target)->invincible_timer == -1) && + (target->type != BL_PC || ((TBL_PC*)target)->invincible_timer == INVALID_TIMER) && check_distance_bl(dat->src, target, dat->distance)) //Check to see if you haven't teleported. [Skotlex] { map_freeblock_lock(); @@ -263,7 +263,7 @@ int battle_attr_fix(struct block_list *src, struct block_list *target, int damag if( tsc->data[SC_SPIDERWEB]->val2-- > 0 ) damage <<= 1; // double damage if( tsc->data[SC_SPIDERWEB]->val2 == 0 ) - status_change_end(target,SC_SPIDERWEB,-1); + status_change_end(target, SC_SPIDERWEB, INVALID_TIMER); } return damage*ratio/100; } @@ -326,7 +326,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag d->dmg_lv = ATK_BLOCK; return 0; } - status_change_end(bl,SC_SAFETYWALL,-1); + status_change_end(bl, SC_SAFETYWALL, INVALID_TIMER); } if( sc->data[SC_PNEUMA] && (flag&(BF_MAGIC|BF_LONG)) == BF_LONG ) @@ -381,7 +381,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag //Shouldn't end until Breaker's non-weapon part connects. if (skill_num != ASC_BREAKER || !(flag&BF_WEAPON)) if (--(sce->val3) <= 0) //We make it work like Safety Wall, even though it only blocks 1 time. - status_change_end(bl, SC_KAUPE, -1); + status_change_end(bl, SC_KAUPE, INVALID_TIMER); return 0; } @@ -395,9 +395,9 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag } //Both need to be consumed if they are active. if (sce && --(sce->val2) <= 0) - status_change_end(bl, SC_UTSUSEMI, -1); + status_change_end(bl, SC_UTSUSEMI, INVALID_TIMER); if ((sce=sc->data[SC_BUNSINJYUTSU]) && --(sce->val2) <= 0) - status_change_end(bl, SC_BUNSINJYUTSU, -1); + status_change_end(bl, SC_BUNSINJYUTSU, INVALID_TIMER); return 0; } @@ -408,7 +408,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag damage <<= 1; // Lex Aeterna only doubles damage of regular attacks from mercenaries if( skill_num != ASC_BREAKER || !(flag&BF_WEAPON) ) - status_change_end( bl,SC_AETERNA,-1 ); //Shouldn't end until Breaker's non-weapon part connects. + status_change_end(bl, SC_AETERNA, INVALID_TIMER); //Shouldn't end until Breaker's non-weapon part connects. } //Finally damage reductions.... @@ -464,7 +464,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag per /=20; //Uses 20% SP intervals. //SP Cost: 1% + 0.5% per every 20% SP if (!status_charge(bl, 0, (10+5*per)*status->max_sp/1000)) - status_change_end( bl,SC_ENERGYCOAT,-1 ); + status_change_end(bl, SC_ENERGYCOAT, INVALID_TIMER); //Reduction: 6% + 6% every 20% damage -= damage * 6 * (1+per) / 100; } @@ -484,7 +484,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag status_fix_damage(bl,src,damage,clif_damage(bl,src,gettick(),0,0,damage,0,0,0)); clif_skill_nodamage(bl,bl,ST_REJECTSWORD,sce->val1,1); if(--(sce->val3)<=0) - status_change_end(bl, SC_REJECTSWORD, -1); + status_change_end(bl, SC_REJECTSWORD, INVALID_TIMER); } //Finally Kyrie because it may, or not, reduce damage to 0. @@ -497,7 +497,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag damage=-sce->val2; } if((--sce->val3)<=0 || (sce->val2<=0) || skill_num == AL_HOLYLIGHT) - status_change_end(bl, SC_KYRIE, -1); + status_change_end(bl, SC_KYRIE, INVALID_TIMER); } if (!damage) return 0; @@ -3090,7 +3090,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t } if (sc && sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4&2)) - status_change_end(src,SC_CLOAKING,-1); + status_change_end(src, SC_CLOAKING, INVALID_TIMER); if( tsc && tsc->data[SC_AUTOCOUNTER] && status_check_skilluse(target, src, KN_AUTOCOUNTER, 1) ) { @@ -3102,7 +3102,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t int skilllv = tsc->data[SC_AUTOCOUNTER]->val1; clif_skillcastcancel(target); //Remove the casting bar. [Skotlex] clif_damage(src, target, tick, sstatus->amotion, 1, 0, 1, 0, 0); //Display MISS. - status_change_end(target,SC_AUTOCOUNTER,-1); + status_change_end(target, SC_AUTOCOUNTER, INVALID_TIMER); skill_attack(BF_WEAPON,target,target,src,KN_AUTOCOUNTER,skilllv,tick,0); return ATK_NONE; } @@ -3112,7 +3112,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t { int skilllv = tsc->data[SC_BLADESTOP_WAIT]->val1; int duration = skill_get_time2(MO_BLADESTOP,skilllv); - status_change_end(target, SC_BLADESTOP_WAIT, -1); + status_change_end(target, SC_BLADESTOP_WAIT, INVALID_TIMER); if(sc_start4(src, SC_BLADESTOP, 100, sd?pc_checkskill(sd, MO_BLADESTOP):5, 0, 0, target->id, duration)) { //Target locked. clif_damage(src, target, tick, sstatus->amotion, 1, 0, 1, 0, 0); //Display MISS. @@ -3128,7 +3128,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t if (sc && sc->data[SC_SKILLRATE_UP] && sc->data[SC_SKILLRATE_UP]->val1 == MO_TRIPLEATTACK) { triple_rate+= triple_rate*(sc->data[SC_SKILLRATE_UP]->val2)/100; - status_change_end(src,SC_SKILLRATE_UP,-1); + status_change_end(src, SC_SKILLRATE_UP, INVALID_TIMER); } if (rand()%100 < triple_rate) //FIXME: invalid return type! @@ -3142,7 +3142,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t int skilllv = sc->data[SC_SACRIFICE]->val1; if( --sc->data[SC_SACRIFICE]->val2 <= 0 ) - status_change_end(src, SC_SACRIFICE,-1); + status_change_end(src, SC_SACRIFICE, INVALID_TIMER); status_zap(src, sstatus->max_hp*9/100, 0);//Damage to self is always 9% @@ -3154,7 +3154,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t return (damage_lv)skill_attack(BF_MAGIC,src,src,target,NPC_MAGICALATTACK,sc->data[SC_MAGICALATTACK]->val1,tick,0); } - if(tsc && tsc->data[SC_KAAHI] && tsc->data[SC_KAAHI]->val4 == -1 && tstatus->hp < tstatus->max_hp) + if(tsc && tsc->data[SC_KAAHI] && tsc->data[SC_KAAHI]->val4 == INVALID_TIMER && tstatus->hp < tstatus->max_hp) tsc->data[SC_KAAHI]->val4 = add_timer(tick + skill_get_time2(SL_KAAHI,tsc->data[SC_KAAHI]->val1), kaahi_heal_timer, target->id, SC_KAAHI); //Activate heal. wd = battle_calc_attack(BF_WEAPON, src, target, 0, 0, flag); @@ -3197,7 +3197,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t status_fix_damage(NULL, d_bl, damage, 0); } else - status_change_end(target, SC_DEVOTION, -1); + status_change_end(target, SC_DEVOTION, INVALID_TIMER); } if (sc && sc->data[SC_AUTOSPELL] && rand()%100 < sc->data[SC_AUTOSPELL]->val4) { @@ -3256,7 +3256,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t --sce->val2; } if (sce->val2 <= 0) - status_change_end(target, SC_POISONREACT, -1); + status_change_end(target, SC_POISONREACT, INVALID_TIMER); } } map_freeblock_unlock(); @@ -3344,7 +3344,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f switch( target->type ) { // Checks on actual target case BL_PC: - if (((TBL_PC*)target)->invincible_timer != -1 || pc_isinvisible((TBL_PC*)target)) + if (((TBL_PC*)target)->invincible_timer != INVALID_TIMER || pc_isinvisible((TBL_PC*)target)) return -1; //Cannot be targeted yet. break; case BL_MOB: diff --git a/src/map/chrif.c b/src/map/chrif.c index a9634d2c2f..c4eeea3d9c 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -36,9 +36,9 @@ static DBMap* auth_db; // int id -> struct auth_node* static const int packet_len_table[0x3d] = { // U - used, F - free 60, 3,-1,27,10,-1, 6,-1, // 2af8-2aff: U->2af8, U->2af9, U->2afa, U->2afb, U->2afc, U->2afd, U->2afe, U->2aff - 6,-1,18, 7,-1,35,30,-1, // 2b00-2b07: U->2b00, U->2b01, U->2b02, U->2b03, U->2b04, U->2b05, U->2b06, F->2b07 - 6,30,-1,-1,86, 7,44,34, // 2b08-2b0f: U->2b08, U->2b09, F->2b0a, F->2b0b, U->2b0c, U->2b0d, U->2b0e, U->2b0f - 11,10,10, 6,11,-1,266,10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, U->2b13, U->2b14, F->2b15, U->2b16, U->2b17 + 6,-1,18, 7,-1,35,30, 0, // 2b00-2b07: U->2b00, U->2b01, U->2b02, U->2b03, U->2b04, U->2b05, U->2b06, F->2b07 + 6,30, 0, 0,86, 7,44,34, // 2b08-2b0f: U->2b08, U->2b09, F->2b0a, F->2b0b, U->2b0c, U->2b0d, U->2b0e, U->2b0f + 11,10,10, 0,11, 0,266,10, // 2b10-2b17: U->2b10, U->2b11, U->2b12, F->2b13, U->2b14, F->2b15, U->2b16, U->2b17 2,10, 2,-1,-1,-1, 2, 7, // 2b18-2b1f: U->2b18, U->2b19, U->2b1a, U->2b1b, U->2b1c, U->2b1d, U->2b1e, U->2b1f -1,10, 8, 2, 2,14,19,19, // 2b20-2b27: U->2b20, U->2b21, U->2b22, U->2b23, U->2b24, U->2b25, U->2b26, U->2b27 }; @@ -71,7 +71,7 @@ static const int packet_len_table[0x3d] = { // U - used, F - free //2b10: Outgoing, chrif_updatefamelist -> 'Update the fame ranking lists and send them' //2b11: Outgoing, chrif_divorce -> 'tell the charserver to do divorce' //2b12: Incoming, chrif_divorceack -> 'divorce chars -//2b13: Incoming, chrif_accountdeletion -> 'Delete acc XX, if the player is on, kick ....' +//2b13: FREE //2b14: Incoming, chrif_accountban -> 'not sure: kick the player with message XY' //2b15: FREE //2b16: Outgoing, chrif_ragsrvinfo -> 'sends base / job / drop rates ....' @@ -942,32 +942,6 @@ int chrif_deadopt(int father_id, int mother_id, int child_id) return 0; } -/*========================================== - * Disconnection of a player (account has been deleted in login-server) by [Yor] - *------------------------------------------*/ -int chrif_accountdeletion(int fd) -{ - int acc; - struct map_session_data *sd; - - acc = RFIFOL(fd,2); - if (battle_config.etc_log) - ShowNotice("chrif_accountdeletion %d.\n", acc); - sd = map_id2sd(acc); - if (acc > 0) { - if (sd != NULL) { - sd->login_id1++; // change identify, because if player come back in char within the 5 seconds, he can change its characters - clif_displaymessage(sd->fd, "Your account has been deleted (disconnection)..."); - set_eof(sd->fd); // forced to disconnect for the change - map_quit(sd); // Remove leftovers (e.g. autotrading) [Paradox924X] - } - } else { - if (sd != NULL) - ShowError("chrif_accountdeletion failed - player not online.\n"); - } - - return 0; -} /*========================================== * Disconnection of a player (account has been banned of has a status, from login-server) by [Yor] @@ -1169,7 +1143,7 @@ int chrif_save_scdata(struct map_session_data *sd) { if (!sc->data[i]) continue; - if (sc->data[i]->timer != -1) + if (sc->data[i]->timer != INVALID_TIMER) { timer = get_timer(sc->data[i]->timer); if (timer == NULL || timer->func != status_change_timer || DIFF_TICK(timer->tick,tick) < 0) @@ -1426,7 +1400,6 @@ int chrif_parse(int fd) case 0x2b0d: chrif_changedsex(fd); break; case 0x2b0f: chrif_char_ask_name_answer(RFIFOL(fd,2), (char*)RFIFOP(fd,6), RFIFOW(fd,30), RFIFOW(fd,32)); break; case 0x2b12: chrif_divorceack(RFIFOL(fd,2), RFIFOL(fd,6)); break; - case 0x2b13: chrif_accountdeletion(fd); break; case 0x2b14: chrif_accountban(fd); break; case 0x2b1b: chrif_recvfamelist(fd); break; case 0x2b1d: chrif_load_scdata(fd); break; diff --git a/src/map/clif.c b/src/map/clif.c index c5796555a5..b724ddbab2 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -5599,9 +5599,9 @@ void clif_closevendingboard(struct block_list* bl, int fd) } /*========================================== - * Sends a list of items in a shop + * Sends a list of items in a shop (ZC_PC_PURCHASE_ITEMLIST_FROMMC/ZC_PC_PURCHASE_ITEMLIST_FROMMC2) * R 0133 .w .l {.l .w .w .B .w .B .B .B .4w}.22B - * R 0800 .w .l .l {.l .w .w .B .w .B .B .B .4w}.22B + * R 0800 .w .l .l {.l .w .w .B .w .B .B .B .4w}.22B *------------------------------------------*/ void clif_vendinglist(struct map_session_data* sd, int id, struct s_vending* vending) { @@ -5628,7 +5628,7 @@ void clif_vendinglist(struct map_session_data* sd, int id, struct s_vending* ven WFIFOW(fd,2) = offset+count*22; WFIFOL(fd,4) = id; #if PACKETVER >= 20100105 - WFIFOL(fd,8) = vsd->status.char_id; + WFIFOL(fd,8) = vsd->vender_id; #endif for( i = 0; i < count; i++ ) @@ -5649,12 +5649,14 @@ void clif_vendinglist(struct map_session_data* sd, int id, struct s_vending* ven } /*========================================== - * Shop purchase failure + * Shop purchase failure (ZC_PC_PURCHASE_RESULT_FROMMC) * R 0135 .w .w .B * fail=1 - not enough zeny * fail=2 - overweight * fail=4 - out of stock * fail=5 - "cannot use an npc shop while in a trade" + * fail=6 - Because the store information was incorrect the item was not purchased. + * fail=7 - No sales information. *------------------------------------------*/ void clif_buyvending(struct map_session_data* sd, int index, int amount, int fail) { @@ -8398,8 +8400,8 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) clif_refreshlook(&sd->bl,sd->bl.id,LOOK_CLOTHES_COLOR,sd->vd.cloth_color,SELF); // item + clif_inventorylist(sd); // inventory list first, otherwise deleted items in pc_checkitem show up as 'unknown item' pc_checkitem(sd); - clif_inventorylist(sd); // cart if(pc_iscarton(sd)) { @@ -8724,11 +8726,13 @@ void clif_progressbar_abort(struct map_session_data * sd) void clif_parse_progressbar(int fd, struct map_session_data * sd) { + int npc_id = sd->progressbar.npc_id; + if( gettick() < sd->progressbar.timeout && sd->st ) sd->st->state = END; - npc_scriptcont(sd, sd->progressbar.npc_id); sd->progressbar.npc_id = sd->progressbar.timeout = 0; + npc_scriptcont(sd, npc_id); } /*========================================== @@ -9075,7 +9079,7 @@ void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type, return; } - if (sd->ud.skilltimer != -1 || sd->sc.opt1) + if (sd->ud.skilltimer != INVALID_TIMER || sd->sc.opt1) break; if (sd->sc.count && ( @@ -9279,19 +9283,6 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd) // notify sender of success clif_wis_end(fd, 0); // 0: success to send wisper - // if player has an auto-away message - if(dstsd->away_message[0] != '\0') - { - char output[256]; - sprintf(output, "%s %s", message, msg_txt(543)); // "(Automessage has been sent)" - clif_wis_message(dstsd->fd, sd->status.name, output, strlen(output) + 1); - if(dstsd->state.autotrade) - sprintf(output, msg_txt(544), dstsd->away_message); // "Away [AT] - "%s"" - else - sprintf(output, msg_txt(545), dstsd->away_message); // "Away - "%s"" - clif_wis_message(fd, dstsd->status.name, output, strlen(output) + 1); - return; - } // Normal message clif_wis_message(dstsd->fd, sd->status.name, message, messagelen); return; @@ -9562,9 +9553,11 @@ void clif_parse_NpcBuyListSend(int fd, struct map_session_data* sd) WFIFOSET(fd,packet_len(0xca)); } -/*========================================== - * - *------------------------------------------*/ +/// Request to sell chosen items to npc shop +/// R 00c9 .W {.W .W}.4B* +/// S 00cb .B +/// result = 00 -> "The deal has successfully completed." +/// result = 01 -> "The deal has failed." void clif_parse_NpcSellListSend(int fd,struct map_session_data *sd) { int fail=0,n; @@ -9848,7 +9841,7 @@ static void clif_parse_UseSkillToId_homun(struct homun_data *hd, struct map_sess return; if( hd->bl.id != target_id && skill_get_inf(skillnum)&INF_SELF_SKILL ) target_id = hd->bl.id; - if( hd->ud.skilltimer != -1 ) + if( hd->ud.skilltimer != INVALID_TIMER ) { if( skillnum != SA_CASTCANCEL ) return; } @@ -9958,7 +9951,7 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) if( target_id < 0 && -target_id == sd->bl.id ) // for disguises [Valaris] target_id = sd->bl.id; - if( sd->ud.skilltimer != -1 ) + if( sd->ud.skilltimer != INVALID_TIMER ) { if( skillnum != SA_CASTCANCEL ) return; @@ -10050,7 +10043,7 @@ void clif_parse_UseSkillToPosSub(int fd, struct map_session_data *sd, short skil safestrncpy(sd->message, (char*)RFIFOP(fd,skillmoreinfo), MESSAGE_SIZE); } - if( sd->ud.skilltimer != -1 ) + if( sd->ud.skilltimer != INVALID_TIMER ) return; if( DIFF_TICK(tick, sd->ud.canact_tick) < 0 ) @@ -10880,7 +10873,7 @@ void clif_parse_VendingListReq(int fd, struct map_session_data* sd) } /*========================================== - * Shop item(s) purchase request + * Shop item(s) purchase request (CZ_PC_PURCHASE_ITEMLIST_FROMMC) * S 0134 .w .l {.w .w}.4B* *------------------------------------------*/ void clif_parse_PurchaseReq(int fd, struct map_session_data* sd) @@ -10889,21 +10882,27 @@ void clif_parse_PurchaseReq(int fd, struct map_session_data* sd) int id = (int)RFIFOL(fd,4); const uint8* data = (uint8*)RFIFOP(fd,8); - vending_purchasereq(sd, id, -1, data, len/4); + vending_purchasereq(sd, id, sd->vended_id, data, len/4); + + // whether it fails or not, the buy window is closed + sd->vended_id = 0; } /*========================================== - * Shop item(s) purchase request - * S 0134/0801 .w .l .l {.w .w}.4B* + * Shop item(s) purchase request (CZ_PC_PURCHASE_ITEMLIST_FROMMC2) + * S 0801 .w .l .l {.w .w}.4B* *------------------------------------------*/ void clif_parse_PurchaseReq2(int fd, struct map_session_data* sd) { int len = (int)RFIFOW(fd,2) - 12; int aid = (int)RFIFOL(fd,4); - int cid = (int)RFIFOL(fd,8); + int uid = (int)RFIFOL(fd,8); const uint8* data = (uint8*)RFIFOP(fd,12); - vending_purchasereq(sd, aid, cid, data, len/4); + vending_purchasereq(sd, aid, uid, data, len/4); + + // whether it fails or not, the buy window is closed + sd->vended_id = 0; } /*========================================== @@ -11615,7 +11614,7 @@ void clif_parse_GMReqNoChat(int fd,struct map_session_data *sd) sc_start(&dstsd->bl,SC_NOCHAT,100,0,0); } else { dstsd->status.manner = 0; - status_change_end(&dstsd->bl,SC_NOCHAT,-1); + status_change_end(&dstsd->bl, SC_NOCHAT, INVALID_TIMER); } if( type != 2 ) @@ -11674,7 +11673,7 @@ void clif_parse_GMReqAccountName(int fd, struct map_session_data *sd) * S 0198 .W .W .W *------------------------------------------*/ void clif_parse_GMChangeMapType(int fd, struct map_session_data *sd) -{// FIXME: type sent by client is 0 or 1 (even if you enter 2+); that suggests, that it is walkable gat attribute +{ int x,y,type; if( battle_config.atc_gmonly && !pc_isGM(sd) ) @@ -12013,7 +12012,6 @@ void clif_parse_FriendsListReply(int fd, struct map_session_data *sd) account_id = RFIFOL(fd,2); char_id = RFIFOL(fd,6); reply = RFIFOB(fd,10); - //printf ("reply: %d %d %d\n", char_id, id, reply); f_sd = map_id2sd(account_id); //The account id is the same as the bl.id of players. if (f_sd == NULL) @@ -12096,20 +12094,20 @@ void clif_parse_FriendsListRemove(int fd, struct map_session_data *sd) } /*========================================== - * /pvpinfo + * /pvpinfo (CZ_REQ_PVPPOINT & ZC_ACK_PVPPOINT) + * R 020f .L .L + * S 0210 .L .L .L .L .L *------------------------------------------*/ void clif_parse_PVPInfo(int fd,struct map_session_data *sd) { WFIFOHEAD(fd,packet_len(0x210)); WFIFOW(fd,0) = 0x210; - //WFIFOL(fd,2) = 0; // not sure what for yet - //WFIFOL(fd,6) = 0; + WFIFOL(fd,2) = sd->status.char_id; + WFIFOL(fd,6) = sd->status.account_id; WFIFOL(fd,10) = sd->pvp_won; // times won WFIFOL(fd,14) = sd->pvp_lost; // times lost WFIFOL(fd,18) = sd->pvp_point; WFIFOSET(fd, packet_len(0x210)); - - return; } /*========================================== @@ -12584,7 +12582,7 @@ void clif_Mail_read(struct map_session_data *sd, int mail_id) WFIFOL(fd,72) = 0; WFIFOL(fd,76) = msg->zeny; - if( item->nameid && (data = itemdb_search(item->nameid)) != NULL ) + if( item->nameid && (data = itemdb_exists(item->nameid)) != NULL ) { WFIFOL(fd,80) = item->amount; WFIFOW(fd,84) = (data->view_id)?data->view_id:item->nameid; @@ -12650,7 +12648,7 @@ void clif_parse_Mail_getattach(int fd, struct map_session_data *sd) struct item_data *data; unsigned int weight; - if ((data = itemdb_search(sd->mail.inbox.msg[i].item.nameid)) == NULL) + if ((data = itemdb_exists(sd->mail.inbox.msg[i].item.nameid)) == NULL) return; switch( pc_checkadditem(sd, data->nameid, sd->mail.inbox.msg[i].item.amount) ) @@ -12863,7 +12861,7 @@ void clif_Auction_results(struct map_session_data *sd, short count, short pages, WFIFOL(fd,k) = auction.auction_id; safestrncpy((char*)WFIFOP(fd,4+k), auction.seller_name, NAME_LENGTH); - if( (item = itemdb_search(auction.item.nameid)) != NULL && item->view_id > 0 ) + if( (item = itemdb_exists(auction.item.nameid)) != NULL && item->view_id > 0 ) WFIFOW(fd,28+k) = item->view_id; else WFIFOW(fd,28+k) = auction.item.nameid; @@ -12924,7 +12922,7 @@ void clif_parse_Auction_setitem(int fd, struct map_session_data *sd) return; } - if( (item = itemdb_search(sd->status.inventory[idx].nameid)) != NULL && !(item->type == IT_ARMOR || item->type == IT_PETARMOR || item->type == IT_WEAPON || item->type == IT_CARD || item->type == IT_ETC) ) + if( (item = itemdb_exists(sd->status.inventory[idx].nameid)) != NULL && !(item->type == IT_ARMOR || item->type == IT_PETARMOR || item->type == IT_WEAPON || item->type == IT_CARD || item->type == IT_ETC) ) { // Consumible or pets are not allowed clif_Auction_setitem(sd->fd, idx, true); return; @@ -13025,7 +13023,7 @@ void clif_parse_Auction_register(int fd, struct map_session_data *sd) return; } - if( (item = itemdb_search(sd->status.inventory[sd->auction.index].nameid)) == NULL ) + if( (item = itemdb_exists(sd->status.inventory[sd->auction.index].nameid)) == NULL ) { // Just in case clif_Auction_message(fd, 2); // The auction has been canceled return; @@ -13139,6 +13137,31 @@ void clif_cashshop_show(struct map_session_data *sd, struct npc_data *nd) WFIFOSET(fd,WFIFOW(fd,2)); } +/// Cashshop Buy Ack (ZC_PC_CASH_POINT_UPDATE) +/// S 0289 .L .L .W +/// +/// @param error +/// 0: The deal has successfully completed. (ERROR_TYPE_NONE) +/// 1: The Purchase has failed because the NPC does not exist. (ERROR_TYPE_NPC) +/// 2: The Purchase has failed because the Kafra Shop System is not working correctly. (ERROR_TYPE_SYSTEM) +/// 3: You are over your Weight Limit. (ERROR_TYPE_INVENTORY_WEIGHT) +/// 4: You cannot purchase items while you are in a trade. (ERROR_TYPE_EXCHANGE) +/// 5: The Purchase has failed because the Item Information was incorrect. (ERROR_TYPE_ITEM_ID) +/// 6: You do not have enough Kafra Credit Points. (ERROR_TYPE_MONEY) +/// 7: You can purchase up to 10 items. +/// 8: Some items could not be purchased. +void clif_cashshop_ack(struct map_session_data* sd, int error) +{ + int fd = sd->fd; + + WFIFOHEAD(fd, packet_len(0x289)); + WFIFOW(fd,0) = 0x289; + WFIFOL(fd,2) = sd->cashPoints; + WFIFOL(fd,6) = sd->kafraPoints; + WFIFOW(fd,10) = TOW(error); + WFIFOSET(fd, packet_len(0x289)); +} + void clif_parse_cashshop_buy(int fd, struct map_session_data *sd) { int fail = 0, amount, points; @@ -13154,12 +13177,7 @@ void clif_parse_cashshop_buy(int fd, struct map_session_data *sd) else fail = npc_cashshop_buy(sd, nameid, amount, points); - WFIFOHEAD(fd,12); - WFIFOW(fd,0) = 0x289; - WFIFOL(fd,2) = sd->cashPoints; - WFIFOL(fd,6) = sd->kafraPoints; - WFIFOW(fd,10) = fail; - WFIFOSET(fd,12); + clif_cashshop_ack(sd, fail); } /*========================================== @@ -13248,7 +13266,7 @@ void clif_bossmapinfo(int fd, struct mob_data *md, short flag) else WFIFOB(fd,2) = 2; // First Time } - else if (md->spawn_timer != -1) + else if (md->spawn_timer != INVALID_TIMER) { // Boss is Dead const struct TimerData * timer_data = get_timer(md->spawn_timer); unsigned int seconds; @@ -14268,7 +14286,7 @@ static int packetdb_readdb(void) 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //#0x0280 - 0, 0, 0, 6, 0, 0, 0, 0, 0, 8, 18, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 0, 0, 0, 0, 12, 18, 0, 0, 0, 0, 0, 0, 4, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, -1, -1,107, 6, -1, 7, 7, 22,191, 0, 0, 0, 0, 0, 0, @@ -14579,6 +14597,7 @@ static int packetdb_readdb(void) {clif_parse_PartyBookingUpdateReq,"bookingupdatereq"}, {clif_parse_PartyBookingDeleteReq,"bookingdelreq"}, #endif + {clif_parse_PVPInfo,"pvpinfo"}, {NULL,NULL} }; diff --git a/src/map/clif.h b/src/map/clif.h index ded8ece30c..8e9f2be7ac 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -461,8 +461,6 @@ int clif_friendslist_toggle_sub(struct map_session_data *sd,va_list ap); void clif_friendslist_send(struct map_session_data *sd); void clif_friendslist_reqack(struct map_session_data *sd, struct map_session_data *f_sd, int type); -// [Valaris] -int clif_mob_hp(struct mob_data *md); void clif_weather(int m); // [Valaris] int clif_specialeffect(struct block_list* bl, int type, enum send_target target); // special effects [Valaris] void clif_specialeffect_single(struct block_list* bl, int type, int fd); diff --git a/src/map/guild.c b/src/map/guild.c index f90fc8946a..7b20808d6f 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -103,46 +103,34 @@ int guild_checkskill(struct guild *g,int id) /*========================================== * guild_skill_tree.txt reading - from jA [Komurka] *------------------------------------------*/ -int guild_read_guildskill_tree_db(void) -{ - int i,k,id=0,ln=0; - FILE *fp; - char line[1024],*p; +static bool guild_read_guildskill_tree_db(char* split[], int columns, int current) +{// ,,,,,,,,,,, + int k, id, skillid; - memset(guild_skill_tree,0,sizeof(guild_skill_tree)); - sprintf(line, "%s/guild_skill_tree.txt", db_path); - if( (fp=fopen(line,"r"))==NULL){ - ShowError("can't read %s\n", line); - return -1; - } - while(fgets(line, sizeof(line), fp)) + skillid = atoi(split[0]); + id = skillid - GD_SKILLBASE; + + if( id < 0 || id >= MAX_GUILDSKILL ) { - char *split[50]; - if(line[0]=='/' && line[1]=='/') - continue; - for(i=0,p=line;i<12 && p;i++){ - split[i]=p; - p=strchr(p,','); - if(p) *p++=0; - } - if(i<12) - continue; - id = atoi(split[0]) - GD_SKILLBASE; - if(id<0 || id>=MAX_GUILDSKILL) - continue; - guild_skill_tree[id].id=atoi(split[0]); - guild_skill_tree[id].max=atoi(split[1]); - if (guild_skill_tree[id].id==GD_GLORYGUILD && battle_config.require_glory_guild && guild_skill_tree[id].max==0) guild_skill_tree[id].max=1; - for(k=0;k<5;k++){ - guild_skill_tree[id].need[k].id=atoi(split[k*2+2]); - guild_skill_tree[id].need[k].lv=atoi(split[k*2+3]); - } - ln++; + ShowWarning("guild_read_guildskill_tree_db: Invalid skill id %d.\n", skillid); + return false; } - fclose(fp); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n",ln,"guild_skill_tree.txt"); - return 0; + guild_skill_tree[id].id = skillid; + guild_skill_tree[id].max = atoi(split[1]); + + if( guild_skill_tree[id].id == GD_GLORYGUILD && battle_config.require_glory_guild && guild_skill_tree[id].max == 0 ) + {// enable guild's glory when required for emblems + guild_skill_tree[id].max = 1; + } + + for( k = 0; k < 5; k++ ) + { + guild_skill_tree[id].need[k].id = atoi(split[k*2+2]); + guild_skill_tree[id].need[k].lv = atoi(split[k*2+3]); + } + + return true; } /*========================================== @@ -168,51 +156,21 @@ int guild_check_skill_require(struct guild *g,int id) return 1; } -static int guild_read_castledb(void) -{ - FILE *fp; - char line[1024]; - int j,ln=0; - char *str[32],*p; +static bool guild_read_castledb(char* str[], int columns, int current) +{// ,,,[,] struct guild_castle *gc; - sprintf(line, "%s/castle_db.txt", db_path); - if( (fp=fopen(line,"r"))==NULL){ - ShowError("can't read %s\n", line); - return -1; - } + CREATE(gc, struct guild_castle, 1); + gc->castle_id = atoi(str[0]); + gc->mapindex = mapindex_name2id(str[1]); + safestrncpy(gc->castle_name, str[2], sizeof(gc->castle_name)); + safestrncpy(gc->castle_event, str[3], sizeof(gc->castle_event)); - while(fgets(line, sizeof(line), fp)) - { - if(line[0]=='/' && line[1]=='/') - continue; - memset(str,0,sizeof(str)); - for(j=0,p=line;j<6 && p;j++){ - str[j]=p; - p=strchr(p,','); - if(p) *p++=0; - } - if (j < 4) //Insufficient data for castle. [Skotlex] - { - ShowError("castle_db.txt: invalid line '%s'\n", line); - continue; - } + idb_put(castle_db,gc->castle_id,gc); - gc=(struct guild_castle *)aCalloc(1,sizeof(struct guild_castle)); - gc->castle_id=atoi(str[0]); - gc->mapindex = mapindex_name2id(str[1]); - safestrncpy(gc->castle_name,str[2],NAME_LENGTH); - safestrncpy(gc->castle_event,str[3],NAME_LENGTH); + //intif_guild_castle_info(gc->castle_id); - idb_put(castle_db,gc->castle_id,gc); - - //intif_guild_castle_info(gc->castle_id); - - ln++; - } - fclose(fp); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n",ln,"castle_db.txt"); - return 0; + return true; } /// lookup: guild id -> guild* @@ -1969,9 +1927,10 @@ void do_init_guild(void) expcache_ers = ers_new(sizeof(struct guild_expcache)); guild_castleinfoevent_db=idb_alloc(DB_OPT_BASE); - guild_read_castledb(); + sv_readdb(db_path, "castle_db.txt", ',', 4, 5, -1, &guild_read_castledb); - guild_read_guildskill_tree_db(); //guild skill tree [Komurka] + memset(guild_skill_tree,0,sizeof(guild_skill_tree)); + sv_readdb(db_path, "guild_skill_tree.txt", ',', 12, 12, -1, &guild_read_guildskill_tree_db); //guild skill tree [Komurka] add_timer_func_list(guild_payexp_timer,"guild_payexp_timer"); add_timer_func_list(guild_send_xy_timer, "guild_send_xy_timer"); diff --git a/src/map/homunculus.c b/src/map/homunculus.c index 0fbd7cbff6..7bfb6081d3 100644 --- a/src/map/homunculus.c +++ b/src/map/homunculus.c @@ -8,6 +8,7 @@ #include "../common/nullpo.h" #include "../common/mmo.h" #include "../common/showmsg.h" +#include "../common/strlib.h" #include "../common/utils.h" #include "log.h" @@ -523,7 +524,7 @@ static int merc_hom_hungry(int tid, unsigned int tick, int id, intptr data) int merc_hom_hungry_timer_delete(struct homun_data *hd) { nullpo_ret(hd); - if(hd->hungry_timer != -1) { + if(hd->hungry_timer != INVALID_TIMER) { delete_timer(hd->hungry_timer,merc_hom_hungry); hd->hungry_timer = INVALID_TIMER; } @@ -637,7 +638,7 @@ int merc_hom_alloc(struct map_session_data *sd, struct s_homunculus *hom) void merc_hom_init_timers(struct homun_data * hd) { - if (hd->hungry_timer == -1) + if (hd->hungry_timer == INVALID_TIMER) hd->hungry_timer = add_timer(gettick()+hd->homunculusDB->hungryDelay,merc_hom_hungry,hd->master->bl.id,0); hd->regen.state.block = 0; //Restore HP/SP block. } @@ -876,226 +877,190 @@ int merc_hom_shuffle(struct homun_data *hd) return 1; } -int read_homunculusdb(void) +static bool read_homunculusdb_sub(char* str[], int columns, int current) { - FILE *fp; - char line[1024], *p; - int i, k, classid; - int j = 0; - const char *filename[]={"homunculus_db.txt","homunculus_db2.txt"}; - char *str[50]; + int classid; struct s_homunculus_db *db; - memset(homunculus_db,0,sizeof(homunculus_db)); - for(i = 0; i<2; i++) + //Base Class,Evo Class + classid = atoi(str[0]); + if (classid < HM_CLASS_BASE || classid > HM_CLASS_MAX) { - sprintf(line, "%s/%s", db_path, filename[i]); - fp = fopen(line,"r"); - if(!fp){ - if(i != 0) - continue; - ShowError("read_homunculusdb : can't read %s\n", line); - return -1; - } - - while(fgets(line, sizeof(line), fp) && j < MAX_HOMUNCULUS_CLASS) - { - if(line[0] == '/' && line[1] == '/') - continue; - - k = 0; - p = strtok (line,","); - while (p != NULL && k < 50) - { - str[k++] = p; - p = strtok (NULL, ","); - } - if (k < 50 ) - { - ShowError("read_homunculusdb : Incorrect number of columns at %s, homunculus %d. Read %d columns, 50 are needed.\n", filename[i], j+1, k); - continue; - } - - //Base Class,Evo Class - classid = atoi(str[0]); - if (classid < HM_CLASS_BASE || classid > HM_CLASS_MAX) - { - ShowError("read_homunculusdb : Invalid class %d (%s)\n", classid, filename[i]); - continue; - } - db = &homunculus_db[j]; - db->base_class = classid; - classid = atoi(str[1]); - if (classid < HM_CLASS_BASE || classid > HM_CLASS_MAX) - { - db->base_class = 0; - ShowError("read_homunculusdb : Invalid class %d (%s)\n", classid, filename[i]); - continue; - } - db->evo_class = classid; - //Name, Food, Hungry Delay, Base Size, Evo Size, Race, Element, ASPD - strncpy(db->name,str[2],NAME_LENGTH-1); - db->foodID = atoi(str[3]); - db->hungryDelay = atoi(str[4]); - db->base_size = atoi(str[5]); - db->evo_size = atoi(str[6]); - db->race = atoi(str[7]); - db->element = atoi(str[8]); - db->baseASPD = atoi(str[9]); - //base HP, SP, str, agi, vit, int, dex, luk - db->base.HP = atoi(str[10]); - db->base.SP = atoi(str[11]); - db->base.str = atoi(str[12]); - db->base.agi = atoi(str[13]); - db->base.vit = atoi(str[14]); - db->base.int_= atoi(str[15]); - db->base.dex = atoi(str[16]); - db->base.luk = atoi(str[17]); - //Growth Min/Max HP, SP, str, agi, vit, int, dex, luk - db->gmin.HP = atoi(str[18]); - db->gmax.HP = atoi(str[19]); - db->gmin.SP = atoi(str[20]); - db->gmax.SP = atoi(str[21]); - db->gmin.str = atoi(str[22]); - db->gmax.str = atoi(str[23]); - db->gmin.agi = atoi(str[24]); - db->gmax.agi = atoi(str[25]); - db->gmin.vit = atoi(str[26]); - db->gmax.vit = atoi(str[27]); - db->gmin.int_= atoi(str[28]); - db->gmax.int_= atoi(str[29]); - db->gmin.dex = atoi(str[30]); - db->gmax.dex = atoi(str[31]); - db->gmin.luk = atoi(str[32]); - db->gmax.luk = atoi(str[33]); - //Evolution Min/Max HP, SP, str, agi, vit, int, dex, luk - db->emin.HP = atoi(str[34]); - db->emax.HP = atoi(str[35]); - db->emin.SP = atoi(str[36]); - db->emax.SP = atoi(str[37]); - db->emin.str = atoi(str[38]); - db->emax.str = atoi(str[39]); - db->emin.agi = atoi(str[40]); - db->emax.agi = atoi(str[41]); - db->emin.vit = atoi(str[42]); - db->emax.vit = atoi(str[43]); - db->emin.int_= atoi(str[44]); - db->emax.int_= atoi(str[45]); - db->emin.dex = atoi(str[46]); - db->emax.dex = atoi(str[47]); - db->emin.luk = atoi(str[48]); - db->emax.luk = atoi(str[49]); - - //Check that the min/max values really are below the other one. - if(db->gmin.HP > db->gmax.HP) - db->gmin.HP = db->gmax.HP; - if(db->gmin.SP > db->gmax.SP) - db->gmin.SP = db->gmax.SP; - if(db->gmin.str > db->gmax.str) - db->gmin.str = db->gmax.str; - if(db->gmin.agi > db->gmax.agi) - db->gmin.agi = db->gmax.agi; - if(db->gmin.vit > db->gmax.vit) - db->gmin.vit = db->gmax.vit; - if(db->gmin.int_> db->gmax.int_) - db->gmin.int_= db->gmax.int_; - if(db->gmin.dex > db->gmax.dex) - db->gmin.dex = db->gmax.dex; - if(db->gmin.luk > db->gmax.luk) - db->gmin.luk = db->gmax.luk; - - if(db->emin.HP > db->emax.HP) - db->emin.HP = db->emax.HP; - if(db->emin.SP > db->emax.SP) - db->emin.SP = db->emax.SP; - if(db->emin.str > db->emax.str) - db->emin.str = db->emax.str; - if(db->emin.agi > db->emax.agi) - db->emin.agi = db->emax.agi; - if(db->emin.vit > db->emax.vit) - db->emin.vit = db->emax.vit; - if(db->emin.int_> db->emax.int_) - db->emin.int_= db->emax.int_; - if(db->emin.dex > db->emax.dex) - db->emin.dex = db->emax.dex; - if(db->emin.luk > db->emax.luk) - db->emin.luk = db->emax.luk; - - j++; - } - if (j > MAX_HOMUNCULUS_CLASS) - ShowWarning("read_homunculusdb: Reached max number of homunculus [%d]. Remaining homunculus were not read.\n ", MAX_HOMUNCULUS_CLASS); - fclose(fp); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' homunculus in '"CL_WHITE"db/%s"CL_RESET"'.\n",j,filename[i]); + ShowError("read_homunculusdb : Invalid class %d\n", classid); + return false; } + db = &homunculus_db[current]; + db->base_class = classid; + classid = atoi(str[1]); + if (classid < HM_CLASS_BASE || classid > HM_CLASS_MAX) + { + db->base_class = 0; + ShowError("read_homunculusdb : Invalid class %d\n", classid); + return false; + } + db->evo_class = classid; + //Name, Food, Hungry Delay, Base Size, Evo Size, Race, Element, ASPD + strncpy(db->name,str[2],NAME_LENGTH-1); + db->foodID = atoi(str[3]); + db->hungryDelay = atoi(str[4]); + db->base_size = atoi(str[5]); + db->evo_size = atoi(str[6]); + db->race = atoi(str[7]); + db->element = atoi(str[8]); + db->baseASPD = atoi(str[9]); + //base HP, SP, str, agi, vit, int, dex, luk + db->base.HP = atoi(str[10]); + db->base.SP = atoi(str[11]); + db->base.str = atoi(str[12]); + db->base.agi = atoi(str[13]); + db->base.vit = atoi(str[14]); + db->base.int_= atoi(str[15]); + db->base.dex = atoi(str[16]); + db->base.luk = atoi(str[17]); + //Growth Min/Max HP, SP, str, agi, vit, int, dex, luk + db->gmin.HP = atoi(str[18]); + db->gmax.HP = atoi(str[19]); + db->gmin.SP = atoi(str[20]); + db->gmax.SP = atoi(str[21]); + db->gmin.str = atoi(str[22]); + db->gmax.str = atoi(str[23]); + db->gmin.agi = atoi(str[24]); + db->gmax.agi = atoi(str[25]); + db->gmin.vit = atoi(str[26]); + db->gmax.vit = atoi(str[27]); + db->gmin.int_= atoi(str[28]); + db->gmax.int_= atoi(str[29]); + db->gmin.dex = atoi(str[30]); + db->gmax.dex = atoi(str[31]); + db->gmin.luk = atoi(str[32]); + db->gmax.luk = atoi(str[33]); + //Evolution Min/Max HP, SP, str, agi, vit, int, dex, luk + db->emin.HP = atoi(str[34]); + db->emax.HP = atoi(str[35]); + db->emin.SP = atoi(str[36]); + db->emax.SP = atoi(str[37]); + db->emin.str = atoi(str[38]); + db->emax.str = atoi(str[39]); + db->emin.agi = atoi(str[40]); + db->emax.agi = atoi(str[41]); + db->emin.vit = atoi(str[42]); + db->emax.vit = atoi(str[43]); + db->emin.int_= atoi(str[44]); + db->emax.int_= atoi(str[45]); + db->emin.dex = atoi(str[46]); + db->emax.dex = atoi(str[47]); + db->emin.luk = atoi(str[48]); + db->emax.luk = atoi(str[49]); + + //Check that the min/max values really are below the other one. + if(db->gmin.HP > db->gmax.HP) + db->gmin.HP = db->gmax.HP; + if(db->gmin.SP > db->gmax.SP) + db->gmin.SP = db->gmax.SP; + if(db->gmin.str > db->gmax.str) + db->gmin.str = db->gmax.str; + if(db->gmin.agi > db->gmax.agi) + db->gmin.agi = db->gmax.agi; + if(db->gmin.vit > db->gmax.vit) + db->gmin.vit = db->gmax.vit; + if(db->gmin.int_> db->gmax.int_) + db->gmin.int_= db->gmax.int_; + if(db->gmin.dex > db->gmax.dex) + db->gmin.dex = db->gmax.dex; + if(db->gmin.luk > db->gmax.luk) + db->gmin.luk = db->gmax.luk; + + if(db->emin.HP > db->emax.HP) + db->emin.HP = db->emax.HP; + if(db->emin.SP > db->emax.SP) + db->emin.SP = db->emax.SP; + if(db->emin.str > db->emax.str) + db->emin.str = db->emax.str; + if(db->emin.agi > db->emax.agi) + db->emin.agi = db->emax.agi; + if(db->emin.vit > db->emax.vit) + db->emin.vit = db->emax.vit; + if(db->emin.int_> db->emax.int_) + db->emin.int_= db->emax.int_; + if(db->emin.dex > db->emax.dex) + db->emin.dex = db->emax.dex; + if(db->emin.luk > db->emax.luk) + db->emin.luk = db->emax.luk; + + return true; +} + +int read_homunculusdb(void) +{ + int i; + const char *filename[]={"homunculus_db.txt","homunculus_db2.txt"}; + + memset(homunculus_db,0,sizeof(homunculus_db)); + for(i = 0; i 0 ) + { + sprintf(path, "%s/%s", db_path, filename[i]); + + if( !exists(path) ) + { + continue; + } + } + + sv_readdb(db_path, filename[i], ',', 50, 50, MAX_HOMUNCULUS_CLASS, &read_homunculusdb_sub); + } + return 0; } +static bool read_homunculus_skilldb_sub(char* split[], int columns, int current) +{// ,,[,],,,,,,,,,, + int k, classid; + int j; + int minJobLevelPresent = 0; + + if( columns == 14 ) + minJobLevelPresent = 1; // MinJobLvl has been added + + // check for bounds [celest] + classid = atoi(split[0]) - HM_CLASS_BASE; + if ( classid >= MAX_HOMUNCULUS_CLASS ) + { + ShowWarning("read_homunculus_skilldb: Invalud homunculus class %d.\n", atoi(split[0])); + return false; + } + + k = atoi(split[1]); //This is to avoid adding two lines for the same skill. [Skotlex] + // Search an empty line or a line with the same skill_id (stored in j) + ARR_FIND( 0, MAX_SKILL_TREE, j, !hskill_tree[classid][j].id || hskill_tree[classid][j].id == k ); + if (j == MAX_SKILL_TREE) + { + ShowWarning("Unable to load skill %d into homunculus %d's tree. Maximum number of skills per class has been reached.\n", k, classid); + return false; + } + + hskill_tree[classid][j].id = k; + hskill_tree[classid][j].max = atoi(split[2]); + if (minJobLevelPresent) + hskill_tree[classid][j].joblv = atoi(split[3]); + + for( k = 0; k < MAX_PC_SKILL_REQUIRE; k++ ) + { + hskill_tree[classid][j].need[k].id = atoi(split[3+k*2+minJobLevelPresent]); + hskill_tree[classid][j].need[k].lv = atoi(split[3+k*2+minJobLevelPresent+1]); + } + + return true; +} + int read_homunculus_skilldb(void) { - FILE *fp; - char line[1024], *p; - int k, classid; - int j = 0; - char *split[15]; - memset(hskill_tree,0,sizeof(hskill_tree)); - sprintf(line, "%s/homun_skill_tree.txt", db_path); - fp=fopen(line,"r"); - if(fp==NULL){ - ShowError("can't read %s\n", line); - return 1; - } + sv_readdb(db_path, "homun_skill_tree.txt", ',', 13, 14, -1, &read_homunculus_skilldb_sub); - while(fgets(line, sizeof(line), fp)) - { - int minJobLevelPresent = 0; - - if(line[0]=='/' && line[1]=='/') - continue; - - k = 0; - p = strtok(line,","); - while (p != NULL && k < 15) - { - split[k++] = p; - p = strtok(NULL, ","); - } - - if(k < 13) - continue; - - if (k == 14) - minJobLevelPresent = 1; // MinJobLvl has been added - - // check for bounds [celest] - classid = atoi(split[0]) - HM_CLASS_BASE; - if ( classid >= MAX_HOMUNCULUS_CLASS ) - continue; - - k = atoi(split[1]); //This is to avoid adding two lines for the same skill. [Skotlex] - // Search an empty line or a line with the same skill_id (stored in j) - for(j = 0; j < MAX_SKILL_TREE && hskill_tree[classid][j].id && hskill_tree[classid][j].id != k; j++); - - if (j == MAX_SKILL_TREE) - { - ShowWarning("Unable to load skill %d into homunculus %d's tree. Maximum number of skills per class has been reached.\n", k, classid); - continue; - } - - hskill_tree[classid][j].id=k; - hskill_tree[classid][j].max=atoi(split[2]); - if (minJobLevelPresent) - hskill_tree[classid][j].joblv=atoi(split[3]); - - for(k=0;k, + int nameid, sprite; struct item_data *id; - sprintf(line, "%s/item_avail.txt", db_path); - if ((fp = fopen(line,"r")) == NULL) { - ShowError("can't read %s\n", line); - return -1; - } + nameid = atoi(str[0]); - while(fgets(line, sizeof(line), fp)) + if( ( id = itemdb_exists(nameid) ) == NULL ) { - if (line[0] == '/' && line[1] == '/') - continue; - memset(str, 0, sizeof(str)); - for (j = 0, p = line; j < 2 && p; j++) { - str[j] = p; - p = strchr(p, ','); - if(p) *p++ = 0; - } - - if (j < 2 || str[0] == NULL || - (nameid = atoi(str[0])) < 0 || !(id = itemdb_exists(nameid))) - continue; - - k = atoi(str[1]); - if (k > 0) { - id->flag.available = 1; - id->view_id = k; - } else - id->flag.available = 0; - ln++; + ShowWarning("itemdb_read_itemavail: Invalid item id %d.\n", nameid); + return false; } - fclose(fp); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", ln, "item_avail.txt"); - return 0; + sprite = atoi(str[1]); + + if( sprite > 0 ) + { + id->flag.available = 1; + id->view_id = sprite; + } + else + { + id->flag.available = 0; + } + + return true; } /*========================================== @@ -591,137 +577,90 @@ static void itemdb_read_itemgroup(void) /*========================================== * ‘•”õ§ŒÀƒtƒ@ƒCƒ‹“Ç‚Ýo‚µ *------------------------------------------*/ -static int itemdb_read_noequip(void) -{ - FILE *fp; - char line[1024]; - int ln=0; - int nameid,j; - char *str[32],*p; +static bool itemdb_read_noequip(char* str[], int columns, int current) +{// , + int nameid; struct item_data *id; - sprintf(line, "%s/item_noequip.txt", db_path); - if( (fp=fopen(line,"r"))==NULL ){ - ShowError("can't read %s\n", line); - return -1; - } - while(fgets(line, sizeof(line), fp)) + nameid = atoi(str[0]); + + if( ( id = itemdb_exists(nameid) ) == NULL ) { - if(line[0]=='/' && line[1]=='/') - continue; - memset(str,0,sizeof(str)); - for(j=0,p=line;j<2 && p;j++){ - str[j]=p; - p=strchr(p,','); - if(p) *p++=0; - } - if(str[0]==NULL) - continue; - - nameid=atoi(str[0]); - if(nameid<=0 || !(id=itemdb_exists(nameid))) - continue; - - id->flag.no_equip |= atoi(str[1]); - - ln++; - + ShowWarning("itemdb_read_noequip: Invalid item id %d.\n", nameid); + return false; } - fclose(fp); - if (ln > 0) { - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n",ln,"item_noequip.txt"); - } - return 0; + + id->flag.no_equip |= atoi(str[1]); + + return true; } /*========================================== * Reads item trade restrictions [Skotlex] *------------------------------------------*/ -static int itemdb_read_itemtrade(void) -{ - FILE *fp; - int nameid, j, flag, gmlv, ln = 0; - char line[1024], *str[10], *p; +static bool itemdb_read_itemtrade(char* str[], int columns, int current) +{// ,, + int nameid, flag, gmlv; struct item_data *id; - sprintf(line, "%s/item_trade.txt", db_path); - if ((fp = fopen(line,"r")) == NULL) { - ShowError("can't read %s\n", line); - return -1; - } + nameid = atoi(str[0]); - while(fgets(line, sizeof(line), fp)) + if( ( id = itemdb_exists(nameid) ) == NULL ) { - if (line[0] == '/' && line[1] == '/') - continue; - memset(str, 0, sizeof(str)); - for (j = 0, p = line; j < 3 && p; j++) { - str[j] = p; - p = strchr(p, ','); - if(p) *p++ = 0; - } - - if (j < 3 || str[0] == NULL || - (nameid = atoi(str[0])) < 0 || !(id = itemdb_exists(nameid))) - continue; - - flag = atoi(str[1]); - gmlv = atoi(str[2]); - - if (flag > 0 && flag < 128 && gmlv > 0) { //Check range - id->flag.trade_restriction = flag; - id->gm_lv_trade_override = gmlv; - ln++; - } + //ShowWarning("itemdb_read_itemtrade: Invalid item id %d.\n", nameid); + //return false; + // FIXME: item_trade.txt contains items, which are commented in item database. + return true; } - fclose(fp); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", ln, "item_trade.txt"); - return 0; + flag = atoi(str[1]); + gmlv = atoi(str[2]); + + if( flag < 0 || flag >= 128 ) + {//Check range + ShowWarning("itemdb_read_itemtrade: Invalid trading mask %d for item id %d.\n", flag, nameid); + return false; + } + + if( gmlv < 1 ) + { + ShowWarning("itemdb_read_itemtrade: Invalid override GM level %d for item id %d.\n", gmlv, nameid); + return false; + } + + id->flag.trade_restriction = flag; + id->gm_lv_trade_override = gmlv; + + return true; } /*========================================== * Reads item delay amounts [Paradox924X] *------------------------------------------*/ -static int itemdb_read_itemdelay(void) -{ - FILE *fp; - int nameid, j, item_delays = 0; - char line[1024], *str[10], *p; +static bool itemdb_read_itemdelay(char* str[], int columns, int current) +{// , + int nameid, delay; struct item_data *id; - sprintf(line, "%s/item_delay.txt", db_path); - if ((fp = fopen(line,"r")) == NULL) { - ShowError("can't read %s\n", line); - return -1; - } + nameid = atoi(str[0]); - while(fgets(line, sizeof(line), fp)) + if( ( id = itemdb_exists(nameid) ) == NULL ) { - if (line[0] == '/' && line[1] == '/') - continue; - if (item_delays == MAX_ITEMDELAYS) { - ShowError("itemdb_read_itemdelay: Too many entries specified in %s/item_delay.txt! Increase MAX_ITEMDELAYS in itemdb.h!\n", db_path); - break; - } - memset(str, 0, sizeof(str)); - for (j = 0, p = line; j < 2 && p; j++) { - str[j] = p; - p = strchr(p, ','); - if(p) *p++ = 0; - } - - if (j < 2 || str[0] == NULL || - (nameid = atoi(str[0])) < 0 || !(id = itemdb_exists(nameid))) - continue; - - id->delay = atoi(str[1]); - item_delays++; + ShowWarning("itemdb_read_itemdelay: Invalid item id %d.\n", nameid); + return false; } - fclose(fp); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", item_delays, "item_delay.txt"); - return 0; + delay = atoi(str[1]); + + if( delay < 0 ) + { + ShowWarning("itemdb_read_itemdelay: Invalid delay %d for item id %d.\n", id->delay, nameid); + return false; + } + + id->delay = delay; + + return true; } /*================================================================== @@ -1076,10 +1015,10 @@ static void itemdb_read(void) itemdb_readdb(); itemdb_read_itemgroup(); - itemdb_read_itemavail(); - itemdb_read_noequip(); - itemdb_read_itemtrade(); - itemdb_read_itemdelay(); + sv_readdb(db_path, "item_avail.txt", ',', 2, 2, -1, &itemdb_read_itemavail); + sv_readdb(db_path, "item_noequip.txt", ',', 2, 2, -1, &itemdb_read_noequip); + sv_readdb(db_path, "item_trade.txt", ',', 3, 3, -1, &itemdb_read_itemtrade); + sv_readdb(db_path, "item_delay.txt", ',', 2, 2, MAX_ITEMDELAYS, &itemdb_read_itemdelay); sv_readdb(db_path, "item_stack.txt", ',', 3, 3, -1, &itemdb_read_stack); } diff --git a/src/map/itemdb.h b/src/map/itemdb.h index bc1d5b3b03..1b89172775 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -111,7 +111,7 @@ struct item_data* itemdb_exists(int nameid); #define itemdb_wlv(n) itemdb_search(n)->wlv #define itemdb_range(n) itemdb_search(n)->range #define itemdb_slot(n) itemdb_search(n)->slot -#define itemdb_available(n) (itemdb_exists(n) && itemdb_search(n)->flag.available) +#define itemdb_available(n) (itemdb_search(n)->flag.available) #define itemdb_viewid(n) (itemdb_search(n)->view_id) #define itemdb_autoequip(n) (itemdb_search(n)->flag.autoequip) const char* itemdb_typename(int type); diff --git a/src/map/map.c b/src/map/map.c index b052cd7bc3..e3cada9639 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -393,19 +393,11 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) //TODO: Perhaps some outs of bounds checking should be placed here? if (bl->type&BL_CHAR) { skill_unit_move(bl,tick,2); - sc = status_get_sc(bl); - if (sc && sc->count) { - if (sc->data[SC_CLOSECONFINE]) - status_change_end(bl, SC_CLOSECONFINE, -1); - if (sc->data[SC_CLOSECONFINE2]) - status_change_end(bl, SC_CLOSECONFINE2, -1); -// if (sc->data[SC_BLADESTOP]) //Won't stop when you are knocked away, go figure... -// status_change_end(bl, SC_BLADESTOP, -1); - if (sc->data[SC_TATAMIGAESHI]) - status_change_end(bl, SC_TATAMIGAESHI, -1); - if (sc->data[SC_MAGICROD]) - status_change_end(bl, SC_MAGICROD, -1); - } + status_change_end(bl, SC_CLOSECONFINE, INVALID_TIMER); + status_change_end(bl, SC_CLOSECONFINE2, INVALID_TIMER); +// status_change_end(bl, SC_BLADESTOP, INVALID_TIMER); //Won't stop when you are knocked away, go figure... + status_change_end(bl, SC_TATAMIGAESHI, INVALID_TIMER); + status_change_end(bl, SC_MAGICROD, INVALID_TIMER); } else if (bl->type == BL_NPC) npc_unsetcells((TBL_NPC*)bl); @@ -423,6 +415,7 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) if (bl->type&BL_CHAR) { skill_unit_move(bl,tick,3); + sc = status_get_sc(bl); if (sc) { if (sc->count) { if (sc->data[SC_CLOAKING]) @@ -1566,7 +1559,7 @@ int map_quit(struct map_session_data *sd) return 0; } - if (sd->npc_timer_id != -1) //Cancel the event timer. + if (sd->npc_timer_id != INVALID_TIMER) //Cancel the event timer. npc_timerevent_quit(sd); if (sd->npc_id) @@ -1580,64 +1573,40 @@ int map_quit(struct map_session_data *sd) if( sd->sc.count ) { //Status that are not saved... - if(sd->sc.data[SC_BOSSMAPINFO]) - status_change_end(&sd->bl,SC_BOSSMAPINFO,-1); - if(sd->sc.data[SC_AUTOTRADE]) - status_change_end(&sd->bl,SC_AUTOTRADE,-1); - if(sd->sc.data[SC_SPURT]) - status_change_end(&sd->bl,SC_SPURT,-1); - if(sd->sc.data[SC_BERSERK]) - status_change_end(&sd->bl,SC_BERSERK,-1); - if(sd->sc.data[SC_TRICKDEAD]) - status_change_end(&sd->bl,SC_TRICKDEAD,-1); - if(sd->sc.data[SC_GUILDAURA]) - status_change_end(&sd->bl,SC_GUILDAURA,-1); + status_change_end(&sd->bl, SC_BOSSMAPINFO, INVALID_TIMER); + status_change_end(&sd->bl, SC_AUTOTRADE, INVALID_TIMER); + status_change_end(&sd->bl, SC_SPURT, INVALID_TIMER); + status_change_end(&sd->bl, SC_BERSERK, INVALID_TIMER); + status_change_end(&sd->bl, SC_TRICKDEAD, INVALID_TIMER); + status_change_end(&sd->bl, SC_GUILDAURA, INVALID_TIMER); if(sd->sc.data[SC_ENDURE] && sd->sc.data[SC_ENDURE]->val4) - status_change_end(&sd->bl,SC_ENDURE,-1); //No need to save infinite endure. - if(sd->sc.data[SC_WEIGHT50]) - status_change_end(&sd->bl,SC_WEIGHT50,-1); - if(sd->sc.data[SC_WEIGHT90]) - status_change_end(&sd->bl,SC_WEIGHT90,-1); + status_change_end(&sd->bl, SC_ENDURE, INVALID_TIMER); //No need to save infinite endure. + status_change_end(&sd->bl, SC_WEIGHT50, INVALID_TIMER); + status_change_end(&sd->bl, SC_WEIGHT90, INVALID_TIMER); if (battle_config.debuff_on_logout&1) { - if(sd->sc.data[SC_ORCISH]) - status_change_end(&sd->bl,SC_ORCISH,-1); - if(sd->sc.data[SC_STRIPWEAPON]) - status_change_end(&sd->bl,SC_STRIPWEAPON,-1); - if(sd->sc.data[SC_STRIPARMOR]) - status_change_end(&sd->bl,SC_STRIPARMOR,-1); - if(sd->sc.data[SC_STRIPSHIELD]) - status_change_end(&sd->bl,SC_STRIPSHIELD,-1); - if(sd->sc.data[SC_STRIPHELM]) - status_change_end(&sd->bl,SC_STRIPHELM,-1); - if(sd->sc.data[SC_EXTREMITYFIST]) - status_change_end(&sd->bl,SC_EXTREMITYFIST,-1); - if(sd->sc.data[SC_EXPLOSIONSPIRITS]) - status_change_end(&sd->bl,SC_EXPLOSIONSPIRITS,-1); + status_change_end(&sd->bl, SC_ORCISH, INVALID_TIMER); + status_change_end(&sd->bl, SC_STRIPWEAPON, INVALID_TIMER); + status_change_end(&sd->bl, SC_STRIPARMOR, INVALID_TIMER); + status_change_end(&sd->bl, SC_STRIPSHIELD, INVALID_TIMER); + status_change_end(&sd->bl, SC_STRIPHELM, INVALID_TIMER); + status_change_end(&sd->bl, SC_EXTREMITYFIST, INVALID_TIMER); + status_change_end(&sd->bl, SC_EXPLOSIONSPIRITS, INVALID_TIMER); if(sd->sc.data[SC_REGENERATION] && sd->sc.data[SC_REGENERATION]->val4) - status_change_end(&sd->bl,SC_REGENERATION,-1); + status_change_end(&sd->bl, SC_REGENERATION, INVALID_TIMER); //TO-DO Probably there are way more NPC_type negative status that are removed - if(sd->sc.data[SC_CHANGEUNDEAD]) - status_change_end(&sd->bl,SC_CHANGEUNDEAD,-1); + status_change_end(&sd->bl, SC_CHANGEUNDEAD, INVALID_TIMER); // Both these statuses are removed on logout. [L0ne_W0lf] - if(sd->sc.data[SC_SLOWCAST]) - status_change_end(&sd->bl,SC_SLOWCAST,-1); - if(sd->sc.data[SC_CRITICALWOUND]) - status_change_end(&sd->bl,SC_CRITICALWOUND,-1); + status_change_end(&sd->bl, SC_SLOWCAST, INVALID_TIMER); + status_change_end(&sd->bl, SC_CRITICALWOUND, INVALID_TIMER); } if (battle_config.debuff_on_logout&2) { - if(sd->sc.data[SC_MAXIMIZEPOWER]) - status_change_end(&sd->bl,SC_MAXIMIZEPOWER,-1); - if(sd->sc.data[SC_MAXOVERTHRUST]) - status_change_end(&sd->bl,SC_MAXOVERTHRUST,-1); - if(sd->sc.data[SC_STEELBODY]) - status_change_end(&sd->bl,SC_STEELBODY,-1); - if(sd->sc.data[SC_PRESERVE]) - status_change_end(&sd->bl,SC_PRESERVE,-1); - if(sd->sc.data[SC_KAAHI]) - status_change_end(&sd->bl,SC_KAAHI,-1); - if(sd->sc.data[SC_SPIRIT]) - status_change_end(&sd->bl,SC_SPIRIT,-1); + status_change_end(&sd->bl, SC_MAXIMIZEPOWER, INVALID_TIMER); + status_change_end(&sd->bl, SC_MAXOVERTHRUST, INVALID_TIMER); + status_change_end(&sd->bl, SC_STEELBODY, INVALID_TIMER); + status_change_end(&sd->bl, SC_PRESERVE, INVALID_TIMER); + status_change_end(&sd->bl, SC_KAAHI, INVALID_TIMER); + status_change_end(&sd->bl, SC_SPIRIT, INVALID_TIMER); } } @@ -2109,7 +2078,7 @@ int map_addmobtolist(unsigned short m, struct spawn_data *spawn) void map_spawnmobs(int m) { int i, k=0; - if (map[m].mob_delete_timer != -1) + if (map[m].mob_delete_timer != INVALID_TIMER) { //Mobs have not been removed yet [Skotlex] delete_timer(map[m].mob_delete_timer, map_removemobs_timer); map[m].mob_delete_timer = INVALID_TIMER; @@ -2184,7 +2153,7 @@ int map_removemobs_timer(int tid, unsigned int tick, int id, intptr data) void map_removemobs(int m) { - if (map[m].mob_delete_timer != -1) // should never happen + if (map[m].mob_delete_timer != INVALID_TIMER) // should never happen return; //Mobs are already scheduled for removal map[m].mob_delete_timer = add_timer(gettick()+battle_config.mob_remove_delay, map_removemobs_timer, m, 0); @@ -2804,8 +2773,16 @@ void map_flags_init(void) for( i = 0; i < map_num; i++ ) { + // mapflags memset(&map[i].flag, 0, sizeof(map[i].flag)); + // additional mapflag data + map[i].zone = 0; // restricted mapflag zone + map[i].nocommand = 0; // nocommand mapflag level + map[i].bexp = 100; // per map base exp multiplicator + map[i].jexp = 100; // per map job exp multiplicator + + // adjustments if( battle_config.pk_mode ) map[i].flag.pvp = 1; // make all maps pvp for pk_mode [Valaris] } @@ -2975,11 +2952,7 @@ int map_readallmaps (void) map[i].bxs = (map[i].xs + BLOCK_SIZE - 1) / BLOCK_SIZE; map[i].bys = (map[i].ys + BLOCK_SIZE - 1) / BLOCK_SIZE; - - // default experience multiplicators - map[i].jexp = 100; - map[i].bexp = 100; - + size = map[i].bxs * map[i].bys * sizeof(struct block_list*); map[i].block = (struct block_list**)aCalloc(size, 1); map[i].block_mob = (struct block_list**)aCalloc(size, 1); @@ -3012,7 +2985,7 @@ static int char_ip_set = 0; /*========================================== * Console Command Parser [Wizputer] *------------------------------------------*/ -int parse_console(char* buf) +int parse_console(const char* buf) { char type[64]; char command[64]; @@ -3026,14 +2999,20 @@ int parse_console(char* buf) memset(&sd, 0, sizeof(struct map_session_data)); strcpy(sd.status.name, "console"); - if( (n=sscanf(buf, "%[^:]:%[^:]:%99s %d %d[^\n]",type,command,map,&x,&y)) < 5 ) - if( (n=sscanf(buf, "%[^:]:%[^\n]",type,command)) < 2 ) - n = sscanf(buf,"%[^\n]",type); + if( ( n = sscanf(buf, "%63[^:]:%63[^:]:%63s %d %d[^\n]", type, command, map, &x, &y) ) < 5 ) + { + if( ( n = sscanf(buf, "%63[^:]:%63[^\n]", type, command) ) < 2 ) + { + n = sscanf(buf, "%63[^\n]", type); + } + } - if( n == 5 ) { + if( n == 5 ) + { m = map_mapname2mapid(map); - if( m < 0 ){ - ShowWarning("Console: Unknown map\n"); + if( m < 0 ) + { + ShowWarning("Console: Unknown map.\n"); return 0; } sd.bl.m = m; @@ -3042,32 +3021,40 @@ int parse_console(char* buf) sd.bl.x = x; if( y > 0 ) sd.bl.y = y; - } else { + } + else + { map[0] = '\0'; - if( n < 2 ) command[0] = '\0'; - if( n < 1 ) type[0] = '\0'; + if( n < 2 ) + command[0] = '\0'; + if( n < 1 ) + type[0] = '\0'; } - ShowInfo("Type of command: '%s' || Command: '%s' || Map: '%s' Coords: %d %d\n", type, command, map, x, y); + ShowNotice("Type of command: '%s' || Command: '%s' || Map: '%s' Coords: %d %d\n", type, command, map, x, y); - if( n == 5 && strcmpi("admin",type) == 0 ){ - if( !is_atcommand(sd.fd,&sd,command,0) ) + if( n == 5 && strcmpi("admin",type) == 0 ) + { + if( !is_atcommand(sd.fd, &sd, command, 0) ) ShowInfo("Console: not atcommand\n"); - } else if( n == 2 && strcmpi("server",type) == 0 ){ - if( strcmpi("shutdown",command) == 0 || - strcmpi("exit",command) == 0 || - strcmpi("quit",command) == 0 ){ + } + else if( n == 2 && strcmpi("server", type) == 0 ) + { + if( strcmpi("shutdown", command) == 0 || strcmpi("exit", command) == 0 || strcmpi("quit", command) == 0 ) + { runflag = 0; } - } else if( strcmpi("help",type) == 0 ){ - ShowNotice("To use GM commands:\n"); - ShowInfo("admin:: \n"); + } + else if( strcmpi("help", type) == 0 ) + { + ShowInfo("To use GM commands:\n"); + ShowInfo(" admin:: \n"); ShowInfo("You can use any GM command that doesn't require the GM.\n"); ShowInfo("No using @item or @warp however you can use @charwarp\n"); ShowInfo("The is for commands that need coords of the GM\n"); ShowInfo("IE: @spawn\n"); ShowInfo("To shutdown the server:\n"); - ShowInfo("server:shutdown\n"); + ShowInfo(" server:shutdown\n"); } return 0; @@ -3412,9 +3399,14 @@ void do_final(void) ShowStatus("Terminating...\n"); + // remove all objects on maps for (i = 0; i < map_num; i++) + { + ShowStatus("Cleaning up maps [%d/%d]: %s..."CL_CLL"\r", i+1, map_num, map[i].name); if (map[i].m >= 0) map_foreachinmap(cleanup_sub, i, BL_ALL); + } + ShowStatus("Cleaned up %d maps."CL_CLL"\n", map_num); //Scan any remaining players (between maps?) to kick them out. [Skotlex] iter = mapit_getallusers(); diff --git a/src/map/mercenary.c b/src/map/mercenary.c index 79bec2da63..8300628d5f 100644 --- a/src/map/mercenary.c +++ b/src/map/mercenary.c @@ -8,6 +8,7 @@ #include "../common/nullpo.h" #include "../common/mmo.h" #include "../common/showmsg.h" +#include "../common/strlib.h" #include "../common/utils.h" #include "log.h" @@ -249,7 +250,7 @@ int merc_delete(struct mercenary_data *md, int reply) if( md->devotion_flag ) { md->devotion_flag = 0; - status_change_end(&sd->bl, SC_DEVOTION, -1); + status_change_end(&sd->bl, SC_DEVOTION, INVALID_TIMER); } switch( reply ) @@ -402,162 +403,105 @@ int mercenary_checkskill(struct mercenary_data *md, int skill_id) return 0; } -int read_mercenarydb(void) +static bool read_mercenarydb_sub(char* str[], int columns, int current) { - FILE *fp; - char line[1024], *p; - char *str[26]; - int i, j = 0, k = 0, ele; + int ele; struct s_mercenary_db *db; struct status_data *status; - sprintf(line, "%s/%s", db_path, "mercenary_db.txt"); + db = &mercenary_db[current]; + db->class_ = atoi(str[0]); + strncpy(db->sprite, str[1], NAME_LENGTH); + strncpy(db->name, str[2], NAME_LENGTH); + db->lv = atoi(str[3]); + + status = &db->status; + db->vd.class_ = db->class_; + + status->max_hp = atoi(str[4]); + status->max_sp = atoi(str[5]); + status->rhw.range = atoi(str[6]); + status->rhw.atk = atoi(str[7]); + status->rhw.atk2 = status->rhw.atk + atoi(str[8]); + status->def = atoi(str[9]); + status->mdef = atoi(str[10]); + status->str = atoi(str[11]); + status->agi = atoi(str[12]); + status->vit = atoi(str[13]); + status->int_ = atoi(str[14]); + status->dex = atoi(str[15]); + status->luk = atoi(str[16]); + db->range2 = atoi(str[17]); + db->range3 = atoi(str[18]); + status->size = atoi(str[19]); + status->race = atoi(str[20]); + + ele = atoi(str[21]); + status->def_ele = ele%10; + status->ele_lv = ele/20; + if( status->def_ele >= ELE_MAX ) + { + ShowWarning("Mercenary %d has invalid element type %d (max element is %d)\n", db->class_, status->def_ele, ELE_MAX - 1); + status->def_ele = ELE_NEUTRAL; + } + if( status->ele_lv < 1 || status->ele_lv > 4 ) + { + ShowWarning("Mercenary %d has invalid element level %d (max is 4)\n", db->class_, status->ele_lv); + status->ele_lv = 1; + } + + status->aspd_rate = 1000; + status->speed = atoi(str[22]); + status->adelay = atoi(str[23]); + status->amotion = atoi(str[24]); + status->dmotion = atoi(str[25]); + + return true; +} + +int read_mercenarydb(void) +{ memset(mercenary_db,0,sizeof(mercenary_db)); - - fp = fopen(line, "r"); - if( !fp ) - { - ShowError("read_mercenarydb : can't read mercenary_db.txt\n"); - return -1; - } - - while( fgets(line, sizeof(line), fp) && j < MAX_MERCENARY_CLASS ) - { - k++; - if( line[0] == '/' && line[1] == '/' ) - continue; - - i = 0; - p = strtok(line, ","); - while( p != NULL && i < 26 ) - { - str[i++] = p; - p = strtok(NULL, ","); - } - if( i < 26 ) - { - ShowError("read_mercenarydb : Incorrect number of columns at mercenary_db.txt line %d.\n", k); - continue; - } - - db = &mercenary_db[j]; - db->class_ = atoi(str[0]); - strncpy(db->sprite, str[1], NAME_LENGTH); - strncpy(db->name, str[2], NAME_LENGTH); - db->lv = atoi(str[3]); - - status = &db->status; - db->vd.class_ = db->class_; - - status->max_hp = atoi(str[4]); - status->max_sp = atoi(str[5]); - status->rhw.range = atoi(str[6]); - status->rhw.atk = atoi(str[7]); - status->rhw.atk2 = status->rhw.atk + atoi(str[8]); - status->def = atoi(str[9]); - status->mdef = atoi(str[10]); - status->str = atoi(str[11]); - status->agi = atoi(str[12]); - status->vit = atoi(str[13]); - status->int_ = atoi(str[14]); - status->dex = atoi(str[15]); - status->luk = atoi(str[16]); - db->range2 = atoi(str[17]); - db->range3 = atoi(str[18]); - status->size = atoi(str[19]); - status->race = atoi(str[20]); - - ele = atoi(str[21]); - status->def_ele = ele%10; - status->ele_lv = ele/20; - if( status->def_ele >= ELE_MAX ) - { - ShowWarning("Mercenary %d has invalid element type %d (max element is %d)\n", db->class_, status->def_ele, ELE_MAX - 1); - status->def_ele = ELE_NEUTRAL; - } - if( status->ele_lv < 1 || status->ele_lv > 4 ) - { - ShowWarning("Mercenary %d has invalid element level %d (max is 4)\n", db->class_, status->ele_lv); - status->ele_lv = 1; - } - - status->aspd_rate = 1000; - status->speed = atoi(str[22]); - status->adelay = atoi(str[23]); - status->amotion = atoi(str[24]); - status->dmotion = atoi(str[25]); - - j++; - } - - fclose(fp); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' mercenaries in '"CL_WHITE"db/mercenary_db.txt"CL_RESET"'.\n",j); + sv_readdb(db_path, "mercenary_db.txt", ',', 26, 26, MAX_MERCENARY_CLASS, &read_mercenarydb_sub); return 0; } -int read_mercenary_skilldb(void) -{ - FILE *fp; - char line[1024], *p; - char *str[3]; +static bool read_mercenary_skilldb_sub(char* str[], int columns, int current) +{// ,, struct s_mercenary_db *db; - int i, j = 0, k = 0, class_; + int i, class_; int skillid, skilllv; - sprintf(line, "%s/%s", db_path, "mercenary_skill_db.txt"); - fp = fopen(line, "r"); - if( !fp ) + class_ = atoi(str[0]); + ARR_FIND(0, MAX_MERCENARY_CLASS, i, class_ == mercenary_db[i].class_); + if( i == MAX_MERCENARY_CLASS ) { - ShowError("read_mercenary_skilldb : can't read mercenary_skill_db.txt\n"); - return -1; + ShowError("read_mercenary_skilldb : Class %d not found in mercenary_db for skill entry.\n", class_); + return false; + } + + skillid = atoi(str[1]); + if( skillid < MC_SKILLBASE || skillid >= MC_SKILLBASE + MAX_MERCSKILL ) + { + ShowError("read_mercenary_skilldb : Skill %d out of range.\n", skillid); + return false; } - while( fgets(line, sizeof(line), fp) ) - { - k++; - if( line[0] == '/' && line[1] == '/' ) - continue; + db = &mercenary_db[i]; + skilllv = atoi(str[2]); - i = 0; - p = strtok(line, ","); - while( p != NULL && i < 3 ) - { - str[i++] = p; - p = strtok(NULL, ","); - } - if( i < 3 ) - { - ShowError("read_mercenary_skilldb : Incorrect number of columns at mercenary_skill_db.txt line %d.\n", k); - continue; - } + i = skillid - MC_SKILLBASE; + db->skill[i].id = skillid; + db->skill[i].lv = skilllv; - class_ = atoi(str[0]); - ARR_FIND(0, MAX_MERCENARY_CLASS, i, class_ == mercenary_db[i].class_); - if( i == MAX_MERCENARY_CLASS ) - { - ShowError("read_mercenary_skilldb : Class not found in mercenary_db for skill entry, line %d.\n", k); - continue; - } - - skillid = atoi(str[1]); - if( skillid < MC_SKILLBASE || skillid >= MC_SKILLBASE + MAX_MERCSKILL ) - { - ShowError("read_mercenary_skilldb : Skill out of range, line %d.\n", k); - continue; - } + return true; +} - db = &mercenary_db[i]; - skilllv = atoi(str[2]); +int read_mercenary_skilldb(void) +{ + sv_readdb(db_path, "mercenary_skill_db.txt", ',', 3, 3, -1, &read_mercenary_skilldb_sub); - i = skillid - MC_SKILLBASE; - db->skill[i].id = skillid; - db->skill[i].lv = skilllv; - j++; - } - - fclose(fp); - ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"db/mercenary_skill_db.txt"CL_RESET"'.\n",j); return 0; } diff --git a/src/map/mob.c b/src/map/mob.c index d67b470af6..6135850b6e 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -1183,7 +1183,7 @@ int mob_unlocktarget(struct mob_data *md, unsigned int tick) switch (md->state.skillstate) { case MSS_WALK: - if (md->ud.walktimer != -1) + if (md->ud.walktimer != INVALID_TIMER) break; //Because it is not unset when the mob finishes walking. md->state.skillstate = MSS_IDLE; @@ -1274,7 +1274,7 @@ int mob_warpchase(struct mob_data *md, struct block_list *target) if (target->m == md->bl.m && check_distance_bl(&md->bl, target, AREA_SIZE)) return 0; //No need to do a warp chase. - if (md->ud.walktimer != -1 && + if (md->ud.walktimer != INVALID_TIMER && map_getcell(md->bl.m,md->ud.to_x,md->ud.to_y,CELL_CHKNPC)) return 1; //Already walking to a warp. @@ -1306,10 +1306,10 @@ static bool mob_ai_sub_hard(struct mob_data *md, unsigned int tick) md->last_thinktime = tick; - if (md->ud.skilltimer != -1) + if (md->ud.skilltimer != INVALID_TIMER) return false; - if(md->ud.walktimer != -1 && md->ud.walkpath.path_pos <= 3) + if(md->ud.walktimer != INVALID_TIMER && md->ud.walkpath.path_pos <= 3) return false; // Abnormalities @@ -1331,8 +1331,8 @@ static bool mob_ai_sub_hard(struct mob_data *md, unsigned int tick) { //Check validity of current target. [Skotlex] tbl = map_id2bl(md->target_id); if (!tbl || tbl->m != md->bl.m || - (md->ud.attacktimer == -1 && !status_check_skilluse(&md->bl, tbl, 0, 0)) || - (md->ud.walktimer != -1 && !(battle_config.mob_ai&0x1) && !check_distance_bl(&md->bl, tbl, md->min_chase)) || + (md->ud.attacktimer == INVALID_TIMER && !status_check_skilluse(&md->bl, tbl, 0, 0)) || + (md->ud.walktimer != INVALID_TIMER && !(battle_config.mob_ai&0x1) && !check_distance_bl(&md->bl, tbl, md->min_chase)) || ( tbl->type == BL_PC && ((((TBL_PC*)tbl)->state.gangsterparadise && !(mode&MD_BOSS)) || @@ -1447,7 +1447,7 @@ static bool mob_ai_sub_hard(struct mob_data *md, unsigned int tick) if (tbl->type == BL_ITEM) { //Loot time. struct flooritem_data *fitem; - if (md->ud.target == tbl->id && md->ud.walktimer != -1) + if (md->ud.target == tbl->id && md->ud.walktimer != INVALID_TIMER) return true; //Already locked. if (md->lootitem == NULL) { //Can't loot... @@ -1469,7 +1469,7 @@ static bool mob_ai_sub_hard(struct mob_data *md, unsigned int tick) return true; } //Within looting range. - if (md->ud.attacktimer != -1) + if (md->ud.attacktimer != INVALID_TIMER) return true; //Busy attacking? fitem = (struct flooritem_data *)tbl; @@ -1497,7 +1497,7 @@ static bool mob_ai_sub_hard(struct mob_data *md, unsigned int tick) } //Attempt to attack. //At this point we know the target is attackable, we just gotta check if the range matches. - if (md->ud.target == tbl->id && md->ud.attacktimer != -1) //Already locked. + if (md->ud.target == tbl->id && md->ud.attacktimer != INVALID_TIMER) //Already locked. return true; if (battle_check_range (&md->bl, tbl, md->status.rhw.range)) @@ -1526,7 +1526,7 @@ static bool mob_ai_sub_hard(struct mob_data *md, unsigned int tick) return true; } - if (md->ud.walktimer != -1 && md->ud.target == tbl->id && + if (md->ud.walktimer != INVALID_TIMER && md->ud.target == tbl->id && ( !(battle_config.mob_ai&0x1) || check_distance_blxy(tbl, md->ud.to_x, md->ud.to_y, md->status.rhw.range) @@ -2432,7 +2432,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) md->status.hp = 1; } - if(md->deletetimer!=-1) { + if(md->deletetimer != INVALID_TIMER) { delete_timer(md->deletetimer,mob_timer_delete); md->deletetimer = INVALID_TIMER; } @@ -2900,7 +2900,7 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event) nullpo_ret(md); nullpo_ret(ms = md->db->skill); - if (!battle_config.mob_skill_rate || md->ud.skilltimer != -1 || !md->db->maxskill) + if (!battle_config.mob_skill_rate || md->ud.skilltimer != INVALID_TIMER || !md->db->maxskill) return 0; if (event == -1 && DIFF_TICK(md->ud.canact_tick, tick) > 0) @@ -4123,7 +4123,7 @@ static bool mob_parse_row_mobskilldb(char** str, int columns, int current) ms->target = MST_TARGET; } } else if (ms->target > MST_MASTER) { - ShowWarning("mob_parse_row_mobskilldb: Wrong mob skill target 'around' for non-ground skill %d (%s) for %s\n.", + ShowWarning("mob_parse_row_mobskilldb: Wrong mob skill target 'around' for non-ground skill %d (%s) for %s.\n", ms->skill_id, skill_get_name(ms->skill_id), mob_id < 0?"all mobs":mob_db_data[mob_id]->sprite); ms->target = MST_TARGET; diff --git a/src/map/npc.c b/src/map/npc.c index 4b188c177e..1bf5bd3121 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -493,10 +493,10 @@ int npc_timerevent(int tid, unsigned int tick, int id, intptr data) else { if( sd ) - sd->npc_timer_id = -1; + sd->npc_timer_id = INVALID_TIMER; else { - nd->u.scr.timerid = -1; + nd->u.scr.timerid = INVALID_TIMER; nd->u.scr.timertick = 0; // NPC timer stopped } ers_free(timer_event_ers, ted); @@ -544,10 +544,10 @@ int npc_timerevent_start(struct npc_data* nd, int rid) // Check if timer is already started. if( sd ) { - if( sd->npc_timer_id != -1 ) + if( sd->npc_timer_id != INVALID_TIMER ) return 0; } - else if( nd->u.scr.timerid != -1 ) + else if( nd->u.scr.timerid != INVALID_TIMER ) return 0; // Arrange for the next event @@ -587,7 +587,7 @@ int npc_timerevent_stop(struct npc_data* nd) } tid = sd?&sd->npc_timer_id:&nd->u.scr.timerid; - if( *tid == -1 ) // Nothing to stop + if( *tid == INVALID_TIMER ) // Nothing to stop return 0; // Delete timer @@ -595,7 +595,7 @@ int npc_timerevent_stop(struct npc_data* nd) if( td && td->data ) ers_free(timer_event_ers, (void*)td->data); delete_timer(*tid,npc_timerevent); - *tid = -1; + *tid = INVALID_TIMER; if( !sd ) { @@ -615,11 +615,11 @@ void npc_timerevent_quit(struct map_session_data* sd) struct timer_event_data *ted; // Check timer existance - if( sd->npc_timer_id == -1 ) + if( sd->npc_timer_id == INVALID_TIMER ) return; if( !(td = get_timer(sd->npc_timer_id)) ) { - sd->npc_timer_id = -1; + sd->npc_timer_id = INVALID_TIMER; return; } @@ -627,7 +627,7 @@ void npc_timerevent_quit(struct map_session_data* sd) nd = (struct npc_data *)map_id2bl(td->id); ted = (struct timer_event_data*)td->data; delete_timer(sd->npc_timer_id, npc_timerevent); - sd->npc_timer_id = -1; + sd->npc_timer_id = INVALID_TIMER; // Execute OnTimerQuit if( nd && nd->bl.type == BL_NPC ) @@ -873,7 +873,7 @@ int npc_touch_areanpc(struct map_session_data* sd, int m, int x, int y) { // failed to run OnTouch event, so just click the npc struct unit_data *ud = unit_bl2ud(&sd->bl); if( ud && ud->walkpath.path_pos < ud->walkpath.path_len ) - { // Since walktimer always == -1 at this time, we stop walking manually. [Inkfish] + { // Since walktimer always == INVALID_TIMER at this time, we stop walking manually. [Inkfish] clif_fixpos(&sd->bl); ud->walkpath.path_pos = ud->walkpath.path_len; } @@ -1183,7 +1183,7 @@ int npc_cashshop_buy(struct map_session_data *sd, int nameid, int amount, int po if( sd->state.trading ) return 4; - if( (item = itemdb_search(nameid)) == NULL ) + if( (item = itemdb_exists(nameid)) == NULL ) return 5; // Invalid Item ARR_FIND(0, nd->u.shop.count, i, nd->u.shop.shop_item[i].nameid == nameid); @@ -1600,7 +1600,7 @@ int npc_unload(struct npc_data* nd) } mapit_free(iter); - if (nd->u.scr.timerid != -1) { + if (nd->u.scr.timerid != INVALID_TIMER) { const struct TimerData *td = NULL; td = get_timer(nd->u.scr.timerid); if (td && td->data) @@ -2245,7 +2245,7 @@ static const char* npc_parse_script(char* w1, char* w2, char* w3, char* w4, cons nd->u.scr.timeramount++; } } - nd->u.scr.timerid = -1; + nd->u.scr.timerid = INVALID_TIMER; return end; } @@ -2428,7 +2428,7 @@ const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const ch nd->u.scr.timeramount++; } } - nd->u.scr.timerid = -1; + nd->u.scr.timerid = INVALID_TIMER; return end; } @@ -3536,7 +3536,7 @@ int do_init_npc(void) fake_nd->subtype = SCRIPT; strdb_put(npcname_db, fake_nd->exname, fake_nd); - fake_nd->u.scr.timerid = -1; + fake_nd->u.scr.timerid = INVALID_TIMER; map_addiddb(&fake_nd->bl); // End of initialization diff --git a/src/map/party.c b/src/map/party.c index 407221cdec..9c55a05f26 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -298,11 +298,11 @@ int party_recv_info(struct party *sp) int party_invite(struct map_session_data *sd,struct map_session_data *tsd) { - struct party_data *p=party_search(sd->status.party_id); + struct party_data *p; int i,flag=0; nullpo_ret(sd); - if( p == NULL ) + if( ( p = party_search(sd->status.party_id) ) == NULL ) return 0; if( tsd == NULL) { //TODO: Find the correct reply packet. clif_displaymessage(sd->fd, msg_txt(3)); diff --git a/src/map/pc.c b/src/map/pc.c index e7ef23ce96..7525ff63cd 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -170,7 +170,7 @@ int pc_addspiritball(struct map_session_data *sd,int interval,int max) if( sd->spiritball && sd->spiritball >= max ) { - if(sd->spirit_timer[0] != -1) + if(sd->spirit_timer[0] != INVALID_TIMER) delete_timer(sd->spirit_timer[0],pc_spiritball_timer); sd->spiritball--; if( sd->spiritball != 0 ) @@ -209,14 +209,14 @@ int pc_delspiritball(struct map_session_data *sd,int count,int type) count = MAX_SKILL_LEVEL; for(i=0;ispirit_timer[i] != -1) { + if(sd->spirit_timer[i] != INVALID_TIMER) { delete_timer(sd->spirit_timer[i],pc_spiritball_timer); - sd->spirit_timer[i] = -1; + sd->spirit_timer[i] = INVALID_TIMER; } } for(i=count;ispirit_timer[i-count] = sd->spirit_timer[i]; - sd->spirit_timer[i] = -1; + sd->spirit_timer[i] = INVALID_TIMER; } if(!type) @@ -317,7 +317,7 @@ int pc_inventory_rental_clear(struct map_session_data *sd) if( sd->rental_timer != INVALID_TIMER ) { delete_timer(sd->rental_timer, pc_inventory_rental_end); - sd->rental_timer = -1; + sd->rental_timer = INVALID_TIMER; } return 1; @@ -892,9 +892,7 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim if (!(battle_config.display_skill_fail&2)) sd->state.showdelay = 1; - // ƒAƒCƒeƒ€ƒ`ƒFƒbƒN pc_setinventorydata(sd); - pc_checkitem(sd); status_change_init(&sd->bl); if ((battle_config.atc_gmonly == 0 || pc_isGM(sd)) && (pc_isGM(sd) >= get_atcommand_level(atcommand_hide))) @@ -912,7 +910,7 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim // Event Timers for( i = 0; i < MAX_EVENTTIMER; i++ ) - sd->eventtimer[i] = -1; + sd->eventtimer[i] = INVALID_TIMER; // Rental Timer sd->rental_timer = INVALID_TIMER; @@ -1418,9 +1416,9 @@ int pc_updateweightstatus(struct map_session_data *sd) // stop old status change if( old_overweight == 1 ) - status_change_end(&sd->bl, SC_WEIGHT50, -1); + status_change_end(&sd->bl, SC_WEIGHT50, INVALID_TIMER); else if( old_overweight == 2 ) - status_change_end(&sd->bl, SC_WEIGHT90, -1); + status_change_end(&sd->bl, SC_WEIGHT90, INVALID_TIMER); // start new status change if( new_overweight == 1 ) @@ -3718,7 +3716,7 @@ int pc_useitem(struct map_session_data *sd,int n) //perform a skill-use check before going through. [Skotlex] //resurrection was picked as testing skill, as a non-offensive, generic skill, it will do. //FIXME: Is this really needed here? It'll be checked in unit.c after all and this prevents skill items using when silenced [Inkfish] - if( sd->inventory_data[n]->flag.delay_consume && ( sd->ud.skilltimer != -1 /*|| !status_check_skilluse(&sd->bl, &sd->bl, ALL_RESURRECTION, 0)*/ ) ) + if( sd->inventory_data[n]->flag.delay_consume && ( sd->ud.skilltimer != INVALID_TIMER /*|| !status_check_skilluse(&sd->bl, &sd->bl, ALL_RESURRECTION, 0)*/ ) ) return 0; if( sd->inventory_data[n]->delay > 0 ) { // Check if there is a delay on this item [Paradox924X] @@ -4118,21 +4116,15 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y { // Cancel some map related stuff. if (sd->sc.data[SC_JAILED]) return 1; //You may not get out! - if (sd->sc.data[SC_BOSSMAPINFO]) - status_change_end(&sd->bl,SC_BOSSMAPINFO,-1); - if (sd->sc.data[SC_WARM]) - status_change_end(&sd->bl,SC_WARM,-1); - if (sd->sc.data[SC_SUN_COMFORT]) - status_change_end(&sd->bl,SC_SUN_COMFORT,-1); - if (sd->sc.data[SC_MOON_COMFORT]) - status_change_end(&sd->bl,SC_MOON_COMFORT,-1); - if (sd->sc.data[SC_STAR_COMFORT]) - status_change_end(&sd->bl,SC_STAR_COMFORT,-1); - if (sd->sc.data[SC_MIRACLE]) - status_change_end(&sd->bl,SC_MIRACLE,-1); + status_change_end(&sd->bl, SC_BOSSMAPINFO, INVALID_TIMER); + status_change_end(&sd->bl, SC_WARM, INVALID_TIMER); + status_change_end(&sd->bl, SC_SUN_COMFORT, INVALID_TIMER); + status_change_end(&sd->bl, SC_MOON_COMFORT, INVALID_TIMER); + status_change_end(&sd->bl, SC_STAR_COMFORT, INVALID_TIMER); + status_change_end(&sd->bl, SC_MIRACLE, INVALID_TIMER); if (sd->sc.data[SC_KNOWLEDGE]) { struct status_change_entry *sce = sd->sc.data[SC_KNOWLEDGE]; - if (sce->timer != -1) + if (sce->timer != INVALID_TIMER) delete_timer(sce->timer, status_change_timer); sce->timer = add_timer(gettick() + skill_get_time(SG_KNOWLEDGE, sce->val1), status_change_timer, sd->bl.id, SC_KNOWLEDGE); } @@ -4404,17 +4396,17 @@ int pc_checkallowskill(struct map_session_data *sd) { // Skills requiring specific weapon types if(sd->sc.data[scw_list[i]] && !pc_check_weapontype(sd,skill_get_weapontype(status_sc2skill(scw_list[i])))) - status_change_end(&sd->bl,scw_list[i],-1); + status_change_end(&sd->bl, scw_list[i], INVALID_TIMER); } if(sd->sc.data[SC_SPURT] && sd->status.weapon) // Spurt requires bare hands (feet, in fact xD) - status_change_end(&sd->bl,SC_SPURT,-1); + status_change_end(&sd->bl, SC_SPURT, INVALID_TIMER); if(sd->status.shield <= 0) { // Skills requiring a shield for (i = 0; i < ARRAYLENGTH(scs_list); i++) if(sd->sc.data[scs_list[i]]) - status_change_end(&sd->bl,scs_list[i],-1); + status_change_end(&sd->bl, scs_list[i], INVALID_TIMER); } return 0; } @@ -4776,7 +4768,7 @@ int pc_follow_timer(int tid, unsigned int tick, int id, intptr data) // either player or target is currently detached from map blocks (could be teleporting), // but still connected to this map, so we'll just increment the timer and check back later if (sd->bl.prev != NULL && tbl->prev != NULL && - sd->ud.skilltimer == -1 && sd->ud.attacktimer == -1 && sd->ud.walktimer == -1) + sd->ud.skilltimer == INVALID_TIMER && sd->ud.attacktimer == INVALID_TIMER && sd->ud.walktimer == INVALID_TIMER) { if((sd->bl.m == tbl->m) && unit_can_reach_bl(&sd->bl,tbl, AREA_SIZE, 0, NULL, NULL)) { if (!check_distance_bl(&sd->bl, tbl, 5)) @@ -4808,11 +4800,11 @@ int pc_follow(struct map_session_data *sd,int target_id) struct block_list *bl = map_id2bl(target_id); if (bl == NULL /*|| bl->type != BL_PC*/) return 1; - if (sd->followtimer != -1) + if (sd->followtimer != INVALID_TIMER) pc_stop_following(sd); sd->followtarget = target_id; - pc_follow_timer(-1,gettick(),sd->bl.id,0); + pc_follow_timer(INVALID_TIMER, gettick(), sd->bl.id, 0); return 0; } @@ -5705,7 +5697,8 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) for(k = 0; k < 5; k++) if (sd->devotion[k]){ struct map_session_data *devsd = map_id2sd(sd->devotion[k]); - if (devsd) status_change_end(&devsd->bl,SC_DEVOTION,-1); + if (devsd) + status_change_end(&devsd->bl, SC_DEVOTION, INVALID_TIMER); sd->devotion[k] = 0; } @@ -5774,6 +5767,11 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) md->level++; status_calc_mob(md, 0); status_percent_heal(src,10,0); + + if( battle_config.show_mob_info&4 ) + {// update name with new level + clif_charnameack(0, &md->bl); + } } src = battle_get_master(src); // Maybe Player Summon } @@ -5854,7 +5852,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) pc_setinvincibletimer(sd, battle_config.pc_invincible_time); sc_start(&sd->bl,status_skill2sc(MO_STEELBODY),100,1,skill_get_time(MO_STEELBODY,1)); if(map_flag_gvg(sd->bl.m)) - pc_respawn_timer(-1, gettick(), sd->bl.id, 0); + pc_respawn_timer(INVALID_TIMER, gettick(), sd->bl.id, 0); return 0; } } @@ -6352,7 +6350,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper) //Remove status specific to your current tree skills. enum sc_type sc = status_skill2sc(id); if (sc > SC_COMMON_MAX && sd->sc.data[sc]) - status_change_end(&sd->bl, sc, -1); + status_change_end(&sd->bl, sc, INVALID_TIMER); } } @@ -6998,7 +6996,7 @@ static int pc_eventtimer(int tid, unsigned int tick, int id, intptr data) ARR_FIND( 0, MAX_EVENTTIMER, i, sd->eventtimer[i] == tid ); if( i < MAX_EVENTTIMER ) { - sd->eventtimer[i] = -1; + sd->eventtimer[i] = INVALID_TIMER; sd->eventcount--; npc_event(sd,p,0); } @@ -7017,7 +7015,7 @@ int pc_addeventtimer(struct map_session_data *sd,int tick,const char *name) int i; nullpo_ret(sd); - ARR_FIND( 0, MAX_EVENTTIMER, i, sd->eventtimer[i] == -1 ); + ARR_FIND( 0, MAX_EVENTTIMER, i, sd->eventtimer[i] == INVALID_TIMER ); if( i == MAX_EVENTTIMER ) return 0; @@ -7042,7 +7040,7 @@ int pc_deleventtimer(struct map_session_data *sd,const char *name) // find the named event timer ARR_FIND( 0, MAX_EVENTTIMER, i, - sd->eventtimer[i] != -1 && + sd->eventtimer[i] != INVALID_TIMER && (p = (char *)(get_timer(sd->eventtimer[i])->data)) != NULL && strcmp(p, name) == 0 ); @@ -7050,7 +7048,7 @@ int pc_deleventtimer(struct map_session_data *sd,const char *name) return 0; // not found delete_timer(sd->eventtimer[i],pc_eventtimer); - sd->eventtimer[i]=-1; + sd->eventtimer[i] = INVALID_TIMER; sd->eventcount--; aFree(p); @@ -7067,7 +7065,7 @@ int pc_addeventtimercount(struct map_session_data *sd,const char *name,int tick) nullpo_ret(sd); for(i=0;ieventtimer[i]!=-1 && strcmp( + if( sd->eventtimer[i] != INVALID_TIMER && strcmp( (char *)(get_timer(sd->eventtimer[i])->data), name)==0 ){ addtick_timer(sd->eventtimer[i],tick); break; @@ -7089,10 +7087,10 @@ int pc_cleareventtimer(struct map_session_data *sd) return 0; for(i=0;ieventtimer[i]!=-1 ){ + if( sd->eventtimer[i] != INVALID_TIMER ){ char *p = (char *)(get_timer(sd->eventtimer[i])->data); delete_timer(sd->eventtimer[i],pc_eventtimer); - sd->eventtimer[i]=-1; + sd->eventtimer[i] = INVALID_TIMER; sd->eventcount--; if (p) aFree(p); } @@ -7299,8 +7297,7 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) sd->status.weapon = sd->weapontype2; pc_calcweapontype(sd); clif_changelook(&sd->bl,LOOK_WEAPON,sd->status.weapon); - if(sd->sc.data[SC_DANCING]) //When unequipping, stop dancing. [Skotlex] - status_change_end(&sd->bl, SC_DANCING, -1); + status_change_end(&sd->bl, SC_DANCING, INVALID_TIMER); //When unequipping, stop dancing. [Skotlex] } if(sd->status.inventory[n].equip & EQP_HAND_L) { sd->status.shield = sd->weapontype2 = 0; @@ -7330,10 +7327,8 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) if(sd->status.inventory[n].equip & EQP_ARMOR) { // On Armor Change... - if( sd->sc.data[SC_BENEDICTIO] ) - status_change_end(&sd->bl, SC_BENEDICTIO, -1); - if( sd->sc.data[SC_ARMOR_RESIST] ) - status_change_end(&sd->bl, SC_ARMOR_RESIST, -1); + status_change_end(&sd->bl, SC_BENEDICTIO, INVALID_TIMER); + status_change_end(&sd->bl, SC_ARMOR_RESIST, INVALID_TIMER); } if( sd->state.autobonus&sd->status.inventory[n].equip ) @@ -7347,7 +7342,7 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) } if(sd->sc.data[SC_SIGNUMCRUCIS] && !battle_check_undead(sd->battle_status.race,sd->battle_status.def_ele)) - status_change_end(&sd->bl,SC_SIGNUMCRUCIS,-1); + status_change_end(&sd->bl, SC_SIGNUMCRUCIS, INVALID_TIMER); //OnUnEquip script [Skotlex] if (sd->inventory_data[n]) { @@ -7793,8 +7788,7 @@ int map_night_timer(int tid, unsigned int tick, int id, intptr data) void pc_setstand(struct map_session_data *sd){ nullpo_retv(sd); - if(sd->sc.data[SC_TENSIONRELAX]) - status_change_end(&sd->bl,SC_TENSIONRELAX,-1); + status_change_end(&sd->bl, SC_TENSIONRELAX, INVALID_TIMER); //Reset sitting tick. sd->ssregen.tick.hp = sd->ssregen.tick.sp = 0; diff --git a/src/map/pc.h b/src/map/pc.h index 2921b45275..c48defbf5a 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -350,6 +350,7 @@ struct map_session_data { int guildspy; // [Syrus22] int partyspy; // [Syrus22] + int vended_id; int vender_id; int vend_num; char message[MESSAGE_SIZE]; @@ -383,8 +384,6 @@ struct map_session_data { int killerrid, killedrid; - char away_message[128]; // [LuzZza] - int cashPoints, kafraPoints; int rental_timer; diff --git a/src/map/pet.c b/src/map/pet.c index 843f1cc119..6b16fe888b 100644 --- a/src/map/pet.c +++ b/src/map/pet.c @@ -180,7 +180,7 @@ int pet_sc_check(struct map_session_data *sd, int type) if( pd == NULL || (battle_config.pet_equip_required && pd->pet.equip == 0) || pd->recovery == NULL - || pd->recovery->timer != -1 + || pd->recovery->timer != INVALID_TIMER || pd->recovery->type != type ) return 1; @@ -263,7 +263,7 @@ int search_petDB_index(int key,int type) int pet_hungry_timer_delete(struct pet_data *pd) { nullpo_ret(pd); - if(pd->pet_hungry_timer != -1) { + if(pd->pet_hungry_timer != INVALID_TIMER) { delete_timer(pd->pet_hungry_timer,pet_hungry); pd->pet_hungry_timer = INVALID_TIMER; } @@ -666,14 +666,14 @@ int pet_equipitem(struct map_session_data *sd,int index) if (battle_config.pet_equip_required) { //Skotlex: start support timers if need unsigned int tick = gettick(); - if (pd->s_skill && pd->s_skill->timer == -1) + if (pd->s_skill && pd->s_skill->timer == INVALID_TIMER) { if (pd->s_skill->id) pd->s_skill->timer=add_timer(tick+pd->s_skill->delay*1000, pet_skill_support_timer, sd->bl.id, 0); else pd->s_skill->timer=add_timer(tick+pd->s_skill->delay*1000, pet_heal_timer, sd->bl.id, 0); } - if (pd->bonus && pd->bonus->timer == -1) + if (pd->bonus && pd->bonus->timer == INVALID_TIMER) pd->bonus->timer=add_timer(tick+pd->bonus->delay*1000, pet_skill_bonus_timer, sd->bl.id, 0); } @@ -706,7 +706,7 @@ static int pet_unequipitem(struct map_session_data *sd, struct pet_data *pd) pd->state.skillbonus = 0; status_calc_pc(sd,0); } - if( pd->s_skill && pd->s_skill->timer != -1 ) + if( pd->s_skill && pd->s_skill->timer != INVALID_TIMER ) { if( pd->s_skill->id ) delete_timer(pd->s_skill->timer, pet_skill_support_timer); @@ -714,7 +714,7 @@ static int pet_unequipitem(struct map_session_data *sd, struct pet_data *pd) delete_timer(pd->s_skill->timer, pet_heal_timer); pd->s_skill->timer = INVALID_TIMER; } - if( pd->bonus && pd->bonus->timer != -1 ) + if( pd->bonus && pd->bonus->timer != INVALID_TIMER ) { delete_timer(pd->bonus->timer, pet_skill_bonus_timer); pd->bonus->timer = INVALID_TIMER; @@ -825,10 +825,10 @@ static int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, uns return 0; pd->last_thinktime=tick; - if(pd->ud.attacktimer != -1 || pd->ud.skilltimer != -1 || pd->bl.m != sd->bl.m) + if(pd->ud.attacktimer != INVALID_TIMER || pd->ud.skilltimer != INVALID_TIMER || pd->bl.m != sd->bl.m) return 0; - if(pd->ud.walktimer != -1 && pd->ud.walkpath.path_pos <= 2) + if(pd->ud.walktimer != INVALID_TIMER && pd->ud.walkpath.path_pos <= 2) return 0; //No thinking when you just started to walk. if(pd->pet.intimate <= 0) { @@ -841,7 +841,7 @@ static int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, uns //Master too far, chase. if(pd->target_id) pet_unlocktarget(pd); - if(pd->ud.walktimer != -1 && pd->ud.target == sd->bl.id) + if(pd->ud.walktimer != INVALID_TIMER && pd->ud.target == sd->bl.id) return 0; //Already walking to him if (DIFF_TICK(tick, pd->ud.canmove_tick) < 0) return 0; //Can't move yet. @@ -855,7 +855,7 @@ static int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, uns //Return speed to normal. if (pd->status.speed != pd->petDB->speed) { - if (pd->ud.walktimer != -1) + if (pd->ud.walktimer != INVALID_TIMER) return 0; //Wait until the pet finishes walking back to master. pd->status.speed = pd->petDB->speed; } @@ -881,7 +881,7 @@ static int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, uns if (check_distance_bl(&sd->bl, &pd->bl, 3)) return 0; //Already next to master. - if(pd->ud.walktimer != -1 && check_distance_blxy(&sd->bl, pd->ud.to_x,pd->ud.to_y, 3)) + if(pd->ud.walktimer != INVALID_TIMER && check_distance_blxy(&sd->bl, pd->ud.to_x,pd->ud.to_y, 3)) return 0; //Already walking to him unit_calc_pos(&pd->bl, sd->bl.x, sd->bl.y, sd->ud.dir); @@ -892,7 +892,7 @@ static int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, uns } if(pd->ud.target == target->id && - (pd->ud.attacktimer != -1 || pd->ud.walktimer != -1)) + (pd->ud.attacktimer != INVALID_TIMER || pd->ud.walktimer != INVALID_TIMER)) return 0; //Target already locked. if (target->type != BL_ITEM) @@ -915,7 +915,7 @@ static int pet_ai_sub_hard(struct pet_data *pd, struct map_session_data *sd, uns struct flooritem_data *fitem = (struct flooritem_data *)target; if(pd->loot->count < pd->loot->max){ memcpy(&pd->loot->item[pd->loot->count++],&fitem->item_data,sizeof(pd->loot->item[0])); - pd->loot->weight += itemdb_search(fitem->item_data.nameid)->weight*fitem->item_data.amount; + pd->loot->weight += itemdb_weight(fitem->item_data.nameid)*fitem->item_data.amount; map_clearflooritem(target->id); } //Target is unlocked regardless of whether it was picked or not. @@ -1099,7 +1099,7 @@ int pet_recovery_timer(int tid, unsigned int tick, int id, intptr data) { //Display a heal animation? //Detoxify is chosen for now. clif_skill_nodamage(&pd->bl,&sd->bl,TF_DETOXIFY,1,1); - status_change_end(&sd->bl,pd->recovery->type,-1); + status_change_end(&sd->bl, pd->recovery->type, INVALID_TIMER); clif_emotion(&pd->bl, E_OK); } @@ -1130,7 +1130,7 @@ int pet_heal_timer(int tid, unsigned int tick, int id, intptr data) if(pc_isdead(sd) || (rate = get_percentage(status->sp, status->max_sp)) > pd->s_skill->sp || (rate = get_percentage(status->hp, status->max_hp)) > pd->s_skill->hp || - (rate = (pd->ud.skilltimer != -1)) //Another skill is in effect + (rate = (pd->ud.skilltimer != INVALID_TIMER)) //Another skill is in effect ) { //Wait (how long? 1 sec for every 10% of remaining) pd->s_skill->timer=add_timer(gettick()+(rate>10?rate:10)*100,pet_heal_timer,sd->bl.id,0); return 0; @@ -1173,7 +1173,7 @@ int pet_skill_support_timer(int tid, unsigned int tick, int id, intptr data) if(pc_isdead(sd) || (rate = get_percentage(status->sp, status->max_sp)) > pd->s_skill->sp || (rate = get_percentage(status->hp, status->max_hp)) > pd->s_skill->hp || - (rate = (pd->ud.skilltimer != -1)) //Another skill is in effect + (rate = (pd->ud.skilltimer != INVALID_TIMER)) //Another skill is in effect ) { //Wait (how long? 1 sec for every 10% of remaining) pd->s_skill->timer=add_timer(tick+(rate>10?rate:10)*100,pet_skill_support_timer,sd->bl.id,0); return 0; diff --git a/src/map/script.c b/src/map/script.c index 59a9b54484..f842b614a4 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -70,6 +70,7 @@ // - remove dynamic allocation in add_word() // - remove GETVALUE / SETVALUE // - clean up the set_reg / set_val / setd_sub mess +// - detect invalid label references at parse-time // // struct script_state* st; @@ -977,6 +978,23 @@ const char* parse_callfunc(const char* p, int require_paren) return p; } +/// Processes end of logical script line. +/// @param first When true, only fix up scheduling data is initialized +/// @param p Script position for error reporting in set_label +static void parse_nextline(bool first, const char* p) +{ + if( !first ) + { + add_scriptc(C_EOL); // mark end of line for stack cleanup + set_label(LABEL_NEXTLINE, script_pos, p); // fix up '-' labels + } + + // initialize data for new '-' label fix up scheduling + str_data[LABEL_NEXTLINE].type = C_NOP; + str_data[LABEL_NEXTLINE].backpatch = -1; + str_data[LABEL_NEXTLINE].label = -1; +} + /*========================================== * €‚̉ðÍ *------------------------------------------*/ @@ -1541,12 +1559,17 @@ const char* parse_syntax(const char* p) // function declaration - just register the name int l; l = add_word(func_name); - if( str_data[l].type == C_NOP )// set type only if the name did not exist before + if( str_data[l].type == C_NOP )// register only, if the name was not used by something else str_data[l].type = C_USERFUNC; + else if( str_data[l].type == C_USERFUNC ) + ; // already registered + else + disp_error_message("parse_syntax:function: function name is invalid", func_name); // if, for , while ‚̕‚¶”»’è p = parse_syntax_close(p2 + 1); - return p; } + return p; + } else if(*p2 == '{') {// function char label[256]; @@ -1567,11 +1590,16 @@ const char* parse_syntax(const char* p) // Set the position of the function (label) l=add_word(func_name); - if( str_data[l].type == C_NOP )// set type only if the name did not exist before + if( str_data[l].type == C_NOP || str_data[l].type == C_USERFUNC )// register only, if the name was not used by something else + { str_data[l].type = C_USERFUNC; - set_label(l, script_pos, p); - if( parse_options&SCRIPT_USE_LABEL_DB ) - strdb_put(scriptlabel_db, get_str(l), (void*)script_pos); + set_label(l, script_pos, p); + if( parse_options&SCRIPT_USE_LABEL_DB ) + strdb_put(scriptlabel_db, get_str(l), (void*)script_pos); + } + else + disp_error_message("parse_syntax:function: function name is invalid", func_name); + return skip_space(p); } else @@ -1691,6 +1719,10 @@ const char* parse_syntax_close_sub(const char* p,int* flag) } else if(syntax.curly[pos].type == TYPE_IF) { const char *bp = p; const char *p2; + + // if-block and else-block end is a new line + parse_nextline(false, p); + // if ÅIꊂ֔ò‚΂· sprintf(label,"goto __IF%x_FIN;",syntax.curly[pos].index); syntax.curly[syntax.curly_count++].type = TYPE_NULL; @@ -1766,6 +1798,10 @@ const char* parse_syntax_close_sub(const char* p,int* flag) if(*p != '(') { disp_error_message("need '('",p); } + + // do-block end is a new line + parse_nextline(false, p); + sprintf(label,"__DO%x_FIN",syntax.curly[pos].index); add_scriptl(add_str("jump_zero")); add_scriptc(C_ARG); @@ -1793,6 +1829,9 @@ const char* parse_syntax_close_sub(const char* p,int* flag) syntax.curly_count--; return p; } else if(syntax.curly[pos].type == TYPE_FOR) { + // for-block end is a new line + parse_nextline(false, p); + // ŽŸ‚̃‹[ƒv‚É”ò‚΂· sprintf(label,"goto __FR%x_NXT;",syntax.curly[pos].index); syntax.curly[syntax.curly_count++].type = TYPE_NULL; @@ -1806,6 +1845,9 @@ const char* parse_syntax_close_sub(const char* p,int* flag) syntax.curly_count--; return p; } else if(syntax.curly[pos].type == TYPE_WHILE) { + // while-block end is a new line + parse_nextline(false, p); + // while ðŒ”»’f‚Ö”ò‚΂· sprintf(label,"goto __WL%x_NXT;",syntax.curly[pos].index); syntax.curly[syntax.curly_count++].type = TYPE_NULL; @@ -1974,6 +2016,7 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o struct script_code* code = NULL; static int first=1; char end; + bool unresolved_names = false; if( src == NULL ) return NULL;// empty script @@ -1988,9 +2031,7 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o script_buf=(unsigned char *)aMalloc(SCRIPT_BLOCK_SIZE*sizeof(unsigned char)); script_pos=0; script_size=SCRIPT_BLOCK_SIZE; - str_data[LABEL_NEXTLINE].type=C_NOP; - str_data[LABEL_NEXTLINE].backpatch=-1; - str_data[LABEL_NEXTLINE].label=-1; + parse_nextline(true, NULL); // who called parse_script is responsible for clearing the database after using it, but just in case... lets clear it here if( options&SCRIPT_USE_LABEL_DB ) @@ -2077,12 +2118,8 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o // ‘¼‚Í‘S•”ˆê‚­‚½ p=parse_line(p); p=skip_space(p); - add_scriptc(C_EOL); - set_label(LABEL_NEXTLINE,script_pos,p); - str_data[LABEL_NEXTLINE].type=C_NOP; - str_data[LABEL_NEXTLINE].backpatch=-1; - str_data[LABEL_NEXTLINE].label=-1; + parse_nextline(false, p); } add_scriptc(C_NOP); @@ -2103,13 +2140,23 @@ struct script_code* parse_script(const char *src,const char *file,int line,int o j=next; } } + else if( str_data[i].type == C_USERFUNC ) + {// 'function name;' without follow-up code + ShowError("parse_script: function '%s' declared but not defined.\n", str_buf+str_data[i].str); + unresolved_names = true; + } + } + + if( unresolved_names ) + { + disp_error_message("parse_script: unresolved function references", p); } #ifdef DEBUG_DISP for(i=0;irid = 0; st->state = END; } - while( node && st->sleep.timer != -1 ) { + while( node && st->sleep.timer != INVALID_TIMER ) { if( (int)node->key == st->oid && ((struct script_state *)node->data)->sleep.timer == st->sleep.timer ) { script_erase_sleepdb(node); st->sleep.timer = INVALID_TIMER; @@ -4882,8 +4929,8 @@ BUILDIN_FUNC(setarray) } end = start + script_lastdata(st) - 2; - if( end >= SCRIPT_MAX_ARRAYSIZE ) - end = SCRIPT_MAX_ARRAYSIZE-1; + if( end > SCRIPT_MAX_ARRAYSIZE ) + end = SCRIPT_MAX_ARRAYSIZE; if( is_string_variable(name) ) {// string array @@ -4945,10 +4992,10 @@ BUILDIN_FUNC(cleararray) v = (void*)script_getnum(st, 3); end = start + script_getnum(st, 4); - if( end >= SCRIPT_MAX_ARRAYSIZE ) - end = SCRIPT_MAX_ARRAYSIZE-1; + if( end > SCRIPT_MAX_ARRAYSIZE ) + end = SCRIPT_MAX_ARRAYSIZE; - for( ; start <= end; ++start ) + for( ; start < end; ++start ) set_reg(st, sd, reference_uid(id, start), name, v, script_getref(st,2)); return 0; } @@ -5015,8 +5062,8 @@ BUILDIN_FUNC(copyarray) } count = script_getnum(st, 4); - if( count >= SCRIPT_MAX_ARRAYSIZE - idx1 ) - count = (SCRIPT_MAX_ARRAYSIZE-1) - idx1; + if( count > SCRIPT_MAX_ARRAYSIZE - idx1 ) + count = SCRIPT_MAX_ARRAYSIZE - idx1; if( count <= 0 || (id1 == id2 && idx1 == idx2) ) return 0;// nothing to copy @@ -5121,7 +5168,8 @@ BUILDIN_FUNC(deletearray) return 0;// no player attached } - end = getarraysize(st, id, start, is_string_variable(name), reference_getref(data)); + end = SCRIPT_MAX_ARRAYSIZE; + if( start >= end ) return 0;// nothing to free @@ -6191,7 +6239,7 @@ BUILDIN_FUNC(readparam) if( script_hasdata(st,3) ) sd=map_nick2sd(script_getstr(st,3)); else - sd=script_rid2sd(st); + sd=script_rid2sd(st); if(sd==NULL){ script_pushint(st,-1); @@ -8321,10 +8369,10 @@ BUILDIN_FUNC(getnpctimer) ShowError("buildin_getnpctimer: Attached player not found!\n"); break; } - val = (sd->npc_timer_id != -1); + val = (sd->npc_timer_id != INVALID_TIMER); } else - val = (nd->u.scr.timerid !=-1); + val = (nd->u.scr.timerid != INVALID_TIMER); break; case 2: val = nd->u.scr.timeramount; break; } @@ -9705,7 +9753,7 @@ BUILDIN_FUNC(pvpon) iter = mapit_getallusers(); for( sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); sd = (TBL_PC*)mapit_next(iter) ) { - if( sd->bl.m != m || sd->pvp_timer != -1 ) + if( sd->bl.m != m || sd->pvp_timer != INVALID_TIMER ) continue; // not applicable sd->pvp_timer = add_timer(gettick()+200,pc_calc_pvprank_timer,sd->bl.id,0); @@ -9724,7 +9772,7 @@ static int buildin_pvpoff_sub(struct block_list *bl,va_list ap) { TBL_PC* sd = (TBL_PC*)bl; clif_pvpset(sd, 0, 0, 2); - if (sd->pvp_timer != -1) { + if (sd->pvp_timer != INVALID_TIMER) { delete_timer(sd->pvp_timer, pc_calc_pvprank_timer); sd->pvp_timer = INVALID_TIMER; } @@ -10809,7 +10857,7 @@ BUILDIN_FUNC(petskillbonus) pd=sd->pd; if (pd->bonus) { //Clear previous bonus - if (pd->bonus->timer != -1) + if (pd->bonus->timer != INVALID_TIMER) delete_timer(pd->bonus->timer, pet_skill_bonus_timer); } else //init pd->bonus = (struct pet_bonus *) aMalloc(sizeof(struct pet_bonus)); @@ -11162,7 +11210,7 @@ BUILDIN_FUNC(petrecovery) if (pd->recovery) { //Halt previous bonus - if (pd->recovery->timer != -1) + if (pd->recovery->timer != INVALID_TIMER) delete_timer(pd->recovery->timer, pet_recovery_timer); } else //Init pd->recovery = (struct pet_recovery *)aMalloc(sizeof(struct pet_recovery)); @@ -11188,7 +11236,7 @@ BUILDIN_FUNC(petheal) pd=sd->pd; if (pd->s_skill) { //Clear previous skill - if (pd->s_skill->timer != -1) + if (pd->s_skill->timer != INVALID_TIMER) { if (pd->s_skill->id) delete_timer(pd->s_skill->timer, pet_skill_support_timer); @@ -11282,7 +11330,7 @@ BUILDIN_FUNC(petskillsupport) pd=sd->pd; if (pd->s_skill) { //Clear previous skill - if (pd->s_skill->timer != -1) + if (pd->s_skill->timer != INVALID_TIMER) { if (pd->s_skill->id) delete_timer(pd->s_skill->timer, pet_skill_support_timer); @@ -11636,9 +11684,6 @@ BUILDIN_FUNC(jump_zero) pos=script_getnum(st,3); st->pos=pos; st->state=GOTO; - // printf("script: jump_zero: jumpto : %d\n",pos); - } else { - // printf("script: jump_zero: fail\n"); } return 0; } @@ -12312,7 +12357,7 @@ BUILDIN_FUNC(autoequip) struct item_data *item_data; nameid=script_getnum(st,2); flag=script_getnum(st,3); - if(nameid>=500 && (item_data = itemdb_search(nameid)) != NULL){ + if(nameid>=500 && (item_data = itemdb_exists(nameid)) != NULL){ item_data->flag.autoequip = flag>0?1:0; } return 0; @@ -12362,7 +12407,7 @@ BUILDIN_FUNC(charisalpha) const char *str=script_getstr(st,2); int pos=script_getnum(st,3); - int val = ( str && pos >= 0 && (unsigned int)pos < strlen(str) ) ? ISALPHA( str[pos] ) : 0; + int val = ( str && pos >= 0 && (unsigned int)pos < strlen(str) ) ? ISALPHA( str[pos] ) != 0 : 0; script_pushint(st,val); return 0; @@ -13557,7 +13602,7 @@ BUILDIN_FUNC(awake) struct script_state* tst = (struct script_state*)node->data; TBL_PC* sd = map_id2sd(tst->rid); - if( tst->sleep.timer == -1 ) + if( tst->sleep.timer == INVALID_TIMER ) {// already awake ??? node = node->next; continue; @@ -14590,7 +14635,7 @@ static int buildin_mobuseskill_sub(struct block_list *bl,va_list ap) if( md->class_ != mobid ) return 0; - if( md->ud.skilltimer != -1 ) // Cancel the casting skill. + if( md->ud.skilltimer != INVALID_TIMER ) // Cancel the casting skill. unit_skillcastcancel(bl,0); // 0:self, 1:target, 2:master, default:random diff --git a/src/map/skill.c b/src/map/skill.c index 6b63c2b833..cd9115df4d 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -611,7 +611,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int rate = 20; if (sc->data[SC_SKILLRATE_UP] && sc->data[SC_SKILLRATE_UP]->val1 == TK_COUNTER) { rate += rate*sc->data[SC_SKILLRATE_UP]->val2/100; - status_change_end(src,SC_SKILLRATE_UP,-1); + status_change_end(src, SC_SKILLRATE_UP, INVALID_TIMER); } sc_start4(src,SC_COMBO, rate, TK_COUNTER, bl->id,0,0, (2000 - 4*sstatus->agi - 2*sstatus->dex)); @@ -883,12 +883,12 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int case TK_JUMPKICK: if( dstsd && dstsd->class_ != MAPID_SOUL_LINKER && !tsc->data[SC_PRESERVE] ) {// debuff the following statuses - status_change_end(bl, SC_SPIRIT, -1); - status_change_end(bl, SC_ADRENALINE2, -1); - status_change_end(bl, SC_KAITE, -1); - status_change_end(bl, SC_KAAHI, -1); - status_change_end(bl, SC_ONEHAND, -1); - status_change_end(bl, SC_ASPDPOTION2, -1); + status_change_end(bl, SC_SPIRIT, INVALID_TIMER); + status_change_end(bl, SC_ADRENALINE2, INVALID_TIMER); + status_change_end(bl, SC_KAITE, INVALID_TIMER); + status_change_end(bl, SC_KAAHI, INVALID_TIMER); + status_change_end(bl, SC_ONEHAND, INVALID_TIMER); + status_change_end(bl, SC_ASPDPOTION2, INVALID_TIMER); } break; case TK_TURNKICK: @@ -1544,7 +1544,7 @@ static int skill_magic_reflect(struct block_list* src, struct block_list* bl, in {// Kaite only works against non-players if they are low-level. clif_specialeffect(bl, 438, AREA); if( --sc->data[SC_KAITE]->val2 <= 0 ) - status_change_end(bl, SC_KAITE, -1); + status_change_end(bl, SC_KAITE, INVALID_TIMER); return 2; } @@ -1719,7 +1719,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds break; default: if( src == dsrc ) // Ground skills are exceptions. [Inkfish] - status_change_end(src,SC_COMBO,-1); + status_change_end(src, SC_COMBO, INVALID_TIMER); } } switch(skillid) @@ -1904,7 +1904,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds status_fix_damage(NULL, d_bl, damage, 0); } else - status_change_end(bl, SC_DEVOTION, -1); + status_change_end(bl, SC_DEVOTION, INVALID_TIMER); } if(skillid == RG_INTIMIDATE && damage > 0 && !(tstatus->mode&MD_BOSS)) { @@ -2338,8 +2338,7 @@ static int skill_timerskill(int tid, unsigned int tick, int id, intptr data) } else { struct status_change *sc = status_get_sc(src); if(sc) { - if(sc->data[SC_MAGICPOWER]) - status_change_end(src,SC_MAGICPOWER,-1); + status_change_end(src, SC_MAGICPOWER, INVALID_TIMER); if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD && sc->data[SC_SPIRIT]->val3 == skl->skill_id) @@ -2469,7 +2468,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int { //GTB makes all targetted magic display miss with a single bolt. sc_type sct = status_skill2sc(skillid); if(sct != SC_NONE) - status_change_end(bl, sct, -1); + status_change_end(bl, sct, INVALID_TIMER); clif_skill_damage(src, bl, tick, status_get_amotion(src), status_get_dmotion(bl), 0, 1, skillid, skilllv, skill_get_hit(skillid)); return 1; } @@ -2662,16 +2661,14 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int case MO_INVESTIGATE: skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); - if (sc && sc->data[SC_BLADESTOP]) - status_change_end(src,SC_BLADESTOP,-1); + status_change_end(src, SC_BLADESTOP, INVALID_TIMER); break; case RG_BACKSTAP: { int dir = map_calc_dir(src, bl->x, bl->y), t_dir = unit_getdir(bl); if ((!check_distance_bl(src, bl, 0) && !map_check_dir(dir, t_dir)) || bl->type == BL_SKILL) { - if (sc && sc->data[SC_HIDING]) - status_change_end(src, SC_HIDING, -1); + status_change_end(src, SC_HIDING, INVALID_TIMER); skill_attack(BF_WEAPON, src, src, bl, skillid, skilllv, tick, flag); dir = dir < 4 ? dir+4 : dir-4; // change direction [Celest] unit_setdir(bl,dir); @@ -2688,25 +2685,23 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int for (i = 1; i < sd->spiritball_old; i++) skill_addtimerskill(src, tick + i * 200, bl->id, 0, 0, skillid, skilllv, BF_WEAPON, flag); } - if (sc && sc->data[SC_BLADESTOP]) - status_change_end(src,SC_BLADESTOP,-1); + status_change_end(src, SC_BLADESTOP, INVALID_TIMER); break; case MO_CHAINCOMBO: skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); - if (sc && sc->data[SC_BLADESTOP]) - status_change_end(src,SC_BLADESTOP,-1); + status_change_end(src, SC_BLADESTOP, INVALID_TIMER); break; case NJ_ISSEN: - status_change_end(src,SC_NEN,-1); - status_change_end(src,SC_HIDING,-1); + status_change_end(src, SC_NEN, INVALID_TIMER); + status_change_end(src, SC_HIDING, INVALID_TIMER); // fall through case MO_EXTREMITYFIST: if( skillid == MO_EXTREMITYFIST ) { - status_change_end(src,SC_EXPLOSIONSPIRITS,-1); - status_change_end(src,SC_BLADESTOP,-1); + status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER); + status_change_end(src, SC_BLADESTOP, INVALID_TIMER); } //Client expects you to move to target regardless of distance { @@ -2991,8 +2986,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int break; case SL_SMA: - if (sc && sc->data[SC_SMA]) - status_change_end(src,SC_SMA,-1); + status_change_end(src, SC_SMA, INVALID_TIMER); case SL_STIN: case SL_STUN: if (sd && !battle_config.allow_es_magic_pc && bl->type != BL_MOB) { @@ -3065,8 +3059,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int if (unit_movepos(src, x, y, 0, 0)) clif_slide(src,src->x,src->y); } - if (sc && sc->data[SC_HIDING]) - status_change_end(src, SC_HIDING, -1); + status_change_end(src, SC_HIDING, INVALID_TIMER); skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); break; case 0: @@ -3208,7 +3201,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in if( tsc->data[SC_KAITE] && !(sstatus->mode&MD_BOSS) ) { //Bounce back heal if (--tsc->data[SC_KAITE]->val2 <= 0) - status_change_end(bl, SC_KAITE, -1); + status_change_end(bl, SC_KAITE, INVALID_TIMER); if (src == bl) heal=0; //When you try to heal yourself under Kaite, the heal is voided. else { @@ -3327,7 +3320,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case PR_LEXDIVINA: case MER_LEXDIVINA: if( tsce ) - status_change_end(bl,type, -1); + status_change_end(bl,type, INVALID_TIMER); else sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)); clif_skill_nodamage (src, bl, skillid, skilllv, 1); @@ -3441,9 +3434,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in { const enum sc_type scs[] = { SC_QUAGMIRE, SC_PROVOKE, SC_ROKISWEIL, SC_GRAVITATION, SC_SUITON, SC_STRIPWEAPON, SC_STRIPSHIELD, SC_STRIPARMOR, SC_STRIPHELM, SC_BLADESTOP }; for (i = SC_COMMON_MIN; i <= SC_COMMON_MAX; i++) - if (tsc->data[i]) status_change_end(bl, (sc_type)i, -1); + if (tsc->data[i]) status_change_end(bl, (sc_type)i, INVALID_TIMER); for (i = 0; i < ARRAYLENGTH(scs); i++) - if (tsc->data[scs[i]]) status_change_end(bl, scs[i], -1); + if (tsc->data[scs[i]]) status_change_end(bl, scs[i], INVALID_TIMER); } } break; @@ -3508,8 +3501,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in if( sc->data[SC_MARIONETTE ] && sc->data[SC_MARIONETTE ]->val1 == bl->id && tsc->data[SC_MARIONETTE2] && tsc->data[SC_MARIONETTE2]->val1 == src->id ) { - status_change_end(src, SC_MARIONETTE, -1); - status_change_end(bl, SC_MARIONETTE2, -1); + status_change_end(src, SC_MARIONETTE, INVALID_TIMER); + status_change_end(bl, SC_MARIONETTE2, INVALID_TIMER); } else { @@ -3698,8 +3691,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case NJ_BUNSINJYUTSU: clif_skill_nodamage(src,bl,skillid,skilllv, sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); - if (tsc && tsc->data[SC_NEN]) - status_change_end(bl,SC_NEN,-1); + status_change_end(bl, SC_NEN, INVALID_TIMER); break; /* Was modified to only affect targetted char. [Skotlex] case HP_ASSUMPTIO: @@ -3804,12 +3796,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in if( tsc && tsc->count ) { - if( tsc->data[SC_FREEZE] ) - status_change_end(bl,SC_FREEZE,-1); + status_change_end(bl, SC_FREEZE, INVALID_TIMER); if( tsc->data[SC_STONE] && tsc->opt1 == OPT1_STONE ) - status_change_end(bl,SC_STONE,-1); - if( tsc->data[SC_SLEEP] ) - status_change_end(bl,SC_SLEEP,-1); + status_change_end(bl, SC_STONE, INVALID_TIMER); + status_change_end(bl, SC_SLEEP, INVALID_TIMER); } if( dstmd ) @@ -3947,7 +3937,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in skill_get_splash(skillid, skilllv), splash_target(src), src,skillid,skilllv,tick, flag|BCT_ENEMY|1, skill_castend_damage_id); - status_change_end(src, SC_HIDING, -1); + status_change_end(src, SC_HIDING, INVALID_TIMER); break; case ASC_METEORASSAULT: @@ -4016,7 +4006,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case WZ_SIGHTRASHER: //Passive side of the attack. - status_change_end(src,SC_SIGHT,-1); + status_change_end(src, SC_SIGHT, INVALID_TIMER); clif_skill_nodamage(src,bl,skillid,skilllv,1); map_foreachinrange(skill_area_sub,src, skill_get_splash(skillid, skilllv),BL_CHAR|BL_SKILL, @@ -4104,7 +4094,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case GS_GATLINGFEVER: if( tsce ) { - clif_skill_nodamage(src,bl,skillid,skilllv,status_change_end(bl, type, -1)); + clif_skill_nodamage(src,bl,skillid,skilllv,status_change_end(bl, type, INVALID_TIMER)); map_freeblock_unlock(); return 0; } @@ -4133,7 +4123,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case SM_AUTOBERSERK: case MER_AUTOBERSERK: if( tsce ) - i = status_change_end(bl, type, -1); + i = status_change_end(bl, type, INVALID_TIMER); else i = sc_start(bl,type,100,skilllv,60000); clif_skill_nodamage(src,bl,skillid,skilllv,i); @@ -4142,7 +4132,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case ST_CHASEWALK: if (tsce) { - clif_skill_nodamage(src,bl,skillid,-1,status_change_end(bl, type, -1)); //Hide skill-scream animation. + clif_skill_nodamage(src,bl,skillid,-1,status_change_end(bl, type, INVALID_TIMER)); //Hide skill-scream animation. map_freeblock_unlock(); return 0; } @@ -4151,7 +4141,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case TK_RUN: if (tsce) { - clif_skill_nodamage(src,bl,skillid,skilllv,status_change_end(bl, type, -1)); + clif_skill_nodamage(src,bl,skillid,skilllv,status_change_end(bl, type, INVALID_TIMER)); map_freeblock_unlock(); return 0; } @@ -4162,7 +4152,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case AS_CLOAKING: if (tsce) { - i = status_change_end(bl, type, -1); + i = status_change_end(bl, type, INVALID_TIMER); if( i ) clif_skill_nodamage(src,bl,skillid,-1,i); else if( sd ) @@ -4180,7 +4170,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case BD_ADAPTATION: if(tsc && tsc->data[SC_DANCING]){ clif_skill_nodamage(src,bl,skillid,skilllv,1); - status_change_end(bl, SC_DANCING, -1); + status_change_end(bl, SC_DANCING, INVALID_TIMER); } break; @@ -4253,7 +4243,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in break; if (tsc->data[SC_STONE]) { - status_change_end(bl,SC_STONE,-1); + status_change_end(bl, SC_STONE, INVALID_TIMER); if (sd) clif_skill_fail(sd,skillid,0,0); break; } @@ -4283,16 +4273,16 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in clif_skill_nodamage(src,bl,skillid,skilllv,0); break; } - status_change_end(bl, SC_SILENCE , -1 ); - status_change_end(bl, SC_BLIND , -1 ); - status_change_end(bl, SC_CONFUSION, -1 ); + status_change_end(bl, SC_SILENCE, INVALID_TIMER); + status_change_end(bl, SC_BLIND, INVALID_TIMER); + status_change_end(bl, SC_CONFUSION, INVALID_TIMER); clif_skill_nodamage(src,bl,skillid,skilllv,1); break; case TF_DETOXIFY: clif_skill_nodamage(src,bl,skillid,skilllv,1); - status_change_end(bl, SC_POISON , -1 ); - status_change_end(bl, SC_DPOISON , -1 ); + status_change_end(bl, SC_POISON, INVALID_TIMER); + status_change_end(bl, SC_DPOISON, INVALID_TIMER); break; case PR_STRECOVERY: @@ -4301,10 +4291,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in break; } if (tsc && tsc->opt1) { - status_change_end(bl, SC_FREEZE, -1 ); - status_change_end(bl, SC_STONE, -1 ); - status_change_end(bl, SC_SLEEP, -1 ); - status_change_end(bl, SC_STUN, -1 ); + status_change_end(bl, SC_FREEZE, INVALID_TIMER); + status_change_end(bl, SC_STONE, INVALID_TIMER); + status_change_end(bl, SC_SLEEP, INVALID_TIMER); + status_change_end(bl, SC_STUN, INVALID_TIMER); } //Is this equation really right? It looks so... special. if(battle_check_undead(tstatus->race,tstatus->def_ele)) @@ -4321,31 +4311,31 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in // Mercenary Supportive Skills case MER_BENEDICTION: - status_change_end(bl, SC_CURSE, -1); - status_change_end(bl, SC_BLIND, -1); + status_change_end(bl, SC_CURSE, INVALID_TIMER); + status_change_end(bl, SC_BLIND, INVALID_TIMER); clif_skill_nodamage(src,bl,skillid,skilllv,1); break; case MER_COMPRESS: - status_change_end(bl, SC_BLEEDING, -1); + status_change_end(bl, SC_BLEEDING, INVALID_TIMER); clif_skill_nodamage(src,bl,skillid,skilllv,1); break; case MER_MENTALCURE: - status_change_end(bl, SC_CONFUSION, -1); + status_change_end(bl, SC_CONFUSION, INVALID_TIMER); clif_skill_nodamage(src,bl,skillid,skilllv,1); break; case MER_RECUPERATE: - status_change_end(bl, SC_POISON, -1); - status_change_end(bl, SC_SILENCE, -1); + status_change_end(bl, SC_POISON, INVALID_TIMER); + status_change_end(bl, SC_SILENCE, INVALID_TIMER); clif_skill_nodamage(src,bl,skillid,skilllv,1); break; case MER_REGAIN: - status_change_end(bl, SC_SLEEP, -1); - status_change_end(bl, SC_STUN, -1); + status_change_end(bl, SC_SLEEP, INVALID_TIMER); + status_change_end(bl, SC_STUN, INVALID_TIMER); clif_skill_nodamage(src,bl,skillid,skilllv,1); break; case MER_TENDER: - status_change_end(bl, SC_FREEZE, -1); - status_change_end(bl, SC_STONE, -1); + status_change_end(bl, SC_FREEZE, INVALID_TIMER); + status_change_end(bl, SC_STONE, INVALID_TIMER); clif_skill_nodamage(src,bl,skillid,skilllv,1); break; @@ -4642,8 +4632,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case AM_CP_HELM: { enum sc_type scid = (sc_type)(SC_STRIPWEAPON + (skillid - AM_CP_WEAPON)); - if(tsc && tsc->data[scid]) - status_change_end(bl, scid, -1 ); + status_change_end(bl, scid, INVALID_TIMER); clif_skill_nodamage(src,bl,skillid,skilllv, sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); } @@ -4735,7 +4724,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in break; } if(i==SC_BERSERK) tsc->data[i]->val2=0; //Mark a dispelled berserk to avoid setting hp to 100 by setting hp penalty to 0. - status_change_end(bl,(sc_type)i,-1); + status_change_end(bl, (sc_type)i, INVALID_TIMER); } break; } @@ -4796,7 +4785,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in } else { struct unit_data *ud = unit_bl2ud(bl); int bl_skillid=0,bl_skilllv=0,hp = 0; - if (!ud || ud->skilltimer == -1) break; //Nothing to cancel. + if (!ud || ud->skilltimer == INVALID_TIMER) + break; //Nothing to cancel. bl_skillid = ud->skillid; bl_skilllv = ud->skilllv; if (tstatus->mode & MD_BOSS) @@ -5021,7 +5011,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in { clif_emotion(bl, md->db->skill[md->skillidx].val[0]); if(md->db->skill[md->skillidx].val[4] && tsce) - status_change_end(bl, type, -1); + status_change_end(bl, type, INVALID_TIMER); if(md->db->skill[md->skillidx].val[1] || md->db->skill[md->skillidx].val[2]) sc_start4(src, type, 100, skilllv, @@ -5225,12 +5215,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in unit_skillcastcancel(bl,0); if(tsc && tsc->count){ - if(tsc->data[SC_FREEZE]) - status_change_end(bl,SC_FREEZE,-1); + status_change_end(bl, SC_FREEZE, INVALID_TIMER); if(tsc->data[SC_STONE] && tsc->opt1 == OPT1_STONE) - status_change_end(bl,SC_STONE,-1); - if(tsc->data[SC_SLEEP]) - status_change_end(bl,SC_SLEEP,-1); + status_change_end(bl, SC_STONE, INVALID_TIMER); + status_change_end(bl, SC_SLEEP, INVALID_TIMER); } if(dstmd) @@ -5297,8 +5285,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in break; } for (i=0; i<4; i++) { - if(tsc->data[SC_STRIPWEAPON + i]) - status_change_end(bl, (sc_type)(SC_STRIPWEAPON + i), -1 ); + status_change_end(bl, (sc_type)(SC_STRIPWEAPON + i), INVALID_TIMER); sc_start(bl,(sc_type)(SC_CP_WEAPON + i),100,skilllv,skilltime); } clif_skill_nodamage(src,bl,skillid,skilllv,1); @@ -5771,7 +5758,7 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr data) return 0; } - if( sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST) > 0 ) + if( sd && ud->skilltimer != INVALID_TIMER && pc_checkskill(sd,SA_FREECAST) > 0 ) {// restore original walk speed ud->skilltimer = INVALID_TIMER; status_calc_bl(&sd->bl, SCB_SPEED); @@ -5875,7 +5862,7 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr data) } //Avoid doing double checks for instant-cast skills. - if (tid != -1 && !status_check_skilluse(src, target, ud->skillid, 1)) + if (tid != INVALID_TIMER && !status_check_skilluse(src, target, ud->skillid, 1)) break; if(md) { @@ -5909,7 +5896,7 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr data) if (ud->state.running && ud->skillid == TK_JUMPKICK) flag = 1; - if (ud->walktimer != -1 && ud->skillid != TK_RUN) + if (ud->walktimer != INVALID_TIMER && ud->skillid != TK_RUN) unit_stop_walking(src,1); if( !sd || sd->skillitem != ud->skillid || skill_get_delay(ud->skillid,ud->skilllv) ) @@ -5952,7 +5939,7 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr data) if(sc && sc->count) { if(sc->data[SC_MAGICPOWER] && ud->skillid != HW_MAGICPOWER && ud->skillid != WZ_WATERBALL) - status_change_end(src,SC_MAGICPOWER,-1); + status_change_end(src, SC_MAGICPOWER, INVALID_TIMER); if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD && sc->data[SC_SPIRIT]->val3 == ud->skillid && @@ -5966,7 +5953,7 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr data) if( sd && ud->skillid != SA_ABRACADABRA ) // Hocus-Pocus has just set the data so leave it as it is.[Inkfish] sd->skillitem = sd->skillitemlv = 0; - if (ud->skilltimer == -1) { + if (ud->skilltimer == INVALID_TIMER) { if(md) md->skillidx = -1; else ud->skillid = 0; //mobs can't clear this one as it is used for skill condition 'afterskill' ud->skilllv = ud->skilltarget = 0; @@ -5984,10 +5971,8 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr data) sc = &sd->sc; if (sc->count) { //End states - if (sc->data[SC_EXPLOSIONSPIRITS]) - status_change_end(src, SC_EXPLOSIONSPIRITS, -1); - if (sc->data[SC_BLADESTOP]) - status_change_end(src,SC_BLADESTOP,-1); + status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER); + status_change_end(src, SC_BLADESTOP, INVALID_TIMER); } if (target && target->m == src->m) { //Move character to target anyway. @@ -6049,7 +6034,7 @@ int skill_castend_pos(int tid, unsigned int tick, int id, intptr data) return 0; } - if( sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST) > 0 ) + if( sd && ud->skilltimer != INVALID_TIMER && pc_checkskill(sd,SA_FREECAST) > 0 ) {// restore original walk speed ud->skilltimer = INVALID_TIMER; status_calc_bl(&sd->bl, SCB_SPEED); @@ -6091,7 +6076,7 @@ int skill_castend_pos(int tid, unsigned int tick, int id, intptr data) } } - if(tid != -1) + if(tid != INVALID_TIMER) { //Avoid double checks on instant cast skills. [Skotlex] if (!status_check_skilluse(src, NULL, ud->skillid, 1)) break; @@ -6124,7 +6109,7 @@ int skill_castend_pos(int tid, unsigned int tick, int id, intptr data) ShowInfo("Type %d, ID %d skill castend pos [id =%d, lv=%d, (%d,%d)]\n", src->type, src->id, ud->skillid, ud->skilllv, ud->skillx, ud->skilly); - if (ud->walktimer != -1) + if (ud->walktimer != INVALID_TIMER) unit_stop_walking(src,1); if( !sd || sd->skillitem != ud->skillid || skill_get_delay(ud->skillid,ud->skilllv) ) @@ -6148,7 +6133,7 @@ int skill_castend_pos(int tid, unsigned int tick, int id, intptr data) if( sd && sd->skillitem != AL_WARP ) // Warp-Portal thru items will clear data in skill_castend_map. [Inkfish] sd->skillitem = sd->skillitemlv = 0; - if (ud->skilltimer == -1) { + if (ud->skilltimer == INVALID_TIMER) { if (md) md->skillidx = -1; else ud->skillid = 0; //Non mobs can't clear this one as it is used for skill condition 'afterskill' ud->skilllv = ud->skillx = ud->skilly = 0; @@ -6335,7 +6320,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, int skillid, int sk break; case HP_BASILICA: if( sc->data[SC_BASILICA] ) - status_change_end(src, SC_BASILICA, -1); // Cancel Basilica + status_change_end(src, SC_BASILICA, INVALID_TIMER); // Cancel Basilica else { // Create Basilica. Start SC on caster. Unit timer start SC on others. skill_clear_unitgroup(src); @@ -6408,8 +6393,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, int skillid, int sk unit_movepos(src, x, y, 1, 0); clif_slide(src,x,y); } - if (sc && sc->data[SC_HIDING]) - status_change_end(src, SC_HIDING, -1); + status_change_end(src, SC_HIDING, INVALID_TIMER); break; case AM_SPHEREMINE: case AM_CANNIBALIZE: @@ -6544,7 +6528,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, int skillid, int sk case PA_GOSPEL: if (sce && sce->val4 == BCT_SELF) { - status_change_end(src,SC_GOSPEL,-1); + status_change_end(src, SC_GOSPEL, INVALID_TIMER); return 0; } else @@ -6552,7 +6536,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, int skillid, int sk sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0); if (!sg) break; if (sce) - status_change_end(src,type,-1); //Was under someone else's Gospel. [Skotlex] + status_change_end(src, type, INVALID_TIMER); //Was under someone else's Gospel. [Skotlex] sc_start4(src,type,100,skilllv,0,sg->group_id,BCT_SELF,skill_get_time(skillid,skilllv)); clif_skill_poseffect(src, skillid, skilllv, 0, 0, tick); // PA_GOSPEL music packet } @@ -6578,8 +6562,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, int skillid, int sk return 1; } - if (sc && sc->data[SC_MAGICPOWER]) - status_change_end(src,SC_MAGICPOWER,-1); + status_change_end(src, SC_MAGICPOWER, INVALID_TIMER); if( sd ) { @@ -7807,17 +7790,17 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, unsigned in case UNT_SAFETYWALL: case UNT_PNEUMA: if (sce) - status_change_end(bl,type,-1); + status_change_end(bl, type, INVALID_TIMER); break; case UNT_BASILICA: if( sce && sce->val4 == src->bl.id ) - status_change_end(bl,type,-1); + status_change_end(bl, type, INVALID_TIMER); break; case UNT_HERMODE: //Clear Hermode if the owner moved. if (sce && sce->val3 == BCT_SELF && sce->val4 == sg->group_id) - status_change_end(bl,type,-1); + status_change_end(bl, type, INVALID_TIMER); break; case UNT_SPIDERWEB: @@ -7826,7 +7809,7 @@ int skill_unit_onout (struct skill_unit *src, struct block_list *bl, unsigned in if (target && target==bl) { if (sce && sce->val3 == sg->group_id) - status_change_end(bl,type,-1); + status_change_end(bl, type, INVALID_TIMER); sg->limit = DIFF_TICK(tick,sg->tick)+1000; } break; @@ -7857,7 +7840,7 @@ static int skill_unit_onleft (int skill_id, struct block_list *bl, unsigned int if (bl->type==BL_MOB) break; if (sce) - status_change_end(bl, type, -1); + status_change_end(bl, type, INVALID_TIMER); break; case BD_LULLABY: @@ -7875,7 +7858,7 @@ static int skill_unit_onleft (int skill_id, struct block_list *bl, unsigned int //it only checks if you are doing the same ensemble. So if there's two chars doing an ensemble //which overlaps, by stepping outside of the other parther's ensemble will cause you to cancel //your own. Let's pray that scenario is pretty unlikely and noone will complain too much about it. - status_change_end(bl, SC_DANCING, -1); + status_change_end(bl, SC_DANCING, INVALID_TIMER); } case MG_SAFETYWALL: case AL_PNEUMA: @@ -7886,7 +7869,7 @@ static int skill_unit_onleft (int skill_id, struct block_list *bl, unsigned int case HW_GRAVITATION: case NJ_SUITON: if (sce) - status_change_end(bl, type, -1); + status_change_end(bl, type, INVALID_TIMER); break; case BA_POEMBRAGI: @@ -7909,11 +7892,11 @@ static int skill_unit_onleft (int skill_id, struct block_list *bl, unsigned int case PF_FOGWALL: if (sce) { - status_change_end(bl,type,-1); + status_change_end(bl, type, INVALID_TIMER); if ((sce=sc->data[SC_BLIND])) { if (bl->type == BL_PC) //Players get blind ended inmediately, others have it still for 30 secs. [Skotlex] - status_change_end(bl, SC_BLIND, -1); + status_change_end(bl, SC_BLIND, INVALID_TIMER); else { delete_timer(sce->timer, status_change_timer); sce->timer = add_timer(30000+tick, status_change_timer, bl->id, SC_BLIND); @@ -8252,7 +8235,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, short skill, sh switch( skill ) { case SA_CASTCANCEL: - if(sd->ud.skilltimer == -1) { + if(sd->ud.skilltimer == INVALID_TIMER) { clif_skill_fail(sd,skill,0,0); return 0; } @@ -8352,7 +8335,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, short skill, sh if (pc_famerank(sd->status.char_id,MAPID_TAEKWON)) { //Unlimited Combo if (skill == sd->skillid_old) { - status_change_end(&sd->bl, SC_COMBO, -1); + status_change_end(&sd->bl, SC_COMBO, INVALID_TIMER); sd->skillid_old = sd->skilllv_old = 0; return 0; //Can't repeat previous combo skill. } @@ -9046,12 +9029,12 @@ int skill_castfix_sc (struct block_list *bl, int time) time += time * sc->data[SC_SLOWCAST]->val2 / 100; if (sc->data[SC_SUFFRAGIUM]) { time -= time * sc->data[SC_SUFFRAGIUM]->val2 / 100; - status_change_end(bl, SC_SUFFRAGIUM, -1); + status_change_end(bl, SC_SUFFRAGIUM, INVALID_TIMER); } if (sc->data[SC_MEMORIZE]) { time>>=1; if ((--sc->data[SC_MEMORIZE]->val2) <= 0) - status_change_end(bl, SC_MEMORIZE, -1); + status_change_end(bl, SC_MEMORIZE, INVALID_TIMER); } if (sc->data[SC_POEMBRAGI]) time -= time * sc->data[SC_POEMBRAGI]->val2 / 100; @@ -9915,7 +9898,7 @@ int skill_enchant_elemental_end (struct block_list *bl, int type) for (i = 0; i < ARRAYLENGTH(scs); i++) if (type != scs[i] && sc->data[scs[i]]) - status_change_end(bl, scs[i], -1); + status_change_end(bl, scs[i], INVALID_TIMER); return 0; } @@ -9940,7 +9923,7 @@ bool skill_check_cloaking(struct block_list *bl, struct status_change_entry *sce if( !wall ) { if( sce->val1 < 3 ) //End cloaking. - status_change_end(bl, SC_CLOAKING, -1); + status_change_end(bl, SC_CLOAKING, INVALID_TIMER); else if( sce->val4&1 ) { //Remove wall bonus @@ -10039,7 +10022,7 @@ int skill_delunit (struct skill_unit* unit) { struct block_list* target = map_id2bl(group->val2); if( target ) - status_change_end(target,SC_ANKLE,-1); + status_change_end(target, SC_ANKLE, INVALID_TIMER); } break; case WZ_ICEWALL: @@ -10185,7 +10168,7 @@ int skill_delunitgroup_(struct skill_unit_group *group, const char* file, int li if (sc && sc->data[SC_DANCING]) { sc->data[SC_DANCING]->val2 = 0 ; //This prevents status_change_end attempting to redelete the group. [Skotlex] - status_change_end(src,SC_DANCING,-1); + status_change_end(src, SC_DANCING, INVALID_TIMER); } } @@ -10195,7 +10178,7 @@ int skill_delunitgroup_(struct skill_unit_group *group, const char* file, int li struct status_change *sc = status_get_sc(src); if(sc && sc->data[SC_GOSPEL]) { sc->data[SC_GOSPEL]->val3 = 0; //Remove reference to this group. [Skotlex] - status_change_end(src,SC_GOSPEL,-1); + status_change_end(src, SC_GOSPEL, INVALID_TIMER); } } @@ -10205,7 +10188,7 @@ int skill_delunitgroup_(struct skill_unit_group *group, const char* file, int li struct status_change *sc = status_get_sc(src); if(sc && sc->data[SC_WARM]) { sc->data[SC_WARM]->val4 = 0; - status_change_end(src,SC_WARM,-1); + status_change_end(src, SC_WARM, INVALID_TIMER); } } diff --git a/src/map/status.c b/src/map/status.c index 449ea8f566..45fe3a4cfe 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -698,20 +698,20 @@ int status_damage(struct block_list *src,struct block_list *target,int hp, int s if( sc ) { struct status_change_entry *sce; if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) - status_change_end(target,SC_STONE,-1); - status_change_end(target,SC_FREEZE,-1); - status_change_end(target,SC_SLEEP,-1); - status_change_end(target,SC_WINKCHARM,-1); - status_change_end(target,SC_CONFUSION,-1); - status_change_end(target,SC_TRICKDEAD,-1); - status_change_end(target,SC_HIDING,-1); - status_change_end(target,SC_CLOAKING,-1); - status_change_end(target,SC_CHASEWALK,-1); + status_change_end(target, SC_STONE, INVALID_TIMER); + status_change_end(target, SC_FREEZE, INVALID_TIMER); + status_change_end(target, SC_SLEEP, INVALID_TIMER); + status_change_end(target, SC_WINKCHARM, INVALID_TIMER); + status_change_end(target, SC_CONFUSION, INVALID_TIMER); + status_change_end(target, SC_TRICKDEAD, INVALID_TIMER); + status_change_end(target, SC_HIDING, INVALID_TIMER); + status_change_end(target, SC_CLOAKING, INVALID_TIMER); + status_change_end(target, SC_CHASEWALK, INVALID_TIMER); if ((sce=sc->data[SC_ENDURE]) && !sce->val4) { //Endure count is only reduced by non-players on non-gvg maps. //val4 signals infinite endure. [Skotlex] if (src && src->type != BL_PC && !map_flag_gvg(target->m) && !map[target->m].flag.battleground && --(sce->val2) < 0) - status_change_end(target, SC_ENDURE, -1); + status_change_end(target, SC_ENDURE, INVALID_TIMER); } if ((sce=sc->data[SC_GRAVITATION]) && sce->val3 == BCT_SELF) { @@ -719,11 +719,11 @@ int status_damage(struct block_list *src,struct block_list *target,int hp, int s if (sg) { skill_delunitgroup(sg); sce->val4 = 0; - status_change_end(target, SC_GRAVITATION, -1); + status_change_end(target, SC_GRAVITATION, INVALID_TIMER); } } if(sc->data[SC_DANCING] && (unsigned int)hp > status->max_hp>>2) - status_change_end(target, SC_DANCING, -1); + status_change_end(target, SC_DANCING, INVALID_TIMER); } unit_skillcastcancel(target, 2); } @@ -747,7 +747,7 @@ int status_damage(struct block_list *src,struct block_list *target,int hp, int s status->hp < status->max_hp>>2) sc_start4(target,SC_PROVOKE,100,10,1,0,0,0); if (sc->data[SC_BERSERK] && status->hp <= 100) - status_change_end(target, SC_BERSERK, -1); + status_change_end(target, SC_BERSERK, INVALID_TIMER); } switch (target->type) @@ -899,7 +899,7 @@ int status_heal(struct block_list *bl,int hp,int sp, int flag) sc->data[SC_PROVOKE]->val2==1 && status->hp>=status->max_hp>>2 ) //End auto berserk. - status_change_end(bl,SC_PROVOKE,-1); + status_change_end(bl, SC_PROVOKE, INVALID_TIMER); // send hp update to client switch(bl->type) { @@ -2869,9 +2869,9 @@ void status_calc_bl_main(struct block_list *bl, enum scb_flag flag) struct unit_data *ud = unit_bl2ud(bl); status->speed = status_calc_speed(bl, sc, b_status->speed); - //Re-walk to adjust speed (we do not check if walktimer != -1 + //Re-walk to adjust speed (we do not check if walktimer != INVALID_TIMER //because if you step on something while walking, the moment this - //piece of code triggers the walk-timer is set on -1) [Skotlex] + //piece of code triggers the walk-timer is set on INVALID_TIMER) [Skotlex] if (ud) ud->state.change_walk_target = ud->state.speed_changed = 1; @@ -3757,7 +3757,7 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha if( sc == NULL ) return cap_value(speed,10,USHRT_MAX); - if( sd && sd->ud.skilltimer != -1 && pc_checkskill(sd,SA_FREECAST) > 0 ) + if( sd && sd->ud.skilltimer != INVALID_TIMER && pc_checkskill(sd,SA_FREECAST) > 0 ) { speed_rate = 175 - 5 * pc_checkskill(sd,SA_FREECAST); } @@ -4213,7 +4213,7 @@ signed char status_get_def(struct block_list *bl) struct status_data *status = status_get_status_data(bl); int def = status?status->def:0; ud = unit_bl2ud(bl); - if (ud && ud->skilltimer != -1) + if (ud && ud->skilltimer != INVALID_TIMER) def -= def * skill_get_castdef(ud->skillid)/100; return cap_value(def, CHAR_MIN, CHAR_MAX); } @@ -4846,7 +4846,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val if (val3) mode|= val3; //Add mode if (mode == bstatus->mode) { //No change. if (sc->data[type]) //Abort previous status - return status_change_end(bl, type, -1); + return status_change_end(bl, type, INVALID_TIMER); return 0; } } @@ -5001,133 +5001,132 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val //TO-DO Blessing and Agi up should do 1 damage against players on Undead Status, even on PvM //but cannot be plagiarized (this requires aegis investigation on packets and official behavior) [Brainstorm] if ((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC) { - if (sc->data[SC_CURSE]) - status_change_end(bl,SC_CURSE,-1); + status_change_end(bl, SC_CURSE, INVALID_TIMER); if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) - status_change_end(bl,SC_STONE,-1); + status_change_end(bl, SC_STONE, INVALID_TIMER); } break; case SC_INCREASEAGI: - status_change_end(bl,SC_DECREASEAGI,-1); + status_change_end(bl, SC_DECREASEAGI, INVALID_TIMER); break; case SC_QUAGMIRE: - status_change_end(bl,SC_CONCENTRATE,-1); - status_change_end(bl,SC_TRUESIGHT,-1); - status_change_end(bl,SC_WINDWALK,-1); + status_change_end(bl, SC_CONCENTRATE, INVALID_TIMER); + status_change_end(bl, SC_TRUESIGHT, INVALID_TIMER); + status_change_end(bl, SC_WINDWALK, INVALID_TIMER); //Also blocks the ones below... case SC_DECREASEAGI: - status_change_end(bl,SC_CARTBOOST,-1); + status_change_end(bl, SC_CARTBOOST, INVALID_TIMER); //Also blocks the ones below... case SC_DONTFORGETME: - status_change_end(bl,SC_INCREASEAGI,-1); - status_change_end(bl,SC_ADRENALINE,-1); - status_change_end(bl,SC_ADRENALINE2,-1); - status_change_end(bl,SC_SPEARQUICKEN,-1); - status_change_end(bl,SC_TWOHANDQUICKEN,-1); - status_change_end(bl,SC_ONEHAND,-1); - status_change_end(bl,SC_MERC_QUICKEN,-1); + status_change_end(bl, SC_INCREASEAGI, INVALID_TIMER); + status_change_end(bl, SC_ADRENALINE, INVALID_TIMER); + status_change_end(bl, SC_ADRENALINE2, INVALID_TIMER); + status_change_end(bl, SC_SPEARQUICKEN, INVALID_TIMER); + status_change_end(bl, SC_TWOHANDQUICKEN, INVALID_TIMER); + status_change_end(bl, SC_ONEHAND, INVALID_TIMER); + status_change_end(bl, SC_MERC_QUICKEN, INVALID_TIMER); break; case SC_ONEHAND: //Removes the Aspd potion effect, as reported by Vicious. [Skotlex] - status_change_end(bl,SC_ASPDPOTION0,-1); - status_change_end(bl,SC_ASPDPOTION1,-1); - status_change_end(bl,SC_ASPDPOTION2,-1); - status_change_end(bl,SC_ASPDPOTION3,-1); + status_change_end(bl, SC_ASPDPOTION0, INVALID_TIMER); + status_change_end(bl, SC_ASPDPOTION1, INVALID_TIMER); + status_change_end(bl, SC_ASPDPOTION2, INVALID_TIMER); + status_change_end(bl, SC_ASPDPOTION3, INVALID_TIMER); break; case SC_MAXOVERTHRUST: //Cancels Normal Overthrust. [Skotlex] - status_change_end(bl, SC_OVERTHRUST, -1); + status_change_end(bl, SC_OVERTHRUST, INVALID_TIMER); break; case SC_KYRIE: //Cancels Assumptio - status_change_end(bl,SC_ASSUMPTIO,-1); + status_change_end(bl, SC_ASSUMPTIO, INVALID_TIMER); break; case SC_DELUGE: if (sc->data[SC_FOGWALL] && sc->data[SC_BLIND]) - status_change_end(bl,SC_BLIND,-1); + status_change_end(bl, SC_BLIND, INVALID_TIMER); break; case SC_SILENCE: if (sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_SELF) - status_change_end(bl,SC_GOSPEL,-1); + status_change_end(bl, SC_GOSPEL, INVALID_TIMER); break; case SC_HIDING: - status_change_end(bl, SC_CLOSECONFINE, -1); - status_change_end(bl, SC_CLOSECONFINE2, -1); + status_change_end(bl, SC_CLOSECONFINE, INVALID_TIMER); + status_change_end(bl, SC_CLOSECONFINE2, INVALID_TIMER); break; case SC_BERSERK: if(battle_config.berserk_cancels_buffs) { - status_change_end(bl,SC_ONEHAND,-1); - status_change_end(bl,SC_TWOHANDQUICKEN,-1); - status_change_end(bl,SC_CONCENTRATION,-1); - status_change_end(bl,SC_PARRYING,-1); - status_change_end(bl,SC_AURABLADE,-1); - status_change_end(bl,SC_MERC_QUICKEN,-1); + status_change_end(bl, SC_ONEHAND, INVALID_TIMER); + status_change_end(bl, SC_TWOHANDQUICKEN, INVALID_TIMER); + status_change_end(bl, SC_CONCENTRATION, INVALID_TIMER); + status_change_end(bl, SC_PARRYING, INVALID_TIMER); + status_change_end(bl, SC_AURABLADE, INVALID_TIMER); + status_change_end(bl, SC_MERC_QUICKEN, INVALID_TIMER); } break; case SC_ASSUMPTIO: - status_change_end(bl,SC_KYRIE,-1); - status_change_end(bl,SC_KAITE,-1); + status_change_end(bl, SC_KYRIE, INVALID_TIMER); + status_change_end(bl, SC_KAITE, INVALID_TIMER); break; case SC_KAITE: - status_change_end(bl,SC_ASSUMPTIO,-1); + status_change_end(bl, SC_ASSUMPTIO, INVALID_TIMER); break; case SC_CARTBOOST: if(sc->data[SC_DECREASEAGI]) { //Cancel Decrease Agi, but take no further effect [Skotlex] - status_change_end(bl,SC_DECREASEAGI,-1); + status_change_end(bl, SC_DECREASEAGI, INVALID_TIMER); return 0; } break; case SC_FUSION: - status_change_end(bl,SC_SPIRIT,-1); + status_change_end(bl, SC_SPIRIT, INVALID_TIMER); break; case SC_ADJUSTMENT: - status_change_end(bl,SC_MADNESSCANCEL,-1); + status_change_end(bl, SC_MADNESSCANCEL, INVALID_TIMER); break; case SC_MADNESSCANCEL: - status_change_end(bl,SC_ADJUSTMENT,-1); + status_change_end(bl, SC_ADJUSTMENT, INVALID_TIMER); break; //NPC_CHANGEUNDEAD will debuff Blessing and Agi Up case SC_CHANGEUNDEAD: - status_change_end(bl,SC_BLESSING,-1); - status_change_end(bl,SC_INCREASEAGI,-1); + status_change_end(bl, SC_BLESSING, INVALID_TIMER); + status_change_end(bl, SC_INCREASEAGI, INVALID_TIMER); break; case SC_STRFOOD: - status_change_end(bl,SC_FOOD_STR_CASH,-1); + status_change_end(bl, SC_FOOD_STR_CASH, INVALID_TIMER); break; case SC_AGIFOOD: - status_change_end(bl,SC_FOOD_AGI_CASH,-1); + status_change_end(bl, SC_FOOD_AGI_CASH, INVALID_TIMER); break; case SC_VITFOOD: - status_change_end(bl,SC_FOOD_VIT_CASH,-1); + status_change_end(bl, SC_FOOD_VIT_CASH, INVALID_TIMER); break; case SC_INTFOOD: - status_change_end(bl,SC_FOOD_INT_CASH,-1); + status_change_end(bl, SC_FOOD_INT_CASH, INVALID_TIMER); break; case SC_DEXFOOD: - status_change_end(bl,SC_FOOD_DEX_CASH,-1); + status_change_end(bl, SC_FOOD_DEX_CASH, INVALID_TIMER); break; case SC_LUKFOOD: - status_change_end(bl,SC_FOOD_LUK_CASH,-1); + status_change_end(bl, SC_FOOD_LUK_CASH, INVALID_TIMER); break; case SC_FOOD_STR_CASH: - status_change_end(bl,SC_STRFOOD,-1); + status_change_end(bl, SC_STRFOOD, INVALID_TIMER); break; case SC_FOOD_AGI_CASH: - status_change_end(bl,SC_AGIFOOD,-1); + status_change_end(bl, SC_AGIFOOD, INVALID_TIMER); break; case SC_FOOD_VIT_CASH: - status_change_end(bl,SC_VITFOOD,-1); + status_change_end(bl, SC_VITFOOD, INVALID_TIMER); break; case SC_FOOD_INT_CASH: - status_change_end(bl,SC_INTFOOD,-1); + status_change_end(bl, SC_INTFOOD, INVALID_TIMER); break; case SC_FOOD_DEX_CASH: - status_change_end(bl,SC_DEXFOOD,-1); + status_change_end(bl, SC_DEXFOOD, INVALID_TIMER); break; case SC_FOOD_LUK_CASH: - status_change_end(bl,SC_LUKFOOD,-1); + status_change_end(bl, SC_LUKFOOD, INVALID_TIMER); break; } @@ -5198,9 +5197,9 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val case SC_KAAHI: //Kaahi overwrites previous level regardless of existing level. //Delete timer if it exists. - if (sce->val4 != -1) { + if (sce->val4 != INVALID_TIMER) { delete_timer(sce->val4,kaahi_heal_timer); - sce->val4=-1; + sce->val4 = INVALID_TIMER; } break; case SC_JAILED: @@ -5821,7 +5820,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val case SC_KAAHI: val2 = 200*val1; //HP heal val3 = 5*val1; //SP cost - val4 = -1; //Kaahi Timer. + val4 = INVALID_TIMER; //Kaahi Timer. break; case SC_BLESSING: if ((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC) @@ -6087,7 +6086,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val clif_changelook(bl,LOOK_CLOTHES_COLOR,val4); break; case SC_KAAHI: - val4 = -1; + val4 = INVALID_TIMER; break; } @@ -6102,7 +6101,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val pc_setstand(sd); case SC_TRICKDEAD: unit_stop_attack(bl); - status_change_end(bl, SC_DANCING, -1); + status_change_end(bl, SC_DANCING, INVALID_TIMER); // Cancel cast when get status [LuzZza] if (battle_config.sc_castcancel&bl->type) unit_skillcastcancel(bl, 0); @@ -6448,14 +6447,14 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) sd = BL_CAST(BL_PC,bl); - if (sce->timer != tid && tid != -1) + if (sce->timer != tid && tid != INVALID_TIMER) return 0; - if (tid == -1) { + if (tid == INVALID_TIMER) { if (type == SC_ENDURE && sce->val4) //Do not end infinite endure. return 0; - if (sce->timer != -1) //Could be a SC with infinite duration + if (sce->timer != INVALID_TIMER) //Could be a SC with infinite duration delete_timer(sce->timer,status_change_timer); if (sc->opt1) switch (type) { @@ -6514,7 +6513,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) if(!ud->state.running) begin_spurt = false; ud->state.running = 0; - if (ud->walktimer != -1) + if (ud->walktimer != INVALID_TIMER) unit_stop_walking(bl,1); } if (begin_spurt && sce->val1 >= 7 && @@ -6526,7 +6525,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) break; case SC_AUTOBERSERK: if (sc->data[SC_PROVOKE] && sc->data[SC_PROVOKE]->val2 == 1) - status_change_end(bl,SC_PROVOKE,-1); + status_change_end(bl, SC_PROVOKE, INVALID_TIMER); break; case SC_ENDURE: @@ -6541,14 +6540,14 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) for( i = 0; i < 5; i++ ) { if( sd->devotion[i] && (tsd = map_id2sd(sd->devotion[i])) && tsd->sc.data[type] ) - status_change_end(&tsd->bl, type, -1); + status_change_end(&tsd->bl, type, INVALID_TIMER); } } else if( bl->type == BL_MER && ((TBL_MER*)bl)->devotion_flag ) { // Clear Status from Master tsd = ((TBL_MER*)bl)->master; if( tsd && tsd->sc.data[type] ) - status_change_end(&tsd->bl, type, -1); + status_change_end(&tsd->bl, type, INVALID_TIMER); } } break; @@ -6564,10 +6563,10 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) clif_devotion(d_bl, NULL); } - status_change_end(bl,SC_AUTOGUARD,-1); - status_change_end(bl,SC_DEFENDER,-1); - status_change_end(bl,SC_REFLECTSHIELD,-1); - status_change_end(bl,SC_ENDURE,-1); + status_change_end(bl, SC_AUTOGUARD, INVALID_TIMER); + status_change_end(bl, SC_DEFENDER, INVALID_TIMER); + status_change_end(bl, SC_REFLECTSHIELD, INVALID_TIMER); + status_change_end(bl, SC_ENDURE, INVALID_TIMER); } break; @@ -6581,7 +6580,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) if(tbl && tsc && tsc->data[SC_BLADESTOP]) { tsc->data[SC_BLADESTOP]->val4 = 0; - status_change_end(tbl,SC_BLADESTOP,-1); + status_change_end(tbl, SC_BLADESTOP, INVALID_TIMER); } clif_bladestop(bl, tid, 0); } @@ -6598,7 +6597,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) if(dsc) { //This will prevent recursive loops. dsc->val2 = dsc->val4 = 0; - status_change_end(&dsd->bl, SC_DANCING, -1); + status_change_end(&dsd->bl, SC_DANCING, INVALID_TIMER); } } @@ -6621,11 +6620,11 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) if((sce->val1&0xFFFF) == CG_MOONLIT) clif_status_change(bl,SI_MOONLIT,0,0); - status_change_end(bl,SC_LONGING,-1); + status_change_end(bl, SC_LONGING, INVALID_TIMER); } break; case SC_NOCHAT: - if (sd && sd->status.manner < 0 && tid != -1) + if (sd && sd->status.manner < 0 && tid != INVALID_TIMER) sd->status.manner = 0; if (sd) { @@ -6636,7 +6635,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) case SC_SPLASHER: { struct block_list *src=map_id2bl(sce->val3); - if(src && tid!=-1) + if(src && tid != INVALID_TIMER) skill_castend_damage_id(src, bl, sce->val2, sce->val1, gettick(), SD_LEVEL ); } break; @@ -6648,7 +6647,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) //If status was already ended, do nothing. //Decrease count if (--(sc2->data[SC_CLOSECONFINE]->val1) <= 0) //No more holds, free him up. - status_change_end(src, SC_CLOSECONFINE, -1); + status_change_end(src, SC_CLOSECONFINE, INVALID_TIMER); } } case SC_CLOSECONFINE: @@ -6685,7 +6684,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) if (sc2 && sc2->data[type2]) { sc2->data[type2]->val1 = 0; - status_change_end(pbl, type2, -1); + status_change_end(pbl, type2, INVALID_TIMER); } } break; @@ -6697,7 +6696,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) if(sc->data[SC_ENDURE] && sc->data[SC_ENDURE]->val4 == 2) { sc->data[SC_ENDURE]->val4 = 0; - status_change_end(bl, SC_ENDURE, -1); + status_change_end(bl, SC_ENDURE, INVALID_TIMER); } sc_start4(bl, SC_REGENERATION, 100, 10,0,0,(RGN_HP|RGN_SP), skill_get_time(LK_BERSERK, sce->val1)); break; @@ -6727,25 +6726,25 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) break; case SC_KAAHI: //Delete timer if it exists. - if (sce->val4 != -1) + if (sce->val4 != INVALID_TIMER) delete_timer(sce->val4,kaahi_heal_timer); break; case SC_JAILED: - if(tid == -1) + if(tid == INVALID_TIMER) break; //natural expiration. if(sd && sd->mapindex == sce->val2) pc_setpos(sd,(unsigned short)sce->val3,sce->val4&0xFFFF, sce->val4>>16, CLR_TELEPORT); break; //guess hes not in jail :P case SC_CHANGE: - if (tid == -1) + if (tid == INVALID_TIMER) break; // "lose almost all their HP and SP" on natural expiration. status_set_hp(bl, 10, 0); status_set_sp(bl, 10, 0); break; case SC_AUTOTRADE: - if (tid == -1) + if (tid == INVALID_TIMER) break; vending_closevending(sd); map_quit(sd); @@ -6759,7 +6758,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) struct block_list* tbl = map_id2bl(sce->val2); sce->val2 = 0; if( tbl && (sc = status_get_sc(tbl)) && sc->data[SC_STOP] && sc->data[SC_STOP]->val2 == bl->id ) - status_change_end(tbl, SC_STOP, -1); + status_change_end(tbl, SC_STOP, INVALID_TIMER); } break; } @@ -6956,13 +6955,13 @@ int kaahi_heal_timer(int tid, unsigned int tick, int id, intptr data) if(sce->val4 != tid) { ShowError("kaahi_heal_timer: Timer mismatch: %d != %d\n", tid, sce->val4); - sce->val4=-1; + sce->val4 = INVALID_TIMER; return 0; } status=status_get_status_data(bl); if(!status_charge(bl, 0, sce->val3)) { - sce->val4=-1; + sce->val4 = INVALID_TIMER; return 0; } @@ -6971,7 +6970,7 @@ int kaahi_heal_timer(int tid, unsigned int tick, int id, intptr data) hp = sce->val2; if (hp) status_heal(bl, hp, 0, 2); - sce->val4=-1; + sce->val4 = INVALID_TIMER; return 1; } @@ -7350,13 +7349,13 @@ int status_change_timer_sub(struct block_list* bl, va_list ap) { case SC_SIGHT: /* ƒTƒCƒg */ case SC_CONCENTRATE: - status_change_end(bl, SC_HIDING, -1); - status_change_end(bl, SC_CLOAKING, -1); + status_change_end(bl, SC_HIDING, INVALID_TIMER); + status_change_end(bl, SC_CLOAKING, INVALID_TIMER); break; case SC_RUWACH: /* ƒ‹ƒAƒt */ if (tsc && (tsc->data[SC_HIDING] || tsc->data[SC_CLOAKING])) { - status_change_end(bl, SC_HIDING, -1); - status_change_end(bl, SC_CLOAKING, -1); + status_change_end(bl, SC_HIDING, INVALID_TIMER); + status_change_end(bl, SC_CLOAKING, INVALID_TIMER); if(battle_check_target( src, bl, BCT_ENEMY ) > 0) skill_attack(BF_MAGIC,src,src,bl,AL_RUWACH,1,tick,0); } @@ -7373,7 +7372,7 @@ int status_change_timer_sub(struct block_list* bl, va_list ap) //Lock char has released the hold on everyone... if (tsc && tsc->data[SC_CLOSECONFINE2] && tsc->data[SC_CLOSECONFINE2]->val2 == src->id) { tsc->data[SC_CLOSECONFINE2]->val2 = 0; - status_change_end(bl, SC_CLOSECONFINE2, -1); + status_change_end(bl, SC_CLOSECONFINE2, INVALID_TIMER); } break; } @@ -7395,8 +7394,7 @@ int status_change_clear_buffs (struct block_list* bl, int type) if (type&2) //Debuffs for( i = SC_COMMON_MIN; i <= SC_COMMON_MAX; i++ ) { - if(sc->data[i]) - status_change_end(bl,(sc_type)i,-1); + status_change_end(bl, (sc_type)i, INVALID_TIMER); } for( i = SC_COMMON_MAX+1; i < SC_MAX; i++ ) @@ -7469,7 +7467,7 @@ int status_change_clear_buffs (struct block_list* bl, int type) continue; break; } - status_change_end(bl,(sc_type)i,-1); + status_change_end(bl, (sc_type)i, INVALID_TIMER); } return 0; } @@ -7557,7 +7555,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) ud = unit_bl2ud(bl); - if (flag&(RGN_HP|RGN_SHP|RGN_SSP) && ud && ud->walktimer != -1) + if (flag&(RGN_HP|RGN_SHP|RGN_SSP) && ud && ud->walktimer != INVALID_TIMER) { flag&=~(RGN_SHP|RGN_SSP); if(!regen->state.walk) @@ -7580,7 +7578,7 @@ static int status_natural_heal(struct block_list* bl, va_list args) if (flag&RGN_HP) { rate = natural_heal_diff_tick*(regen->rate.hp+bonus); - if (ud && ud->walktimer != -1) + if (ud && ud->walktimer != INVALID_TIMER) rate/=2; // Homun HP regen fix (they should regen as if they were sitting (twice as fast) if(bl->type==BL_HOM) rate *=2; diff --git a/src/map/storage.c b/src/map/storage.c index 9aa34d3e02..116ba18c9d 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -398,11 +398,12 @@ int guild_storage_additem(struct map_session_data* sd, struct guild_storage* sto nullpo_retr(1, sd); nullpo_retr(1, stor); nullpo_retr(1, item_data); - nullpo_retr(1, data = itemdb_search(item_data->nameid)); if(item_data->nameid <= 0 || amount <= 0) return 1; + data = itemdb_search(item_data->nameid); + if( data->stack.guildstorage && amount > data->stack.amount ) {// item stack limitation return 1; diff --git a/src/map/trade.c b/src/map/trade.c index 32c84b508c..ba01826f2e 100644 --- a/src/map/trade.c +++ b/src/map/trade.c @@ -56,7 +56,7 @@ void trade_traderequest(struct map_session_data *sd, struct map_session_data *ta } } - if ((target_sd->trade_partner != 0) || (sd->trade_partner != 0)) { + if (target_sd->trade_partner != 0) { clif_tradestart(sd, 2); // person is in another trade return; } @@ -110,6 +110,7 @@ void trade_tradeack(struct map_session_data *sd, int type) if (tsd->state.trading || tsd->trade_partner != sd->bl.id) { clif_tradestart(sd, 2); + sd->trade_partner=0; return; //Already trading or wrong partner. } diff --git a/src/map/unit.c b/src/map/unit.c index df4efef8e6..7abfde12ba 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -157,7 +157,7 @@ static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr data) map_moveblock(bl, x, y, tick); ud->walk_count++; //walked cell counter, to be used for walk-triggered skills. [Skotlex] - if (bl->x != x || bl->y != y || ud->walktimer != -1) + if (bl->x != x || bl->y != y || ud->walktimer != INVALID_TIMER) return 0; //map_moveblock has altered the object beyond what we expected (moved/warped it) ud->walktimer = -2; // arbitrary non-INVALID_TIMER value to make the clif code send walking packets @@ -197,11 +197,11 @@ static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr data) if (md->min_chase > md->db->range3) md->min_chase--; //Walk skills are triggered regardless of target due to the idle-walk mob state. //But avoid triggering on stop-walk calls. - if(tid != -1 && + if(tid != INVALID_TIMER && !(ud->walk_count%WALK_SKILL_INTERVAL) && mobskill_use(md, tick, -1)) { - if (!(ud->skillid == NPC_SELFDESTRUCTION && ud->skilltimer != -1)) + if (!(ud->skillid == NPC_SELFDESTRUCTION && ud->skilltimer != INVALID_TIMER)) { //Skill used, abort walking clif_fixpos(bl); //Fix position as walk has been cancelled. return 0; @@ -211,7 +211,7 @@ static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr data) } } - if(tid == -1) //A directly invoked timer is from battle_stop_walking, therefore the rest is irrelevant. + if(tid == INVALID_TIMER) //A directly invoked timer is from battle_stop_walking, therefore the rest is irrelevant. return 0; if(ud->state.change_walk_target) @@ -306,14 +306,14 @@ int unit_walktoxy( struct block_list *bl, short x, short y, int flag) if (sc && sc->data[SC_CONFUSION]) //Randomize the target position map_random_dir(bl, &ud->to_x, &ud->to_y); - if(ud->walktimer != -1) { + if(ud->walktimer != INVALID_TIMER) { // Œ»Ý•à‚¢‚Ä‚¢‚éÅ’†‚Ì–Ú“I’n•ÏX‚Ȃ̂Ń}ƒX–Ú‚Ì’†S‚É—ˆ‚½Žž‚É // timerŠÖ”‚©‚çunit_walktoxy_sub‚ðŒÄ‚Ԃ悤‚É‚·‚é ud->state.change_walk_target = 1; return 1; } - if(ud->attacktimer != -1) { + if(ud->attacktimer != INVALID_TIMER) { delete_timer( ud->attacktimer, unit_attack_timer ); ud->attacktimer = INVALID_TIMER; } @@ -331,7 +331,7 @@ static int unit_walktobl_sub(int tid, unsigned int tick, int id, intptr data) struct block_list *bl = map_id2bl(id); struct unit_data *ud = bl?unit_bl2ud(bl):NULL; - if (ud && ud->walktimer == -1 && ud->target == data) + if (ud && ud->walktimer == INVALID_TIMER && ud->target == data) { if (DIFF_TICK(ud->canmove_tick, tick) > 0) //Keep waiting? add_timer(ud->canmove_tick+1, unit_walktobl_sub, id, data); @@ -374,7 +374,7 @@ int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int if (sc && sc->data[SC_CONFUSION]) //Randomize the target position map_random_dir(bl, &ud->to_x, &ud->to_y); - if(ud->walktimer != -1) { + if(ud->walktimer != INVALID_TIMER) { ud->state.change_walk_target = 1; set_mobstate(bl, flag&2); return 1; @@ -389,7 +389,7 @@ int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int if(!unit_can_move(bl)) return 0; - if(ud->attacktimer != -1) { + if(ud->attacktimer != INVALID_TIMER) { delete_timer( ud->attacktimer, unit_attack_timer ); ud->attacktimer = INVALID_TIMER; } @@ -413,7 +413,7 @@ int unit_run(struct block_list *bl) return 0; if (!unit_can_move(bl)) { - status_change_end(bl,SC_RUN,-1); + status_change_end(bl, SC_RUN, INVALID_TIMER); return 0; } @@ -443,7 +443,7 @@ int unit_run(struct block_list *bl) //Set running to 0 beforehand so status_change_end knows not to enable spurt [Kevin] unit_bl2ud(bl)->state.running = 0; - status_change_end(bl,SC_RUN,-1); + status_change_end(bl, SC_RUN, INVALID_TIMER); skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0); clif_fixpos(bl); //Why is a clif_slide (skill_blown) AND a fixpos needed? Ask Aegis. @@ -463,7 +463,7 @@ int unit_run(struct block_list *bl) //Set running to 0 beforehand so status_change_end knows not to enable spurt [Kevin] unit_bl2ud(bl)->state.running = 0; - status_change_end(bl,SC_RUN,-1); + status_change_end(bl, SC_RUN, INVALID_TIMER); skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0); clif_fixpos(bl); @@ -725,7 +725,7 @@ int unit_stop_walking(struct block_list *bl,int type) nullpo_ret(bl); ud = unit_bl2ud(bl); - if(!ud || ud->walktimer == -1) + if(!ud || ud->walktimer == INVALID_TIMER) return 0; //NOTE: We are using timer data after deleting it because we know the //delete_timer function does not messes with it. If the function's @@ -739,7 +739,7 @@ int unit_stop_walking(struct block_list *bl,int type) || (type&0x04 && td && DIFF_TICK(td->tick, tick) <= td->data/2) //Enough time has passed to cover half-cell ) { ud->walkpath.path_len = ud->walkpath.path_pos+1; - unit_walktoxy_timer(-1, tick, bl->id, ud->walkpath.path_pos); + unit_walktoxy_timer(INVALID_TIMER, tick, bl->id, ud->walkpath.path_pos); } if(type&0x01) @@ -754,7 +754,7 @@ int unit_stop_walking(struct block_list *bl,int type) //Readded, the check in unit_set_walkdelay means dmg during running won't fall through to this place in code [Kevin] if (ud->state.running) - status_change_end(bl, SC_RUN, -1); + status_change_end(bl, SC_RUN, INVALID_TIMER); return 1; } @@ -774,7 +774,7 @@ int unit_is_walking(struct block_list *bl) struct unit_data *ud = unit_bl2ud(bl); nullpo_ret(bl); if(!ud) return 0; - return (ud->walktimer != -1); + return (ud->walktimer != INVALID_TIMER); } /*========================================== @@ -794,7 +794,7 @@ int unit_can_move(struct block_list *bl) if (!ud) return 0; - if (ud->skilltimer != -1 && (!sd || !pc_checkskill(sd, SA_FREECAST) || skill_get_inf2(ud->skillid)&INF2_GUILD_SKILL)) + if (ud->skilltimer != INVALID_TIMER && (!sd || !pc_checkskill(sd, SA_FREECAST) || skill_get_inf2(ud->skillid)&INF2_GUILD_SKILL)) return 0; // prevent moving while casting if (DIFF_TICK(ud->canmove_tick, gettick()) > 0) @@ -880,7 +880,7 @@ int unit_set_walkdelay(struct block_list *bl, unsigned int tick, int delay, int return 0; } ud->canmove_tick = tick + delay; - if (ud->walktimer != -1) + if (ud->walktimer != INVALID_TIMER) { //Stop walking, if chasing, readjust timers. if (delay == 1) { //Minimal delay (walk-delay) disabled. Just stop walking. @@ -939,8 +939,6 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh if(skillnotok(skill_num, sd)) // [MouseJstr] return 0; - mob_ksprotected(src, map_id2bl(target_id)); - switch(skill_num) { //Check for skills that auto-select target case MO_CHAINCOMBO: @@ -987,8 +985,11 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh if( !target || src->m != target->m || !src->prev || !target->prev ) return 0; + if( mob_ksprotected(src, target) ) + return 0; + //Normally not needed because clif.c checks for it, but the at/char/script commands don't! [Skotlex] - if(ud->skilltimer != -1 && skill_num != SA_CASTCANCEL) + if(ud->skilltimer != INVALID_TIMER && skill_num != SA_CASTCANCEL) return 0; if(skill_get_inf2(skill_num)&INF2_NO_TARGET_SELF && src->id == target_id) @@ -1047,7 +1048,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh //Check range when not using skill on yourself or is a combo-skill during attack //(these are supposed to always have the same range as your attack) - if( src->id != target_id && (!temp || ud->attacktimer == -1) ) + if( src->id != target_id && (!temp || ud->attacktimer == INVALID_TIMER) ) { if( skill_get_state(ud->skillid) == ST_MOVE_ENABLE ) { @@ -1065,7 +1066,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh if (!temp) //Stop attack on non-combo skills [Skotlex] unit_stop_attack(src); - else if(ud->attacktimer != -1) //Elsewise, delay current attack sequence + else if(ud->attacktimer != INVALID_TIMER) //Elsewise, delay current attack sequence ud->attackabletime = tick + status_get_adelay(src); ud->state.skillcastcancel = castcancel; @@ -1180,7 +1181,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh if( sc && sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4&4) && skill_num != AS_CLOAKING ) { - status_change_end(src,SC_CLOAKING,-1); + status_change_end(src, SC_CLOAKING, INVALID_TIMER); if (!src->prev) return 0; //Warped away! } @@ -1224,7 +1225,7 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, sh ud = unit_bl2ud(src); if(ud == NULL) return 0; - if(ud->skilltimer != -1) //Normally not needed since clif.c checks for it, but at/char/script commands don't! [Skotlex] + if(ud->skilltimer != INVALID_TIMER) //Normally not needed since clif.c checks for it, but at/char/script commands don't! [Skotlex] return 0; sc = status_get_sc(src); @@ -1285,7 +1286,7 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, sh if (sc && sc->data[SC_CLOAKING] && !(sc->data[SC_CLOAKING]->val4&4)) { - status_change_end(src,SC_CLOAKING,-1); + status_change_end(src, SC_CLOAKING, INVALID_TIMER); if (!src->prev) return 0; //Warped away! } @@ -1310,7 +1311,7 @@ int unit_stop_attack(struct block_list *bl) struct unit_data *ud = unit_bl2ud(bl); nullpo_ret(bl); - if(!ud || ud->attacktimer == -1) + if(!ud || ud->attacktimer == INVALID_TIMER) return 0; delete_timer( ud->attacktimer, unit_attack_timer ); @@ -1380,7 +1381,7 @@ int unit_attack(struct block_list *src,int target_id,int continuous) ud->chaserange = status_get_range(src); //Just change target/type. [Skotlex] - if(ud->attacktimer != -1) + if(ud->attacktimer != INVALID_TIMER) return 0; //Set Mob's ANGRY/BERSERK states. @@ -1391,7 +1392,7 @@ int unit_attack(struct block_list *src,int target_id,int continuous) //Do attack next time it is possible. [Skotlex] ud->attacktimer=add_timer(ud->attackabletime,unit_attack_timer,src->id,0); else //Attack NOW. - unit_attack_timer(-1,gettick(),src->id,0); + unit_attack_timer(INVALID_TIMER, gettick(), src->id, 0); return 0; } @@ -1402,7 +1403,7 @@ int unit_cancel_combo(struct block_list *bl) { struct unit_data *ud; - if (!status_change_end(bl, SC_COMBO, -1)) + if (!status_change_end(bl, SC_COMBO, INVALID_TIMER)) return 0; //Combo wasn't active. ud = unit_bl2ud(bl); @@ -1410,7 +1411,7 @@ int unit_cancel_combo(struct block_list *bl) ud->attackabletime = gettick() + status_get_amotion(bl); - if (ud->attacktimer == -1) + if (ud->attacktimer == INVALID_TIMER) return 1; //Nothing more to do. delete_timer(ud->attacktimer, unit_attack_timer); @@ -1563,12 +1564,12 @@ static int unit_attack_timer_sub(struct block_list* src, int tid, unsigned int t return 0; } - if( ud->skilltimer != -1 && !(sd && pc_checkskill(sd,SA_FREECAST) > 0) ) + if( ud->skilltimer != INVALID_TIMER && !(sd && pc_checkskill(sd,SA_FREECAST) > 0) ) return 0; // can't attack while casting if( !battle_config.sdelay_attack_enable && DIFF_TICK(ud->canact_tick,tick) > 0 && !(sd && pc_checkskill(sd,SA_FREECAST) > 0) ) { // attacking when under cast delay has restrictions: - if( tid == -1 ) + if( tid == INVALID_TIMER ) { //requested attack. if(sd) clif_skill_fail(sd,1,4,0); return 0; @@ -1612,14 +1613,14 @@ static int unit_attack_timer_sub(struct block_list* src, int tid, unsigned int t //Sync packet only for players. //Non-players use the sync packet on the walk timer. [Skotlex] - if (tid == -1 && sd) clif_fixpos(src); + if (tid == INVALID_TIMER && sd) clif_fixpos(src); if( DIFF_TICK(ud->attackabletime,tick) <= 0 ) { if (battle_config.attack_direction_change && (src->type&battle_config.attack_direction_change)) { ud->dir = map_calc_dir(src, target->x,target->y ); } - if(ud->walktimer != -1) + if(ud->walktimer != INVALID_TIMER) unit_stop_walking(src,1); if(md) { if (mobskill_use(md,tick,-1)) @@ -1674,7 +1675,7 @@ int unit_skillcastcancel(struct block_list *bl,int type) int ret=0, skill; nullpo_ret(bl); - if (!ud || ud->skilltimer==-1) + if (!ud || ud->skilltimer == INVALID_TIMER) return 0; //Nothing to cancel. sd = BL_CAST(BL_PC, bl); @@ -1732,9 +1733,9 @@ void unit_dataset(struct block_list *bl) memset( ud, 0, sizeof( struct unit_data) ); ud->bl = bl; - ud->walktimer = -1; - ud->skilltimer = -1; - ud->attacktimer = -1; + ud->walktimer = INVALID_TIMER; + ud->skilltimer = INVALID_TIMER; + ud->attacktimer = INVALID_TIMER; ud->attackabletime = ud->canact_tick = ud->canmove_tick = gettick(); @@ -1754,7 +1755,7 @@ static int unit_counttargeted_sub(struct block_list* bl, va_list ap) ud = unit_bl2ud(bl); - if (ud && ud->target == id && ud->attacktimer != -1 && ud->attacktarget_lv >= target_lv) + if (ud && ud->target == id && ud->attacktimer != INVALID_TIMER && ud->attacktarget_lv >= target_lv) return 1; return 0; @@ -1821,36 +1822,36 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file, map_freeblock_lock(); ud->target = 0; //Unlock walk/attack target. - if (ud->walktimer != -1) + if (ud->walktimer != INVALID_TIMER) unit_stop_walking(bl,0); - if (ud->attacktimer != -1) + if (ud->attacktimer != INVALID_TIMER) unit_stop_attack(bl); - if (ud->skilltimer != -1) + if (ud->skilltimer != INVALID_TIMER) unit_skillcastcancel(bl,0); // Do not reset can-act delay. [Skotlex] ud->attackabletime = ud->canmove_tick /*= ud->canact_tick*/ = gettick(); if(sc && sc->count ) { //map-change/warp dispells. - status_change_end(bl,SC_BLADESTOP,-1); - status_change_end(bl,SC_BASILICA,-1); - status_change_end(bl,SC_ANKLE,-1); - status_change_end(bl,SC_TRICKDEAD,-1); - status_change_end(bl,SC_BLADESTOP_WAIT,-1); - status_change_end(bl,SC_RUN,-1); - status_change_end(bl,SC_DANCING,-1); - status_change_end(bl,SC_WARM,-1); - status_change_end(bl,SC_DEVOTION,-1); - status_change_end(bl,SC_MARIONETTE,-1); - status_change_end(bl,SC_MARIONETTE2,-1); - status_change_end(bl,SC_CLOSECONFINE,-1); - status_change_end(bl,SC_CLOSECONFINE2,-1); - status_change_end(bl,SC_HIDING,-1); - status_change_end(bl,SC_CLOAKING,-1); - status_change_end(bl,SC_CHASEWALK,-1); + status_change_end(bl, SC_BLADESTOP, INVALID_TIMER); + status_change_end(bl, SC_BASILICA, INVALID_TIMER); + status_change_end(bl, SC_ANKLE, INVALID_TIMER); + status_change_end(bl, SC_TRICKDEAD, INVALID_TIMER); + status_change_end(bl, SC_BLADESTOP_WAIT, INVALID_TIMER); + status_change_end(bl, SC_RUN, INVALID_TIMER); + status_change_end(bl, SC_DANCING, INVALID_TIMER); + status_change_end(bl, SC_WARM, INVALID_TIMER); + status_change_end(bl, SC_DEVOTION, INVALID_TIMER); + status_change_end(bl, SC_MARIONETTE, INVALID_TIMER); + status_change_end(bl, SC_MARIONETTE2, INVALID_TIMER); + status_change_end(bl, SC_CLOSECONFINE, INVALID_TIMER); + status_change_end(bl, SC_CLOSECONFINE2, INVALID_TIMER); + status_change_end(bl, SC_HIDING, INVALID_TIMER); + status_change_end(bl, SC_CLOAKING, INVALID_TIMER); + status_change_end(bl, SC_CHASEWALK, INVALID_TIMER); if (sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_SELF) - status_change_end(bl,SC_GOSPEL,-1); - status_change_end(bl,SC_CHANGE,-1); - status_change_end(bl,SC_STOP,-1); + status_change_end(bl, SC_GOSPEL, INVALID_TIMER); + status_change_end(bl, SC_CHANGE, INVALID_TIMER); + status_change_end(bl, SC_STOP, INVALID_TIMER); } if (bl->type&BL_CHAR) { @@ -1890,7 +1891,7 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file, sd->npc_shopid = 0; sd->adopt_invite = 0; - if(sd->pvp_timer!=-1) { + if(sd->pvp_timer != INVALID_TIMER) { delete_timer(sd->pvp_timer,pc_calc_pvprank_timer); sd->pvp_timer = INVALID_TIMER; sd->pvp_rank = 0; @@ -2052,7 +2053,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) pc_delautobonus(sd,sd->autobonus2,ARRAYLENGTH(sd->autobonus2),false); pc_delautobonus(sd,sd->autobonus3,ARRAYLENGTH(sd->autobonus3),false); - if( sd->followtimer != -1 ) + if( sd->followtimer != INVALID_TIMER ) pc_stop_following(sd); if( sd->duel_invite > 0 ) @@ -2103,7 +2104,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) } if( pd->s_skill ) { - if (pd->s_skill->timer != -1) { + if (pd->s_skill->timer != INVALID_TIMER) { if (pd->s_skill->id) delete_timer(pd->s_skill->timer, pet_skill_support_timer); else @@ -2114,14 +2115,14 @@ int unit_free(struct block_list *bl, clr_type clrtype) } if( pd->recovery ) { - if(pd->recovery->timer != -1) + if(pd->recovery->timer != INVALID_TIMER) delete_timer(pd->recovery->timer, pet_recovery_timer); aFree(pd->recovery); pd->recovery = NULL; } if( pd->bonus ) { - if (pd->bonus->timer != -1) + if (pd->bonus->timer != INVALID_TIMER) delete_timer(pd->bonus->timer, pet_skill_bonus_timer); aFree(pd->bonus); pd->bonus = NULL; diff --git a/src/map/vending.c b/src/map/vending.c index 90bff7399c..a47be9057e 100644 --- a/src/map/vending.c +++ b/src/map/vending.c @@ -19,6 +19,18 @@ #include #include +static int vending_nextid = 1; + +/// Returns an unique vending shop id. +static int vending_getuid(void) +{ + if(!vending_nextid) + {// wrapped around, 0 is reserved for "not vending" state on eathena + vending_nextid = 1; + } + + return vending_nextid++; +} /*========================================== * Close shop @@ -50,13 +62,15 @@ void vending_vendinglistreq(struct map_session_data* sd, int id) return; } + sd->vended_id = vsd->vender_id; // register vending uid + clif_vendinglist(sd, id, vsd->vending); } /*========================================== * Purchase item(s) from a shop *------------------------------------------*/ -void vending_purchasereq(struct map_session_data* sd, int aid, int cid, const uint8* data, int count) +void vending_purchasereq(struct map_session_data* sd, int aid, int uid, const uint8* data, int count) { int i, j, cursor, w, new_ = 0, blank, vend_list[MAX_VENDING]; double z; @@ -64,12 +78,15 @@ void vending_purchasereq(struct map_session_data* sd, int aid, int cid, const ui struct map_session_data* vsd = map_id2sd(aid); nullpo_retv(sd); - if( vsd == NULL || vsd->vender_id == 0 || vsd->vender_id == sd->bl.id ) + if( vsd == NULL || vsd->vender_id == 0 || vsd->bl.id == sd->bl.id ) return; // invalid shop -#if PACKETVER >= 20100105 - if( vsd->status.char_id != cid ) - return; //Char-ID check -#endif + + if( vsd->vender_id != uid ) + {// shop has changed + clif_buyvending(sd, 0, 0, 6); // store information was incorrect + return; + } + if( sd->bl.m != vsd->bl.m || !check_distance_bl(&sd->bl, &vsd->bl, AREA_SIZE) ) return; // shop too far away if( count < 1 || count > MAX_VENDING || count > vsd->vend_num ) @@ -289,11 +306,11 @@ void vending_openvending(struct map_session_data* sd, const char* message, bool return; } - sd->vender_id = sd->bl.id; + sd->vender_id = vending_getuid(); sd->vend_num = i; safestrncpy(sd->message, message, MESSAGE_SIZE); pc_stop_walking(sd,1); - clif_openvending(sd,sd->vender_id,sd->vending); + clif_openvending(sd,sd->bl.id,sd->vending); clif_showvendingboard(&sd->bl,message,0); } diff --git a/src/map/vending.h b/src/map/vending.h index 9748b675ad..3c483a38c6 100644 --- a/src/map/vending.h +++ b/src/map/vending.h @@ -17,6 +17,6 @@ struct s_vending { void vending_closevending(struct map_session_data* sd); void vending_openvending(struct map_session_data* sd, const char* message, bool flag, const uint8* data, int count); void vending_vendinglistreq(struct map_session_data* sd, int id); -void vending_purchasereq(struct map_session_data* sd, int aid, int cid, const uint8* data, int count); +void vending_purchasereq(struct map_session_data* sd, int aid, int uid, const uint8* data, int count); #endif /* _VENDING_H_ */ diff --git a/src/plugins/Makefile.in b/src/plugins/Makefile.in index a16083981f..fa74ff90dc 100644 --- a/src/plugins/Makefile.in +++ b/src/plugins/Makefile.in @@ -5,7 +5,7 @@ COMMON_H = ../common/plugin.h ../common/cbasetypes.h \ ../common/showmsg.h ../common/utils.h ../common/strlib.h \ ../common/malloc.h -PLUGINS = sample sig pid gui console +PLUGINS = sample sig pid console @SET_MAKE@ @@ -20,8 +20,6 @@ sig: sig@DLLEXT@ pid: pid@DLLEXT@ -gui: gui@DLLEXT@ - console: console@DLLEXT@ clean: @@ -32,7 +30,6 @@ help: @echo "'sample' - sample plugin" @echo "'sig' - signal handler plugin" @echo "'pid' - process id plugin" - @echo "'gui' - gui plugin" @echo "'console' - console plugin" @echo "'all' - builds all above targets" @echo "'clean' - cleans builds and objects" @@ -43,14 +40,9 @@ help: %@DLLEXT@: %.c @CC@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ -shared -o ../../plugins/$@ $< -gui@DLLEXT@: ../../plugins/gui.conf - sig@DLLEXT@: sig.c $(COMMON_OBJ) @CC@ @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ -shared -o ../../plugins/$@ $< $(COMMON_OBJ) -../../plugins/%.conf: %.txt - cp -r $< $@ - # missing common object files ../common/obj_all/%.o: ../common/%.c $(COMMON_H) @$(MAKE) -C ../common txt diff --git a/src/plugins/console.c b/src/plugins/console.c index 5056eafdc8..b1307f863a 100644 --- a/src/plugins/console.c +++ b/src/plugins/console.c @@ -32,7 +32,8 @@ #define WORKER_FUNC_END(name) } ExitThread(0); return 0; } #define WORKER_EXECUTE(name,errvar) \ do{ \ - buf.worker = CreateThread(NULL, 0, worker_ ## name, NULL, CREATE_SUSPENDED, NULL); \ + DWORD dwThreadId; \ + buf.worker = CreateThread(NULL, 0, worker_ ## name, NULL, CREATE_SUSPENDED, &dwThreadId); \ if( errvar ) \ *errvar = ( buf.worker == NULL ); \ }while(0) @@ -132,10 +133,10 @@ int (*add_timer_func_list)(TimerFunc func, char* name); int (*add_timer_interval)(unsigned int tick, TimerFunc func, int id, intptr data, int interval); int (*delete_timer)(int tid, TimerFunc func); unsigned int (*gettick)(void); -int (*parse_console)(char* buf); +int (*parse_console)(const char* buf); // Locals -int tid; // timer id +int tid = -1; // timer id BUFFER buf; // input buffer WORKER_FUNC_DECLARE(getinput); // worker for the input buffer diff --git a/src/plugins/gui.c b/src/plugins/gui.c deleted file mode 100644 index f45345341e..0000000000 --- a/src/plugins/gui.c +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#include -#include -#include -#include "../common/plugin.h" -//Needed for strcmpi -#include "../common/mmo.h" - -// "I'm Alive" and "Flush stdout" Originally by Mugendai -// Ported to plugin by Celest - -PLUGIN_INFO = { - "AthenaGUI", - PLUGIN_CORE, - "1.0", - PLUGIN_VERSION, - "Core plugin for Athena GUI functions" -}; - -PLUGIN_EVENTS_TABLE = { - { "gui_init", "Plugin_Init" }, - { NULL, NULL } -}; - -typedef int (*TimerFunc)(int tid, unsigned int tick, int id, intptr data); -unsigned int (*gettick)(); -int (*add_timer_func_list)(TimerFunc func, char* name); -int (*add_timer_interval)(unsigned int tick, TimerFunc func, int id, intptr data, int interval); - -//----------------------------------------------------- -//I'm Alive Alert -//Used to output 'I'm Alive' every few seconds -//Intended to let frontends know if the app froze -//----------------------------------------------------- -int imalive_timer(int tid, unsigned int tick, int id, intptr data) -{ - printf("I'm Alive\n"); - return 0; -} - -//----------------------------------------------------- -//Flush stdout -//stdout buffer needs flushed to be seen in GUI -//----------------------------------------------------- -int flush_timer(int tid, unsigned int tick, int id, intptr data) -{ - fflush(stdout); - return 0; -} - -void gui_init () -{ - char line[1024], w1[1024], w2[1024]; - int flush_on = 0; - int flush_time = 100; - int imalive_on = 0; - int imalive_time = 30; - char **argv; - int *argc; - FILE *fp; - int i; - - IMPORT_SYMBOL(argc, 2); - IMPORT_SYMBOL(argv, 3); - IMPORT_SYMBOL(gettick, 5); - IMPORT_SYMBOL(add_timer_interval, 8); - IMPORT_SYMBOL(add_timer_func_list, 9); - - do { - fp = fopen("plugins/gui.conf","r"); - if (fp == NULL) - break; - - while(fgets(line, sizeof(line), fp)) - { - if (line[0] == '/' && line[1] == '/') - continue; - if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) == 2) { - if(strcmpi(w1,"imalive_on")==0){ - imalive_on = atoi(w2); - } else if(strcmpi(w1,"imalive_time")==0){ - imalive_time = atoi(w2); - } else if(strcmpi(w1,"flush_on")==0){ - flush_on = atoi(w2); - } else if(strcmpi(w1,"flush_time")==0){ - flush_time = atoi(w2); - } - } - } - fclose(fp); - } while (0); - - for (i = 1; i < *argc ; i++) - if (strcmp(argv[i], "--gui") == 0) - flush_on = imalive_on = 1; - - if (flush_on) { - add_timer_func_list(flush_timer, "flush_timer"); - add_timer_interval(gettick()+1000,flush_timer,0,0,flush_time); - } - if (imalive_on) { - add_timer_func_list(imalive_timer, "imalive_timer"); - add_timer_interval(gettick()+10, imalive_timer,0,0,imalive_time*1000); - } -} diff --git a/src/plugins/gui.txt b/src/plugins/gui.txt deleted file mode 100644 index c71b684b6f..0000000000 --- a/src/plugins/gui.txt +++ /dev/null @@ -1,15 +0,0 @@ -// -// GUI Plugin Configuration -// - -// Enable I'm Alive? -imalive_on: 0 - -// How often to display I'm Alive (in seconds) -imalive_time: 30 - -// Enable GUI flushing for Mugendai's GUI? -flush_on: 0 - -// How often to flush the buffer on-screen (in seconds) -flush_time: 60 diff --git a/src/plugins/plugin.def b/src/plugins/pid.def similarity index 77% rename from src/plugins/plugin.def rename to src/plugins/pid.def index 6117bedc67..a70cf8127f 100644 --- a/src/plugins/plugin.def +++ b/src/plugins/pid.def @@ -2,3 +2,6 @@ EXPORTS plugin_info DATA plugin_event_table DATA plugin_call_table DATA + + pid_create + pid_delete diff --git a/src/plugins/sample.def b/src/plugins/sample.def new file mode 100644 index 0000000000..f5c4af6521 --- /dev/null +++ b/src/plugins/sample.def @@ -0,0 +1,11 @@ +EXPORTS + ; common exports + plugin_info DATA + plugin_event_table DATA + plugin_call_table DATA + + ; plugin-specific exports + test_me + do_init + do_final + some_function diff --git a/src/tool/Makefile.in b/src/tool/Makefile.in index 78300a68ce..06813f8432 100644 --- a/src/tool/Makefile.in +++ b/src/tool/Makefile.in @@ -1,26 +1,44 @@ +COMMON_OBJ = ../common/obj_all/minicore.o ../common/obj_all/malloc.o \ + ../common/obj_all/showmsg.o ../common/obj_all/strlib.o \ + ../common/obj_all/utils.o ../common/obj_all/grfio.o +COMMON_H = ../common/core.h ../common/mmo.h ../common/version.h \ + ../common/malloc.h ../common/showmsg.h ../common/strlib.h \ + ../common/utils.h ../common/cbasetypes.h ../common/grfio.h + +MAPCACHE_OBJ = obj_all/mapcache.o + @SET_MAKE@ ##################################################################### -.PHONY : all adduser mapcache clean help +.PHONY : all mapcache clean help -all: adduser mapcache +all: mapcache -adduser: - @CC@ -o ../../tools/adduser@EXEEXT@ adduser.c - -mapcache: - @CC@ -o ../../mapcache@EXEEXT@ mapcache.c grfio.c -lz +mapcache: obj_all $(MAPCACHE_OBJ) $(COMMON_OBJ) + @CC@ @LDFLAGS@ -o ../../mapcache@EXEEXT@ $(MAPCACHE_OBJ) $(COMMON_OBJ) @LIBS@ clean: - rm -rf *.o ../../tools/adduser@EXEEXT@ ../../mapcache@EXEEXT@ + rm -rf obj_all/*.o ../../mapcache@EXEEXT@ help: - @echo "possible targets are 'adduser' 'mapcache' 'all' 'clean' 'help'" - @echo "'adduser' - ???" + @echo "possible targets are 'mapcache' 'all' 'clean' 'help'" @echo "'mapcache' - mapcache generator" @echo "'all' - builds all above targets" @echo "'clean' - cleans builds and objects" @echo "'help' - outputs this message" ##################################################################### + +obj_all: + -mkdir obj_all + +obj_all/%.o: %.c $(COMMON_H) + @CC@ @CFLAGS@ @LDFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $< + +# missing common object files +../common/obj_all/%.o: + @$(MAKE) -C ../common txt + +../common/obj_all/mini%.o: + @$(MAKE) -C ../common txt diff --git a/src/tool/adduser.c b/src/tool/adduser.c deleted file mode 100644 index 5f4dfb6a56..0000000000 --- a/src/tool/adduser.c +++ /dev/null @@ -1,103 +0,0 @@ -// (c) eAthena Dev Team - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -/* - This program adds an user to account.txt - Don't usr it When login-sever is working. -*/ - -#include -#include -#include -#include - -char *account_txt = "../save/account.txt"; - -//----------------------------------------------------- -// Function to suppress control characters in a string. -//----------------------------------------------------- -int remove_control_chars(char* str) -{ - int i; - int change = 0; - - for(i = 0; str[i]; i++) { - if (iscntrl((unsigned char)(str[i]))) { - str[i] = '_'; - change = 1; - } - } - - return change; -} - -int main(int argc, char *argv[]) -{ - char username[24]; - char password[24]; - char sex[2]; - - int next_id, id; - char line[1024]; - FILE *FPaccin,*FPaccout; - - // Check to see if account.txt exists. - printf("Checking if '%s' file exists...\n", account_txt); - FPaccin = fopen(account_txt, "r"); - if (FPaccin == NULL) { - printf("'%s' file not found!\n", account_txt); - printf("Run the setup wizard please.\n"); - exit(EXIT_SUCCESS); - } - - next_id = 2000000; - while(fgets(line, sizeof(line), FPaccin)) - { - if (line[0] == '/' && line[1] == '/') { continue; } - if (sscanf(line, "%d\t%%newid%%\n", &id) == 1) { - if (next_id < id) { - next_id = id; - } - } else { - sscanf(line,"%i%[^ ]", &id); - if (next_id <= id) { - next_id = id +1; - } - } - } - fclose(FPaccin); - printf("File exists.\n"); - - printf("Don't create an account if the login-server is online!!!\n"); - printf("If the login-server is online, press ctrl+C now to stop this software.\n"); - printf("\n"); - - strcpy(username, ""); - while (strlen(username) < 4 || strlen(username) > 23) { - printf("Enter an username (4-23 characters): "); - scanf("%s", username); - username[23] = 0; - remove_control_chars(username); - } - - strcpy(password, ""); - while (strlen(password) < 4 || strlen(password) > 23) { - printf("Enter a password (4-23 characters): "); - scanf("%s", password); - password[23] = 0; - remove_control_chars(password); - } - - strcpy(sex, ""); - while (strcmp(sex, "F") != 0 && strcmp(sex, "M") != 0) { - printf("Enter a gender (M for male, F for female): "); - scanf("%s", sex); - } - - FPaccout = fopen(account_txt, "r+"); - fseek(FPaccout, 0, SEEK_END); - fprintf(FPaccout, "%i %s %s - %s -\r\n", next_id, username, password, sex); - fclose(FPaccout); - - printf("Account added.\n"); -} diff --git a/src/tool/grfio.c b/src/tool/grfio.c deleted file mode 100644 index 26cfb636f5..0000000000 --- a/src/tool/grfio.c +++ /dev/null @@ -1,844 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#include -#include -#include -#include -#include // tolower() - -#include "grfio.h" -#include - - -#ifndef __WIN32 - #define strcmpi strcasecmp -#endif - - -//---------------------------- -// file entry table struct -//---------------------------- -typedef struct _FILELIST { - int srclen; // compressed size - int srclen_aligned; - int declen; // original size - int srcpos; // position of entry in grf - int next; // index of next filelist entry with same hash (-1: end of entry chain) - int cycle; - char type; - char fn[128-4*5]; // file name - char* fnd; // if the file was cloned, contains name of original file - char gentry; // read grf file select -} FILELIST; - -//gentry ... > 0 : data read from a grf file (gentry_table[gentry-1]) -//gentry ... 0 : data read from a local file (data directory) -//gentry ... < 0 : entry "-(gentry)" is marked for a local file check -// - if local file exists, gentry will be set to 0 (thus using the local file) -// - if local file doesn't exist, sign is inverted (thus using the original file inside a grf) -// (NOTE: this case is only used once (during startup) and only if GRFIO_LOCAL is enabled) -// (NOTE: probably meant to be used to override grf contents by files in the data directory) -//#define GRFIO_LOCAL - -// stores info about every loaded file -FILELIST* filelist = NULL; -int filelist_entrys = 0; -int filelist_maxentry = 0; - -// stores grf file names -char** gentry_table = NULL; -int gentry_entrys = 0; -int gentry_maxentry = 0; - -// the path to the data directory -char data_dir[1024] = ""; - -//---------------------------- -// file list hash table -//---------------------------- -int filelist_hash[256]; - -//---------------------------- -// grf decode data table -//---------------------------- -static unsigned char BitMaskTable[8] = { - 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 -}; - -static char BitSwapTable1[64] = { - 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, - 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, - 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, - 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 -}; -static char BitSwapTable2[64] = { - 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, - 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, - 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, - 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25 -}; -static char BitSwapTable3[32] = { - 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10, - 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25 -}; - -static unsigned char NibbleData[4][64]={ - { - 0xef, 0x03, 0x41, 0xfd, 0xd8, 0x74, 0x1e, 0x47, 0x26, 0xef, 0xfb, 0x22, 0xb3, 0xd8, 0x84, 0x1e, - 0x39, 0xac, 0xa7, 0x60, 0x62, 0xc1, 0xcd, 0xba, 0x5c, 0x96, 0x90, 0x59, 0x05, 0x3b, 0x7a, 0x85, - 0x40, 0xfd, 0x1e, 0xc8, 0xe7, 0x8a, 0x8b, 0x21, 0xda, 0x43, 0x64, 0x9f, 0x2d, 0x14, 0xb1, 0x72, - 0xf5, 0x5b, 0xc8, 0xb6, 0x9c, 0x37, 0x76, 0xec, 0x39, 0xa0, 0xa3, 0x05, 0x52, 0x6e, 0x0f, 0xd9, - }, { - 0xa7, 0xdd, 0x0d, 0x78, 0x9e, 0x0b, 0xe3, 0x95, 0x60, 0x36, 0x36, 0x4f, 0xf9, 0x60, 0x5a, 0xa3, - 0x11, 0x24, 0xd2, 0x87, 0xc8, 0x52, 0x75, 0xec, 0xbb, 0xc1, 0x4c, 0xba, 0x24, 0xfe, 0x8f, 0x19, - 0xda, 0x13, 0x66, 0xaf, 0x49, 0xd0, 0x90, 0x06, 0x8c, 0x6a, 0xfb, 0x91, 0x37, 0x8d, 0x0d, 0x78, - 0xbf, 0x49, 0x11, 0xf4, 0x23, 0xe5, 0xce, 0x3b, 0x55, 0xbc, 0xa2, 0x57, 0xe8, 0x22, 0x74, 0xce, - }, { - 0x2c, 0xea, 0xc1, 0xbf, 0x4a, 0x24, 0x1f, 0xc2, 0x79, 0x47, 0xa2, 0x7c, 0xb6, 0xd9, 0x68, 0x15, - 0x80, 0x56, 0x5d, 0x01, 0x33, 0xfd, 0xf4, 0xae, 0xde, 0x30, 0x07, 0x9b, 0xe5, 0x83, 0x9b, 0x68, - 0x49, 0xb4, 0x2e, 0x83, 0x1f, 0xc2, 0xb5, 0x7c, 0xa2, 0x19, 0xd8, 0xe5, 0x7c, 0x2f, 0x83, 0xda, - 0xf7, 0x6b, 0x90, 0xfe, 0xc4, 0x01, 0x5a, 0x97, 0x61, 0xa6, 0x3d, 0x40, 0x0b, 0x58, 0xe6, 0x3d, - }, { - 0x4d, 0xd1, 0xb2, 0x0f, 0x28, 0xbd, 0xe4, 0x78, 0xf6, 0x4a, 0x0f, 0x93, 0x8b, 0x17, 0xd1, 0xa4, - 0x3a, 0xec, 0xc9, 0x35, 0x93, 0x56, 0x7e, 0xcb, 0x55, 0x20, 0xa0, 0xfe, 0x6c, 0x89, 0x17, 0x62, - 0x17, 0x62, 0x4b, 0xb1, 0xb4, 0xde, 0xd1, 0x87, 0xc9, 0x14, 0x3c, 0x4a, 0x7e, 0xa8, 0xe2, 0x7d, - 0xa0, 0x9f, 0xf6, 0x5c, 0x6a, 0x09, 0x8d, 0xf0, 0x0f, 0xe3, 0x53, 0x25, 0x95, 0x36, 0x28, 0xcb, - } -}; - -// little endian char array to uint conversion -static unsigned int getlong(unsigned char* p) -{ - return (p[0] | p[1] << 0x08 | p[2] << 0x10 | p[3] << 0x18); -} - -/*========================================== - * Grf data decode : Subs - *------------------------------------------*/ -static void NibbleSwap(unsigned char* Src, int len) -{ - for(;0>4) | (*Src<<4); - } -} - -static void BitConvert(unsigned char* Src, char* BitSwapTable) -{ - int lop,prm; - unsigned char tmp[8]; - memset(tmp,0,8); - for(lop=0;lop!=64;lop++) { - prm = BitSwapTable[lop]-1; - if (Src[(prm >> 3) & 7] & BitMaskTable[prm & 7]) { - tmp[(lop >> 3) & 7] |= BitMaskTable[lop & 7]; - } - } - memcpy(Src,tmp,8); -} - -static void BitConvert4(unsigned char* Src) -{ - int lop,prm; - unsigned char tmp[8]; - tmp[0] = ((Src[7]<<5) | (Src[4]>>3)) & 0x3f; // ..0 vutsr - tmp[1] = ((Src[4]<<1) | (Src[5]>>7)) & 0x3f; // ..srqpo n - tmp[2] = ((Src[4]<<5) | (Src[5]>>3)) & 0x3f; // ..o nmlkj - tmp[3] = ((Src[5]<<1) | (Src[6]>>7)) & 0x3f; // ..kjihg f - tmp[4] = ((Src[5]<<5) | (Src[6]>>3)) & 0x3f; // ..g fedcb - tmp[5] = ((Src[6]<<1) | (Src[7]>>7)) & 0x3f; // ..cba98 7 - tmp[6] = ((Src[6]<<5) | (Src[7]>>3)) & 0x3f; // ..8 76543 - tmp[7] = ((Src[7]<<1) | (Src[4]>>7)) & 0x3f; // ..43210 v - - for(lop=0;lop!=4;lop++) { - tmp[lop] = (NibbleData[lop][tmp[lop*2]] & 0xf0) - | (NibbleData[lop][tmp[lop*2+1]] & 0x0f); - } - - memset(tmp+4,0,4); - for(lop=0;lop!=32;lop++) { - prm = BitSwapTable3[lop]-1; - if (tmp[prm >> 3] & BitMaskTable[prm & 7]) { - tmp[(lop >> 3) + 4] |= BitMaskTable[lop & 7]; - } - } - Src[0] ^= tmp[4]; - Src[1] ^= tmp[5]; - Src[2] ^= tmp[6]; - Src[3] ^= tmp[7]; -} - -static void decode_des_etc(unsigned char* buf, size_t len, int type, int cycle) -{ - size_t lop,cnt=0; - if(cycle<3) cycle=3; - else if(cycle<5) cycle++; - else if(cycle<7) cycle+=9; - else cycle+=15; - - for(lop=0; lop*8 64K on 16-bit machine: */ - if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; - - stream.next_out = (Bytef*) dest; - stream.avail_out = (uInt)*destLen; - if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; - - stream.zalloc = (alloc_func)0; - stream.zfree = (free_func)0; - - err = inflateInit(&stream); - if (err != Z_OK) return err; - - err = inflate(&stream, Z_FINISH); - if (err != Z_STREAM_END) { - inflateEnd(&stream); - return err == Z_OK ? Z_BUF_ERROR : err; - } - *destLen = stream.total_out; - - err = inflateEnd(&stream); - return err; -} - -int encode_zip(unsigned char* dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen) -{ - z_stream stream; - int err; - memset(&stream, 0, sizeof(stream)); - stream.next_in = (Bytef*)source; - stream.avail_in = (uInt)sourceLen; - /* Check for source > 64K on 16-bit machine: */ - if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; - - stream.next_out = (Bytef*) dest; - stream.avail_out = (uInt)*destLen; - if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; - - stream.zalloc = (alloc_func)0; - stream.zfree = (free_func)0; - - err = deflateInit(&stream,Z_DEFAULT_COMPRESSION); - if (err != Z_OK) return err; - - err = deflate(&stream, Z_FINISH); - if (err != Z_STREAM_END) { - inflateEnd(&stream); - return err == Z_OK ? Z_BUF_ERROR : err; - } - *destLen = stream.total_out; - - err = deflateEnd(&stream); - return err; -} - -unsigned long grfio_crc32 (const unsigned char* buf, unsigned int len) -{ - return crc32(crc32(0L, Z_NULL, 0), buf, len); -} - -/*********************************************************** - *** File List Subroutines *** - ***********************************************************/ - -// initializes the table that holds the first elements of all hash chains -static void hashinit(void) -{ - int i; - for (i = 0; i < 256; i++) - filelist_hash[i] = -1; -} - -// hashes a filename string into a number from {0..255} -static int filehash(char* fname) -{ - unsigned int hash = 0; - while(*fname) { - hash = ((hash<<1) + (hash>>7)*9 + (unsigned int)tolower((unsigned char)(*fname))); - fname++; - } - return hash & 255; -} - -// finds a FILELIST entry with the specified file name -static FILELIST* filelist_find(char* fname) -{ - int hash, index; - - if (!filelist) - return NULL; - - hash = filelist_hash[filehash(fname)]; - for (index = hash; index != -1; index = filelist[index].next) - if(!strcmpi(filelist[index].fn, fname)) - break; - - return (index >= 0) ? &filelist[index] : NULL; -} - -// returns the original file name -/* -char* grfio_find_file(char* fname) -{ - FILELIST *filelist = filelist_find(fname); - if (!filelist) return NULL; - return (!filelist->fnd ? filelist->fn : filelist->fnd); -} -*/ - -// adds a FILELIST entry into the list of loaded files -static FILELIST* filelist_add(FILELIST* entry) -{ - int hash; - - #define FILELIST_ADDS 1024 // number increment of file lists ` - - if (filelist_entrys >= filelist_maxentry) { - filelist = (FILELIST *)realloc(filelist, (filelist_maxentry + FILELIST_ADDS) * sizeof(FILELIST)); - memset(filelist + filelist_maxentry, '\0', FILELIST_ADDS * sizeof(FILELIST)); - filelist_maxentry += FILELIST_ADDS; - } - - memcpy (&filelist[filelist_entrys], entry, sizeof(FILELIST)); - - hash = filehash(entry->fn); - filelist[filelist_entrys].next = filelist_hash[hash]; - filelist_hash[hash] = filelist_entrys; - - filelist_entrys++; - - return &filelist[filelist_entrys - 1]; -} - -// adds a new FILELIST entry or overwrites an existing one -static FILELIST* filelist_modify(FILELIST* entry) -{ - FILELIST* fentry = filelist_find(entry->fn); - if (fentry != NULL) { - int tmp = fentry->next; - memcpy(fentry, entry, sizeof(FILELIST)); - fentry->next = tmp; - } else { - fentry = filelist_add(entry); - } - return fentry; -} - -// shrinks the file list array if too long -static void filelist_adjust(void) -{ - if (filelist == NULL) - return; - - if (filelist_entrys < filelist_maxentry) { - filelist = (FILELIST *)realloc(filelist, filelist_entrys * sizeof(FILELIST)); - filelist_maxentry = filelist_entrys; - } -} - -/*********************************************************** - *** Grfio Sobroutines *** - ***********************************************************/ - -// returns a file's size -/* -int grfio_size(char* fname) -{ - FILELIST* entry; - - entry = filelist_find(fname); - - if (entry == NULL || entry->gentry < 0) { // LocalFileCheck - char lfname[256], *p; - FILELIST lentry; - struct stat st; - - sprintf(lfname, "%s%s", data_dir, fname); - - for (p = &lfname[0]; *p != 0; p++) - if (*p=='\\') *p = '/'; - - if (stat(lfname, &st) == 0) { - strncpy(lentry.fn, fname, sizeof(lentry.fn) - 1); - lentry.fnd = NULL; - lentry.declen = st.st_size; - lentry.gentry = 0; // 0:LocalFile - entry = filelist_modify(&lentry); - } else if (entry == NULL) { - printf("%s not found (grfio_size)\n", fname); - return -1; - } - } - return entry->declen; -} -*/ - -// reads a file into a newly allocated buffer (from grf or data directory) -void* grfio_reads(char* fname, int* size) -{ - FILE* in; - FILELIST* entry; - unsigned char* buf2 = NULL; - - entry = filelist_find(fname); - - if (entry == NULL || entry->gentry <= 0) { // LocalFileCheck - char lfname[256], *p; - FILELIST lentry; - - sprintf(lfname, "%s%s", data_dir, fname); - - for (p = &lfname[0]; *p != 0; p++) - if (*p == '\\') *p = '/'; - - in = fopen(lfname, "rb"); - if (in != NULL) { - if (entry != NULL && entry->gentry == 0) { - lentry.declen = entry->declen; - } else { - fseek(in,0,SEEK_END); - lentry.declen = ftell(in); - } - fseek(in,0,SEEK_SET); - buf2 = (unsigned char *)malloc(lentry.declen + 1024); - fread(buf2, 1, lentry.declen, in); - fclose(in); - strncpy(lentry.fn, fname, sizeof(lentry.fn) - 1); - lentry.fnd = NULL; - lentry.gentry = 0; // 0:LocalFile - entry = filelist_modify(&lentry); - } else { - if (entry != NULL && entry->gentry < 0) { - entry->gentry = -entry->gentry; // local file checked - } else { - printf("%s not found (grfio_reads - local file %s)\n", fname, lfname); - return NULL; - } - } - } - if (entry != NULL && entry->gentry > 0) { // Archive[GRF] File Read - char* grfname = gentry_table[entry->gentry - 1]; - in = fopen(grfname, "rb"); - if(in != NULL) { - unsigned char *buf = (unsigned char *)malloc(entry->srclen_aligned + 1024); - fseek(in, entry->srcpos, 0); - fread(buf, 1, entry->srclen_aligned, in); - fclose(in); - buf2 = (unsigned char *)malloc(entry->declen + 1024); - if (entry->type == 1 || entry->type == 3 || entry->type == 5) { - uLongf len; - if (entry->cycle >= 0) - decode_des_etc(buf, entry->srclen_aligned, entry->cycle == 0, entry->cycle); - len = entry->declen; - decode_zip(buf2, &len, buf, entry->srclen); - if (len != (uLong)entry->declen) { - printf("decode_zip size mismatch err: %d != %d\n", (int)len, entry->declen); - free(buf); - free(buf2); - return NULL; - } - } else { - memcpy(buf2, buf, entry->declen); - } - free(buf); - } else { - printf("%s not found (grfio_reads - GRF file %s)\n", fname, grfname); - return NULL; - } - } - if (size != NULL && entry != NULL) - *size = entry->declen; - - return buf2; -} - -/*========================================== - * Resource filename decode - *------------------------------------------*/ -static char* decode_filename(unsigned char* buf, int len) -{ - int lop; - for(lop=0;lop> 8; - - if (grf_version == 0x01) { //****** Grf version 01xx ****** - list_size = grf_size - ftell(fp); - grf_filelist = (unsigned char *) malloc(list_size); - fread(grf_filelist,1,list_size,fp); - fclose(fp); - - entrys = getlong(grf_header+0x26) - getlong(grf_header+0x22) - 7; - - // Get an entry - for (entry = 0,ofs = 0; entry < entrys; entry++) { - int ofs2, srclen, srccount; - unsigned char type; - char* period_ptr; - FILELIST aentry; - - ofs2 = ofs+getlong(grf_filelist+ofs)+4; - type = grf_filelist[ofs2+12]; - if (type != 0) { // Directory Index ... skip - fname = decode_filename(grf_filelist+ofs+6, grf_filelist[ofs]-6); - if (strlen(fname) > sizeof(aentry.fn) - 1) { - printf("GRF file name %s is too long\n", fname); - free(grf_filelist); - exit(EXIT_FAILURE); - } - srclen = 0; - if ((period_ptr = strrchr(fname, '.')) != NULL) { - for(lop = 0; lop < 4; lop++) { - if (strcmpi(period_ptr, ".gnd\0.gat\0.act\0.str"+lop*5) == 0) - break; - } - srclen = getlong(grf_filelist+ofs2) - getlong(grf_filelist+ofs2+8) - 715; - if(lop == 4) { - for(lop = 10, srccount = 1; srclen >= lop; lop = lop * 10, srccount++); - } else { - srccount = 0; - } - } else { - srccount = 0; - } - - aentry.srclen = srclen; - aentry.srclen_aligned = getlong(grf_filelist+ofs2+4)-37579; - aentry.declen = getlong(grf_filelist+ofs2+8); - aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; - aentry.cycle = srccount; - aentry.type = type; - strncpy(aentry.fn, fname,sizeof(aentry.fn)-1); - aentry.fnd = NULL; -#ifdef GRFIO_LOCAL - aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck -#else - aentry.gentry = gentry+1; // With no first time LocalFileCheck -#endif - filelist_modify(&aentry); - } - ofs = ofs2 + 17; - } - free(grf_filelist); - - } else if (grf_version == 0x02) { //****** Grf version 02xx ****** - unsigned char eheader[8]; - unsigned char *rBuf; - uLongf rSize, eSize; - - fread(eheader,1,8,fp); - rSize = getlong(eheader); // Read Size - eSize = getlong(eheader+4); // Extend Size - - if ((long)rSize > grf_size-ftell(fp)) { - fclose(fp); - printf("Illegal data format: GRF compress entry size\n"); - return 4; - } - - rBuf = (unsigned char *)malloc(rSize); // Get a Read Size - grf_filelist = (unsigned char *)malloc(eSize); // Get a Extend Size - fread(rBuf,1,rSize,fp); - fclose(fp); - decode_zip(grf_filelist, &eSize, rBuf, rSize); // Decode function - list_size = eSize; - free(rBuf); - - entrys = getlong(grf_header+0x26) - 7; - - // Get an entry - for(entry = 0, ofs = 0; entry < entrys; entry++) { - int ofs2, srclen, srccount, type; - FILELIST aentry; - - fname = (char*)(grf_filelist+ofs); - if (strlen(fname) > sizeof(aentry.fn)-1) { - printf("GRF file name %s is too long\n", fname); - free(grf_filelist); - exit(EXIT_FAILURE); - } - ofs2 = ofs + (int)strlen(fname)+1; - type = grf_filelist[ofs2+12]; - if (type == 1 || type == 3 || type == 5) { - srclen = getlong(grf_filelist+ofs2); - if (grf_filelist[ofs2+12] == 3) { - for (lop = 10, srccount = 1; srclen >= lop; lop = lop * 10, srccount++); - } else if (grf_filelist[ofs2+12] == 5) { - srccount = 0; - } else { // if (grf_filelist[ofs2+12]==1) { - srccount = -1; - } - - aentry.srclen = srclen; - aentry.srclen_aligned = getlong(grf_filelist+ofs2+4); - aentry.declen = getlong(grf_filelist+ofs2+8); - aentry.srcpos = getlong(grf_filelist+ofs2+13)+0x2e; - aentry.cycle = srccount; - aentry.type = type; - strncpy(aentry.fn,fname,sizeof(aentry.fn)-1); - aentry.fnd = NULL; -#ifdef GRFIO_LOCAL - aentry.gentry = -(gentry+1); // As Flag for making it a negative number carrying out the first time LocalFileCheck -#else - aentry.gentry = gentry+1; // With no first time LocalFileCheck -#endif - filelist_modify(&aentry); - } - ofs = ofs2 + 17; - } - free(grf_filelist); - - } else { //****** Grf Other version ****** - fclose(fp); - printf("GRF version %04x not supported\n",getlong(grf_header+0x2a)); - return 4; - } - - filelist_adjust(); // Unnecessary area release of filelist - - return 0; // 0:no error -} - -/*========================================== - * Grfio : Resource file check - *------------------------------------------*/ -static void grfio_resourcecheck(void) -{ - char w1[256], w2[256], src[256], dst[256], restable[256], line[256]; - char *ptr, *buf; - FILELIST* entry; - int size; - FILE* fp; - - // read resnametable from data directory and return if successful - sprintf(restable, "%sdata\\resnametable.txt", data_dir); - for (ptr = &restable[0]; *ptr != 0; ptr++) - if (*ptr == '\\') *ptr = '/'; - - fp = fopen(restable, "rb"); - if (fp) { - while(fgets(line, sizeof(line), fp)) - { - if (sscanf(line, "%[^#]#%[^#]#", w1, w2) == 2 && - // we only need the maps' GAT and RSW files - (strstr(w2, ".gat") || strstr(w2, ".rsw"))) - { - sprintf(src, "data\\%s", w1); - sprintf(dst, "data\\%s", w2); - entry = filelist_find(dst); - // create new entries reusing the original's info - if (entry != NULL) { - FILELIST fentry; - memcpy(&fentry, entry, sizeof(FILELIST)); - strncpy(fentry.fn, src, sizeof(fentry.fn) - 1); - fentry.fnd = strdup(dst); - filelist_modify(&fentry); - } - } - } - fclose(fp); - return; // we're done here! - } - - // read resnametable from loaded GRF's, only if it cannot be loaded from the data directory - buf = (char *)grfio_reads("data\\resnametable.txt", &size); - if (buf) { - buf[size] = 0; - - ptr = buf; - while (ptr - buf < size) { - if (sscanf(ptr, "%[^#]#%[^#]#", w1, w2) == 2 && - (strstr(w2, ".gat") || strstr(w2, ".rsw"))) - { - sprintf(src, "data\\%s", w1); - sprintf(dst, "data\\%s", w2); - entry = filelist_find(dst); - if (entry != NULL) { - FILELIST fentry; - memcpy(&fentry, entry, sizeof(FILELIST)); - strncpy(fentry.fn, src, sizeof(fentry.fn) - 1); - fentry.fnd = strdup(dst); - filelist_modify(&fentry); - } - } - ptr = strchr(ptr, '\n'); // Next line - if (!ptr) break; - ptr++; - } - free(buf); - return; - } - -} - -// reads a grf file and adds it to the list -static int grfio_add(char* fname) -{ - #define GENTRY_ADDS 4 // The number increment of gentry_table entries - - if (gentry_entrys >= gentry_maxentry) { - gentry_maxentry += GENTRY_ADDS; - gentry_table = (char**)realloc(gentry_table, gentry_maxentry * sizeof(char*)); - memset(gentry_table + (gentry_maxentry - GENTRY_ADDS), 0, sizeof(char*) * GENTRY_ADDS); - } - - gentry_table[gentry_entrys++] = strdup(fname); - - return grfio_entryread(fname, gentry_entrys - 1); -} - -// removes all entries -void grfio_final(void) -{ - if (filelist != NULL) { - int i; - for (i = 0; i < filelist_entrys; i++) - if (filelist[i].fnd != NULL) - free(filelist[i].fnd); - - free(filelist); - filelist = NULL; - } - filelist_entrys = filelist_maxentry = 0; - - if (gentry_table != NULL) { - int i; - for (i = 0; i < gentry_entrys; i++) - if (gentry_table[i] != NULL) - free(gentry_table[i]); - - free(gentry_table); - gentry_table = NULL; - } - gentry_entrys = gentry_maxentry = 0; -} - -/*========================================== - * Grfio : Initialize - *------------------------------------------*/ -void grfio_init(char* fname) -{ - FILE* data_conf; - char line[1024], w1[1024], w2[1024]; - int grf_num = 0; - - hashinit(); // hash table initialization - - data_conf = fopen(fname, "r"); - // It will read, if there is grf-files.txt. - if (data_conf) { - while(fgets(line, sizeof(line), data_conf)) - { - if (line[0] == '/' && line[1] == '/') - continue; - if (sscanf(line, "%[^:]: %[^\r\n]", w1, w2) != 2) - continue; - // Entry table reading - if(strcmp(w1, "grf") == 0) // GRF file - grf_num += (grfio_add(w2) == 0); - else if(strcmp(w1,"data_dir") == 0) { // Data directory - strcpy(data_dir, w2); - printf("Use data directory %s\n", w2); - } - } - fclose(data_conf); - } // end of reading grf-files.txt - - if (grf_num == 0) { - printf("No GRF loaded, using default data directory\n"); - } - - // Unneccessary area release of filelist - filelist_adjust(); - - // Resource check - grfio_resourcecheck(); - - return; -} diff --git a/src/tool/grfio.h b/src/tool/grfio.h deleted file mode 100644 index 57439b16d7..0000000000 --- a/src/tool/grfio.h +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Athena Dev Teams - Licensed under GNU GPL -// For more information, see LICENCE in the main folder - -#ifndef _GRFIO_H_ -#define _GRFIO_H_ - -void grfio_init(char*); // GRFIO Initialize -void grfio_final(void); // GRFIO Finalize -void* grfio_reads(char*,int*); // GRFIO data file read & size get -char *grfio_find_file(char *fname); - -#define grfio_read(fn) grfio_reads(fn, NULL) - -int grfio_size(char*); // GRFIO data file size get -unsigned long grfio_crc32(const unsigned char *buf, unsigned int len); - -int decode_zip(unsigned char *dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen); -int encode_zip(unsigned char *dest, unsigned long* destLen, const unsigned char* source, unsigned long sourceLen); - -#endif /* _GRFIO_H_ */ diff --git a/src/tool/mapcache.c b/src/tool/mapcache.c index 49e1826ab6..f782331cad 100644 --- a/src/tool/mapcache.c +++ b/src/tool/mapcache.c @@ -1,6 +1,12 @@ // Copyright (c) Athena Dev Teams - Licensed under GNU GPL // For more information, see LICENCE in the main folder +#include "../common/cbasetypes.h" +#include "../common/grfio.h" +#include "../common/malloc.h" +#include "../common/mmo.h" +#include "../common/showmsg.h" + #include #include #include @@ -9,11 +15,6 @@ #include #endif -#include "../common/cbasetypes.h" -#include "grfio.h" - -#define MAP_NAME_LENGTH 12 -#define MAP_NAME_LENGTH_EXT 16 #define NO_WATER 1000000 char grf_list_file[256] = "conf/grf-files.txt"; @@ -124,7 +125,7 @@ int read_map(char *name, struct map_data *m) // Read water height if (rsw) { water_height = (int)GetFloat(rsw+166); - free(rsw); + aFree(rsw); } else water_height = NO_WATER; @@ -132,11 +133,11 @@ int read_map(char *name, struct map_data *m) m->xs = (int16)GetULong(gat+6); m->ys = (int16)GetULong(gat+10); if (m->xs <= 0 || m->ys <= 0) { - free(gat); + aFree(gat); return 0; } num_cells = (size_t)m->xs*(size_t)m->ys; - m->cells = (unsigned char *)malloc(num_cells); + m->cells = (unsigned char *)aMalloc(num_cells); // Set cell properties off = 14; @@ -154,7 +155,7 @@ int read_map(char *name, struct map_data *m) m->cells[xy] = (unsigned char)type; } - free(gat); + aFree(gat); return 1; } @@ -168,7 +169,7 @@ void cache_map(char *name, struct map_data *m) // Create an output buffer twice as big as the uncompressed map... this way we're sure it fits len = (unsigned long)m->xs*(unsigned long)m->ys*2; - write_buf = (unsigned char *)malloc(len); + write_buf = (unsigned char *)aMalloc(len); // Compress the cells and get the compressed length encode_zip(write_buf, &len, m->cells, m->xs*m->ys); @@ -185,8 +186,8 @@ void cache_map(char *name, struct map_data *m) header.file_size += sizeof(struct map_info) + len; header.map_count++; - free(write_buf); - free(m->cells); + aFree(write_buf); + aFree(m->cells); return; } @@ -245,7 +246,7 @@ void process_args(int argc, char *argv[]) } -int main(int argc, char *argv[]) +int do_init(int argc, char *argv[]) { FILE *list; char line[1024]; @@ -255,15 +256,15 @@ int main(int argc, char *argv[]) // Process the command-line arguments process_args(argc, argv); - printf("Initializing grfio with %s\n", grf_list_file); + ShowStatus("Initializing grfio with %s\n", grf_list_file); grfio_init(grf_list_file); // Attempt to open the map cache file and force rebuild if not found - printf("Opening map cache: %s\n", map_cache_file); + ShowStatus("Opening map cache: %s\n", map_cache_file); if(!rebuild) { map_cache_fp = fopen(map_cache_file, "rb"); if(map_cache_fp == NULL) { - printf("Existing map cache not found, forcing rebuild mode\n"); + ShowNotice("Existing map cache not found, forcing rebuild mode\n"); rebuild = 1; } else fclose(map_cache_fp); @@ -273,15 +274,15 @@ int main(int argc, char *argv[]) else map_cache_fp = fopen(map_cache_file, "r+b"); if(map_cache_fp == NULL) { - printf("Failure when opening map cache file %s\n", map_cache_file); + ShowError("Failure when opening map cache file %s\n", map_cache_file); exit(EXIT_FAILURE); } // Open the map list - printf("Opening map list: %s\n", map_list_file); + ShowStatus("Opening map list: %s\n", map_list_file); list = fopen(map_list_file, "r"); if(list == NULL) { - printf("Failure when opening maps list file %s\n", map_list_file); + ShowError("Failure when opening maps list file %s\n", map_list_file); exit(EXIT_FAILURE); } @@ -309,30 +310,33 @@ int main(int argc, char *argv[]) name[MAP_NAME_LENGTH_EXT-1] = '\0'; remove_extension(name); - printf("%s", name); if(find_map(name)) - printf(" already in cache!\n"); + ShowInfo("Map '"CL_WHITE"%s"CL_RESET"' already in cache.\n", name); else if(read_map(name, &map)) { cache_map(name, &map); - printf(" successfully cached\n"); + ShowInfo("Map '"CL_WHITE"%s"CL_RESET"' successfully cached.\n", name); } else - printf(" not found in GRF!\n"); + ShowError("Map '"CL_WHITE"%s"CL_RESET"' not found!\n", name); } - printf("Closing map list: %s\n", map_list_file); + ShowStatus("Closing map list: %s\n", map_list_file); fclose(list); // Write the main header and close the map cache - printf("Closing map cache: %s\n", map_cache_file); + ShowStatus("Closing map cache: %s\n", map_cache_file); fseek(map_cache_fp, 0, SEEK_SET); fwrite(&header, sizeof(struct main_header), 1, map_cache_fp); fclose(map_cache_fp); - printf("Finalizing grfio\n"); + ShowStatus("Finalizing grfio\n"); grfio_final(); - printf("%d maps now in cache\n", header.map_count); + ShowInfo("%d maps now in cache\n", header.map_count); return 0; } + +void do_final(void) +{ +} diff --git a/tools/checkversion.pl b/tools/checkversion.pl deleted file mode 100755 index e13b7370c2..0000000000 --- a/tools/checkversion.pl +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/perl -w - -########################################################################## -# INFORMATION TOOL ABOUT THE SERVERS VERSION OF ATHENA -# -# By connection on a server, this software display the version of the -# designed server. -#------------------------------------------------------------------------- -# Usages: -# ./checkversion.pl IP:port -# ./checkversion.pl IP port -# perl checkversion.pl IP:port -# perl checkversion.pl IP port -# -# note: default port: 6900 -# -# When successfull, the software return the value 0. -# -########################################################################## - -#------------------------- start of configuration ------------------------ - -$connecttimeout = 10; # Connection Timeout (in seconds) - -#-------------------------- End of configuration ------------------------- - -use IO::Socket; - -unless($ARGV[0]) { - print "USAGE: $0 server_ip:port\n"; - exit(1); -} - -$server = $ARGV[0]; -$port = $ARGV[1]; -$port = $1 if ($server =~ s/:(\d+)//); -$port ||= 6900; - -# Connection to the server -my($so,$er) = (); -eval{ - $so = IO::Socket::INET->new( - PeerAddr=> $server, - PeerPort=> $port, - Proto => "tcp", - Timeout => $connecttimeout) or $er = 1; -}; - -if($er || $@) { - print "Can't not connect to server [$server:$port] !\n"; - exit(2); -} - -# Request for the server version -print $so pack("v",30000); # 0x7530 -$so->flush(); - -# Receiving of the answer of the server -if (read($so,$buf,10) < 10) { - print "Invalid answer. It isn't an athena server or it is a too old version.\n"; - exit(5); -} - -# Sending end of connection to the server -print $so pack("v",30002); # 0x7532 -$so->flush(); - -# Analyse of the answer -my($ret,$maver,$miver,$rev,$dev,$mod,$type,$mdver) = unpack("v c6 v",$buf); - -if ($ret != 30001) { # 0x7531 - print "Invalid answer. It isn't an athena server or it is a too old version.\n"; - exit(6); -} - -my(@stype) = (); -foreach $i(0..3) { - push @stype,(("login","char","inter","map")[$i]) if( $type & (1<<$i) ); -} -print " ".join("/",@stype)." server [$server:$port].\n"; -printf " Athena version %s-%d.%d", ("stable","dev")[$dev], $maver,$miver; -printf " revision %d",$rev if $rev; -printf "%s%d\n",("","-mod")[$mod],$mdver; - -exit(0); diff --git a/vcproj-10/ladmin.vcxproj b/vcproj-10/ladmin.vcxproj deleted file mode 100644 index 4865159bfa..0000000000 --- a/vcproj-10/ladmin.vcxproj +++ /dev/null @@ -1,149 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {D356871D-58E1-450B-967A-E8E9646175AF} - ladmin - Win32Proj - - - - Application - MultiByte - true - - - Application - MultiByte - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - ..\ - $(ProjectName)\$(Configuration)\ - true - ..\ - $(ProjectName)\$(Configuration)\ - false - - - - Disabled - ..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories) - WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;MINICORE;FD_SETSIZE=4096;%(PreprocessorDefinitions) - false - false - true - - - EnableFastChecks - MultiThreadedDebug - true - - - - - Level3 - EditAndContinue - CompileAsC - - - /FIXED:NO %(AdditionalOptions) - libcmtd.lib;oldnames.lib;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)ladmin.exe - %(AdditionalLibraryDirectories) - true - true - $(OutDir)$(ProjectName).pdb - Console - false - - - MachineX86 - - - - - MaxSpeed - AnySuitable - true - Speed - true - true - true - ..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories) - WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;MINICORE;FD_SETSIZE=4096;%(PreprocessorDefinitions) - true - MultiThreaded - false - - - - - Level3 - ProgramDatabase - CompileAsC - - - libcmt.lib;oldnames.lib;ws2_32.lib;%(AdditionalDependencies) - $(OutDir)ladmin.exe - %(AdditionalLibraryDirectories) - true - true - $(OutDir)$(ProjectName).pdb - Console - true - true - UseLinkTimeCodeGeneration - false - - - MachineX86 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vcproj-10/login-server_sql.vcxproj b/vcproj-10/login-server_sql.vcxproj index e8d91e186b..6570350acf 100644 --- a/vcproj-10/login-server_sql.vcxproj +++ b/vcproj-10/login-server_sql.vcxproj @@ -153,7 +153,6 @@ - diff --git a/vcproj-10/login-server_txt.vcxproj b/vcproj-10/login-server_txt.vcxproj index c82e5e30d2..09bb22a382 100644 --- a/vcproj-10/login-server_txt.vcxproj +++ b/vcproj-10/login-server_txt.vcxproj @@ -144,7 +144,6 @@ - diff --git a/vcproj-10/mapcache.vcxproj b/vcproj-10/mapcache.vcxproj index 04c6edc67b..47dc9a250d 100644 --- a/vcproj-10/mapcache.vcxproj +++ b/vcproj-10/mapcache.vcxproj @@ -48,7 +48,7 @@ Disabled ..\3rdparty\zlib\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories) - WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;MINICORE;%(PreprocessorDefinitions) false false true @@ -90,7 +90,7 @@ true true ..\3rdparty\zlib\include;..\3rdparty\msinttypes\include;%(AdditionalIncludeDirectories) - WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) + WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;MINICORE;%(PreprocessorDefinitions) true MultiThreaded false @@ -120,11 +120,24 @@ - + + + + + + - + + + + + + + + + diff --git a/vcproj-6/login-server_sql.dsp b/vcproj-6/login-server_sql.dsp index 7348d33615..0a52185e12 100644 --- a/vcproj-6/login-server_sql.dsp +++ b/vcproj-6/login-server_sql.dsp @@ -207,10 +207,6 @@ SOURCE=..\src\login\account_sql.c # End Source File # Begin Source File -SOURCE=..\src\login\admin.c -# End Source File -# Begin Source File - SOURCE=..\src\login\ipban.h # End Source File # Begin Source File diff --git a/vcproj-6/login-server_txt.dsp b/vcproj-6/login-server_txt.dsp index ee54b5b76a..ecb0832691 100644 --- a/vcproj-6/login-server_txt.dsp +++ b/vcproj-6/login-server_txt.dsp @@ -195,10 +195,6 @@ SOURCE=..\src\login\account_txt.c # End Source File # Begin Source File -SOURCE=..\src\login\admin.c -# End Source File -# Begin Source File - SOURCE=..\src\login\ipban.h # End Source File # Begin Source File diff --git a/vcproj-6/plugin-console.dsp b/vcproj-6/plugin-console.dsp new file mode 100644 index 0000000000..f61a7c0b2d --- /dev/null +++ b/vcproj-6/plugin-console.dsp @@ -0,0 +1,103 @@ +# Microsoft Developer Studio Project File - Name="console" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=console - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "console.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "console.mak" CFG="console - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "console - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "console - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "console - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release/console" +# PROP Intermediate_Dir "Release/console" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CONSOLE_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX- /O2 /I "../3rdparty/msinttypes/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /Oicf /win32 +# SUBTRACT MTL /mktyplib203 +# ADD BASE RSC /l 0x405 /d "NDEBUG" +# ADD RSC /l 0x417 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/console.pdb" /machine:I386 /out:"../plugins/console.dll" + +!ELSEIF "$(CFG)" == "console - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug/console" +# PROP Intermediate_Dir "Debug/console" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CONSOLE_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX- /ZI /Od /I "../3rdparty/msinttypes/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /Oicf /win32 +# SUBTRACT MTL /mktyplib203 +# ADD BASE RSC /l 0x405 /d "_DEBUG" +# ADD RSC /l 0x417 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/console.pdb" /debug /machine:I386 /out:"../plugins/console.dll" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "console - Win32 Release" +# Name "console - Win32 Debug" +# Begin Source File + +SOURCE=..\src\plugins\console.c +# End Source File +# Begin Source File + +SOURCE=..\src\plugins\console.def +# End Source File +# End Target +# End Project diff --git a/vcproj-6/plugin-pid.dsp b/vcproj-6/plugin-pid.dsp new file mode 100644 index 0000000000..6626de710a --- /dev/null +++ b/vcproj-6/plugin-pid.dsp @@ -0,0 +1,103 @@ +# Microsoft Developer Studio Project File - Name="pid" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=pid - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "pid.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "pid.mak" CFG="pid - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "pid - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "pid - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "pid - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release/pid" +# PROP Intermediate_Dir "Release/pid" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PID_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX- /O2 /I "../3rdparty/msinttypes/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /Oicf /win32 +# SUBTRACT MTL /mktyplib203 +# ADD BASE RSC /l 0x405 /d "NDEBUG" +# ADD RSC /l 0x417 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/pid.pdb" /machine:I386 /out:"../plugins/pid.dll" + +!ELSEIF "$(CFG)" == "pid - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug/pid" +# PROP Intermediate_Dir "Debug/pid" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PID_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX- /ZI /Od /I "../3rdparty/msinttypes/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /Oicf /win32 +# SUBTRACT MTL /mktyplib203 +# ADD BASE RSC /l 0x405 /d "_DEBUG" +# ADD RSC /l 0x417 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib /nologo /dll /pdb:"../plugins/pid.pdb" /debug /machine:I386 /out:"../plugins/pid.dll" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "pid - Win32 Release" +# Name "pid - Win32 Debug" +# Begin Source File + +SOURCE=..\src\plugins\pid.c +# End Source File +# Begin Source File + +SOURCE=..\src\plugins\pid.def +# End Source File +# End Target +# End Project diff --git a/vcproj-7.1/login-server_sql.vcproj b/vcproj-7.1/login-server_sql.vcproj index 8c5001fa6b..a86f8246b1 100644 --- a/vcproj-7.1/login-server_sql.vcproj +++ b/vcproj-7.1/login-server_sql.vcproj @@ -150,9 +150,6 @@ - - diff --git a/vcproj-7.1/login-server_txt.vcproj b/vcproj-7.1/login-server_txt.vcproj index 8181e4fd5e..24fc249d7c 100644 --- a/vcproj-7.1/login-server_txt.vcproj +++ b/vcproj-7.1/login-server_txt.vcproj @@ -153,9 +153,6 @@ - - diff --git a/vcproj-7.1/mapcache.vcproj b/vcproj-7.1/mapcache.vcproj index fe57a98b6e..af62d51942 100644 --- a/vcproj-7.1/mapcache.vcproj +++ b/vcproj-7.1/mapcache.vcproj @@ -20,7 +20,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\3rdparty\zlib\include;..\3rdparty\msinttypes\include" - PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG" + PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG;MINICORE" MinimalRebuild="TRUE" ExceptionHandling="FALSE" BasicRuntimeChecks="3" @@ -87,7 +87,7 @@ OptimizeForProcessor="2" OptimizeForWindowsApplication="TRUE" AdditionalIncludeDirectories="..\3rdparty\zlib\include;..\3rdparty\msinttypes\include" - PreprocessorDefinitions="WIN32;_WIN32;__WIN32;NDEBUG" + PreprocessorDefinitions="WIN32;_WIN32;__WIN32;NDEBUG;MINICORE" StringPooling="TRUE" RuntimeLibrary="3" DefaultCharIsUnsigned="FALSE" @@ -138,14 +138,57 @@ + RelativePath="..\src\common\cbasetypes.h"> + RelativePath="..\src\common\core.c"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vcproj-8/ladmin.vcproj b/vcproj-8/ladmin.vcproj deleted file mode 100644 index bcca6c3274..0000000000 --- a/vcproj-8/ladmin.vcproj +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vcproj-8/login-server_sql.vcproj b/vcproj-8/login-server_sql.vcproj index e47f77eeb9..2509f8f298 100644 --- a/vcproj-8/login-server_sql.vcproj +++ b/vcproj-8/login-server_sql.vcproj @@ -208,10 +208,6 @@ RelativePath="..\src\login\account_sql.c" > - - diff --git a/vcproj-8/login-server_txt.vcproj b/vcproj-8/login-server_txt.vcproj index 50508f5bdd..35cf7639c9 100644 --- a/vcproj-8/login-server_txt.vcproj +++ b/vcproj-8/login-server_txt.vcproj @@ -203,10 +203,6 @@ RelativePath="..\src\login\account_txt.c" > - - diff --git a/vcproj-8/mapcache.vcproj b/vcproj-8/mapcache.vcproj index d09280d339..3c6585c13d 100644 --- a/vcproj-8/mapcache.vcproj +++ b/vcproj-8/mapcache.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\3rdparty\zlib\include;..\3rdparty\msinttypes\include" - PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE" + PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;MINICORE" GeneratePreprocessedFile="0" MinimalRebuild="true" ExceptionHandling="0" @@ -131,7 +131,7 @@ EnableFiberSafeOptimizations="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="..\3rdparty\zlib\include;..\3rdparty\msinttypes\include" - PreprocessorDefinitions="WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE" + PreprocessorDefinitions="WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;MINICORE" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="false" @@ -192,16 +192,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vcproj-8/plugin-console.vcproj b/vcproj-8/plugin-console.vcproj new file mode 100644 index 0000000000..ac3c6de6d7 --- /dev/null +++ b/vcproj-8/plugin-console.vcproj @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vcproj-8/plugin-pid.vcproj b/vcproj-8/plugin-pid.vcproj new file mode 100644 index 0000000000..8b24e03af5 --- /dev/null +++ b/vcproj-8/plugin-pid.vcproj @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vcproj-9/ladmin.vcproj b/vcproj-9/ladmin.vcproj deleted file mode 100644 index c17252b736..0000000000 --- a/vcproj-9/ladmin.vcproj +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vcproj-9/login-server_sql.vcproj b/vcproj-9/login-server_sql.vcproj index f15a9cd642..4adaa8d342 100644 --- a/vcproj-9/login-server_sql.vcproj +++ b/vcproj-9/login-server_sql.vcproj @@ -213,10 +213,6 @@ RelativePath="..\src\login\account_sql.c" > - - diff --git a/vcproj-9/login-server_txt.vcproj b/vcproj-9/login-server_txt.vcproj index 82ac7669c0..6c0faa66c5 100644 --- a/vcproj-9/login-server_txt.vcproj +++ b/vcproj-9/login-server_txt.vcproj @@ -208,10 +208,6 @@ RelativePath="..\src\login\account_txt.c" > - - diff --git a/vcproj-9/mapcache.vcproj b/vcproj-9/mapcache.vcproj index 95bd96e552..f25c016f34 100644 --- a/vcproj-9/mapcache.vcproj +++ b/vcproj-9/mapcache.vcproj @@ -42,7 +42,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\3rdparty\zlib\include;..\3rdparty\msinttypes\include" - PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE" + PreprocessorDefinitions="WIN32;_WIN32;__WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;MINICORE" GeneratePreprocessedFile="0" MinimalRebuild="true" ExceptionHandling="0" @@ -134,7 +134,7 @@ EnableFiberSafeOptimizations="true" WholeProgramOptimization="true" AdditionalIncludeDirectories="..\3rdparty\zlib\include;..\3rdparty\msinttypes\include" - PreprocessorDefinitions="WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE" + PreprocessorDefinitions="WIN32;_WIN32;__WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;MINICORE" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="false" @@ -197,16 +197,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vcproj-9/plugin-console.vcproj b/vcproj-9/plugin-console.vcproj new file mode 100644 index 0000000000..24f21957c2 --- /dev/null +++ b/vcproj-9/plugin-console.vcproj @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vcproj-9/plugin-pid.vcproj b/vcproj-9/plugin-pid.vcproj new file mode 100644 index 0000000000..ffc9231bfe --- /dev/null +++ b/vcproj-9/plugin-pid.vcproj @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +